zoukankan      html  css  js  c++  java
  • XML学习笔记(二)-- DTD格式规范

    标签(空格分隔): 学习笔记


    XML的一个主要目的是允许应用程序之间自由交换结构化的数据,因此要求XML文档具有一致的结构、业务逻辑和规则。可以定义一种模式来定义XML文档的结构,并借此验证XML文档的有效性。 定义XML文档结构有两种解决方案:一种是采用文档类型定义DTD;另一种是采用XML Schema

    DTD的基本结构

    DTD是用来规范XML文件的格式,必须出现在头文件中,一遍XML校验器在一开始便可以得到XML文件的格式定义。DTD是一套关于标记符的语法规则,它定义了可用在文档中的元素、属性和实体,以及这些内容之间的关系。

    DTD的基本结构

    DTD语法格式如下:

    <!DOCTYPE 根元素名称[
    <!ELEMENT 子元素名称(#PCDATA)>
    ]>
    

    参数说明:

    • <!DOCTYPE:文档类型声明的起始定界符;
    • 根元素名称[:一个XML文档只有一个根元素,如果XML文档使用DTD,那么根元素的名称就在这里指定;
    • <!ELEMENT子元素名称(#PCDATA)>:用来定义出现在文档中的元素;
    • ]>:文档类型声明的结束界定符。

    DTD中的定义元素

    包括元素名称、构成元素基本类型和元素内容类型。

    声明元素类型

    语法如下:

    <!ELEMENT 元素名 元素内容>
    
    • ELEMENT:是关键字,表示对元素类型进行声明;
    • 元素名:为当前元素指定元素名称;
    • 元素内容:元素后面的内容用来指定元素的内容类型,分为 EMPTY, 子元素类型, 混合型, ANY, PCDATA5中类型。

    ##DTD中的元素限定符 元素限定符用于在DTD中规定子元素出现的顺序和次数。 常用的元素限定符有:

    • () - 用来给元素分组;
    • | - 在列出的元素中选择一个;
    • + - 可出的元素至少出现1次(1或多次);
    • * - 列出的元素允许出现0次到任意多次(0或多次);
    • ? - 列出的元素出现0次或1次,;
    • , - 列出的元素必须按照指定的顺序出现。

    DTD中的定义属性

    元素属性包括属性名称、变量类型、预定义属性等。

    属性的声明

    <!ATTLIST Element_name
    Attribute_name TYPE [added_declare]
    Attribute_name TYPE [added_declare]
    ....
    >
    

    属性的类型

    在DTD中声明属性的语法格式时属性类型是属性声明中所必须的,常用的属性类型有:

    • CDATA: 字符数据;
    • ID: 该属性值在XML文档中是唯一的;
    • IDREF: 该属性值参考了XML文档中的另一个属性;
    • ENTITY: 表示该属性的设定值是一个外部实体,如一个图片文件;
    • NMTOKEN: 属性值只能由数字、字母、下划线、连字符等符号构成;
    • NOTATION: 属性值是在DTD中声明过的注解名称;
    • Enumerat: 列出能够赋予该属性的各种值的列表,只能从中选择属性值。

    在DTD中声明XML的元素必须是字符串类型时,应该使用#PCDATA(在ELEMENT标签中使用);声明属性的属性值必须是字符串时,应该使用CDATA(在ATTLIST标签中使用)。

    DTD中的试题

    XML中预定义的常规实体引用"&lt;" "&gt;" "&amp;" "&apos;" "quot;" 分别对应着 "<" ">" "&" "'" """.

    普通内部实体

    <!ELEMENT Entity_Name Entity_Value>
    

    普通外部实体

    <!ELEMENT Entity_Name SYSTEM Entity_URL>
    
  • 相关阅读:
    [django]django models最佳实战
    [vue]模拟移动端三级路由: router-link位置体现router的灵活性
    [js]顶部导航和内容区布局
    [django]django查询最佳实战
    [vue]webpack使用样式
    [vue]webpack中使用组件
    [vue]组件的导入
    [django]django权限简单实验
    [django]前后端分离之JWT用户认证
    [django]drf知识点梳理-权限
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/5877314.html
Copyright © 2011-2022 走看看