Ich möchte die in einem XML-Schema definierten Elemente jeweils mittels einer URI referenzieren. Gibt es dazu einen Standard oder Best-Practice? Beispiel:
Kenne da weder Standard noch Best Practice, hätte aber gegen a) das Bedenken, dass es beim Einsatz von Präfixen zu etwas unschönen Dingen wie ex:schema:foo käme. Die DNB arbeitet in ihrem RDF mit #-Suffixen, also `gnd:bspwerk#work`, weiß aber nicht, ob das wirklich dasselbe Problem ist.
Da XML-Elemente kein : enhalten können, sollte sowas wie ex:schema:foo kein Problem sein. Bei # als Trenner gibt es oft Schwierigkeiten, die URI aufzulösen, weil per HTTP nur der Teil davor mitgeschickt wird, aber prinzipiell ist es natürlich auch möglich. Das RDF der DNB bezieht sich soweit ich es verstehe nicht auf ein XML-Format sondern basiert auf einer normale RDF-Ontologie, das ist sowieso ein anderer Anwendungsfall, oder?
ich war immer davon ausgegangen, dass es sich in XML genauso wie in Turtle verhält: “A prefixed name is turned into an IRI by concatenating the IRI associated with the prefix and the local part.” ( RDF 1.1 Turtle ) - also in Deinem Fall wäre das Variante c) - das ist aber bei genauem Hinsehen strenggenommen gar nicht der Fall. Aber spricht etwas dagegen, das trotzdem so zu handhaben?
ich war immer davon ausgegangen, dass es sich in XML genauso wie in Turtle verhält
Das war auch mein erster Gedanke, aber dann wären das Element bar im Namensraum http://example.org/foo und das Element foobar im Namensraum http://example.org/ identisch. Nach XML-Logik ist dies jedoch nicht der Fall. In XML hat ein Element einen Namespace (XPath-Funktion namespace-uri) und einen lokalen Namen (XPath-Funktion local-name), also ein Tupel. Ich suche nach einer „gängigen“ Representation dieser Tupel als URI.