XML---dtd

简介: XML---dtd

1.什么是XML

  • XML 指可扩展标记语言
  • XML 是一种很像HTML的标记语言。
  • XML 的设计宗旨是传输数据,而不是显示数据
  • XML 标签没有被预定义。您需要自行定义标签

1.2XML的作用

  • 企业级:将之前的开发效率提升了10倍
  • 效率提升:框架
  • 框架:设计模式+反射+配置文件
  • 配置文件:XML文件。
  • XML文件:dtd约束+解析+建模

1.3XML的格式:

  • 有且只有一个根元素
  • XML标签大小写正确的区分
  • 正确使用结束标签
  • 正确嵌套标签
  • 使用了合法的标签
  • 定义有效的属性

代码:

<?xml version="1.0" encoding="UTF-8"?>
<rootElement>
   <childElement1>value1</childElement1>
   <childElement2>value2</childElement2>
   <childElement3>value3</childElement3>
</rootElement>
<book category="Children">
   <title lang="en">Harry Potter</title>
   <author>J.K. Rowling</author>
   <year>2005</year>
   <price>29.99</price>
</book>

2.元素定义

2.1元素的特点:

  • 元素必须有开始和结束标记,即使是空元素也要用自闭合标记表示。
  • 元素不能交叉定义
  • 元素名是区分大小写的,常见的命名规则是使用驼峰命名法
  • 属性名是区分大小写的,属性值也应该使用引号。
  • 元素的文本内容可以包含各种字符包括换行制表等,但需要进行转义

2.2元素的声明:

  需要在XML声明加入了DTD

<!DOCTYPE root []>

2.3元素的分类:

  • 空元素 <!ELEMENT element-name EMPTY>
  • 文本元素 <!ELEMENT element-name (#PCDATA)>
  • 混合元素 <!ELEMENT element-name (e1,e2)>

2.4元素的限制:

次数:     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>

3.属性定义

语法:

<!ATTLIST  element-name att_name  type  desc>

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

       3.1性类型 type

ID

(男|女)

CDATA

IDREF(reference)

       2.属性描述

#REQUIRED 必填

#IMPLIED   非必填

默认值,只有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>


目录
相关文章
|
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 存储 JSON
XML---dtd 完整详细
XML---dtd 完整详细
|
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 存储 数据格式
DTD及XML介绍
DTD及XML介绍
75 0