xml xsd xsd-validation xml-validation

¿Cómo vincular XML a XSD usando schemaLocation o noNamespaceSchemaLocation?



xsd-validation xml-validation (1)

Cómo vincular un XSD a un documento XML depende de si el documento XML está usando espacios de nombres o no ...

Sin espacios de nombres

Use xsi:noNamespaceSchemaLocation para proporcionar una pista sobre el XSD que se utilizará:

  • XML

    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="example.xsd"> <!-- ... --> </root>

  • XSD

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="root"> <!-- ... --> </xsd:element> </xsd:schema>

Con espacios de nombres

Use xsi:schemaLocation para proporcionar una pista sobre el XSD que se utilizará:

  • XML

    <ns:root xmlns:ns="http://example.com/ns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com/ns example-ns.xsd"> <!-- ... --> </ns:root>

  • XSD

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/ns"> <xsd:element name="root"> <!-- ... --> </xsd:element> </xsd:schema>

Encontré algunos consejos para este problema, pero aún así no me ayudó.

Aquí está mi XML

<?xml version="1.0" encoding="UTF-8"?> <work xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2001/XMLSchema-instance" tns:schemaLocation="myXSDSchema.xsd"> <tns:Objects> <tns:Object Name=":" Location=":"> </tns:Object> </tns:Objects> </work>

Aquí está mi archivo XSD:

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns = "http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> (some checks) </schema>

Mi archivo XSD está ubicado en la misma carpeta que el XML.

¿Cómo vincular estos 2 archivos?