• XML约束文件---DTD文件


    xml实现约束规则校验的两种方法:

    1:直接用myeclipse/eclipse进行校验

    实现方法:将xml文件和dtd文件同时放在一个文件夹中,eclipse会直接提示出错项

    2:浏览器校验

    实现方法:由于浏览器默认对dtd校验是关闭的,编写html文件载入相应的JavaScript代码对xml和dtd约束条件进行加载,编写js代码在页面上进行校验信息的显示。

    Js代码示例如下:
    这里写图片描述

    dtd的引入方法:

    1.外部引入:

    举例:在xml文件中引入dtd文件:
    这里写图片描述

    dtd文件:
    这里写图片描述

    注意:文件后缀必须为“ .dtd ” ,并且文件必须用 utf-8 编码格式保存

    两种引用格式:

    本地引用格式<!DOCTYPE 根元素名称 SYSTEM 文件的位置>
    dtd在当前文件的系统中,后面指定的文件位置是当前硬盘中的位置

    网络引用格式<!DOCTYPE 文档根节点 PUBLIC “DTD名称” “DTD文件的URL”>
    引入的dtd在网络公共位置中,后面要指明dtd的名字和dtd所在网络位置URL地址

    2.内部引入:

    直接将dtd规则写在xml文件中

    <!DOCTYPE 根元素名称[
        dtd约束。。。
    ] >

    形式如下图所示:
    这里写图片描述

    2.dtd语法—要求能看的懂就行

    (1)元素

    <!ELEMENT 元素名称 元素约束>

    元素约束:

    • 存放类型:ANY/EMPTY
    • 元素约束:子元素的列表,将可以包含的子元素用小括号括起来

      子元素之间使用逗号“,”进行分割:子元素必须按照顺序出现

      使用竖线“|”进行分割,子元素只能出现其中的一个

      #PCDATA表明包含标签体

    出现次数表示:

    • +: 表示出现1次或者多次
    • *: 0次或者多次
    • ?: 0次或1次
      也可以使用小括号()进行组的操作

    (2)属性

    <!ATTLIST 元素名
        属性名 属性类型 属性约束
        属性名2 属性类型 属性约束
        ……
    >

    属性类型:

    • CDATA:表示属性的值是一个普通字符串
    • ENUMERTATED:属性的值是一个枚举列表中的值
    • ID:表明属性的值必须在整个文档中都是唯一的,如果有重复的id则校验不通过(ID属性的值只能由字母、下划线开始,不能使用数字,不能出现空白字符)

    属性约束:

    • #REQUIRED —表明当前属性是一个必须存在的属性,如果这样的属性不存在则在校验时会报错
    • #IMPLIED —表明当前属性是一个可选的属性可以有也可以没有
    • #FIXED ‘固定值’ —表明当前属性具有一个固定值,这样的属性不需要进行赋值,自动就会取这个固定值为值。如果这样的属性指定了一个不是固定值的值则校验报错
    • 默认值

    举例如下:
    这里写图片描述

    (3)ENTITY(实体)

    <!ENTITY>就是对一大段内容的引用,可以简化代码的复用

    引用实体:在xml中引用的实体叫做引用实体

    <!ENTITY 实体名称 “实体内容”>
     引用方法:&实体名称
    

    参数实体:在dtd中引用的实体叫做参数实体

    <!ENTITY % 实体名称 “实体内容”>
    引用方法:%实体名称
    
  • 相关阅读:
    10 个迅速提升你 Git 水平的提示
    GitLab-CI与GitLab-Runner
    WEB应用安全解决方案测试验证
    sparse representation 与sparse coding 的区别的观点
    The Ph.D. Grind
    Potential Pythonic Pitfalls
    Overfitting & Regularization
    LVM的一般操作过程
    你跟大牛之间仅仅差一个google
    Hadoop伪分布式模式部署
  • 原文地址:https://www.cnblogs.com/shiguangmanbu2016/p/5932918.html
Copyright © 2020-2023  润新知