xml基础知识(2)

xml文档中可以写什么元素,元素中又可以增加什么属性,这些限定都需要限定文件来给予约束。

所以有必要了解约束文档的写法。

约束文档有两种:DTD、Schema。

此处讲解DTD的基础知识。


DTD的相关知识:


1.dtd既可以单独用一个文件写,也可以直接写在xml文档中


(新增:编程校验XML文档正确性

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>


行号:<div id="l"></div><br>
原因:<div id="r"></div>
</body>
</html>


<script>
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");//创建浏览器内置的xml解析器
xmldoc.validateOnParse = true;//打开xml解析器的dtd校验
xmldoc.load("book.xml");
var line = xmldoc.parseError.line;
var reason = xmldoc.parseError.reason;
document.getElementById("l").innerHTML = line;
document.getElementById("r").innerHTML = reason;

</script>

)


2.引用DTD约束
(1)当引用的文件在本地时,采用如下方法:
<!DOCTYPE 文档根节点 SYSTEM "DTD文件的URL">
例如:<!DOCTYPE 书架 SYSTEM "book.dtd">
(2)当引用的文件是一个公共文件时,采用如下方法:
<!DOCTYPE 文档根节点 PUBLIC "DTD文件的URL">


3.DTD元素定义
<!ELEMENT 元素名称 元素类型>
(1) 元素类型:EMPTY(定义空元素,如<br/>),ANY
(2) 元素类型处也可以是元素内容。
如:<!ELEMENT 书架(书名,作者,售价)>:使用“,”表示内容的出现顺序必须与声明一致
   <!ELEMENT 书架(书名|作者|售价)>:使用“|”表示任选其一,即多个只能出现一个
   <!ELEMENT 书名(#PCDATA)>:标签内可以放字符串
(3) 元素内容可以出现正则符号
如:+:一次或多次
   ?:0次或一次
   *:0次或多次


4.DTD属性定义
<!ATTLIST 元素名
属性名1 属性值类型 设置说明
属性名2 属性值类型 设置说明
>
如:<!ATTLIST 商品
类别 CDATA #REQUIRED
颜色 CDATA #IMPLIED
   >
对应的XML文件:
  <商品 类别=“服饰” 颜色=“黄色”>......</商品>
  <商品 类别=“服饰” >......</商品>
(1)设置说明
#REQUIRED :必须设置该属性
#IMPLIED  :可以设置也可以不设置
#FIXED    :设置固定值
没有关键字:设置默认值
(2-1)属性值类型
CDATA  :普通字符串
ENUMERATED:枚举
ID  :ID
ENTITY    :实体
(2-2)实体:引用实体,参数实体
引用实体:<!ENTITY 实体名称 “实体内容”>
引用方法:&实体名称
   如:<!ENTITY copyright  "i am a programer">
&copyright;
参数实体:<!ENTITY % 实体名称 “实体内容”>
引用方法:%实体名称
   如:<!ENTITY % TAG_NAMES "姓名|EMAIL|电话">
<!ELEMENT 个人信息 (%TAG_NAMES;|地址)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值