限于水平,可能和楼主的要求有些差距
<!--
文档的根元素为address-book,根元素包含一个或多个entry元素,
每个entry元素依次包含下列子元素:
name(有且仅有一个),address(可选,可以有多个),tel(最少有一个,可以有多个),
email(可选,可以有多个),comments(可选,最多只有一个);
除email是空元素之外,entry的各个子元素的内容都是字符数据;
email有一个名为href的属性,且必须为这个属性指定一个值,
tel,address,email都有一个名为preferred的属性,
属性的值可以是false或是true ,缺省值为false。
-->
<!ELEMENT address-book (entry+)>
<!ELEMENT entry (name, address*, tel+, email*, comments?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT comments (#PCDATA)><!ATTLIST email id href #IMPLIED>
<!ATTLIST email id preferred #IMPLIED>
<!ATTLIST address id preferred #IMPLIED>
<!ATTLIST tel id preferred #IMPLIED>
<!--
文档的根元素为address-book,根元素包含一个或多个entry元素,
每个entry元素依次包含下列子元素:
name(有且仅有一个),address(可选,可以有多个),tel(最少有一个,可以有多个),
email(可选,可以有多个),comments(可选,最多只有一个);
除email是空元素之外,entry的各个子元素的内容都是字符数据;
email有一个名为href的属性,且必须为这个属性指定一个值,
tel,address,email都有一个名为preferred的属性,
属性的值可以是false或是true ,缺省值为false。
-->
<!ELEMENT address-book (entry+)>
<!ELEMENT entry (name, address*, tel+, email*, comments?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT comments (#PCDATA)><!ATTLIST email id href #IMPLIED>
<!ATTLIST email id preferred #IMPLIED>
<!ATTLIST address id preferred #IMPLIED>
<!ATTLIST tel id preferred #IMPLIED>
那可能是关于属性的写错了
再试试这个
<!--
文档的根元素为address-book,根元素包含一个或多个entry元素,
每个entry元素依次包含下列子元素:
name(有且仅有一个),address(可选,可以有多个),tel(最少有一个,可以有多个),
email(可选,可以有多个),comments(可选,最多只有一个);
除email是空元素之外,entry的各个子元素的内容都是字符数据;
email有一个名为href的属性,且必须为这个属性指定一个值,
tel,address,email都有一个名为preferred的属性,
属性的值可以是false或是true ,缺省值为false。
-->
<!ELEMENT address-book (entry+)>
<!ELEMENT entry (name, address*, tel+, email*, comments?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT comments (#PCDATA)><!ATTLIST email href ID #IMPLIED>
<!ATTLIST email preferred ID #IMPLIED>
<!ATTLIST address preferred ID #IMPLIED>
<!ATTLIST tel preferred ID #IMPLIED>