我使用maven-jaxb2-plugin從xsd生成jaxb註釋類。我有很多XSD文件像:從具有類似屬性名稱的XSD生成JAXB類
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A3">
<xs:complexType>
<xs:sequence>
<xs:element name="loginPartner">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="login"/>
<xs:element type="xs:string" name="password"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A3">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="errorCode"/>
<xs:element type="xs:string" name="errorDescription"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
當我運行Maven插件它給了我一個錯誤:
[ERROR] Error while parsing schema(s).Location [ file:schema1.xsd{10,16}]. org.xml.sax.SAXParseException: 'A3' is already defined
有什麼辦法解決這一問題? 其實我有很多XSD表示向/從服務器發送請求/響應消息。我想簡化創建,驗證,解析消息。也許有另一種解決方案嗎?
你能從你的'pom.xml'發表您的插件配置?我現在無法找到(達到)'maven-jaxb2-plugin'的文檔,並且我不明白所有選項。如果可行,可以嘗試爲模式添加一個'targetNamespace =「http://任何」'「屬性來區分具有相同名稱的類型。可以將每個模式文件編譯到不同的Java包中。這也可以。爲此,您可能必須爲該插件指定multipe [executions](http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_executions_Tag)。 – 2011-12-29 08:29:14