XSD - <schema> 元素
The <schema> element is the root element of every XML Schema.
The <schema> Element
The <schema> element is the root element of every XML Schema
<?xml version="1.0"?>
<xs:schema>
...
...
</xs:schema>
The <schema> element may contain some attributes. A schema declaration often looks something like this
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://w3schools.org.cn"
xmlns="https://w3schools.org.cn"
elementFormDefault="qualified">
...
...
</xs:schema>
The following fragment
xmlns:xs="http://www.w3.org/2001/XMLSchema"
indicates that the elements and data types used in the schema come from the "http://www.w3.org/2001/XMLSchema" namespace. It also specifies that the elements and data types that come from the "http://www.w3.org/2001/XMLSchema" namespace should be prefixed with xs:
This fragment
targetNamespace="https://w3schools.org.cn"
indicates that the elements defined by this schema (note, to, from, heading, body.) come from the "https://w3schools.org.cn" namespace.
This fragment
xmlns="https://w3schools.org.cn"
indicates that the default namespace is "https://w3schools.org.cn".
This fragment
elementFormDefault="qualified"
indicates that any elements used by the XML instance document which were declared in this schema must be namespace qualified.
Referencing a Schema in an XML Document
This XML document has a reference to an XML Schema
<?xml version="1.0"?>
<note xmlns="https://w3schools.org.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://w3schools.org.cn note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
The following fragment
xmlns="https://w3schools.org.cn"
specifies the default namespace declaration. This declaration tells the schema-validator that all the elements used in this XML document are declared in the "https://w3schools.org.cn" namespace.
Once you have the XML Schema Instance namespace available
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
you can use the schemaLocation attribute. This attribute has two values, separated by a space. The first value is the namespace to use. The second value is the location of the XML schema to use for that namespace
xsi:schemaLocation="https://w3schools.org.cn note.xsd"