问题描述
我正在使用继承来定义一个具有一些属性的基本类型questionBase和一组问题扩展类型(子类)。我开始时没有基类,并注意到几个元素和属性的重复。效果很好,但是我很难弄清楚在引入xs:complexContent和xs:Extension之前存在的“最小必须大于或等于最小”断言。
我将在尝试的地方下方显示。
我只想在子类中使用此限制,因为其他问题类型没有最小值和最大值。我得到的错误是:
错误:(78,46)s4s-elt-invalid-content.1:的内容 'rangeQuestionType'无效。元素“断言”无效, 放错位置或发生得太频繁。
Example 14-15 in this book使我认为它应该在这里工作。
我正在使用Android Studio / IntelliJ进行验证。我也用this online validation tester尝试过,但它也给了我同样的错误。我还尝试了上面引用的示例14-15,但它也不起作用-那本书不正确吗?
<xs:complexType name="questionBase">
<xs:sequence>
<xs:element name="topic" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="text" maxOccurs="1" minOccurs="1"></xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
</xs:complexType>
<!-- A range question has a min and max score,for example 1-5 or 0-100 -->
<xs:complexType name="rangeQuestionType">
<xs:complexContent>
<xs:extension base="questionBase">
<xs:sequence>
<xs:element name="note" maxOccurs="1" minOccurs="0"></xs:element>
<xs:element name="score" maxOccurs="1" minOccurs="0" type="scoreType" />
</xs:sequence>
<xs:attribute name="min" use="required">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- the only restriction is that min must be less than or equal to max -->
<xs:attribute name="max" use="required">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- placing it here gives "Element 'assert' is misplaced or occurs too often -->
<!-- ... but this is where I think it belongs ... -->
<xs:assert test="@min le @max" />
</xs:extension>
<!-- placing it here also gives "Element 'assert' is misplaced or occurs too often -->
</xs:complexContent>
<!-- placing it here also gives "Element 'assert' is misplaced or occurs too often -->
</xs:complexType>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)