schema 文件约束

Posted zhangzonghua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了schema 文件约束相关的知识,希望对你有一定的参考价值。

1. 在javaproject 中创建一个.xsd 文件

<?xml version="1.0" encoding="UTF-8" ?>
<!--schema 文件就是约束文件
    xmlns 引入文件
    schema(w3c 组织提供的) 规范中:
    1.所有标签和属性都需要有schema文件来定义
    2.所有的schema文件都需要有一个id,但在这里它叫namespace(唯一标识)
    3.namespace的值由什么指定?由targetNamespace指定,它的值是一个url(很有可能不存在)
    4.如何引入schema约束? 由xmls 引入,值为schema文件对应的targetNamespace的值
    5.如果引入的schema不是w3c组织定义的,必须指定schema文件的位置,schemaLocation=""(引入book.xsd),
    6.5中同时需要引入一个约束,为了区分约束,需要取别名xmls:别名
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.atguigu.cn" elementFormDefault="qualified">
   <!-- element 定义一个标签(名为书架)-->
    <element name="书架">
        <!--complexType 是一个符合类型,即里面有子标签-->
        <complexType>
           <!-- sequence maxOccurs="unbounded" 可以出现多个(无限制)-->
            <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.创建xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!--xmlns 引入约束文件的targetNamespace-->
<!--如果xmlns不是w3c定义的,需要使用schemaLocation来指定引入的文件的路径-->
<!--使用 schemaLocation标签需要引入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">
    
    <>
        <书名></书名>
        <作者></作者>
        <售价></售价>
    </>
    
</书架>

 

以上是关于schema 文件约束的主要内容,如果未能解决你的问题,请参考以下文章

xml约束技术---schema

如何在xml中生成schema约束

WebService . Schema约束

Schema约束

Schema约束与DTD约束

在C++中如何用schema校验xml文件