我需要一个示例 XSD 来支持新元素中的多个电子邮件收件人。我要求每个收件人的电子邮件地址位于不同的元素中。谁能帮我解释一下吗?
Example:
<EmailReceipts>
<address1></address1>
<address2></address2>
</EmailReceipts>
首先,我建议不要在address
要素:
<EmailReceipts>
<address>[email protected]</address>
<address>[email protected]</address>
</EmailReceipts>
然后这个 XSD 将验证上述 XML(以及带有附加信息的其他 XML 文档)address
元素):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="EmailReceipts">
<xs:complexType>
<xs:sequence>
<xs:element name="address" maxOccurs="unbounded" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
上面的 XSD 将允许任何字符串内容address
元素。如果您想更严格,可以使用正则表达式来限制值address
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="EmailReceipts">
<xs:complexType>
<xs:sequence>
<xs:element name="address" maxOccurs="unbounded" type="EmailAddressType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="EmailAddressType">
<xs:restriction base="xs:string">
<xs:pattern value="([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
注意上面的正则表达式是one of many可能的,每一个都具有不同程度的通用性和特殊性语法比你想象的更复杂.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)