XML简介及DTD

与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)>

在需要引入的文件中写:
      引入网络资源:<!DOCTYPE 根节点  PUBLIC "dtd的文件名" "dtd网络资源地址">
      引入自己写的dtd:<!DOCTYPE 根节点 SYSTEM "dtd的文件路径">
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"?>
  <!DOCTYPE sun [ 
  <!ELEMENT sun (boy, girl, end, music+, (dog | cat))>
 <!ELEMENT boy ANY> 
 <!ELEMENT one (#PCDATA)>
  <!ELEMENT two (#PCDATA)> 
  <!ELEMENT girl (#PCDATA)>
  <!ELEMENT end EMPTY> <!ELEMENT music (#PCDATA)> 
  <!ELEMENT dog (#PCDATA)> 
  <!ELEMENT cat (#PCDATA)> 
]> 
<sun>
 <boy> 
  <one>1号</one> 
  <two>2号</two> 
  </boy> 
  <girl>宋</girl>
  <end/>
  <music>单程票</music> 
  <music>什么时候不要敲代码</music>
  <dog>狗</dog>
 </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>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值