Java-методы для опроса файлов XSD

У меня есть набор файлов 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, которые я видел, говорят о валидации, а я не хочу этого делать.

5
задан VijayD 15 December 2017 в 06:45
поделиться