2010-12-13 6 views
1

Je poste la question pour Je ne comprends pas les mots-clés de xmlns, xmlns:xsd et xmlns:xsi.Question sur xmlns pour le fichier Xml en C#

Je trouve un exemple pour la méthode XpathNavigator MoveToChile en tant que ceci, joint également l'exemple de fichier xml.

XmlDocument document = new XmlDocument(); 
document.Load("contosoBooks.xml"); 
XPathNavigator navigator = document.CreateNavigator(); 

navigator.MoveToChild("bookstore", "http://www.contoso.com/books"); 

L'exemple de fichier XML à partir de MSDN.

<?xml version="1.0" encoding="utf-8" ?> 
<bookstore xmlns="http://www.contoso.com/books"> 
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0"> 
     <title>The Autobiography of Benjamin Franklin</title> 
     <author> 

Pouvez-vous s'il vous plaît décrire la différence pour xmlns, xmlns:xsd et xmlns:xsi. Que puis-je utiliser pour remplacer http://www.contoso.com/books dans mon cas? ou je peux simplement insérer un autre xmlns comme xmlns="http://www.mycase.com"?

Ou je n'ai pas besoin d'inclure l'URL simplement. un peu comme ce navigator.MoveToChild("bookstore", "");

Mon fichier xml comme cela,

<?xml version="1.0" encoding="UTF-8"?> 
<Equipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <License licenseId="" licensePath=""/> 

Apprécié pour vos réponses.

Répondre

1

Consultez ce tutorial on XML namespaces.

Fondamentalement, vous définissez un préfixe pour votre espace de noms XML pour le rendre plus facile à utiliser:

<Equipment 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <License licenseId="" licensePath=""/> 
    <xsd:element ..... xsi:nil="true" /> 

Ces éléments qui appartiennent à l'espace de noms par défaut sont probablement ceux que vous avez le plus besoin, donc vous pouvez définir un espace de noms XML sans préfixe - l'espace de noms par défaut:

<Equipment 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.yourcompany.com/your/default/namespace" > 
    <License licenseId="" licensePath=""/> 
    <xsd:element ..... xsi:nil="true" /> 

maintenant, tous les éléments de votre XML sans préfixe spécifique (ici: le <License> tag) font partie de votre default espace de noms XML.