目前我正在使用XSD for XHTML处理XML模式定义。我的XHTML结构如下。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<div id="AAA">// (Required, maxnumber = 1)
<div id="BBB">// (Required, maxnumber = 1)
<div id="CCC">...</div>// (Optional)
<div id="DDD">...</div>// (Optional)
<div id="EEE">...</div>// (Required, maxnumber = 1)
<div id="FFF" class="IIII">...</div>// (Required, maxnumber = 1)
</div>
</div>
</body>
</html>
我需要为我的XHTML
检查以下条件的div标签我非常感谢你的帮助。
此致
答案 0 :(得分:1)
我想你知道3个中只有一个要求可以实现就会令人失望!我会尽力详细解释原因!
<div id="AAA"> // (Required, maxnumber = 1)
如何声明必需的元素:使用minOccurs =“1”和maxOccurs =“1”声明元素div
(即使您没有定义minOccurs和maxOccurs,显式默认值为1, 1.所以这是可选的)
<div id="CCC">...</div>// (Optional)
如何声明一个可选元素:使用minOccurs =“0”声明元素'div',使其外观为可选元素。
但是根据属性值,无法验证元素的外观!也不可能在同一个父级下具有相同的元素,并且一次可选! 例如,一个解决方法是使用minOccurs =“3”和maxOccurs =“10”
进行单一定义<xs:element minOccurs="3" maxOccurs="10" name="div" type="div"/>
这将迫使Document至少发生3次div
个元素,并限制最多10个!您可以通过设置maxOccurs="unbounded"
使其无限。这样,您可以验证是否存在最少数量的div元素!
回到你的问题:
1.检查是否所有必需的div标签都出现了?
我已经回答了。
2.检查所有div标签是否按照中定义的顺序 样品代码与否?
再次使用XSD无法实现这一点!拥有相同元素的多个定义会使其含糊不清!
3.检查class属性是否具有IIII或22222值
只有这可以实现使用枚举列表定义simpleType ..
示例:
<xs:attribute name="class" type="ClassType" use="optional" />
这应该在元素/ complexType之外:
<xs:simpleType name="ClassType">
<xs:restriction base="xs:string">
<xs:enumeration value="IIII"/>
<xs:enumeration value="2222"/>
</xs:restriction>
</xs:simpleType>