<hr>文件头里没有写 xmlns:xsi、xsi:schemaLocation 这两句,IDEA为啥也能校验xsd文件?

<hr>文件头里没有写 xmlns:xsi、xsi:schemaLocation 这两句,IDEA为啥也能校验xsd文件?

<?xml version="1.0" encoding="utf-8" ?>
<!--文档类型使用xsd文件进行语义约束-->
<!--文档注释-->
<hr xmlns="http://www.given.com"
    >
    <employee no="3000">
        <name>张三</name>
        <age>18</age>
        <salary>10000</salary>
        <department>
            <dname>会计部</dname>
            <address>漳州市龙文区</address>
        </department>
    </employee>
    <employee no="3001">
        <name>李四</name>
        <age>19</age>
        <salary>5000</salary>
        <department>
            <dname>研发部</dname>
            <address>漳州市芗城区</address>
        </department>
    </employee>
</hr>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.given.com"
        elementFormDefault="qualified"
>
    <element name="hr">
        <complexType>
            <sequence>
                <element name="employee" minOccurs="1" maxOccurs="9999">
                    <complexType>
                        <sequence>
                            <element name="name" type="string"></element>
                            <element name="age">
                                <simpleType>
                                    <restriction base="integer">
                                        <minInclusive value="18"></minInclusive>
                                        <maxInclusive value="65"></maxInclusive>
                                    </restriction>
                                </simpleType>
                            </element>
                            <element name="salary" type="integer"></element>
                            <element name="department">
                                <complexType>
                                    <sequence>
                                        <element name="dname" type="string"></element>
                                        <element name="address" type="string"></element>
                                    </sequence>
                                </complexType>
                            </element>
                        </sequence>
                        <attribute name="no" type="string" use="required"></attribute>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2022-05-10 14:59:11

同学你好,因为设置targetNamespace,targetNamespace="http://www.given.com"相当于为定义的元素定义了一个包,也就是package的概念,定义的元素是这个package(命名空间)里的,在XML文件里面可以用

<hr xmlns="http://www.given.com">来引用你前面定义的元素,这里就相当于import的概念了。

祝学习愉快~

  • 提问者 weixin_慕村4552609 #1
    那不同项目的xsd可以相互引用吗?还有xmlns:xsi、xsi:schemaLocation这两句为啥一定要写
    2022-05-10 16:05:43
  • 同学你好,

    1、不可以

    2、xmlns:xsi=""创建了一个xsi命名空间,可以通过xsi:schemaLocation来定义xsd文件的位置,以便 XML 解析器解析XML文件

    祝学习愉快~

    2022-05-10 17:07:51
  • 同一个命名空间可以包含多个xsd文件(也就是许多个xsd文件的targetNamespace都指向同一个命名空间,
    例如都指向http://www.springframework.org/schema/mvc/),xsi:schemaLocation这个属性就是告诉
    系统在http://www.springframework.org/schema/mvc/ 这个命名空间下我要选择哪一个xsd文件。
    我的理解对吗?


    2022-05-10 23:28:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师