• schema约束


      通过schema来解决DTD的不足,dtd里面有PCDATA类型,但是在schema里面可以支持更多的数据类型,比如 年龄只能是整数,在schema可以直接定义一个整数类型,schema语法更加复杂,schema目前还不能替换dtd。

      schema快速入门:

      1、创建一个schema文件,后缀名为”.xsd”,特别注意的一点是,在myelipse的new - >other 搜索不到.xsd,其实xsd也是一个xml文件,故搜索xml既可以。

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 在XML Schema中,每个约束模式文档都可以被赋以一个唯一的名称空间,名称空间(targetNamespace)用一个唯一的URI表示 -->
    <!-- 表示当前xml文件是一个约束文件,这是一个w3c提供的一个严格限制xml的约束文件,
        一般固定不变xmlns="http://www.w3.org/2001/XMLSchema" -->
    <!-- 使用schema约束文件,直接通过这个地址引入约束文件,外部的xml使用该约束文件是通过该命名空间,
        可以随便你写,但是习惯写一个URL地址     targetNamespace="http://www.atguigu.cn" -->
    <!-- 质量良好的    elementFormDefault="qualified" -->
    <!-- 可以不写的,:tns值得是别名,取别名为tns.xmlns:tns="http://www.atguigu.cn"  -->
    <schema xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://www.atguigu.cn" 
        elementFormDefault="qualified">
        <element name="书架">
            <complexType>
                <sequence maxOccurs="unbounded">
                    <element name="书">
                        <complexType>
                            <sequence>
                                <element name="书名" type="string"></element>
                                <element name="作者" type="string"></element>
                                <element name="价格" type="string"></element>
                            </sequence>
                        </complexType>
                    </element>
                </sequence>
            </complexType>
        </element>
    </schema>

    2)看简单元素和复杂元素,法则:有多少个元素就有多少个< element>

        <!-- 复杂元素 -->
        <element name="书架">
            <complexType>
                <sequence maxOccurs="unbounded">
                    <element name="书">
                        <complexType>
                            <sequence>
                                <!-- 简单元素 -->
                                <element name="书名" type="string"></element>
                                <element name="作者" type="string"></element>
                                <element name="价格" type="string"></element>
                            </sequence>
                        </complexType>
                    </element>
                </sequence>
            </complexType>
        </element>

    3)在被约束的文件xml中引入该 约束的文件xsd 

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 在Xml文件中书写标签时,可以通过名称空间声明(xmlns),来声明当前编写的标签来自哪个Schema约束文档。 -->
    <!-- schemaLocation此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置,两者之间用空格分隔。 -->
    <!-- 注意,在使用schemaLocation属性时,也需要指定该属性来自哪里。 -->
    <!-- 表示这个xml是一个被约束的文件,特别注意这里的xmlns与约束文件不一样,差后面的instance部分
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance -->
    <书架 xmlns="http://www.atguigu.cn"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.atguigu.cn book.xsd">
            <>
                <书名>JavaScript</书名>
                <作者>劳动</作者>
                <价格>12.0元</价格>
            </>
    </书架>

      

  • 相关阅读:
    nginx+iis使用
    sqlserver中一些常用的函数总结
    HTML如何让文字居中?附两种方式
    PNG图片收集
    解决mac pro 软件损坏
    end-of-file from the keyboard
    c++while控制语句
    如何通过命令行编写调试第一个C++程序(UNIX)
    matlab直接运行fig文件时报错
    第二次结对编程作业
  • 原文地址:https://www.cnblogs.com/liujie-e2/p/7418360.html
Copyright © 2020-2023  润新知