为了账号安全,请及时绑定邮箱和手机立即绑定

XML约束---DTD,Schema

标签:
职场生活
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:别名="">,使用<别名:标签>`
点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消