我有一个XML文件和一个XSD文件来验证。当我验证时,它会显示以下错误。
org.xml.sax.SAXParseException: src元素3:元素'UC4‘既有'type’属性,也有‘匿名类型’子属性。元素只允许其中一个.。
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>可能会有什么问题?
发布于 2014-01-10 11:33:25
问题就在于错误信息所显示的位置:
<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>然后需要一个带有扩展complexType (扩展xs:string )的simpleContent的嵌套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>https://stackoverflow.com/questions/21043148
复制相似问题