美文网首页
2.02 XML 约束文档 DTD, schema

2.02 XML 约束文档 DTD, schema

作者: RockyLuo_290f | 来源:发表于2019-02-12 06:15 被阅读0次

    XML 约束文档 有两种 dtd 和 schema
    dtd是平面式文档,扩展名为.dtd 最早的xml文档
    schema 扩展名为.xsd 用来代替dtd的新的约束格式

    DTD(Document Type Definition)

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

    或是引入本地文件

    <!DOCTYPE students SYSTEM "E://file/demo.dtd">
    

    或是引入外部文件

    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD_Config_3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">
    

    定义属性 #IMPLIED 可选 #REQUIRED 必选

    //普通
    < !ATTLIST student number CDATA #REQUIRED>
    //枚举
    < !ATTLIST student gender Enumerated(male|female) #REQUIRED>
    

    DTD局限性
    DTD不遵守XML语法
    DTD数据类型有限
    DTD不可扩展
    DTD不支持命名空间
    Schema的新特性
    Schema基于XML语法
    shema扩充数据类型,可以自定义数据类型
    schma支持元素的继承
    schema支持属性组

    schema的文档结构

    <?xmlversion="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://mynamespace/myschema">
    </xs:schema>
    

    所有Schema文档使用schema作为其根元素
    用于构造schema的元素和数据类型来自http://www.w3.org/2001/XMLSchema命名空间
    本schema定义的元素和数据类型属于http://mynamespace/myschem命名空间

    <?xmlversion="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
      <xs:element name="book" type="bookType"></xs:element>
      <xs:complexType name="bookType">
          <xs:sequence>
              <xs:element name="bookName" type="xs:string"></xs:element>
              <xs:element name="author" type="xs:string"></xs:element>
              <xs:element name="price" type="xs:string"></xs:element>
          </xs:sequence>
      </xs:complexType>
    </xs:schema>
    

    Java解析器 JDOM与DOM4J
    DOM4J比JDOM更加全面
    DOM4J首先会通过JAXP的查找方式去查找解析器,没有,使用默认的Aelfred2
    兼容DOM和SAX读法
    DOM读法,全部读取
    SAX读法,分行读取

    相关文章

      网友评论

          本文标题:2.02 XML 约束文档 DTD, schema

          本文链接:https://www.haomeiwen.com/subject/bnxheqtx.html