XML 속성에 네임 스페이스 접두사가 추가되는 이유는 무엇입니까?
Dec 14 2020
여기에 바이올린이 있습니다 .
using System;
using System.Xml;
using System.IO;
using System.Text;
public class Program
{
public static void Main()
{
Console.WriteLine("Starting");
MemoryStream stream = new MemoryStream();
var utf = new UTF8Encoding(false);
XmlTextWriter writer = new XmlTextWriter(stream, utf);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteProcessingInstruction("process", "5");
writer.WriteComment("commenting");
writer.WriteStartElement("dog");
writer.WriteAttributeString("attribute", "www.windward.net", "5");
writer.WriteStartElement("cat");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
string result = utf.GetString(stream.ToArray(), 0, (int) stream.Length);
Console.WriteLine("XML: " + result);
}
}
접두사 네임 스페이스가없는 속성을 추가하고 있습니다. 접두사를 만들고 d1p1
있습니다.
왜?
답변
1 kjhughes Dec 13 2020 at 23:52
코드 수준 답변
때문에
writer.WriteAttributeString("attribute", "www.windward.net", "5");
장소 attribute
로 www.windward.net
하고, 네임 스페이스 접두사는 연결을 만드는 데 사용됩니다.
attribute
네임 스페이스를 사용하지 않으려면 "www.windward.net"
네임 스페이스 인수를 제거하십시오 .
writer.WriteAttributeString("attribute", "5");
XML 수준의 답변
OP 의견을 해결하기위한 업데이트 :
내가 원하는 것은 속성에 네임 스페이스
www.windward.net
가 있지만 접두사가없는 것입니다. 어떻게 할 수 있습니까?
이는 XML 네임 스페이스 권장 사항 과 반대되는 기본 네임 스페이스를 속성에 적용하려는 것과 같습니다.
기본 네임 스페이스 선언은 속성 이름에 직접 적용되지 않습니다. 접두사가없는 속성의 해석은 속성이 나타나는 요소에 의해 결정됩니다.
이러한 속성이 네임 스페이스에 있도록하려면 API의 네임 스페이스 접두사 사용을 수락하여 속성을 배치합니다.
또한보십시오
- 기본 네임 스페이스의 XML 속성 이름 및 요소?
- XML 네임 스페이스 및 속성