schema .xsd文件定义xml文件约束

Schema约束文件

schema约束文件示范

<?xml version="1.0" encoding="UTF-8" ?>
<!--        elementFormDefault该schema是一个质量良好的约束文件-->
<!--        targetNamespace目标命名空间,标识作用,别人引用我就用这个-->
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.freeprogramming.cn/schema/student"
>
<!--    定义persons元素-->
<element name="persons">
<!--    声明这个元素是一个复杂元素-->
    <complexType>
<!--        声明子元素要按照顺序写-->
        <sequence>
            <element name="person">
                <complexType>
                    <sequence>
<!--                        声明子元素name、age,类型为字符串-->
                        <element name="name" type="string"></element>
                        <element name="age" type="string"></element>
                    </sequence>
                </complexType>
            </element>
        </sequence>
    </complexType>
</element>
</schema>

引入schema约束文件

  • 语法
1,在根标签上定义属性
xmlns="http://www.w3.org/2001/XMLSchema-instance"
2,通过xmlns引入约束文件的名称空间
3,给某一个xmlns属性添加一个标识,用于区分不同的名称空间格式为: xmlns:标识=“名称空间地址”。
标识可以是任意的,但是一般取值都是xsi
4,通过xsi:schemaLocation指定名称空间所对应的约束文件路径
格式为: xsi:schemaLocation = "名称空间url文件路径“
  • 示范
<?xml version="1.0" encoding="utf-8" ?>
<persons
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.freeprogramming.cn/schema/student"
xsi:schemaLocation="http://www.freeprogramming.cn/schema/student studentschema.xsd"
>
    <person id="1">
        <name>张三</name>
        <age>18</age>
    </person>

</persons>

定义元素属性

  • 语法格式
<attribute name="id" type="string" use="required"></attribute>
<!-- 其中name是属性的名字 -->
<!-- 其中type是属性的类型 -->
<!-- 其中use 可以是required 必须的 optional 可选的 -->
  • 示范 studentschema.xsd
<?xml version="1.0" encoding="UTF-8" ?>
<!--        elementFormDefault该schema是一个质量良好的约束文件-->
<!--        targetNamespace目标命名空间,标识作用,别人引用我就用这个-->
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.freeprogramming.cn/schema/student"
>

<!--    定义persons元素-->
<element name="persons">
<!--    声明这个元素是一个复杂元素-->
    <complexType>
<!--        声明子元素要按照顺序写-->
        <sequence>
            <element name="person">
                <complexType>
                    <sequence>
<!--                        声明子元素name、age,类型为字符串-->
                        <element name="name" type="string"></element>
                        <element name="age" type="string"></element>
                    </sequence>
<!--                    声明person元素有个属性叫id类型为字符串且必须有-->
                    <attribute name="id" type="string" use="required"></attribute>
                </complexType>
            </element>
        </sequence>
    </complexType>
</element>
</schema>
  • 示范 student.xml
<?xml version="1.0" encoding="utf-8" ?>
<persons
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.freeprogramming.cn/schema/student"
xsi:schemaLocation="http://www.freeprogramming.cn/schema/student studentschema.xsd"
>
<person id="1">
    <name>张三</name>
    <age>18</age>
</person>

</persons>
posted @ 2021-06-27 15:40  HumorChen99  阅读(0)  评论(0编辑  收藏  举报  来源