2009-12-03 3 views
2

dataset.GetXML() 메소드를 사용하여 XML을 데이터 세트에서 생성합니다. 의 schemaLocation불완전한 XML 속성

에 대한 속성에이
  <root xmlns="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsi="http://www.createattribute.com"  
      schemaLocation="http://www.createattribute.com/schema.xsd"> 
하지 않았다 : 나는 내가 XML 파일을 열 때, 나는 "XSI는"발견 그것을

  XmlAttribute attr = xmlObj.CreateAttribute("xmlns:xsi"); 
      attr.Value = "http://www.createattribute.com"; 
      xmlObj.DocumentElement.Attributes.Append(attr); 

      attr = xmlObj.CreateAttribute("xsi:schemaLocation"); 
      attr.Value = "http://www.createattribute.com/schema.xsd"; 
      xmlObj.DocumentElement.Attributes.Append(attr); 

      xmlObj.DocumentElement.Attributes.Append(attr); 

에 속성을 추가 할

속성을 원합니다.

  xsi:schemaLocation="http://www.createattribute.com/schema.xsd" 

항상 이와 같습니까, 아니면 여기에 누락 된 것입니까? 나는이

감사에 대한 해결책을 찾을 수있을 때 누군가가이 해결 될 수 있다면 도와하거나 좀 URL을 줄 수 있을지 궁금

당신이 아닌 이름의 한 부분으로, 별도의 접두사를 지정해야

답변

5

여기서 핵심은 당신이 말할 필요가있다 XmlWriter는 사용할 네임 스페이스이며 올바른 접두사를 적용합니다.

아래 코드에서 SetAttribute 메서드의 두 번째 매개 변수는 xmlns : xsi 네임 스페이스에 지정된 네임 스페이스 URI입니다. 이렇게하면 XmlWrite가 올바른 접두어에 입력됩니다. 그것으로 찾고에 대한

XmlDocument xmlObj = new XmlDocument(); 
xmlObj.LoadXml("<root></root>"); 

XmlAttribute attr = xmlObj.CreateAttribute("xmlns:xsi");    
attr.Value = "http://www.createattribute.com"; 
xmlObj.DocumentElement.Attributes.Append(attr); 

attr = xmlObj.CreateAttribute("schemaLocation", "http://www.createattribute.com"); 
attr.Value = "http://www.createattribute.com/schema.xsd"; 
xmlObj.DocumentElement.Attributes.Append(attr); 
+0

덕분에 많이 보여! :

XmlDocument xmlObj = new XmlDocument(); xmlObj.LoadXml("<root></root>"); XmlElement e = xmlObj.DocumentElement; e.SetAttribute("xmlns:xsi", "http://www.createattribute.com"); e.SetAttribute("schemaLocation", "http://www.createattribute.com", "http://www.createattribute.com/schema.xsd"); 
원래의 질문에서 구문을 사용하여

유사 코드는 그것이 나에게 효과가있다. –

0

. 이 단지 접두사와 이름을 사용 과부하가 없다, 그래서 당신은 또한 네임 스페이스를 걸리는 과부하를 사용하여 네임 스페이스에 null을 사용할 수 있습니다

attr = xmlObj.CreateAttribute("xsi", "schemaLocation", null); 
+0

감사합니다,하지만 여전히 날 같은 –