美文网首页
schema约束

schema约束

作者: 丫甘九 | 来源:发表于2019-03-21 16:27 被阅读0次

1、 schmea约束

  • dtd语法
    <!ELEMENT 元素名称 约束>
  • 一个xml中可以有多个schema,多个schema由名称空间来区分(类似于java包)
  • dtd里面只有PCDATA类型,但是在schema里面可以支持更多的数据类型
    比如:年龄 只能是整数,在schema可以直接定义一个整数类型
  • schema的语法更加复杂,schema目前不能代替dtd

2、schema快速入门

  • 创建一个schmea文件 后缀名是 .xsd
    根节点<schema>
  • 在schema文件里面
属性 
xmlns="http://www.w3.org/2001/XMLSchema" 
  • 表示当前xml文件是一个约束条件
targetNamespace="http://www.itcast.cn/20151111"
  • 使用schema约束条件,直接通过这个地址引入约束条件
elementFormDefault="qualified"
  • 步骤
    (1)看xml中有多少个元素
    .xsd中就有多少个<element>
    (2)看简单元素和复杂元素
    ** 如果复杂元素
<complexType>
             <sequence>
                    <子元素>
             </sequence>
        </complexType>

(3)简单元素,写在复杂元素的里面

<element name="person">
        <complexType>
             <sequence>
                     <element name="name" type="string"></element>
                     <element name="age" type="int"></element>
             </sequence>
        </complexType>
   </element>

(4)在被约束文件里面引入约束条件

<person xmlns:xsi="http:/www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.itcast.cn/20151111"
xsi:schemaLocation="http://www.itcast.cn/20151111 1.xsd">
xmlns:xsi="http:/www.w3.org/2001/XMLSchema-instance
  • 表示xml是一个约束条件
xmlns="http://www.itcast.cn/20151111"
  • 是约束文档里面的targetNamespace
xsi:schemaLocation="http://www.itcast.cn/20151111 1.xsd"
  • targetNamespace 空格 约束文档的地址路径
  • <sequence>:表示元素的出现顺序
  • <all>:元素只能出现一次
  • <choice>:元素只能出现其中一个
    maxOccurs="unbounded":表示元素出现的次数
    <any></any>:表示任意元素
    可以约束属性
  • 写在复杂元素里面
    写在<complexType>之前
    -- xml
    <attribute name="id1" type="int" use=""required></attribute>
  • name:属性名称
  • type:属性类别 int String
  • use:属性是否必须出现 required
  • 复杂的schema约束
    <company xmlns = "http//www.example.org/company"
    xmlns:dept="http//www.example.org/department "
    xmlns:xsi="http//www.w3.org/2001/XMLSchema-instance "
    xsi:schemaLocation="http//www.example.org/company company.xd http//www.example.org/department department.xsd"
  • 引入多个schema文件,可以给每一个起一个别名
    <enployee age="30">
    <dept:name>100</dept:name>
    <name>韩烨</name>
    <>

相关文章

网友评论

      本文标题:schema约束

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