2011-06-08 15 views
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?

回答

2

由於您已創建XMLBEANS-457已發表評論,因此您已創建revision 1102771修復了此問題。

+0

謝謝你,我試着修訂1102771,它的工作。 – rosinc 2011-06-10 22:56:09

相關問題