1
我需要一個示例XSD來支持新元素中的多個電子郵件收件人。我需要每個收件人的電子郵件地址在不同的元素。任何人都可以幫我解釋一下嗎?多個電子郵件收件人的XML模式
例:
<EmailReceipts>
<address1></address1>
<address2></address2>
</EmailReceipts>
我需要一個示例XSD來支持新元素中的多個電子郵件收件人。我需要每個收件人的電子郵件地址在不同的元素。任何人都可以幫我解釋一下嗎?多個電子郵件收件人的XML模式
例:
<EmailReceipts>
<address1></address1>
<address2></address2>
</EmailReceipts>
首先,我建議不嵌入在address
元素的索引號:
<EmailReceipts>
<address>[email protected]</address>
<address>[email protected]</address>
</EmailReceipts>
然後這個XSD將驗證上述XML(以及作爲具有附加address
元素的其他XML文檔):
<?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>
注意,上述正則表達式是onemany的可能,每個都具有不同程度的普遍性和特殊性通過syntax that is more involved than you might imagine。