2009-04-16 5 views
4

Supposons que je dispose du fichier de schéma XML suivant et du fichier de document XML suivant. J'ai deux questions,Problème d'espace de noms XML par défaut

  1. Comme il n'y a pas d'espace de nom cible spécifié dans le fichier XML de schéma, quel espace de noms élément d'information dans?

  2. Dans le fichier document XML, lorsque vous utilisez Information, à quel espace de noms appartient-il? S'il vous plaît noter dans ce cas, je ne me réfère pas au fichier XML Schema du fichier de document XML.

fichier XML Schema:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified"> 
<xs:element name="Information" type="xs:string"/> 
</xs:schema> 

fichier XML document:

<?xml version="1.0" encoding="utf-8"?> 
<Information>Hello XML</Information> 

merci à l'avance, George

Répondre

9

L'élément d'information sera en aucun espace de noms. Pour le mettre dans un espace de noms par défaut, vous devez spécifier cet espace de noms dans la balise.

<Information xmlns="http://www.mydefaultnamespace.com"> 

D'un Oracle article:

Pas Namespace

Aucun espace de nom existe quand il n'y a aucun espace de noms par défaut portée. Un {espace de noms par défaut} est celui qui est déclaré explicitement en utilisant xmlns. Quand un {espace de noms par défaut} n'a pas été> déclaré du tout en utilisant xmlns, il est incorrect de dire que les éléments sont dans {default> namespace}. Dans de tels cas, nous disons que les éléments sont dans {no namespace}. {no namespace}> s'applique également lorsqu'un {namespace} par défaut déjà déclaré n'est pas déclaré.

est ici une ressource d'espace de noms assez complet:

XML Namespaces FAQ

+0

@dommer, je pense que dans mon cas, l'élément d'information dans le fichier de schéma XML est défini dans aucun espace de noms. Une autre question, comment allons-nous référencer cet élément (dans aucun espace de noms) dans le fichier de document XML? – George2

+0

Je ne suis pas sûr que vous pouvez y faire référence explicitement. À quoi ferais-tu référence? Il n'y a pas d'espace de noms. Je pense que vous devrez assigner un espace de noms par défaut pour pouvoir faire explicitement référence à quelque chose - mais je suis prêt à avoir tort. – dommer

+0

@null, Je suis très intéressé par la façon de définir l'espace de noms par défaut dans le schéma XML et l'espace de noms par défaut dans le fichier de document XML. Pourriez-vous nous montrer un échantillon simple s'il vous plait? – George2

1

Pourquoi vous un schéma qui définissent sans cible? Cela n'a aucun sens.

+0

@leppie, 1. voulez-vous dire s'il n'y a pas d'espace de noms cible défini dans le fichier schéma, il n'y a aucun moyen de référencer ces éléments scehma définis dans le document XML? 2. Si nous ne spécifions pas l'espace de noms cible dans le fichier de schéma XML, quel espace de nommage définira l'élément - dans l'espace de noms par défaut ou dans aucun espace de noms? – George2

+0

Salut George :) 1. Oui. 2. Rien, c'est juste un texte vide de sens entre parenthèses. Cela dépend de ce que vous utilisez pour lire le XML. XML est inutile avec le schéma.Vous pourriez cependant prédéfinir le schéma par défaut dans votre lecteur de validation XML donné, ce qui vous éviterait de devoir définir l'espace de noms par défaut. Ne pas donner un espace de noms est presque comme des classes anonymes en C#, dans un sens lexical. – leppie

+0

Bonne réponse, lepie! Je suis intéressé par - "Vous pourriez cependant prédéfinir le schéma par défaut dans votre lecteur de validation XML donné, et cela vous éviterait de devoir définir l'espace de noms par défaut.", Vous voulez dire qu'il existe un moyen de définir le schéma par défaut dans le document XML lui-même en utilisant xmlns? Si oui, pourriez-vous me montrer un échantillon s'il vous plaît? 2. "Ne pas donner un espace de noms est presque comme des classes anonymes en C#" - vous voulez dire ne pas spécifier l'espace de noms cible (continuer) – George2

Questions connexes