【问题标题】:XML DTD validation: character not allowed in declaration subsetXML DTD 验证:声明子集中不允许的字符
【发布时间】:2016-10-31 15:44:24
【问题描述】:

尽管存在根元素并在 DTD 的 ATTLIST 中插入了所有属性,但我在 w3 验证器上遇到了几个错误:

错误第 17 行,第 9 列:声明中不允许使用字符“g” 子集gender CDATA #REQUIRED>

错误第 21 行,第 45 列:没有属性“性别” …<person user="WhozYourDaddy" gender="male" email="whozyourdaddy@gmail.com">

错误第 21 行,第 58 列:没有属性“电子邮件”...<person user="WhozYourDaddy" gender="male" email="whozyourdaddy@gmail.com">

错误第 29 行,第 22 列:文档类型不允许元素 “最后下载”在这里 &lt;lastdownload&gt; PokemonGo &lt;/lastdownload&gt;

错误第 30 行,第 19 列:文档类型不允许元素 “最后登录”在这里 &lt;lastlogin&gt; 12.03.2016 &lt;/lastlogin&gt;

这是我的 XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catalog [
<!ELEMENT catalog (person+)>
<!ELEMENT person (firstname,lastname,telephone,city,address, preferences, newsletter, downloads)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT telephone (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT preferences (#PCDATA)>
<!ELEMENT newsletter (#PCDATA)>
<!ELEMENT lastdownload (#PCDATA)>
<!ELEMENT lastlogin (#PCDATA)>
<!ELEMENT downloads (#PCDATA)>
<!ATTLIST person 
        user CDATA #REQUIRED>
        gender CDATA #REQUIRED>
        email CDATA #REQUIRED>
]>
<catalog>
        <person user="WhozYourDaddy" gender="male" email="whozyourdaddy@gmail.com">
        <firstname> X </firstname>
        <lastname> XXXX </lastname>
        <telephone> 06666666 </telephone>
        <city> ZZZZZ </city>
        <address> Azxxxxxh xxx </address>
        <preferences> Educational </preferences>
        <newsletter> Yes </newsletter>
        <lastdownload> PokemonGo </lastdownload>
        <lastlogin> 12.03.2016 </lastlogin>
        <downloads> 5 </downloads>
    </person>
</catalog>

【问题讨论】:

    标签: xml dtd xml-validation


    【解决方案1】:

    有几个错误需要修复:

    1. 删除ATTLIST 中多余的&gt; 字符。
    2. 将lastdownload和lastlogin添加到catalog的内容模型中。

    这是您应用了所有修复的 XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE catalog [
    <!ELEMENT catalog (person+)>
    <!ELEMENT person (firstname,lastname,telephone,city,address, preferences, 
                      newsletter, lastdownload, lastlogin, downloads)>
    <!ELEMENT firstname (#PCDATA)>
    <!ELEMENT lastname (#PCDATA)>
    <!ELEMENT telephone (#PCDATA)>
    <!ELEMENT city (#PCDATA)>
    <!ELEMENT address (#PCDATA)>
    <!ELEMENT preferences (#PCDATA)>
    <!ELEMENT newsletter (#PCDATA)>
    <!ELEMENT lastdownload (#PCDATA)>
    <!ELEMENT lastlogin (#PCDATA)>
    <!ELEMENT downloads (#PCDATA)>
    <!ATTLIST person 
            user CDATA #REQUIRED
            gender CDATA #REQUIRED
            email CDATA #REQUIRED>
    ]>
    <catalog>
      <person user="WhozYourDaddy" gender="male" email="whozyourdaddy@gmail.com">
        <firstname> X </firstname>
        <lastname> XXXX </lastname>
        <telephone> 06666666 </telephone>
        <city> ZZZZZ </city>
        <address> Azxxxxxh xxx </address>
        <preferences> Educational </preferences>
        <newsletter> Yes </newsletter>
        <lastdownload> PokemonGo </lastdownload>
        <lastlogin> 12.03.2016 </lastlogin>
        <downloads> 5 </downloads>
      </person>
    </catalog>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-19
      • 2011-06-12
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 2015-01-29
      相关资源
      最近更新 更多