2015-09-08 4 views
-2

у меня есть файл XML, который начинается так:Сформировать исходные файлы из XML

<?xml version="1.0" encoding="UTF-8"?> 
<interface name="AccountAPING" owner="BDP" version="1.0.0" date="now()" namespace="com.betfair.account.api" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <description>Account API-NG</description> 
... 

потом есть различные блоки, такие как:

<operation name="getDeveloperAppKeys" since="1.0.0"> 
<description> 
    Get all application keys owned by the given developer/vendor 
</description> 
<parameters> 
    <request/> 
    <simpleResponse type="list(DeveloperApp)"> 
     <description> 
      A list of application keys owned by the given developer/vendor 
     </description> 
    </simpleResponse> 
    <exceptions> 
     <exception type="AccountAPINGException"> 
      <description>Generic exception that is thrown if this operation fails for any reason.</description> 
     </exception> 
    </exceptions> 
</parameters> 
</operation> 

........ 

<simpleType name="Status" type="string"> 
    <validValues> 
     <value name="SUCCESS"> 
      <description>Sucess status</description> 
     </value> 
    </validValues> 
</simpleType> 

........ 

<dataType name="TimeRange"> 
    <description>TimeRange</description> 
    <parameter name="from" type="dateTime" mandatory="false"> 
     <description>from, format: ISO 8601)</description> 
    </parameter> 
    <parameter name="to" type="dateTime" mandatory="false"> 
     <description>to, format: ISO 8601</description> 
    </parameter> 
</dataType> 

Как я могу генерировать код Java с этой помощью Maven? Я пробовал использовать «maven-jaxb2-plugin», но он не может разобрать эту структуру.

Обратите внимание

  1. Это XML-файл не не XSD
  2. Я использую Netbeans
+0

Вы используете затмение? maven загрузил пакеты 'JaxB'? если вы щелкните правой кнопкой мыши в файле 'XSD' в Eclipse, вы можете автогенерировать классы java? –

+0

Код Java не может быть сгенерирован из XML. XSD требуется для создания Java-моделей. http://xmlgrid.net/xml2xsd.html для генерации XSD из XML и https://docs.oracle.com/javaee/5/tutorial/doc/bnbah.html для создания классов Java из XSD. –

ответ

1

Для создания Java-кода из использования XJC файла схемы см here , Откройте командную строку в папку, в которой вы положили файл XSD, а затем генерировать Java код, который вы будете просто нужно ввести:

$ xjc nameOfSchemaFile.xsd 

XJC входит в состав Java SDK.

+0

Я пытаюсь xjc, но он не может проанализировать - много ошибок, таких как [ERROR] s4s-elt-invalid: Element 'interface' не является допустимым элементом в документе схемы. строка 3 файла:/D: /Projects/mavenproject1/src/main/xsd/SportsAPING.xml [ERROR] schema_reference.4: Не удалось прочитать файл документа схемы:/D:/Projects/mavenproject1/src/main/xsd/SportsAPING.xml ', потому что 1) не удалось найти документ; 2) документ не может быть прочитан; 3) корневой элемент документа не . строка 3 файла:/D:/Projects/mavenproject1/src/main/xsd/SportsAPING.xml' –

+0

Ах, вы сказали, что у вас есть файл схемы, который заканчивается на «.XSD». Вы не можете сделать это с помощью файла .XML. Сначала вам нужно написать файл схемы. Взгляните на учебник [XML Schema] (http://www.w3schools.com/schema/default.asp) в W3 School – Craig

1

Прежде всего, вам нужна схема (xsd), которая описывает образец xml. Без этой схемы вы не сможете использовать Jaxb. У вас нет схемы для показанного вами образца. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" не является схемой для вашего xml.

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

Смежные вопросы