zoukankan      html  css  js  c++  java
  • 2018.5.14 XML文档类型定义----DTD

    1.DTD概述

    一个完全意义上的XML文件不仅仅是Well-fromed(格式良好的),而且还应该是使用了一些自定义的标记ValidatingXMl(有效的)文档也就是说他必须遵守文档类型的定义中已声明的中中规定。
    
    文档类型定义,DTD用例描述XML文档结构。dtd定义了XML文档中可用的合法元素,可以使用DTD制定可以在文档中存在的元素.
    
    

    2.为什么要使用DTD文件呢?

    因为它满足了网络共享和数据交互。数据存储方便。比如两个相同行业不同地区的人使用同一个DTD文件作为文档的创建规范,那么他们就很容易实现数据共享。网上有人想补充数据根据公用的DTD规范来建立就能立刻加入。
    
    

    3.DTD声明

    
    DOCTYPE声明有以下部分组成:关键字、文档的根元素名称、可选的外部标识符以及可选的标记声明块,外部标识符用与外部DTD的明明和定位,标记声明快构成的。
    
    
    XML声明可以有standalone属性,该属性可以有以下两个值yes或no如果是yes说明文档实例没有会影响到传递给应用程序的文档信息的外部声明。
    
    

    4.DTD声明的位置--------内部DTD

    
    定义的语法‘’
    
    <!DOCTYPE element-name(根元素名)  [
    元素描述
    .......
    ]>
    
    XML文档中的数据区的内容
    
    
    <!DOCTYPE :  表示开始设定DTD,注意DOCTYPE是大写  
    element-name:指定此DTD的根元素的名称,一个XML文件只能由一个根元素。
    [.........]: 在括号内标记定义XML文件使用的元素,然后使用>结束DTD定义,因此内部含有的定义>
    
    

    例子

    <?xml version="1.0" encoding="GB2312"?>
    <!DOCTYPE myfile [
    <!ELEMENT myfile (title,author)>  <!--如果没有这句话就会报错character is grammatically unexpected-->
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT author (#PCDATA)>	
    ]>
    <myfile>
    	<title>XML基础教程</title>
    	<author>张三</author>
    </myfile>
    
    

    5.DTD声明位置----外部DTD

    外部DTD是一个独立于XML文件的文件,实际上也是一个文本文件,只是使用.dtd为为文件的扩展名。由于外部DTD独立于XMl文件,因此他可以提供多个XMl文件使用,就像用同一个模板可以写出多个不同内容的文件一样,这多个XML文件因为是引用同一个外部DTD,所以他们的额大致结构相同。
    
    外部DTD的好处就是:他可以方便高校的被多个XML文档共享。
    
    
    

    声明的格式:

    说明:
            !DOCTYPE   指要定义一个DOCTYPE
    
            type-of-doc   是文档类型的名称,有用户自己定义,通常   与使用这个DTD文件的XML文档的根元素名称一致。
            SYSTEM/PUBLIC  这两个参数只用其一,SYSTEM是指文档使用的是私有的外部DTD文件,这个关键字主要引用于通用的DTD
            dtd-name     就是存放dtd文件的地址和名称
    

    DTD文件

    <!ELEMENT myfile (title, author)>
    <!ELEMENT title  (#PCDATA)>
    <!ELEMENT author (#PCDATA)>
    
    
    引用dtd文件
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE myfile SYSTEM "D:XMLDTD1.dtd">
    <myfile>
    	<title>xml文档教程</title> 
    	<author>张三</author>
    </myfile>
    
    
    

    6.DTD语法

    元素是XML的核心与灵魂,在DTD中,元素类型是通过ELEMENT标记声明的。除了关键字,标记还提供了所声明类型的名称额内容规范。元素类型名要遵守XML对名称的限制。名乘客也是字母数字下划线组成,但是不能以数字开头;
    
    
    

    元素类型声明 ETD (Element Type Declaration) 来声明所有有效的文档元素

    说明:
            !ELEMENT  表示开始元素设置,注意此处ELEMENT关键字必须是大写
            element-name   表示要设置的名称的元素的名称
            element-defination  指名要对此元素进行怎样的定义,就是说   <元素 >  </元素>  之间能够包含内容,是其他元素还是一般性的文字
    
    

    7.XML中按元素的内容可以将元素划分为5类,不同类型的元素使用DTD进行定义时的语法有所不同

    (1)ANY元素类型
    <!ELEMENT 元素名 ANY>
    
    XML文档里该元素中可以包含任何在DTD中定义的元素内容。建议一般只把文档的根元素规定为ANY类型。将根元素设为ANY类型后,元素出现的次数和顺序将不受限制。
    
    
    (2)EMPTY元素类型
    <!ELEMENT  人 EMPTY>
    
    以下的元素是合法的:
    <人  名字=“Legen” 性别=“男”  年龄=“23”/>  
    
    
    下面这个是错的   名为“人”的元素就是非法的,因为此元素因该为空元素,既不能有内容也不能有子元素
    
    <人 >匹诺曹</人>
    <人><大人>匹诺曹爸爸 </大人>  </人>
    
    (3)#PCDATA  类型的元素(纯文本元素或称简单元素)
    可以包含任何字符数据,但是不能包含任何子元素。PCDATA代表字符数据,为了防止与关键字混淆,在前面加个#  语法:  <!ELEMENT  元素名  (#PCDATA)>
  • 相关阅读:
    Centos7上安装docker
    docker部署mysql5.6.40
    centos7上部署spring boot并保存日志
    [转载]Ocelot简易教程(一)Ocelot是什么
    浅谈Surging服务引擎中的RabbitMQ组件和容器化部署
    [转载]Surging教学视频资源汇总
    [转载]netcore 使用surging框架发布到docker
    [转载]Surging 分布式微服务框架使用入门
    [转载]Surging Demo 项目之一
    [转载]剥析surging的架构思想
  • 原文地址:https://www.cnblogs.com/qichunlin/p/9038633.html
Copyright © 2011-2022 走看看