xml约束
来源:互联网 发布:遗传算法的基本步骤 编辑:程序博客网 时间:2024/05/01 20:56
XML文档的分类
格式不良好(malformed)的xml文档:完全
没有遵守xml文的基本规范的xml文档。
格式良好(well-formed)的但无效的xml文
档: 遵守xml文的基本规范,但没有使用
dtd或schema定义语义约束的xml文档。
有效(valid)的xml文档:遵守xml文的基
本规范,并使用dtd或schema定义语义约束
,而且也完全遵守了dtd或schema定义语
义约束的xml文档。
XML约束概述
什么是XML约束
在XML技术里,可以编写一个文档来约束
一个XML文档的书写规范,这称之为XML约
束。
为什么需要XML约束
常用的约束技术
XML DTD
XML Schema
例子:
文件清单:book.xml
<?xml version="1.0" ?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
<书>
<书名>Java就业培训教
程</书名>
<作者>redarmy</作者>
<售价>39.00元</售价>
</书>
<书>
<书名>JavaScript网页
开发</书名>
<作者>redarmy</作者>
<售价>28.00元</售价>
</书>
</书架>
文件清单:book.dtd
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
XML文件使用 DOCTYPE 声明语句来指明它所遵循的DTD文件,DOCTYPE声明语句有两种形式:
当引用的文件在本地时,采用如下方式:
<!DOCTYPE 文档根结点 SYSTEM "DTD文件的URL">
例如: <!DOCTYPE 书架 SYSTEM “book.dtd”>。在xml文件中手写一下。
当引用的文件是一个公共的文件时,采用如下方式:
<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
例如:<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
food.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE food [
<!ELEMENT food (group+)>
<!ELEMENT group ((apple*,banana*,peach+)|pear|orange+|WM)>
<!ELEMENT apple (#PCDATA)>
<!ELEMENT banana (#PCDATA)>
<!ELEMENT peach (#PCDATA)>
<!ELEMENT pear (#PCDATA)>
<!ATTLIST apple
name CDATA #REQUIRED
weight CDATA #IMPLIED
color CDATA #FIXED "cc"
size CDATA "aa">
<!ATTLIST banana count (1个|2个|3个|多个) "多个">
<!ATTLIST banana 编号 ID #REQUIRED>
<!ATTLIST peach banana编号 IDREF #REQUIRED>
<!ATTLIST orange id NMTOKENS #IMPLIED>
<!NOTATION mp SYSTEM "movPayer.exe">
<!NOTATION gif SYSTEM "Image/gif">
<!ATTLIST orange tupian NOTATION (mp|gif) #REQUIRED>
<!ENTITY owner "wangyan">
<!ATTLIST apple own ENTITY #IMPLIED>
<!ENTITY % group_name "bianhao|weight|color|size">
<!ELEMENT WM (%group_name;)>
]>
<!-- + 代表一次或多次 ? 代表0次或1次 ×代表0次或多次 -->
<!-- | 代表多个中选一个 “或” ,代表必须按照顺序 空格 代表任意顺序、个数 -->
<!-- PCDATA parsed character data 代表元素中嵌套的内容为普通的文本字符串 -->
<!--
DTD文档定义属性类型,共10个值: 1、CDATA 2、ENUMERATED(枚举类型) 3、ID 4、IDREF IDREFS
5、NMTOKEN NMTOKENS (name token) 6、NOTATION (为我们保存图像、声音、影像等等像这些数据)
(<!NOTATION 符号名 SYSTEM "MIME类型"> <!NOTATION 符号名 SYSTEM "URL路径名"> )
7、ENTITY (两种:引用实体和参数实体 引用实体:主要在xml文档中被引用 定义引用实体: <!ENTITY 实体名称 "实体内容">
<!ENTITY 实体名称 SYSTEM "外部xml文档的url"> 引用实体的方法: &实体名称; 参数实体:主要被dtd文件自身使用
定义参数实体: <!ENTITY % 实体名称 "实体内容"> 引用参数实体的方法: %实体名称; ) ENTITYS
-->
<food>
<group>
<WM>
<color>red</color>
</WM>
</group>
<group>
<orange id="Zhangsan lisi wangwu" tupian="mp"></orange>
<orange id="zhangsan lisi" tupian="gif"></orange>
</group>
<group>
<pear>pear1</pear>
</group>
<group>
<apple name="aa" own="&owner;">apple</apple>
<apple name="ccccc" own="&owner;">&owner;
</apple>
<apple name="cccc" color="cc">aaaa</apple>
<apple name="cccc" color="cc">aaaa</apple>
<apple name="cccc" color="cc" size="aaaaa">ccc</apple>
<banana count="2个" 编号="a1">banana</banana>
<banana count="2个" 编号="b">banana</banana>
<peach banana编号="a1">peach</peach>
</group>
</food>
- XML约束-Schema约束
- XML约束--DTD约束
- XML约束--schema约束
- XML约束_schema约束
- XML约束
- XML约束
- XML约束
- xml约束
- xml约束
- xml约束
- xml约束
- xml约束
- xml约束
- XML约束
- xml约束
- XML约束
- XML约束
- XML约束
- 输出星号图03
- 数组中寻找第K小的数----位图法(bitmap)
- js实现各种排序算法
- js验证表单大全
- Json lib 抛出 NestableRuntimeException
- xml约束
- 开关机的action
- 以太网接口基础概念
- 堆 栈 堆栈
- Tomcat构建WEB站点
- android canvas绘制折线图和柱状图
- 【fullcalendar-1.5.4】初步使用
- 数据结构(迷宫求解c++)
- hdu - 4310 - Hero - 状态dp