XML约束

xml文档书写需要遵循的规则(dtd和schema)

1.DTD约束

1.1 概念:

document type definition文档类型定义。

  dtd是关于一套标记的语法规则。它定义了可以在文档中使用的元素,属性和实体以及这些之间的关系。

1.2 dtd的使用:

xml文档内部使用,也可以在外部使用(规则dtd文件是一个单独的文件)

1.3dtd内部使用:
在xml文档的顶部进行dtd的规则声明:

<!DOCTYPE   根元素[子元素]>
<!ELEMENT  元素名 (元素类型)>
<!ATTLIST  元素名   属性名   属性类型  属性的值的约束
  示例:<!ATTLIST  name ss CDATA  #REQUIRED>   给name元素添加ss属性,而且必须要有该属性。

  备注:   在属性值中如果有实体引用出现必须转义:(xml解析器要解析)
          实体引用: <  &lt;  >  &gt;  &  &amp;  "  &quot;  空格&nbsp;        
 额外:  如果不想使用xml解析器解析内容直接原样输出:
           <!CDATA[[不需要xml解析器解析的内容]]>              

 总结:
  #PCDATA:主要用于规定标签的文本内容是字符类型。修饰的内容也要使用转义。
            如果不想转义,使用 <!CDATA[[不需要xml解析器解析的内容]]>  xml解析器   不解析了,直接原样输出,
   CDATA:主要是修改属性的值为字符型。xml解析器会解析,如果用到实体引用要转义。

1.4 内部dtd约束示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE student[
<!ELEMENT  student (id,name,age)>
<!ELEMENT  id  (#PCDATA)>
<!ELEMENT  name  (#PCDATA)>
<!ELEMENT  age  (#PCDATA)>
]>

<student>
   <id>1001</id>
   <name>sky</name>
   <age>18</age>
</student>

1.5外部dtd约束本地文件: 重点

外部约束文件: student.dtd
<!ELEMENT  student (id,name,age)>
<!ELEMENT  id  (#PCDATA)>
<!ELEMENT  name  (#PCDATA)>
<!ELEMENT  age  (#PCDATA)>


xml引入本地dtd约束文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引用本地的外部dtd约束文件,struts2 ,mybatis数据库 (配置文件xml dtd) -->
<!DOCTYPE student  SYSTEM "student.dtd">
<student>
<id>1001</id>
<name>sky</name>
<age>18</age>
</student>

1.6 外部dtd约束网络文件: 重点

格式:

 <!DOCTYPE 根元素名称 PUBLIC
    "名称空间"
    "网络dtd地址文件一般是http://开头">

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入外部的网络dtd约束文件 
  如果是框架的,一般框架告诉开发者如何引用  ,根据约束提示来书写xml文件
 -->    
 <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
</struts>

备注:如果加入以上约束,该xml文件不提示(原因是读取不到网络指定的约束文件),
     用户自己配置本地的约束文件就可以进行提示,
   步骤: 1.Window-preferences- XML -XML Catalog- user Specified Entries -  Add -添加本地文件dtd  (URI 本地dtd对应的网络地址)

2.schema约束
Schema是dtd约束的替代者。

2.1 Schema的规则地址:
http://www.w3school.com.cn/schema/schema_elements_ref.asp

 Schema约束文件的引入:

2.2 引入默认的命名空间万维网组织:
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
备注: 切换xml的浏览模式到Design - 选中标签元素-右键-Edit NameSpaces -
弹窗 Add- 选择xsi默认确认即可
2.3 添加自己的约束文件(自己约束文件的命名空间和xsd位置): 重点
备注: 切换xml的浏览模式到Design - 选中标签元素-右键-Edit NameSpaces -
弹窗 Add- Specified New NameSpace - Browse – 弹窗-
Select XML Catalog Entry - 查找自己的命名空间的内容–
具体后续看图
练习操作 web.xml

 备注: xml约束主要是定义规则,根据规则提示写xml配置文件。
 schema配置约束重点的重点,框架中很多配置文件都是使用xml约束。     
 json 和xml 进行数据存储和传递配置

 web程序中 json主要用于数据存储和传输  json结构简单(json对象和数组)
 xml主要用于配置 (结构复杂,学习和解析很麻烦)         

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值