XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<employee_name>
<name>Ram</name>
<Prev_name>Kumar</Prev_name>
</employee_name>
<project ppact="BT">ODC</project>
<team size="small">CMS</team>
</root>
XSD:
<?xml version="1.0"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="request">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="Prev_name" type="xs:string" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我应该验证姓名&#39;和&#39; Prev_name&#39;在我的XML中通过XSD。我并不担心其他标签。每当我传递没有这两个标签或其中一个标签的XML时,我的XML验证就会失败。如果我的XML有这两个标签,那么只有XML验证才能通过。
答案 0 :(得分:2)
您无法真正对树的一点进行验证,您可以获得的最接近的是为employee_name提供规则。但是您需要为根元素(root)提供一组规则。
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid Studio 2018 - Developer Bundle (Educational) 16.0.0.7863 (https://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified"
version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employee_name">
<xs:complexType>
<xs:sequence>
<xs:element name="name"
type="xs:string"
minOccurs="1"
maxOccurs="1" />
<xs:element name="Prev_name"
type="xs:string"
minOccurs="1"
maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="root"
type="xs:anyType" />
</xs:schema>
当针对模式验证XML时,验证程序可能会为“未知”类型创建警告(以黄色下划线显示),但如果employee_name中缺少name或Prev_name,则会产生错误。如果要将额外元素添加到employee_name,它也会引发错误。