2009-09-03 6 views

Antwort

6

Das xmlns Attribut erklärt eine XML Namespace. Der Standard Namespaces in XML diskutiert dieses Element ausführlich.

Namespaces werden hauptsächlich verwendet, um Konflikte zwischen Elementnamen beim Mischen von XML-Sprachen zu vermeiden. Wenn Sie eine bestimmte Anwendung haben, zu der Sie Fragen haben, könnten Sie vielleicht ein Beispiel veröffentlichen.

1

Mit Namespaces können Sie Mehrdeutigkeiten reduzieren, wenn Dubletten vorhanden sind. Sie könnten ein <title>-Tag haben, das auf Autoren verweist, und <title>-Tag, das sich auf eine Anrede wie Mr., Mrs. usw. bezieht. Zum Unterscheiden können Sie sie verschiedenen Namespaces zuweisen.

Sie können Namespaces auch verwenden, wenn Sie Dokumente auf Übereinstimmung mit einem bestimmten Standard/Einschränkungen validieren, wobei der Namespace angibt, zu welchem ​​"Schema" das Dokument gehört.

2

XML-Namespaces helfen Kontextelemente Elemente und Attribute unter anderem. Es bietet auch eine genaue Identifizierung für ein bestimmtes Element oder Attribut.

Zum Beispiel kann das <html> Element von jedem definiert werden und irgendeine Bedeutung haben. Das <html> Element innerhalb des http://www.w3.org/1999/xhtml Namespace ist jedoch eindeutig und bezieht sich auf das XHTML.

Namespaces erweisen sich auch als nützlich, wenn Sie mit homographs arbeiten, wenn Sie mehrere XML-Sprachen in einer einzigen Datei verwenden.

7

Das Attribut xmlns verfügt über eine spezielle Behandlung, die die Deklaration eines Namespaces ermöglicht.

Alle Namen, z. B. Tag-Namen, in einem Dokument gehören zu einem Namespace. In Abwesenheit des Attributs xmlns gehören alle Namen zum Namensraum "no name". Daraus folgt: -

<root><item /></root> 

Im obigen Beispiel beide root und item sind Namen in der "no name" Namespace. Während -

<root xmlns="urn:mydomain.com:mystuff"><item /></root> 

Jetzt root und item gibt es in der "urn: mydomain.com: mystuff" Namespace.

Die xmlns können weitere zusätzliche Namensräume definieren Elemente davon kann unter Verwendung eines Alias-Präfix von den anderen unterschieden werden: -

<root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other"> 
    <item> 
     <a:supplement /> 
    </item> 
</root> 

In diesem Fall root und item weiterhin in der „urn sein: mydomain.com : Mystuff "Namespace aber a:supplement zeigt an, dass der Name supplement im Namespace" urn: otherdomain.com: other "ist.

Was bewirkt das?

Das X in XML steht für eXtensible. Ein Ziel besteht darin, zu ermöglichen, dass zusätzliche Informationen auf ein existierendes Dokument gelegt werden, d. H. Die Fähigkeit, das Dokument zu erweitern. Bedenken Sie: -

Partei A erstellen Sie ein Dokument: -

<root> 
    <item /> 
<root> 

Partei B erweitert das Dokument durch zusätzliche Informationen, einschließlich: -

<root> 
    <item /> 
    <supplement /> 
</root> 

Später Partei A fügt neue Informationen zu ihrer ursprünglichen Form das Dokument und nur so zufällig auch den Namen supplement in ihrem Original verwenden. Wir könnten mit etwas enden wie: -

<root> 
    <item /> 
    <supplement /> 
    <supplement /> 
</root> 

Welche Ergänzung Element gehört zu welcher Partei? Durch die Verwendung von Namespaces das Dokument würde wie folgt aussehen: -

<root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other"> 
    <item /> 
    <supplement /> 
    <a:supplement /> 
</root> 

Nun, wenn es um das Parsen kommt und Abfrage den XML seiner klaren, welches Element gehört zu wem. Namespaces eliminieren die Kollision zwischen dem, was ansonsten eine globale Menge einfacher Namen wäre.

+0

Warum sollten wir den Domain-Namen als ns verwenden? Danke ... – Tarik

+0

Wenn Sie das Urn-Formular verwenden, empfiehlt es sich, einen eigenen Domainnamen zu verwenden, da es sehr unwahrscheinlich ist, dass andere einen Domain-Namen verwenden, den sie in ihren Urn-Definitionen nicht besitzen. In anderen Fällen könnten Sie eine URL verwenden. – AnthonyWJones

2

In HTML ist xmlns nur ein Talisman, um den Übergang von und zu XHTML zu erleichtern. Es macht überhaupt nichts.

Verwandte Themen