【问题标题】:Validation error while declaring attribute type as entity in XML将属性类型声明为 XML 中的实体时出现验证错误
【发布时间】:2017-12-25 00:24:20
【问题描述】:

这是我的 DTD 文件。

?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v3.0.7 NT (http://www.xmlspy.com) by Manukyan (YSU) -->
<!ENTITY xxx "ccc">
<!ENTITY yyy "ddd">
<!ELEMENT book (author+, title, publisher)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ATTLIST title
    aaa ENTITY  #IMPLIED
>

这里是对应的DSD文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "C:\Users\PC\Desktop\XML\XMLDB\XML\BOOK.DTD">
<book>
    <author>asd</author>
    <title aaa="xxx"/>
    <publisher/>
</book>

我收到了一个验证错误。 属性“aaa”的值部分“xxx”必须是未解析实体的名称。

【问题讨论】:

标签: xml xsd dtd


【解决方案1】:

作为@Daniel Haley explains in his answer 的类似问题,如果您为ccc 添加实体声明和表示法 (NDATA) 声明,则 XML 现在有效:

<!DOCTYPE book [

<!NOTATION ccc SYSTEM "ccc">
<!ENTITY xxx SYSTEM "ccc" NDATA ccc>

<!ENTITY yyy "ddd">
<!ELEMENT book (author+, title, publisher)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ATTLIST title aaa ENTITY  #IMPLIED>
]>
<book>
    <author>asd</author>
    <title aaa="xxx"/>
    <publisher/>
</book>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多