XML---dtd 完整详细

简介: XML---dtd 完整详细

一.XML详解

       1.1 XML是什么

         指可扩展标记语言(EXtensible Markup Language), 被设计用来数据交换存储数据。XML最常用于互联网上的数据交换,其中它被用作一种结构化的编码方式。


        1.2 为什么要学习XML(XML的作用)

  1. 数据交换:方便的实现数据交换,系统配置,内容管理,但是现在比较很少用XML来进行数据交互了,而是用JSON比较多了,因为JSON传输的体积要比XML小很多,更容易传输。
  2. 配置和设置:XML非常适合存储和管理配置和设置数据,例如应用程序的用户界面和选项
  3. 数据分析:XML语言允许处理结构化和半结构化的数据,并且可以使用XML解析器来解析XML并提取有用的信息。这在数据挖掘和大数据分析中非常有用。

二.XML的约束定义

      注意:标准的XML的格式,有且只有一个根元素(节点),并且XML区分大小写

        说到XML的约束定义就要提到DTD,所以来简单介绍一下

  2.1 dtd

      文档类型定义(Document Type Definition)是一套关于标记符的语法规则。 这个文件主要的功能是验证XML文件编写的合法性,也就是一个约束,要求你只能按DTD定义的格式写。dtd是一种XML的约束,说白了就是我定义了dtd文件,下面的xml编写必须按照我的约束条件来写。

 2.2 元素约束(定义)

       1,首先需要在XML声明加入了DTD

<!DOCTYPE root []>

       2.元素的分类

<!DOCTYPE element-name EMPTY>       空元素

<!DOCTYPE element-name (#PCDATA)>       文本元素

<!DOCTYPE element-name (e1,e2)>       混合元素

       3.元素的限制

次数:     0或1 用 ” ? “代替

               0~N:0次到无数次  用 ” * “ 代替

               1~N:至少一次 或无数次  用 ” + “ 代替

                 |    : 或

示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 元素的约束 -->
<!DOCTYPE persons [
  <!-- 根节点下有的节点 -->
  <!ELEMENT persons (person*)>
  <!-- 节点下的元素 -->
  <!ELEMENT person (name,age,contact,br?)>
  <!-- 文本元素 -->
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT age (#PCDATA)>
  <!-- 元素中可有的子元素 -->
  <!ELEMENT contact (phone|email)>
  <!-- 文本元素 -->
  <!ELEMENT phone (#PCDATA)>
  <!ELEMENT email (#PCDATA)>
  <!-- 空元素 -->
  <!ELEMENT br EMPTY>
]>
<persons>
  <person>
    <name>张小明</name>
    <age>10</age>
    <contact>
      <phone>1234567</phone>
    </contact>
    <br/>
  </person>
  <person>
    <name>张大明</name>
    <age>35</age>
    <contact>
      <email>123@qq.com</email>
    </contact>
  </person>
</persons>

2.3 属性定义

语法:<!ATTLIST  element-name att_name  type  desc>

注意:属性的约束也是需要声明的,所有也是写在  <!DOCTYPE root []> 里面

      1.属性类型 type

  1. ID
  2. (男|女)
  3. CDATA
  4. IDREF(reference)

       2.属性描述

  1. #REQUIRED  必填
  2. #IMPLIED   非必填
  3. 默认值,只有type为(男|女)类型或者单选时 desc才可以用默认值方式

示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 元素的约束 -->
<!DOCTYPE persons [
  <!-- 根节点下有的节点 -->
  <!ELEMENT persons (person*)>
  <!-- 节点下的元素 -->
  <!ELEMENT person (name,age,contact,br?)>
  <!-- 文本元素 -->
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT age (#PCDATA)>
  <!-- 元素中可有的子元素 -->
  <!ELEMENT contact (phone|email)>
  <!-- 文本元素 -->
  <!ELEMENT phone (#PCDATA)>
  <!ELEMENT email (#PCDATA)>
  <!-- 空元素 -->
  <!ELEMENT br EMPTY>
  <!-- 属性的约束 -->
  <!-- 给person设置属性 -->
  <!ATTLIST person
    pid ID #REQUIRED
    sex (男|女) "男"
    qq CDATA #IMPLIED
    parent IDREF #IMPLIED
  >
]>
<persons>
  <person pid="p1" sex="男" qq="aaa" parent="p2">
    <name>张小明</name>
    <age>10</age>
    <contact>
      <phone>1234567</phone>
    </contact>
    <br/>
  </person>
  <person pid="p2">
    <name>张大明</name>
    <age>35</age>
    <contact>
      <email>123@qq.com</email>
    </contact>
  </person>
</persons>
相关文章
|
XML 存储 数据可视化
XML DTD原理及使用
是一种可扩展的标记语言,用于存储和交换数据,它被设计成具有简单、易于理解的格式,并能够方便地在不同的系统和应用程序之间共享数据。XML的语法规则类似于HTML,但XML的目的不仅仅是用于显示数据,更是用于描述数据的结构和关系。与HTML相比,XML更加严格和规范,它需要通过或RELAX NG等方式定义文档的结构,同时还可以使用命名空间和XSLT等技术来处理和转换XML文档。独立于任何特定的操作系统、平台或开发环境。可以与许多不同的编程语言和应用程序进行交互。
|
XML 存储 Java
XML之dtd
XML之dtd
117 0
|
XML 开发框架 JSON
J2EE基础XML(dtd)
J2EE基础XML(dtd)
65 0
|
XML 存储 开发框架
J2EE之XML(dtd篇超详细)
J2EE之XML(dtd篇超详细)
66 0
|
XML 设计模式 数据格式
XML---dtd
XML---dtd
42 0
|
7月前
|
XML 设计模式 数据格式
XML中的DTD
XML中的DTD
43 0
|
XML 存储 设计模式
XML以及DTD详解
XML以及DTD详解
182 0
|
XML 存储 数据格式
XML之DTD
XML之DTD
89 0
|
XML 存储 NoSQL
XML中DTD的基本使用
XML中DTD的基本使用
107 0
|
XML 存储 消息中间件
XML DTD介绍以及应用
DTD介绍 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。 DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
69 0