У меня есть набор файлов xsd для разных типов данных. В мире Java, как лучше всего создать список свойств типов?
например. с этими двумя файлами.
файл: customer.xsd
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer">
<xs:complexType>
<xs:sequence>
<xs:element name="number" type="xs:integer"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
файл: заказ.xsd
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer">
<xs:complexType>
<xs:sequence>
<xs:element name="orderid" type="xs:integer"/>
<xs:element name="customer" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Я бы хотел сделать две вещи
1. Java-приложение, которое читает XSD и затем обрабатывает (каким-то образом?). Поэтому, когда вы запускаете программу, она может распечатать свойства
> java -jar printtypes.jar -f customer.xsd
> number : Integer
> name : String
> address : String
2. некое преобразование, которое генерирует новый файл
file: customer.properties
<propertylist>
<prop>
<name> orderid </name>
<type> integer </type>
</prop>
<prop>
<name> customer </name>
<type> string</type>
</prop>
</propertylist>
Я попытался реализовать программу в (1) выше, используя отражение Java для опроса классов Java, сгенерированных JAXB. Это создало экземпляр класса и запросило значения и поля, но это не работает, если значения состоят из пустой последовательности. Невозможно вернуться к исходному типу значения из-за стирания типа. Вы получаете пустой список ArrayList чего-то, но вы не знаете, что именно.
Я работаю над C ++, так что сейчас я немного заблудился во всей этой технологии Java. Мои возможности Google подводили меня - большинство сообщений JAVA / XSD, которые я видел, говорят о валидации, а я не хочу этого делать.