错误:在XML架构集合中多次指定了元素或属性类型

错误:在XML架构集合中多次指定了元素或属性类型,xml,schema,xml-schema-collection,Xml,Schema,Xml Schema Collection,我的XML模式集合有什么问题:x,它抛出了错误 下面是一个XML示例,我为其编写了一个XML模式集合: <ReviewRules xmlns="urn:goldleaf-schema:ReviewRules" version="1.0"> <Name>Never Apply Review Rule</Name> <ReviewBasis>Never</ReviewBasis> <DefaultReviewe

我的XML模式集合有什么问题:x,它抛出了错误

下面是一个XML示例,我为其编写了一个XML模式集合:

<ReviewRules xmlns="urn:goldleaf-schema:ReviewRules" version="1.0">
    <Name>Never Apply Review Rule</Name>
    <ReviewBasis>Never</ReviewBasis>
    <DefaultReviewerComment>Review not required as per rule.</DefaultReviewerComment>
    <PayLimit AutoReject="True">20000</PayLimit>
    <UserLimit AutoReject="True">25000</UserLimit>
    <DailyTotalLimit AutoReject="True">50000</DailyTotalLimit>
    <TotalLimit AutoReject="True">75000</TotalLimit>
</ReviewRules>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns ="urn:GAPS-schema:ReviewRules" 
            xmlns:mstns ="urn:GAPS-schema:ReviewRules" 
            targetNamespace="urn:GAPS-schema:ReviewRules" 
            elementFormDefault="qualified">
  <xsd:element name="ReviewRules" type="mstns:ReviewRulesType" />
  <xsd:complexType name="ReviewRulesType">
    <xsd:sequence>
      <xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="1" />
      <xsd:element name="ReviewBasis" type="mstns:ReviewBasisType" minOccurs="1" maxOccurs="1" />
      <xsd:element name="DefaultReviewerComment" type="xsd:string" minOccurs="1" maxOccurs="1" />
      <xsd:element name="PayLimit" type="xsd:decimal" minOccurs="0" maxOccurs="1" >
        <xsd:complexType>
         <xsd:attribute name="AutoReject" type="xsd:boolean" use="required"/>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="UserLimit" type="xsd:decimal" minOccurs="0" maxOccurs="1" >
        <xsd:complexType>
         <xsd:attribute name="AutoReject" type="xsd:boolean" use="required"/>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DailyTotalLimit" type="xsd:decimal" minOccurs="0" maxOccurs="1" >
        <xsd:complexType>
         <xsd:attribute name="AutoReject" type="xsd:boolean" use="required"/>
        </xsd:complexType>
      </xsd:element>          
      <xsd:element name="TotalLimit" type="xsd:decimal" minOccurs="0" maxOccurs="1" >
        <xsd:complexType>
         <xsd:attribute name="AutoReject" type="xsd:boolean" use="required"/>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="version" type="xsd:string" fixed="1.0" use="required">
      <xsd:annotation>
        <xsd:documentation>Version attribute should be fixed and increase if there is any schema change for review rules.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:simpleType name="ReviewBasisType">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Never" />
      <xsd:enumeration value="Always" />
      <xsd:enumeration value="Limits" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>

永远不要应用复查规则
从未
根据规则,无需审查。
20000
25000
50000
75000
XML架构集合:

<ReviewRules xmlns="urn:goldleaf-schema:ReviewRules" version="1.0">
    <Name>Never Apply Review Rule</Name>
    <ReviewBasis>Never</ReviewBasis>
    <DefaultReviewerComment>Review not required as per rule.</DefaultReviewerComment>
    <PayLimit AutoReject="True">20000</PayLimit>
    <UserLimit AutoReject="True">25000</UserLimit>
    <DailyTotalLimit AutoReject="True">50000</DailyTotalLimit>
    <TotalLimit AutoReject="True">75000</TotalLimit>
</ReviewRules>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns ="urn:GAPS-schema:ReviewRules" 
            xmlns:mstns ="urn:GAPS-schema:ReviewRules" 
            targetNamespace="urn:GAPS-schema:ReviewRules" 
            elementFormDefault="qualified">
  <xsd:element name="ReviewRules" type="mstns:ReviewRulesType" />
  <xsd:complexType name="ReviewRulesType">
    <xsd:sequence>
      <xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="1" />
      <xsd:element name="ReviewBasis" type="mstns:ReviewBasisType" minOccurs="1" maxOccurs="1" />
      <xsd:element name="DefaultReviewerComment" type="xsd:string" minOccurs="1" maxOccurs="1" />
      <xsd:element name="PayLimit" type="xsd:decimal" minOccurs="0" maxOccurs="1" >
        <xsd:complexType>
         <xsd:attribute name="AutoReject" type="xsd:boolean" use="required"/>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="UserLimit" type="xsd:decimal" minOccurs="0" maxOccurs="1" >
        <xsd:complexType>
         <xsd:attribute name="AutoReject" type="xsd:boolean" use="required"/>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DailyTotalLimit" type="xsd:decimal" minOccurs="0" maxOccurs="1" >
        <xsd:complexType>
         <xsd:attribute name="AutoReject" type="xsd:boolean" use="required"/>
        </xsd:complexType>
      </xsd:element>          
      <xsd:element name="TotalLimit" type="xsd:decimal" minOccurs="0" maxOccurs="1" >
        <xsd:complexType>
         <xsd:attribute name="AutoReject" type="xsd:boolean" use="required"/>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="version" type="xsd:string" fixed="1.0" use="required">
      <xsd:annotation>
        <xsd:documentation>Version attribute should be fixed and increase if there is any schema change for review rules.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:simpleType name="ReviewBasisType">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Never" />
      <xsd:enumeration value="Always" />
      <xsd:enumeration value="Limits" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>

如果对审阅规则有任何架构更改,则版本属性应该是固定的并增加。
此XSD无法验证XML,并给出错误:

多次指定的元素或属性类型。位置:'/:schema[1]/:complexType[1]/:sequence[1]/:element[4]/*:complexType[1]'。
Msg 6314,16级,状态1,第3行

您可能会发现Saxon的错误消息更有用:

Error at xsd:element on line 11 column 84 of test.xsd:
  A <complexType> element must not appear as a child of an <xsd:element> with a @type attribute
Error at xsd:element on line 16 column 85 of test.xsd:
  A <complexType> element must not appear as a child of an <xsd:element> with a @type attribute
Error at xsd:element on line 21 column 91 of test.xsd:
  A <complexType> element must not appear as a child of an <xsd:element> with a @type attribute
Error at xsd:element on line 26 column 86 of test.xsd:
  A <complexType> element must not appear as a child of an <xsd:element> with a @type attribute
Schema processing failed: 4 errors were found while processing the schema
test.xsd第11行第84列xsd:element处的
错误:
元素不能显示为具有@type属性的子元素
test.xsd第85列第16行xsd:element处出错:
元素不得显示为具有@type属性的元素的子元素
test.xsd第21行第91列xsd:element处出错:
元素不得显示为具有@type属性的元素的子元素
test.xsd第86列第26行xsd:element处出错:
元素不得显示为具有@type属性的元素的子元素
架构处理失败:处理架构时发现4个错误

基本上,您可以使用type属性或complexType子元素指定元素的类型,但不能同时使用这两个元素-这没有意义。

好的,我同意,但元素的类型as属性会给出相同的错误。也尝试过这个
那是另一个错误。不能将xs:attribute作为xs:element的子级。不要试着猜测XSD语法——猜测永远不会正确。