2009-05-29 8 views
6

이 피드 (그것의 SNIPPIT)를 추가하는 방법을 다음과 같이 정확히 볼 필요가있다 :는 XML 네임 스페이스

나는 그 여분의 xmlns, XSI 정크 추가하려면이 C# 코드에 추가 할 것을
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"> 

:

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

이 피드가 없으면이 피드가 거부됩니다.

+1

당신은 당신이 사용중인 프로그래밍 언어 언급하지 않았습니다. WriteStartDocument는 XmlWriter의 메서드이기 때문에 C#을 사용한다고 가정합니다. – Randolpho

+0

그것은 XML 조각 바로 아래 라인의 중간에있는 "C#"을 말합니다 ..... –

답변

5

.NET 3.5 옵션이 있습니까?

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(); 

또는 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

XmlWriter를 기반으로하는 코드가 많기 때문에 지금은 옵션이 아닙니다 ... –

+0

cool, looks looks good –

8

이 시도 :

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

와우, 나는 배웁니다. 너무 많이 여기! 나는 지금 움직이고있다. .. amazon는 먹이를 받아 들였다. –