mrjerk: Namensräume

Beitrag lesen

Hallo,

Verstehe also nicht ganz, warum man namspaces benutzt. Die Eindeutigkeit der Tags kann damit ja nicht verbessert werden (siehe haustuer).

Natürlich kannst Du einen Namensraum theoretisch an den Tag-Namen dranhängen. Dann bekommst Du aber (wenns wirklich möglichst eindeutig sein soll) seeeehr lange Tag-Namen. Was Du evtl. nicht willst.

Wenn Du, sagen wir, ein Buch in einer Bücherei hast, welches du in XML abbilden willst, also z.b.

<buch titel="Mustertitel" ausgeliehenBis="31.12.2010" />

und ein Buch in einem Webshop

<buch titel="Mustertitel" preis="47,50" />

so haben beide Tags unterschiedliche Bedeutung. Du willst aber nicht jedesmal <buechereiBuch...> und <webShopBuch...> schreiben, also definierst Du Namensräume, die Du dann einfach in einem Bücherei-XML-Dokument oder in einem webshop-Dokument angibst, und Du kannst weiter "buch" schreiben.

Zusätzlich kannst Du den einen Namensraum in den anderen importieren, musst es aber nicht (so könnte z.b. ein Bücherei-Dokument den Webshop-Namensraum importieren an den Stellen, wo auf den webshop verwiesen werden muss, z.b. weil man wissen will, was das Buch die Bücherei gekostet hat).
Guckst Du z.b. hier.

Namensräume sind also einfach flexibler.

Ein ganz entscheidender Punkt ist aber:
Lesbarkeit!

Mit
<meinNS:test>abc</meinNS:test>
machst Du dem Leser unmissverständlich klar, dass "test" ein Teil von "meinNS" ist.
Du drückst also bereits implizit eine Beziehung aus.

Somit ist "<haustuer>" semantisch auch etwas anderes als "haus:tuer".
Im einen Fall beschreibst Du eine Art von Tür (keine Schrank-, sondern eine HAUStür), im anderen Fall drückst Du aus, dass diese Tür ein Teil eines komplexen ganzen (eines Hauses) ist.

Ob und wie Du nun also Namespaces verwenden willst, hängt nicht zuletzt davon ab, was Du in Deinem Dokument ausdrücken und dem Leser als zusätzliche Informationen mitgeben willst.

Viele Grüße,
Jörg