dtd文件不影响xml文件

时间:2013-02-26 20:54:32

标签: xml dtd

我有简单的xml文档。但我也需要使用DTD文件。 但是当我添加它或不添加时 - 它什么都没改变。文件不会影响我的xml页面。

<?xml version="1.0"?>
<?xml-stylesheet  type="text/css" href="stylesheet.css"?>
<!DOCTYPE software SYSTEM "software.dtd">
<software>
<application>
    <suite>
        <office>
            <app>
                <title>Microsoft Office</title>
                <developer>Microsoft</developer>
                <os>Microsoft Windows</os>
                <license>Trialware</license>
            </app>
            <app>
                <title>iWork</title>
                <developer>Apple</developer>
                <os>Mac OS</os>
                <license>Proprietary</license>
            </app>
            <app>
                <title>Open Office</title>
                <developer>StarOffice,OpenOffice.org,Apache OpenOffice</developer>
                <os>Linux, Mac OS, Microsoft Windows</os>
                <license>LGPL,Apache License</license>
            </app>
        </office>
    </suite>
</application>  

这是我的.dtd文件

<!DOCTYPE software
[
<!ELEMENT software(application)>
<!ELEMENT application(suite)>
<!ELEMENT suite(office)>
<!ELEMENT office(app)>
<!ELEMENT app(title,developer,os,license)>
<!ELEMENT title(#PCDATA)>
<!ELEMENT developer(#PCDATA)>
<!ELEMENT os(#PCDATA)>
<!ELEMENT license(#PCDATA)>
] 
>

当我将其更改为这样时 - xml页面仍显示一切正常。

<!DOCTYPE software
[
<!ELEMENT look ANY>
] 
>

有什么问题?

2 个答案:

答案 0 :(得分:1)

XML解析器是否执行验证取决于您如何调用它。拥有DTD并且仍然不进行验证是非常可能的(也是常见的)。您需要指出您正在使用的解析器以及如何调用它。

答案 1 :(得分:0)

如果您尝试使用DTD来限制在浏览器中查看XML文件时显示的元素,那么这不是DTD的用途,也不会起作用。 DTD用于文档的基本验证。

您可以使用XML样式表或(最好)XSLT转换XML以用于显示目的。