What exactly is the difference between XML Schema Document and XML Schema Instance ?
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Please elaborate.
xsd
and xsi
Similaritiesxsd
is xs
.)xsd
and xsi
Differencesxsd
(or xs
) prefix referring to the Schema Namespace
(http://www.w3.org/2001/XMLSchema
) is used in XML Schemas (XSDs) for the elements, attributes, and types of the W3C XML Schema Recommendation
itself. (This is possible because XML Schema is itself XML.)The xsi
prefix referring to the The Schema Instance
Namespace http://www.w3.org/2001/XMLSchema-instance
is
used in XML document instances for several special attributes defined
by the XML Schema Recommendation:
xsi:type
allows an XML instance to associate element type information directly rather than through an XSD. See How to restrict the value of an XML element using xsi:type in XSD?
xsi:nil
allows an empty element to be considered to be valid when the XSD might not otherwise have allowed it.
xsi:schemaLocation
and xsi:noNamespaceSchemaLocation
provide hints to the XML processor as to how to associate an XSD with an XML document. Use xsi:schemaLocation
when there is a namespace; use xsi:noNamespaceSchemaLocation
when there is no namespace.