What is the difference between xsd and xsi?

xsd and xsi Similarities

  • Both are XML namespace prefixes, abbreviations for an
    XML namespace.
  • Both are, as are all namespace prefixes, arbitrarily named; other namespace prefix abbreviations
    could equally well be used. However, both prefixes are conventional and therefore
    recommended. (An also-conventional alternative to xsd is xs.)

xsd and xsi Differences

  • The xsd (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.

See Also

  • Namespace related attributes in XML and XML Schema (XSD)
  • How to restrict the value of an XML element using xsi:type in XSD?

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)