有輕微的變化,你DTD,那麼你也許可以表達你所需要的。這個想法是將所需的內容包裝在一個新的元素中。這允許您指定contact
,它需要有一個primary
元素:
<contact>
<primary><mobile>0861029388</mobile></primary>
<base>019374627</base>
<email>[email protected]</email>
</contact>
你的DTD可能是這樣的:
<!ELEMENT contact (primary, (mobile|base|email)*)>
<!ELEMENT primary (mobile|base|email)+>
<!ELEMENT mobile (#PCDATA)>
<!ELEMENT base (#PCDATA)>
<!ELEMENT email (#PCDATA)>
或者,以減少冗餘和提高可維護性:
<!ENTITY % contact_field "mobile|base|email" >
<!ELEMENT contact (primary, (%contact_field;)*)>
<!ELEMENT primary (%contact_field;)+>
<!ELEMENT mobile (#PCDATA)>
<!ELEMENT base (#PCDATA)>
<!ELEMENT email (#PCDATA)>