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