2009-04-19 4 views
3

Ich habe mich immer gewundert, wie ein XML-Parser die Prüfung eines URI-Namespace handhabt. ist es string-basiert oder URI basiert? in anderen Worten, dies ist die Standard-URI für SVGist der Namespace beim Einchecken in XML-Zeichenfolge oder URI-basiert?

xmlns="http://www.w3.org/2000/svg" 

nehme an, dass ich

xmlns="http://www.w3.org/2000/../2000/svg" 

oder

xmlns="http://www.w3.org/2000/svg/" 

oder sogar schreiben

xmlns="http://www.w3.org:8000/2000/svg" 

wird diese Fälle statt

als Svg Namespaces erkannt werden (URI basierend) oder nicht (stringbasiert)?

Dank

bearbeiten: die Tatsache, dass Sie URNs (wie ein UUID) macht mich wie es Zeichenfolge basiert fühlen können, weil Sie die richtige URL nicht anwenden können/URI Überlegungen zu einer nicht URL-like URI . Aber vielleicht wird es in diesem Fall nur als String funktionieren?

Bearbeiten: Wie Tormod darauf hinweist, ist es mit einem String-Vergleich gemacht. Dies veranlasst mich zu der Frage, ob es Empfehlungen zum Definieren von URIs gibt (wie: kein Schrägstrich am Ende, nur Kleinbuchstaben usw.). Oder ist es nur ein Alleskönner?

Antwort

6

Sie sind string-basiert. Alle Ihre Beispiel-URIs werden in andere Namespaces aufgelöst.

http://www.w3.org/TR/REC-xml-names/#NSNameComparison

URI Referenzen Namensräume identifizieren verglichen werden, wenn die Bestimmung, ob ein Name zu einem bestimmten Namensraum gehört, und ob zwei Namen gehören zu dem gleichen Namensraum. [Definition: Die beiden URIs werden als Strings behandelt, und sie sind genau dann identisch, wenn die Strings identisch sind, dh wenn sie die gleiche Zeichenfolge haben. ] Beim Vergleich wird zwischen Groß- und Kleinschreibung unterschieden, und es wird kein% -escaping durchgeführt oder rückgängig gemacht.