<GREETING>

various random text but no markup

</GREETING>

   一个合法的文档不能是这样的:

<GREETING>

<sometag>various random text</sometag>

<someEmptyTag/>

</GREETING>

    也不能是这样的:

<GREETING>

<GREETING>various random text</GREETING>

</GREETING>

    这个文档必须由放在<GREETING>开始标记和<1GREETING>结束标记之间的可析的字符所组成。与只是结构完整的文档不同,合法文档不允许使用任意的标记。使用的任何标记都要在DTD内声明。而且,必须以DTD 允许的方式使用。在清单8-1中,<GREETING>标记只能用作基本元素的开始,且不能嵌套使用。

    假设我们对清单8-2做一点变动,以<foo></foo>替换<GREETING></GREETING>标记,如清单8-3所示。清单8-3是合法的。它是一个结构完整的XML文档,但它不符合文档类型声明和DTD中的约束条件。

不符合DTD规则的不合法的Hello XML

<?xml version="1.0" standalone="yes"?>

<?xml-stylesheet type="text/css" href="greeting.css"?>

<!DOCTYPE GREETING [

<!ELEMENT GREETING (#PCDATA)>

]>

<foo>

Hello XML!

</foo>

    不是所有的文档都必须合法,也不是所有的语法分析程序都检查文档的合法性。事实上,多数Web浏览器包括IE5和Mozilla都不检查文档的合法性。

    进行合法性检查的语法分析程序读取DTD并检查文档是否合乎DTD指定的规则。如果是,则分析程序将数据传送到XML应用程序(如Web浏览器和数据库)。如果分析程序发现错误,它将报告出错。如果手工编写XML,应在张贴前检查文档的合法性以确保读者不会遇到错误。

    在Web上可找到几十种不同的进行合法性检查的语法分析程序。其中多数是免费的。大多数是以库文件的形式存在的接近完成的产品,以便程序员可将其结合到自己的程序中。这些产品用户界面(如果有的话)较差。这类分析程序包括IBMalphaWorks’XML for JavaMicrosoftDataChannelXJParserSilfideSXP

XML for Javahttp://www.alphaworks.ibm.com/ tech/xml

XJParserhttp://www.datachannel.com/xml_resources/

SXPhttp://www.loria.fr/projets/XSilfide/EN/sxp/

  

相关文章:

  • 2022-02-14
  • 2022-02-18
  • 2022-12-23
  • 2022-12-23
  • 2021-12-29
  • 2021-12-09
  • 2021-12-26
猜你喜欢
  • 2022-12-23
  • 2021-09-10
  • 2021-11-17
  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案