zoukankan      html  css  js  c++  java
  • XML——Schema

    XML Schema:
    █ XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性
    █ XML Schema VS DTD:
          ☞XML Schema符合XML语法结构。
          ☞DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
          ☞XML Schema对名称空间支持得非常好。
          ☞XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
          ☞XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
          ☞XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。 


    Schema约束快速入门:
    XML Schema 文件自身就是一个XML文件,但它的扩展名通常为 .xsd 
    一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档
    和XML文件一样,一个XML Schema文档也必须有一个根结点,但这个根结点的名称为schema。
    编写了一个XML Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,在XML Schema技术中有一个专业术语来描述这个过程,即把XML Schema文档声明的元素绑定到一个名称空间上,以后XML文件就可以通过这个URI(即名称空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束。
    <schema> 元素是每一个 XML Schema 的根元素;

    xmlns:xs=“http://www.w3.org/2001/XMLSchema” //标准的名称空间, 表示schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:

    targetNamespace=“http://www.cskaoyan.com”显示被此 schema 定义的元素 (name, author, price ) 来自命名空间: "http://www.cskaoyan.com"。//这个可以随便改

    elementFormDefault="qualified" 指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。

    MySchema.xsd NewFile.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"    //这里都是这个
    targetNamespace="http://www.example.org/MySchema"  //定义自己的命名空间,“随便写”
    elementFormDefault="qualified">  //声明实例要被命名空间限定
       <xs:element name='书架'>
                    <xs:complexType>
                            <xs:sequence maxOccurs='unbounded' >
                                    <xs:element name='书' >
                                            <xs:complexType>  // 元素定义复杂类型。复杂类型的元素是包含其他元素和/或属性的 XML 元素
                                                    <xs:sequence>
                                                            <xs:element name='书名' type='xs:string' />
                                                            <xs:element name='作者' type='xs:string' />
                                                            <xs:element name='售价' type='xs:string' />                                       
                                                    </xs:sequence>
                                            </xs:complexType>
                                    </xs:element>
                            </xs:sequence>
                    </xs:complexType>
            </xs:element>
    </xs:schema>
    <?xml version="1.0" encoding="UTF-8"?>
    <书架  xmlns="http://www.example.org/MySchema"  //根据上面的xsd文档,写出这个
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  //一般都是这个
                        xsi:schemaLocation="http://www.example.org/MySchema  MySchema.xsd"> //前面也要加上xsd定义的目标命名空间
    <书>
                    <书名>java面试版本</书名>
                    <作者>XXX</作者>
                    <售价>30</售价>
    </书>
    </书架>

    <?xml version="1.0" encoding="UTF-8"?>
    <meihao:书架  xmlns:meihao="http://www.example.org/MySchema"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:schemaLocation="http://www.example.org/MySchema  MySchema.xsd">
    <meihao:书>
                    <meihao:书名>java面试版本</meihao:书名>
                    <meihao:作者>XXX</meihao:作者>
                    <meihao:售价>30</meihao:售价>
    </meihao:书>
    </meihao:书架>






  • 相关阅读:
    实现一个聊天功能的对话框
    一些关于搭建服务器的方法
    JavaScript全局变量和局部变量的区别
    GIT常用命令
    Android 去除最上面应用名称及图标
    Fragment的隐藏与显示
    多线程断点续传及下载
    android 断点下载---XUtils
    Android判断网路是否畅通加权限
    Android_按两次返回键退出程序和长按返回键退出程序
  • 原文地址:https://www.cnblogs.com/meihao1203/p/9181663.html
Copyright © 2011-2022 走看看