【XML和Schema】Schema简介+简单定义和创建+连接到XML使用

XML Schema是一种用于定义XML文档结构和数据类型的规范,它比DTD更强大,支持更多数据类型和扩展功能。Schema通过复杂的元素和属性定义,可以对XML文档进行严格验证。在本文中,介绍了如何创建一个XML Schema文件,定义元素结构,并将Schema链接到XML文档以进行验证。此外,还强调了Schema在灵活性和名称空间支持方面的优势。
摘要由CSDN通过智能技术生成

Schema的简单介绍

和DTD一样,是对XML的约束。不一样的是,Schema是基于XML语言规范的,并且相比于DTD,它包括了所有DTD能实现的功能,而且大大扩充了数据类型,扩展性强、可对整个XML文档或文档局部进行验证。灵活性强、支持名称空间等等优点。

Schema的定义

如果有自定义命名空间,需要在IDEA的设置中添加该自定义命名空间的URL,如下图
在这里插入图片描述
新建一个xsd文件,编写如下代码:

<?xml version="1.0" encoding="UTF-8" ?>

<!--
 xmlns:xs="http://www.w3.org/2001/XMLSchema" 表示标准命名空间,每个schema约束都会包含一个
 xs是默认前缀,"http://www.w3.org/2001/XMLSchema"是该默认前缀的命名空间的URL
 
 targetNamespace="www.peng-yujun.cn" 表示自定义命名空间
-->
<xs:schema
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.peng-yujun.cn"
        elementFormDefault="qualified"
>
    <!--  定义元素结构  -->
    <xs:element name="scores">
        <!-- complexType表示student元素是复杂元素,该复杂元素可包含其它子元素   -->
        <xs:complexType>
            <!--
             sequence表示按照顺序出现
             maxOccurs:表示最大出现次数
             minOccurs:表示最小出现次数
             -->
            <xs:sequence maxOccurs="3" minOccurs="1">
                <xs:element name="student">
                <!--  student也是复杂标签   -->
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="name" type="xs:string" />
                            <xs:element name="coures" type="xs:string" />
                            <xs:element name="score" type="xs:double" />
                        </xs:sequence>

                        <!--  student标签必须包含id属性,type定义属性值的类型,use定义是否必须  -->
                        <xs:attribute name="id" type="xs:int" use="required" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>


</xs:schema>

连接Schema 到XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
    连接schema:
        1.有目标命名空间,如:xmlns="http://www.peng-yujun.cn"   xsi:schcemaLocation="http://www.peng-yujun.cn test.xsd"
        2.若无目标命名空间,可以为: xsi:noNamespaceSchemaLocation="xxx.xsd" >
-->
<scores
        xmlns="http://www.peng-yujun.cn"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schcemaLocation="http://www.peng-yujun.cn test.xsd"
>
    <student id="1">
        <name>王同</name>
        <coures>java</coures>
        <score>89</score>
    </student>
    <student id="2">
        <name>李佳</name>
        <coures>sql</coures>
        <score>58</score>
    </student>
</scores>

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

peng_YuJun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值