Синтаксический анализ Java / XSD - PullRequest
8 голосов
/ 19 декабря 2010

Я сомневаюсь, что есть что-то подобное, но я подумал спросить:
Кто-нибудь знает, есть ли в Java библиотека, которая читает файл xsd и «создает» определенные элементы, например? в строковом формате для использования в коде?
Например. читайте в следующей схеме:

<?xml version="1.0" encoding="utf-8"?>
        <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
          <xs:element name="Address">
            <xs:complexType>
              <xs:sequence>
                  <xs:element name="Street" type="xs:string" />
                  <xs:element name="Town" type="xs:string" />
                  <xs:element name="Country" type="xs:string" minOccurs="0" />
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:schema>

И иметь строку в следующем формате:

<Address>  
  <Street></Street>
  <Town></Town>
  <Country></Country>
</Address>

Автоматические инструменты делают нечто подобное, то есть анализируют WSDL и из раздела типов создают, например, классы JAXB, которые могут быть экземплярами элементов, определенных в схеме.
Есть ли библиотека для этого?

UPDATE:
Например, в Eclipse при создании дескриптора xml для веб-приложения он представляет таблицу дерева со всеми необходимыми элементами, которые пользователи должны заполнять в соответствии со схемой. Как они это делают? Я предполагаю, что они разбирают xsds, включенные в банки
Любые пожелания приветствуются.
Спасибо!

Ответы [ 2 ]

1 голос
/ 20 декабря 2010

oXygen имеет генератор экземпляров XML , который может генерировать набор образцов документов XML на основе заданной схемы XML.

Выможно также вызвать его из командной строки .

1 голос
/ 19 декабря 2010

Если это файл WSDL, с помощью которого вы хотите сгенерировать классы Java, то Axis WSDL2Java (на основе JAXB) можно использовать для получения классов на основе схемы, определенной в WSDL.

JAXB также предлагает связывающий фреймворк, который вы можете посмотреть.

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/twbs_jaxbschema2java.html

Приведенная выше ссылка должна быть полезной.

...