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

Resuelto porandddr asked hace 8 años • 0 respuestas

Encontré algunos consejos para este problema, pero todavía no me ayudaron.

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 se encuentra en la misma carpeta que el XML.

¿Cómo vincular estos 2 archivos?

porandddr avatar Feb 15 '16 21:02 porandddr
Aceptado

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

Sin espacios de nombres

Úselo xsi:noNamespaceSchemaLocationpara proporcionar una pista sobre el XSD que se utilizará:

  • documento.xml :

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

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

Con espacios de nombres

Úselo xsi:schemaLocationpara proporcionar una pista sobre el XSD que se utilizará:

  • documento.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>
    
  • ejemplo-ns.xsd :

     <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 targetNamespace="http://example.com/ns">
       <xsd:element name="root">
         <!-- ... -->
       </xsd:element>
     </xsd:schema>
    
kjhughes avatar Feb 15 '2016 17:02 kjhughes