我有简单的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>
]
>
有什么问题?
答案 0 :(得分:1)
XML解析器是否执行验证取决于您如何调用它。拥有DTD并且仍然不进行验证是非常可能的(也是常见的)。您需要指出您正在使用的解析器以及如何调用它。
答案 1 :(得分:0)
如果您尝试使用DTD来限制在浏览器中查看XML文件时显示的元素,那么这不是DTD的用途,也不会起作用。 DTD用于文档的基本验证。
您可以使用XML样式表或(最好)XSLT转换XML以用于显示目的。