从XML生成源文件

时间:2015-09-08 11:21:16

标签: java xml maven schema

我有这样的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>

如何使用maven从中生成Java代码?我尝试使用&#34; maven-jaxb2-plugin&#34;,但它无法解析这个结构。

请注意

  1. 这是一个XML文件,不是xsd
  2. 我正在使用Netbeans

2 个答案:

答案 0 :(得分:1)

要使用XJC从模式文件生成Java代码,请参阅here。打开命令提示符到您放置xsd文件的文件夹,然后生成您只需输入的java代码:

$ xjc nameOfSchemaFile.xsd

xjc包含在Java SDK中。

答案 1 :(得分:1)

首先,您需要描述xml示例的架构(xsd)。如果没有该架构,则无法使用Jaxb。您没有显示示例的示例xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"不是xml的架构。

您可以使用免费的在线工具从xml生成架构,但如果不审查自动架构,则无法依赖此工具。