XML 模式混合内容
我正在为国际象棋游戏的数据库格式编写 XML 架构。这些动作采用特定的格式,我使用正则表达式进行验证;它看起来像这样:
。
元素还可以包含
mixed="true"`,因为我需要验证移动。以下是架构文件的相关部分:
<xs:element name="move">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="moveType">
<xs:attribute ref="time"/>
<xs:attribute ref="comment"/>
</xs:extension>
</xs:simpleContent>
<xs:sequence>
<xs:element ref="variation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
moveType
是进行验证的移动的类型。
那么有人可以解释我如何:
- 进行移动正则表达式验证,
- 进行
元素,并 - 进行
time
和comment
属性。
顺便说一句,整个模式在没有该
<xs:sequence>
<xs:element ref="variation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
部分的情况下也可以很好地验证。
I am writing an XML Schema for a database format for chess games. The moves are in a specific format which I validate with a regex; it looks something like this: <move>Pe2e4</move>
. The <move&>
element can also contain a <variation>' element. The problem is, I can't simply do
mixed="true"` because I need to validate the move. Here is the relevant part of the schema file:
<xs:element name="move">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="moveType">
<xs:attribute ref="time"/>
<xs:attribute ref="comment"/>
</xs:extension>
</xs:simpleContent>
<xs:sequence>
<xs:element ref="variation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
moveType
is the type for moves that does the validation.
So can someone explain how I can:
- have my move regex validation,
- have my
<variation>
element, and - have my
time
andcomment
attributes.
BTW, the whole schema validates fine without the
<xs:sequence>
<xs:element ref="variation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
part.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 Alejandro 和 Nic Gibson 的建议下,我最终重新组织了架构。 <变体>元素现在位于之外元素。
I ended up reorganizing the schema thanks to the advice of Alejandro and Nic Gibson. The <variation> element is now outside of the <move> element.