首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML & XSD验证失败:元素具有“type”属性和“匿名类型”子属性

XML & XSD验证失败:元素具有“type”属性和“匿名类型”子属性
EN

Stack Overflow用户
提问于 2014-01-10 11:27:01
回答 1查看 14.4K关注 0票数 13

我有一个XML文件和一个XSD文件来验证。当我验证时,它会显示以下错误。

org.xml.sax.SAXParseException: src元素3:元素'UC4‘既有'type’属性,也有‘匿名类型’子属性。元素只允许其中一个.

XML文件:

代码语言:javascript
复制
<UC4Execution>
        <Script>JOB_NAME</Script>

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

</UC4Execution>

XSD文件:

代码语言:javascript
复制
        <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>

可能会有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-10 11:33:25

问题就在于错误信息所显示的位置:

代码语言:javascript
复制
<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属性

代码语言:javascript
复制
<xs:element name="UC4" minOccurs="0">
  <xs:complexType>
    <xs:attribute name="Server" type="xs:string" use="required"/>
    <!-- ... -->

如果您希望它同时具有属性和字符串内容

代码语言:javascript
复制
<UC4 Server="UC4.com" Client="123" UserId="123" Password="*****">content</UC4>

然后需要一个带有扩展complexType (扩展xs:string )的simpleContent的嵌套xs:string

代码语言:javascript
复制
<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>
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21043148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档