Rolf B: Namespace Grundlagenfrage

Beitrag lesen

Hallo Pauli,

ich verstehe deinen Einwand nicht. Um einen Standard implementieren zu können, muss er aufgeschrieben worden sein. Zu diesem Aufschrieb gehört der Namespace, mit dessen Definitionen gearbeitet wird.

WAS sollte sich ein Programm denn vom W3C herunterladen, um mit dem XML Namespace xmlns:foo="http://example.org/2019/foo-masters" etwas anfangen zu können? Ein solcher Namespace legt Semantik fest. Er referenziert eine fachliche Vorgabe, die angibt, was unter foo:barkeep zu verstehen ist und was die Elemente darin bedeuten sollen. Es ist nicht einmal gesagt, dass es für die Elemente des foo-masters Namespace genau ein Schema gibt. Es kann viele geben.

Schlimmer noch: Einem konkreten XML Schema steht es frei, mehrere Namespaces zu benutzen. Das ist absolut gültig. Mein foo-masters Namespace könnte Elemente wie list, entry, und comment definieren. MEHR nicht. Und dann könnte ich ein XML-Dokument schreiben wie dies:

<?xml version="1.0" encoding="UTF-8"?>
<foo:list xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:foo="http://example.org/2019/foo-masters">
  <foo:entry key="A">
    <xs:schema>
       ... viele Schema-Zeilen
    </xs:schema>
    <foo:comment>
      Verwende dieses Schema im Falle, dass ein foo mindestens ein bar enthält
    </foo:comment>
  </foo:entry>
  <foo:entry key="B">
    <xs:schema>
       ... viele andere Schema-Zeilen
    </xs:schema>
    <foo:comment>
      Verwende dieses Schema, wenn das foo kein bar, aber drei snafu enthält
    </foo:comment>
  </foo:entry>
</foo:list>

Absolut gültiges XML, es mixt Elemente verschiedener Namespaces munter vor sich hin. foo-masters könnte weitere Elemente definieren, die für eine Schemaliste nicht relevant sind. Man kann ein Schema formulieren, das verlangt, dass ein foo:entry ein xs:schema und ein foo:comment enthalten muss. All das gibt es in der wilden weitem XML Welt.

WIE sollte man das in Form einer Download-Ressource darstellen können?

Rolf

--
sumpsi - posui - clusi