DTD约束(xml基础)

1、XML技术:与数据相关的技术,在企业中xml技术常用来存储数据和传输数据,流行的原因----xml与任何编程

语言无关,可用于php、java、.net等任何语言。

XML:可扩展标记语言

XML标记随意定义-----可扩展

XML典型存储和传输应用:

1)、xml充当数据库,保存数据信息,

2)、在AJAX中传输数据,WebService技术,网络中传输数据时,格式采用xml

在html中预定义了很多标记,每个标记都有相应的显示效果,xml所标记没有被预定义,

在xml中随便写个<name>HGL</name>都是合法的,但是你不知道这是什么意思-----所以,要想确定name标记

的含义,需要对xml添加约束。


XML语法;

1>、文档声明

2>、元素

3>、属性

4>、注释

5>、CDATA块

6>、处理指令


任何XML必须具备文档声明:<?xml version="1.0" Encoding="utf-8" ?>

版本一般就写1.0,当然也可以写其他的,编码格式,我个人建议最好注明为好。


XML是一种标记语言,存储和传输数据----保存数据内容

如果在文档声明里没有指明编码格式,浏览器在解析的时候默认是ISO-8859-1编码(不支持中文数据)

2、注意:

  1)当xml指定Encoding="utf-8"是浏览器查看编码集---------------浏览器查看编码集必须和文件保存

    编码集一致。

  2)、新建文本文档的编码格式是ANSI也就是GBK格式,我们平时用文本写xml时最好改一下编码格式。

  3)、当声明standalone="yes",该xml是独立的xml,不依赖外面其他文件,standalone="no",该xml依赖一些文件

  4)、xml通过元素描述复杂关系模型数据。


3、XML语法规范:

  1)、所有的xml元素必须有开始,有结束----<book>xxxx</book>,如果标签中没有内容,可以简写为----<book/>

  2)、标签不允许交叉嵌套,也就是必须要有一定秩序,哪个标签在前,哪个标签在后,都是顺这来的。

  3)、在xml文档中有且仅有一个根元素,有点类似于HTML中的<html>xxx</html>一样。

  4)、xml文件中,空格和换行都会被解析器解析的。这点和HTML不同。

  5)、严格区分大小写,属性和元素名称不能以数字开始


4、属性定义语法:

  1)、<元素名称 属性名称="属性值" 属性名称="属性值"...>,一个元素可以定义多个属性,每个属性值必须用双引号或单引号引起来。

  2)、xml注释与HTML注释相同,都是<!--这里是注释的内容-->,注意,注释不允许嵌套!!

  3)、CDATA区域内,保留不被解析器解析的内容-----通常存放特殊的代码

  4)、部分转义字符:>:greaterthan &gt; <:lessthan &lt;

5、CDATA和转义字符在哪些情况下使用?

  **优先使用CDATA 


6、通过PI指令控制xml显示样式(指令之前不能有注释)

  当xml使用PI指令引用css样式------效果等同于HTML,进行页面数据显示。(CSS可以认为是HTML的样式表)

  **如果真的需要xml来进行页面显示,通过XSLT来对xml进行修饰,可以认为XSLT就是xml的样式表。

7、XML技术应用,两大类:

1)、传输和存储数据-----程序员为了简化开发,不对xml使用约束技术。

**不实用xml约束技术,xml格式不一定正确

**所有xml数据内容的生成,解析过程,都是通过程序来完成的。

2)、使用xml作配置文件

程序员为了保证xml的准确性,通常对xml文档使用约束技术。

3)、为什么xml使用约束技术??

使用约束xml文档------使元素内容格式更加规范

8、xml技术的约束: DTD和Schema

9、DTD快速入门:

  1)、编写数据xml----books.xml

  2)、编写dtd文件

  **为xml文档的每一个元素写一个:<!ELEMENT 元素名 (子元素)>,如果子元素是文本的话,就用#PCDATA代替。

  3)、将xml文件和dtd文件关联起来

10、DTD和xml关联的三种方式:

  1)、内部DTD-------<!DOCTYPE 根节点 [这里写具体的ELEMENT等]>,其实就是将dtd文件和xml文件写在同一个文件中。

  2)、外部DTD(引用本地DTD)-------在xml文件中引用本地的dtd,语法格式:<!DOCTYPE 根节点 SYSTEM "dtd的路径">

  3)、公共DTD(引用网络上的DTD)-----<!DOCTYPE 根节点 PUBLIC "DTD名称" "DTD文件的url">

  注意:公共DTD在使用的时候,名称 要是w3c规范的官方名称,大家都知道的。

  

   

11、属性(ATTLIST)定义

    语法:<!ATTLIST 元素名称 属性列表>

      属性列表:

        属性名称 类型 约束

        属性名称 类型 约束

        属性名称 类型 约束

        ....


属性类型

1、CDATA文本类型属性

2、(值1|值2|值3)三个选一个

3、ID 表示属性值唯一


12、约束

  1)、#REQUIRED

  2)、#IMPLID

  3)、fixed value 属性值固定

  4)、default value 默认值

13、实体(ENTITY)定义

  对于xml数据内容重复,可以抽取实体

  语法:<!ENTITY 实体名称 "实体内容">


======================================================================================

  

原文地址:https://www.cnblogs.com/ZT-SummerRain/p/6724196.html