2009-05-29 15 views
6

Cette alimentation (snippit de celui-ci) doit ressembler exactement ceci:comment ajouter xml namespaces

<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"> 

que dois-je ajouter à ce code C# pour ajouter que xmlns supplémentaires, junk xsi:

writer.WriteStartDocument(); 
writer.WriteStartElement("AmazonEnvelope"); 

ce flux est rejeté sans it--

+1

Vous ne l'avez pas mentionné quel langage de programmation que vous utilisez. On suppose que C# parce que WriteStartDocument est une méthode sur XmlWriter, mais ce n'est pas une garantie. – Randolpho

+0

Il dit "C#" au milieu de la ligne juste en dessous du fragment XML ..... –

Répondre

5

est-NET 3.5 une option?

XNamespace ns = "http://www.w3.org/2001/XMLSchema-instance"; 

string s = new XElement("AmazonEnvelope", 
    new XAttribute(XNamespace.Xmlns + "xsi", ns), 
    new XAttribute(ns + "noNamespaceSchemaLocation", "amzn-envelope.xsd") 
).ToString(); 

ou XmlWriter:

const string ns = "http://www.w3.org/2001/XMLSchema-instance"; 
writer.WriteStartDocument(); 
writer.WriteStartElement("AmazonEnvelope"); 
writer.WriteAttributeString("xmlns", "xsi", "", ns); 
writer.WriteAttributeString("xsi", "noNamespaceSchemaLocation", 
     ns, "mzn-envelope.xsd"); 
writer.WriteEndDocument(); 
+0

beaucoup de code basé sur XmlWriter, donc pas une option pour le moment ... –

+0

cool, regarde bien –

8

Essayez ceci:

writer.WriteStartElement("AmazonEnvelope"); 
writer.WriteAttributeString(
    "xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance"); 
writer.WriteAttributeString(
    "xsi", "noNamespaceSchemaLocation", null, "amzn-envelope.xsd"); 
... 
writer.WriteEndElement(); 
+0

wow, j'apprends tellement ici !! Je me déplace maintenant ... amazon a accepté le flux ... api touchante !! –

Questions connexes