我是xml/xsd方面的新手,希望能就验证元素值的问题提供一些建议。
我正在开发一个系统,以配合课程内的课程。课程将由一组课程组成,每门课程都有一些特点,包括一个id。
课程的先决条件是id,它对应于xml中指定的其他课程。
是否有一种方法来验证先决条件元素中的id数作为另一个元素的课程id存在?
下面是我从模式开始的步骤。
谢谢你能给我的任何建议。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="some relevant uri"
xmlns:ap="some relevant uri">
<xs:element name="course">
<xs:complexType>
<xs:sequence>
<xs:element ref="ap:id"/>
<xs:element ref="ap:prerequisite" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="id" type=?????>
</xs:element>
<xs:element name="prerequisite" type=?????>
</xs:element>
</xs:schema>发布于 2017-12-14 18:31:49
您可以使用xs:key和xs:keyref来实现这一点。希望知道关键字将使您能够找到您最喜欢的XML教科书中的相关章节.
主要要记住的是,这些声明必须作为约束适用的元素的元素声明的一部分出现:如果规则是“在X中,则每个Y必须对Z有一个不同的值,而每个V必须有一个与某些Y的Z值匹配的值(在同一个X中)”。
在你的例子中,Y是过程,Z是id,V是先决条件,W是id。我不知道X是什么,但它可能是你的课程元素的父母。
https://stackoverflow.com/questions/47816963
复制相似问题