1
驗證,我注意到當一個元素被定義爲來自混合類型的限制時,如果此元素中有一些文本,Xmlbeans驗證失敗。但是,相同的xml如果我在XmlSpy中針對模式驗證運行它,文件是有效的。這裏是例子(我試圖使它儘可能簡單):混合和受限制的元素在使用Xmlbeans時無法通過Xmlbeans
XML模式:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="RootElement">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Child"/>
<xs:element ref="ChildExtended"/>
<xs:element ref="ChildRestricted"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Child" type="MixedType"/>
<xs:element name="ChildRestricted" type="MixedTypeRestricted"/>
<xs:element name="ChildExtended" type="MixedTypeExtended"/>
<xs:complexType name="MixedType" mixed="true"/>
<xs:complexType name="MixedTypeExtended" mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="MixedType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MixedTypeRestricted" mixed="true">
<xs:complexContent mixed="true">
<xs:restriction base="MixedType"/>
</xs:complexContent>
</xs:complexType>
</xs:schema>
XML文件:
<RootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Child>text</Child>
<ChildExtended>text1</ChildExtended>
<ChildRestricted>text2</ChildRestricted>
</RootElement>
對於XMLSPY,這是有效的。這就是我得到使用XMLBeans驗證時:
Message: Element 'ChildRestricted' with empty content type cannot have text or element content.
Location of invalid XML: <xml-fragment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
正如你所看到的,它只是定義爲引起該問題的限制型的孩子。我的問題是:誰是對的? XmlSpy(沒有錯誤)或Xmlbeans?
謝謝你,我試着修訂1102771,它的工作。 – rosinc 2011-06-10 22:56:09