先看个例子:
1.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="aa"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
1.xml
<?xml version="1.0"?>
<note
xmlns="aa"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="aa 1.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body1>Don't forget the meeting!</body1>
</note>
红色部分必须保持一致,可以随便修改,但是必须保持一致就可以了。
下面我们再来看一种情况,上面是xsd文件和xml文件在同一个目录下,所以在xml文件在引用的时候,必须注意:xsi:schemaLocation="aa 1.xsd">。其中aa是命名空间,1.xsd是校验文件。(xml和xsd都在一个文件夹下)
如果xsd文件盒xml文件不再同一个目录下(有个aa文件夹,xml在aa下,但是aa有个子文件夹bb,xsd在bb下),这种情况就就应该这样写xsi:schemaLocation="aa bb/1.xsd">