美文网首页
简单学会声明自定义标记(XML入门5)

简单学会声明自定义标记(XML入门5)

作者: 北荒客 | 来源:发表于2020-02-25 01:45 被阅读0次

       写XML文档,必须学会自定义标记。因为XML文档没有现成的标记给你使用,必须自己定义一套属于自己的标记。你自己定义的标记,必须声明使用方法。XML文档通过什么办法实现用户自己定义标记?使用DTD的方法,来自己定义标记。

           DTD(docment type definition)英文意思是文档类型定义。它可以是一段代码,也可以是一个文件。单独写一个DTD文档,可以大家共享这个DTD中自定义的标记;如果不喜欢共享,也可以干脆把DTD文档内容直接写入XML文档中,不再另外编写DTD文档。

       如果单独写一个DTD文档,这个文档就是XML文档的依赖文件。必须在XML文档中声明所依赖的DTD文档名字和位置。此项文章第一篇已经举例说明了。本篇主要讲DTD一些实用部分。

一.DTD文档在XML文档中如何声明

     我们举一个网上的XML文档例子进行说明。XML文件名字note.xml

      <?XML version=“1.0”encoding=“UTF-8”?>

      <!DOCTYPE  note SYSTM “note.dtd”>

      <note>

      <to>张三</to>

      <from>李四</from>

      <heading>通知</heading>

      <body>下周一开会</body>

       </note>

       这里第二句是DTD文件标记的特有格式。实用“<!>”标记,而没有使用XML文档常用的“<??>”标记,或“< />”标记。他们区别明显。

        “<!>”标记,属性值不用等号;“<??>”和“< />”标记,属性值需要使用等号。

        二.DTD文档格式举例

        我们就直接编写一个给note.xml文档做依赖文件的DTD文档。名字note.dtd

      <!DOCTYPEnote [

      <!ELEMENT note(to,from,heading,body)>

       <!ELEMENT to(#PCDATA)>

       <!ELEMENT from(#PCDATA)>

       <!ELEMENT heading(#PCDATA)>

        <!ELEMENT body(#PCDATA)>

        ]>

      这个文件非常清晰。涉及两个命令:DOCTYPE和ELEMENT还有一个数据类型PCDATA。这里我们简单说明。

        DOCTYPE:英文document type的缩写,翻译为文档类型。

         ELEMENT:英文element 翻译为元素。

          PCDATA:英文parsed character data的缩写,翻译为语法分析字符数据。

         文件第一句:“<!DOCTYPE note[     ]>”声明XML文档中根标记为 note 并且按DTD文档要求,把所有你自己定义的标记写在中括号内。开始标记为“<!DOCTYPE note [”结束标记为“]>”

         文件第二句:“<!ELEMENT note(to,from,heading,body)>”表明在note这个根标记下有四个自定义标记,分别用写在括号里,用逗号分隔。开始标记为“<!ELEMENT”。结束标记为“>”。  note为自己定义的根元素名,括号内为note根元素下的子元素序列,如:to,from,heading,body。

       文件第三句:“<!ELEMENT  to(#PCDATA)>”完全与第二句的命令名,开始标记、结束标记一样。to为定义的子元素标记,括号内#PCDATA为标记内使用的数据类型。

       文件第四句以下与第三句相同,恕不赘述。编写DTD文档有一个规矩:没有在DTD文档中声明的自定义标记都被禁止,同名的标记只能声明一次。违反这两条,为不合章法,XML文档将不能被解读。

       北荒客

       2020.2.24

相关文章

网友评论

      本文标题:简单学会声明自定义标记(XML入门5)

      本文链接:https://www.haomeiwen.com/subject/nzpoqhtx.html