0

こんにちは、qti xmlドキュメントを検証しようとしている間、このエラーが発生し続けます。xmlドキュメントは次のとおりです。

     <respcondition title="Correct" >
      <conditionvar>
       <not>
         <varequal respident="1">A</varequal>
       </not>
       <varequal respident="1">B</varequal>
       <not>
            <varequal respident="1">C</varequal>
       </not>
      <varequal respident="1">D</varequal>
      </conditionvar>
        <setvar action="Set">1</setvar>
       <displayfeedback linkrefid="Correct"/>
     </respcondition>

これがxmlを有効にするxsdのフラグメントです

       <!-- ******************* -->
            <!-- ** respcondition ** -->
             <!-- ******************* -->
               <xs:complexType name="respconditionThirdPartyType">
               <xs:sequence>
                 <xs:element name="conditionvar" type="conditionvarThirdPartyType"   maxOccurs="1"/>
                 <xs:element name="setvar" type="setvarThirdPartyType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="displayfeedback" type="displayfeedbackThirdPartyType" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
            <xs:attribute name="title" type="xs:string"/>
      </xs:complexType>


     <!-- ****************** -->
      <!-- ** conditionvar ** -->
       <!-- ****************** -->
       <xs:complexType name="conditionvarThirdPartyType">
          <xs:sequence>
           <xs:choice>
              <xs:element name="not" type="notThirdPartyType" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element name="or" type="orThirdPartyType" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element name="other" type="otherThirdPartyType" minOccurs="0" maxOccurs="unbounded"/>
           </xs:choice>
        <xs:element name="varequal" type="varequalThirdPartyType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
       </xs:complexType>

      <!-- ********* -->
        <!-- ** not ** -->
       <!-- ********* -->
      <xs:complexType name="notThirdPartyType">
          <xs:sequence>
             <xs:element name="varequal" type="varequalThirdPartyType"  minOccurs="0" maxOccurs="unbounded" />
         </xs:sequence>
       </xs:complexType>



      <!-- ************** -->
      <!-- ** varequal ** -->
      <!-- ************** -->
      <xs:complexType name="varequalThirdPartyType">
         <xs:simpleContent>
            <xs:extension base="xs:string">
               <xs:attribute name="respident" type="xs:string" use="optional"/>
               <xs:attribute name="case" default="No">
               <xs:simpleType>
           <xs:restriction base="xs:NMTOKEN">
               <xs:enumeration value="Yes"/>
              <xs:enumeration value="No"/>
          </xs:restriction>
         </xs:simpleType>
       </xs:attribute>
      </xs:extension>
     </xs:simpleContent>
     </xs:complexType>

名前空間'test.xsd'の要素'conditionvar'には、名前空間'test.xsd'の無効な子要素'varequal'があります。予想される可能な要素のリスト:'not'。要素に空白を含めることはできません。コンテンツモデルは空です。要素に空白を含めることはできません。コンテンツモデルは空です。名前空間'test.xsd'の要素'conditionvar'には、名前空間'test.xsd'の'ではなく無効な子要素'があります。予想される可能な要素のリスト:'varequal'。

誰か助けてもらえますか?私はこれを数日間修正しようとしています。ありがとうCheers

答えが見つかりました:

わかりました。答えを見つけました。conditionvarの定義を変更しました。今それは働いています。助けてくれてありがとう

 <!-- ****************** -->
 <!-- ** conditionvar ** -->
  <!-- ****************** -->
 <xs:complexType name="conditionvarThirdPartyType">
 <xs:sequence minOccurs="0" maxOccurs="unbounded">
  <xs:choice  minOccurs="0" maxOccurs="unbounded">
    <xs:element name="not" type="notThirdPartyType" />
    <xs:element name="or" type="orThirdPartyType" />
    <xs:element name="other" type="otherThirdPartyType" />
  </xs:choice>
  <xs:element name="varequal" type="varequalThirdPartyType"   minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>

ご協力いただきありがとうございます。

4

1 に答える 1

0

スキーマに応じて、<conditionvar>要素内で、または<not>が期待されます。どちらの場合でも、0回以上発生する可能性があります()。ただし、要素は設定されていないため、要素は1回だけ存在する必要があります(デフォルト値はそれぞれに設定されています)。この後に0個以上の要素が続きます。<or><other>minOccurs="0" maxOccurs="unbounded"<choice>minOccursmaxOccurs1<varequal>

何を有効と見なすのかわからないため、修正された明確なスキーマフラグメントを提供することはできませんが、実際には、のように要素を設定minOccurs="0" maxOccurs="unbounded"する必要があると思います。<sequence>conditionvarThirdPartyType

<xs:complexType name="conditionvarThirdPartyType">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:choice>
            <xs:element name="not" type="notThirdPartyType"/>
            <xs:element name="or" type="orThirdPartyType"/>
            <xs:element name="other" type="otherThirdPartyType"/>
        </xs:choice>
        <xs:element name="varequal" type="varequalThirdPartyType"/>
    </xs:sequence>
</xs:complexType>
于 2012-06-06T13:42:24.067 に答える