2014-01-10 72 views
9

我有一個XML文件和一個XSD文件進行驗證。當我驗證時,它顯示以下錯誤。XML和XSD驗證失敗:元素同時具有'type'屬性和'anonymous type'子元素

org.xml.sax.SAXParseException:SRC-element.3:元素 'UC4' 既有 '類型' 屬性和 '匿名類型' 的孩子。其中只有一個是允許元素的 。

XML文件:

<UC4Execution> 
     <Script>JOB_NAME</Script> 

     <UC4 Server="UC4.com" Client="123" UserId="123" Password="*****" > 
     </UC4 > 

</UC4Execution> 

XSD文件:

 <xs:element name="UC4Execution"> 
       <xs:complexType> 
       <xs:sequence> 

        <xs:element name="Script" type="xs:string"/> 
        <xs:element name="UC4" type="xs:string" minOccurs="0"> 
        <xs:complexType> 
         <xs:attribute name="Server" type="xs:string" use="required"/> 
         <xs:attribute name="Client" type="xs:string" use="required"/> 
         <xs:attribute name="UserId" type="xs:string" use="required"/> 
         <xs:attribute name="Password" type="xs:string" use="required"/> 
        </xs:complexType> 
        </xs:element> 

       </xs:sequence> 
       </xs:complexType> 
      </xs:element> 

可能是什麼問題?

回答

20

的問題是究竟在何處的錯誤消息說,它是:

<xs:element name="UC4" type="xs:string" minOccurs="0"> 
    <xs:complexType> 
    <xs:attribute name="Server" type="xs:string" use="required"/> 
    <xs:attribute name="Client" type="xs:string" use="required"/> 
    <xs:attribute name="UserId" type="xs:string" use="required"/> 
    <xs:attribute name="Password" type="xs:string" use="required"/> 
    </xs:complexType> 
</xs:element> 

不能兼得type="xs:string"和嵌套complexType爲同一element

如果你想UC4元素剛纔屬性,如果你希望它有屬性字符串內容沒有嵌套的文本內容然後取出type屬性

<xs:element name="UC4" minOccurs="0"> 
    <xs:complexType> 
    <xs:attribute name="Server" type="xs:string" use="required"/> 
    <!-- ... --> 

<UC4 Server="UC4.com" Client="123" UserId="123" Password="*****">content</UC4> 

那麼你需要一個嵌套complexTypesimpleContent延伸xs:string

<xs:element name="UC4" minOccurs="0"> 
    <xs:complexType> 
    <xs:simpleContent> 
     <xs:extension base="xs:string"> 
     <xs:attribute name="Server" type="xs:string" use="required"/> 
     <xs:attribute name="Client" type="xs:string" use="required"/> 
     <xs:attribute name="UserId" type="xs:string" use="required"/> 
     <xs:attribute name="Password" type="xs:string" use="required"/> 
     </xs:extension> 
    </xs:simpleContent> 
    </xs:complexType> 
</xs:element> 
相關問題