与html的区别:
1、标签自定义
2、html可以实现一些动作,xml只存放数据,与世无争
DTD:document type definition 文档定义类型
用途:是一个标准,是一套语法规则,如果在xml里面引入dtd文件,那么就必须按照这个dtd的规则来定义xml
引入方式:外部引入,内部引入,内外部引入
1.内部引入:
语法:<!DOCTYPE 根节点[
              <!ELEMENT 根节点(根节点下面的子节点,根节点下面的子节点)>
          ]>
列:<!DOCTYPE people[
            <!ELEMENT people (student)>
            <!ELEMENT student (#PCDATA)>
        ]>
        <people>
            <student>XML</student>
        </people>
 
2.外部引入:
 
 
语法:新建一个dtd文件
 
 
写入<!ELEMENT people (student,sex)>
 
 
<!ELEMENT student (#PCDATA)>
 
 
<!ELEMENT sex (#PCDATA)>
 
 

 
  
 
在需要引入的文件中写:
 
  
  
 
dtd文件(文件名为2.dtd)
 
<?xml version="1.0" encoding="UTF-8"?>
 
 
<!ELEMENT people (student,sex)>
 
 
<!ELEMENT student (#PCDATA)>
 
 
<!ELEMENT sex (#PCDATA)>
 
xml文件
 
<?xml version="1.0" encoding="UTF-8"?>
 
 
<!DOCTYPE people SYSTEM "2.dtd">
 
 
<people>
 
 
<student>小名</student>
 
 
<sex>男</sex>
 
 
</people>
 

 
元素定义:
 
 
1、#PCDATA 可以是任意的文本字符数据 不能有子节点
 
 
2、EMPTY 空,节点之间的内容为空
 
 
3、ANY  任意类型
 
 
4、混合类型
 
 
子节点后面跟符号:如<!ELEMENT people (student,sex+)>
 
 
+:表示这个可以出现一次或者多次
 
 
?:出现一次或者0次
 
 
*:出现任意次
 
 
,:元素必须按照顺序显示
 
 
|:多个选择出现一个
 
 

 
例:xml文件
 
<?xml version="1.0" encoding="UTF-8"?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
]> 
 
<sun>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 </sun>
 
  
属性的语法:
 
 
<!ATTLIST 元素名称 属性名 属性类型  属性特点>
 
 
属性类型:
 
 
1、CDATA 可以是任意文本类型 是#PCDATA的一个子集
 
 
2、ID 该属性值是唯一的 但不能是纯数字
 
 
3、IDREF/IDREFS 对ID值的一个引用
 
 
4、NMTOKEN 名称编号 是CDATA的一个子集 只能是英文字母,数字,句号,破折号,下划线,冒号
 
 
属性特点:
 
 
1、必要的 #REQUIRED
 
 
2、可有可无的 #IMPLIED
 
 
3、强制使用该值 #FIXED
 
 
4、默认 Default 值
 
 

 
 
例:xml文件
 
 
<?xml version="1.0" encoding="UTF-8"?>
 
  
<!DOCTYPE lol[
 
  
<!ELEMENT lol (诺克萨斯,祖安,战争学院,工学院,教育局)>
 
  
<!ELEMENT 诺克萨斯 (#PCDATA)>
 
  
<!ELEMENT 祖安 (#PCDATA)>
 
  
<!ELEMENT 战争学院 (#PCDATA)>
 
  
<!ELEMENT 工学院 (#PCDATA)>
 
  
<!ELEMENT 教育局 (#PCDATA)>
 
  
<!ATTLIST 诺克萨斯 英雄 CDATA #REQUIRED>
 
  
<!ATTLIST 诺克萨斯 位置 CDATA #IMPLIED>
 
  
<!ATTLIST 祖安 people CDATA #FIXED "刷子">
 
  
<!ATTLIST 战争学院 teacher CDATA "军哥">
 
  
<!ATTLIST 工学院 编号 ID #REQUIRED>
 
  
<!ATTLIST 战争学院 编号 ID #REQUIRED>
 
  
<!ATTLIST 教育局 所有的学校 IDREFS #REQUIRED>
 
  
<!ATTLIST 教育局 别名 NMTOKEN #REQUIRED>
 
  
]>
 
  
<lol>
 
  
<诺克萨斯 英雄="卡特"></诺克萨斯>
 
  
<祖安 people="刷子"></祖安>
 
  
<战争学院 编号="s2"></战争学院>
 
  
<工学院 编号="s1"></工学院>
 
  
<教育局 所有的学校="s1 s2" 别名="湖南"></教育局>
 
  
</lol>