限于水平,可能和楼主的要求有些差距
<!--
文档的根元素为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>

解决方案 »

  1.   

    我在XML SPY上面运行不过去呢? ^_^
      

  2.   

    哦?
    那可能是关于属性的写错了
    再试试这个
    <!--
    文档的根元素为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>