Regex 多个电子邮件收件人的XML模式
我需要一个示例XSD来支持新元素中的多个电子邮件收件人。我要求每个收件人的电子邮件地址包含不同的元素。有人能帮我解释一下吗 示例:Regex 多个电子邮件收件人的XML模式,regex,xml,xsd,email-address,Regex,Xml,Xsd,Email Address,我需要一个示例XSD来支持新元素中的多个电子邮件收件人。我要求每个收件人的电子邮件地址包含不同的元素。有人能帮我解释一下吗 示例: <EmailReceipts> <address1></address1> <address2></address2> </EmailReceipts> 首先,我建议不要在地址元素中嵌入索引号: <EmailReceipts> <address>
<EmailReceipts>
<address1></address1>
<address2></address2>
</EmailReceipts>
首先,我建议不要在
地址
元素中嵌入索引号:
<EmailReceipts>
<address>john@example.com</address>
<address>mary@example.org</address>
</EmailReceipts>
<?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将允许地址
元素的任何字符串内容。如果希望更严格,可以使用正则表达式来限制地址的值:
<?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>
注意,上述正则表达式是可能的,每个正则表达式在不同的时间段上具有不同程度的通用性和特异性