您好我在尝试使用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>
这是xsd的片段,用于保护xml
<!-- ******************* -->
<!-- ** 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'。预期可能元素列表:'不'。 元素不能包含空格。内容模型为空。 元素不能包含空格。内容模型为空。 命名空间'test.xsd'中的元素'conditionvar'在命名空间'test.xsd'中具有无效的子元素'not'。预期可能元素列表:'varequal'。
请有人帮忙吗?我一直试图解决这个问题几天了.. 谢谢 干杯
找到答案:
好的,我找到了答案。我改变了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>
感谢您的帮助。
答案 0 :(得分:0)
根据您的架构,在<conditionvar>
元素中,预计会出现<not>
或<or>
或<other>
。无论哪个,它可能出现零次或多次(minOccurs="0" maxOccurs="unbounded"
)。但是,<choice>
元素必须只有一次,因为minOccurs
和maxOccurs
没有为它设置(每个默认值为1
)。接下来是零个或多个<varequal>
元素。
由于我不确定您打算认为有效,我无法提供明确的更正架构片段,但我认为您实际上想要为{{1}中的minOccurs="0" maxOccurs="unbounded"
元素设置<sequence>
如此:
conditionvarThirdPartyType