无法从xsd为对象列表生成类

时间:2014-01-24 15:46:44

标签: java jaxb xsd spring-ws

我正在为我的服务创建xsd文件,并希望从中生成类。但是想法突出了complexTypes并且在生成类时 - 发生[ERROR] underfined元素声明StepResponse。我查看了示例herehere,但在我看来它没有用。这是代码:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://com/tictocsoa/ws" elementFormDefault="qualified">

    <element name="StepRequest" type="GameStep"/>
    <element name="StepResponse" type="GameStep"/>
    <element name="StepsResponse" type="GameSteps"/>

    <complexType name="GameStep">
        <sequence>
            <element name="gameId" type="int"/>
            <element name="num" type="int"/>
            <element name="cell" type="int"/>
        </sequence>
    </complexType>

    <complexType name="GameSteps">
        <sequence maxOccurs="unbounded" minOccurs="0">
            <element name="steps" type="GameStep"/>
        </sequence>
    </complexType>

</schema>

为什么不能找到这种类型?我只想生成2个类:第一个用于一个对象,另一个用于List的列表(分别用于getById和getAll方法)。另一个问题 - 也许它会更好地为两者创造一个类?

P.S。用jaxb-ri-2.2.7生成

1 个答案:

答案 0 :(得分:1)

你错过了命名空间的前缀,尝试类似的东西:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://com/tictocsoa/ws" 
  elementFormDefault="qualified"
  xmlns:tts="http://com/tictocsoa/ws">

<element name="StepRequest" type="tts:GameStep"/>
<element name="StepResponse" type="tts:GameStep"/>
<element name="StepsResponse" type="tts:GameSteps"/>

<complexType name="GameStep">
    <sequence>
        <element name="gameId" type="int"/>
        <element name="num" type="int"/>
        <element name="cell" type="int"/>
    </sequence>
</complexType>

<complexType name="GameSteps">
    <sequence maxOccurs="unbounded" minOccurs="0">
        <element name="steps" type="tts:GameStep"/>
    </sequence>
</complexType>

</schema>