继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

XML约束---DTD,Schema

松花
关注TA
已关注
手记 19
粉丝 94
获赞 669
XML约束---DTD,Schema

一、DTD约束
1.DTD概念
DTD(Document Type Definition),文档类型定义,用于约束XML文档。
规定XML文档中元素名称,子元素的名称及顺序,元素的属性等。
2.DTD重点要求
通常情况下我们是通过框架提供的DTD约束文档编写对应的XML文档。
常见框架使用DTD约束有:struts2、hibernate等。
3.DTD文档声明
(1)内部DTD,在XML文档内部嵌入DTD,只对当前XML有效。

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>  
        <!DOCTYPE web-app[  
           ...//具体的语法  
        ]>  
        <web-app>  
        </web-app>  
(2)外部DTD-本地DTD,DTD文档在本地系统上,公司内部自己项目使用。  
<?xml version="1.0" encoding="utf-8" standalone="no" ?>  
        <!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">  
        <web-app>  
        </web-app>  
(3)外部DTD-公共DTD,DTD文档在网络上,一般都有框架提供。
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>  
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN"  
        "http://java.sun.com/dtd/web-app_2_3.dtd">  
        <web-app>  
        </web-app>  

4.DTD元素声明

定义元素语法:<!Element 元素名 元素描述>
    元素名:自定义
    元素描述包括:符号和数据类型
        常见符号:? * + () , 
        常见类型:#PCDATA 表示内容是文本,不能是子标签。

符号 描述
? 表示该对象可以出现,但只能出现一次

  • 表示该对象最少出现任意多次,也可以出现零次
  • 表示该对象最少出现一次,可以出现多次
    () 用来给元素分组
    | 表明在列出的对象中选择一个
    , 表示对象必须按指定的顺序出现
    5.属性声明
    属性的语法:(attribute)
    <!ATTLIST 元素名  
            属性名 属性类型 约束  
            属性名 属性类型 约束  
            ...  
        >  
    元素名:属性必须是给元素添加,所有必须先确定元素名
    属性名:自定义
    属性类型:ID、CDATA、枚举...
        ID:ID类型的属性用来标识元素的唯一性
        CDATA:文本类型
        枚举:(e1|e2|...)多选一
    约束:
        #REQUIRED:说明属性是必须的:required
        #IMPLIED:说明属性是可选的:implied

    二、Schema约束
    1.Schema概念
    Schema是新的XML文档约束,比DTD强大,是DTD替代者;
    Schema本身也是XML文档,但Schema文档的开展名为xsd,而不是xml;
    Schema功能更强大,数据类型更完善;
    Schema支持名称空间。
    2.Schema重点要求
    可以通过schema约束文档编写xml文档。常见框架使用schema的有spring等。

3.命名空间作用
如果XML文档中使用多个Schema文件,而这些Schema文件中定义了相同
名称的元素时就会出现名字冲突。因此,命名空间是用来处理元素和
属性的名称冲突问题。
4.声明命名空间

默认命名空间:<xxx xmlns="">,使用<标签>

显示命名空间:`<xxx xmlns:别名="">,使用<别名:标签>`
打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP