鑑於以下兩個模式假唯一粒子屬性(UPA)
(根)
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:someNs="first"
xmlns:someOtherNs="second"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified"
attributeFormDefault="unqualified"
version="1.0"
targetNamespace="first">
<xsd:import namespace="second" schemaLocation="./child.xsd" />
<xsd:element name="employee" type="someNs:fullpersoninfo" />
<xsd:complexType name="personinfo">
<xsd:sequence>
<xsd:element name="firstname" type="xsd:string" />
<xsd:element name="lastname" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="fullpersoninfo">
<xsd:complexContent>
<xsd:extension base="someNs:personinfo">
<xsd:sequence>
<xsd:element name="address" type="xsd:string" />
<xsd:element name="city" type="xsd:string" />
<xsd:element name="country" type="xsd:string" />
<xsd:group ref="someOtherNs:Child" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
和(子)
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="someId-1"
targetNamespace="second"
elementFormDefault="qualified"
xmlns:someOtherNs="second"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="second">
<xs:element name="ChildElement" type="ChildElement"
nillable="false" />
<xs:complexType name="ChildElement">
<xs:sequence>
<xs:element name="firstname" type="xs:string" />
<xs:element name="lastname" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:group name="Child">
<xs:sequence>
<xs:element ref="ChildElement" minOccurs="0" maxOccurs="1" />
<xs:any processContents="lax" minOccurs="0"
maxOccurs="unbounded"
namespace="##other" />
</xs:sequence>
</xs:group>
</xs:schema>
一個唯一粒子屬性不應該是存在的孩子使用elementFormDefault="qualified"
,根用戶使用elementFormDefault="unqualified"
。但是,當通過Java的xjc運行時,不可能使用生成的類,因爲類上的註釋似乎不夠充分 - 至少看起來似乎。 UPA如何避免?
在考慮中的誤差如下:
org.xml.sax.SAXParseException; lineNumber:8; columnNumber:41; cos-nonambig:「second」:ChildElement和WC [## other:「first」](或其替代組中的元素)違反了「唯一粒子歸因」。在對這個模式進行驗證期間,將爲這兩個粒子創建模糊性。
對於哪個聲明是否收到UPA錯誤?請將確切的錯誤消息粘貼到您的問題中。謝謝。 – kjhughes 2014-08-29 12:55:34