我正在学习xml。 我创建小的xml文件和dfd文件。 这是xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="stylesheet.css"?>
<!DOCTYPE software SYSTEM "software.dtd"
[
<!ATTLIST title ttl CDATA "no name">
<!ATTLIST license lcs CDATA #REQUIRED>
]>
<software>
<application>
<suite>
<app>
<title ttl="MOffice">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 ttl="Office">Open Office</title>
<developer>StarOffice,OpenOffice.org,Apache OpenOffice</developer>
<os>Linux, Mac OS, Microsoft Windows</os>
<license>LGPL,Apache License</license>
</app>
</suite>
</application>
</software>
这是dfd文件
<!ELEMENT software(application)>
<!ELEMENT application(suite) >
<!ELEMENT suite(app*)>
<!ELEMENT app(title,developer,os,license)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT developer(#PCDATA)>
<!ELEMENT os(#PCDATA)>
<!ELEMENT license(#PCDATA)>
<!ATTLIST os osx CDATA #REQUIRED>
它应该包含在xml文件中,因为osx
和lcs
元素中没有属性os
和license
。但Internet Explorer打开它是正常的。为什么呢?
答案 0 :(得分:1)
大多数XML解析器(包括Internet Explorer中的解析器)仅检查XML是否格式良好 - 以确保XML结构正确。
要验证DTD或XML Schema,您需要使用validating parser。
如何使用这样的解析器进行验证的确切过程取决于解析器和编程语言。