ThomasM: Namespace Grundlagenfrage

Beitrag lesen

Hallo Pauli,

folgendes Beispiel:

<xs:schema targetNamespace="https://www.ich.de/test"" xmlns="https://www.ich.de/test" xmlns:xs="http://www.w3.org/2001/XMLSchema"> ...

Nun meine Frage: im Namespace xs ist ja wohl das XMLSchema an sich definiert. Nur, wie kann das verarbeitende Programm darauf zugreifen? Die URL im Beispiel ist ja nur der Name des NS. Müsste da nicht, so wie bei include/import, noch eine schemaLocation angegeben werden?

Die schemaLocation referenziert ein Schema, etwa in einem XML-Instanzdokument oder bei den genannten eingefügten Schema-Teilen.

test.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
  targetNamespace="http://example.org/myns">
  <xs:element name="test">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" minOccurs="0" name="bla"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

test.xml

<?xml version="1.0" encoding="UTF-8"?>
<test xmlns="http://example.org/myns"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://example.org/myns test.xsd">
  <bla>Test</bla>
</test>

Grüße,
Thomas