В настоящее время мой XmlDocument не отображает тег пространства имен в моем выпуске. Я новичок в XmlDocument, и я копирую функциональность из старого проекта на другом языке.Как правильно добавить пространство имен XML в свой XMLDocument?
Мой выход почти выглядит правдоподобно, за исключением того, что в месте расположения схемы отсутствует пространство имен - как и каждый другой экземпляр, который я пытаюсь добавить. Ниже приведен пример заголовка и случайного значения.
Мой буквальный выход (удаляет 'XSI:' Я добавить в код):
<ClinicalDocument
xmlns="urn:hl7-org:v3"
xmlns:mif="urn:hl7-org:v3/mif"
xmlns:voc="urn:hl7-org:v3/voc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="urn:hl7-org:v3 CDA.xsd">
...
<value type="CE" codeSystem="2.16.840.1.113883.6.96" code="55561003" displayName="Active"/>
Мой ожидаемый/выхода (имеет 'XSI:' правильно прилагается)
<ClinicalDocument
xmlns="urn:hl7-org:v3"
xmlns:mif="urn:hl7-org:v3/mif"
xmlns:voc="urn:hl7-org:v3/voc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd">
...
<value xsi:type="CE" codeSystem="2.16.840.1.113883.6.96" code="55561003" displayName="Active"/>
Мой код :
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", null, null);
doc.AppendChild(docNode);
var node = doc.CreateElement("ClinicalDocument");
XmlAttribute attribute;
XmlElement element;
attribute = doc.CreateAttribute("xmlns:xsi");
attribute.Value = "http://www.w3.org/2001/XMLSchema-instance";
node.Attributes.Append(attribute);
attribute = doc.CreateAttribute("xsi:schemaLocation");
attribute.Value = "urn:hl7-org:v3 CDA.xsd";
node.Attributes.Append(attribute);
, а затем значение тега
element5 = doc.CreateElement("value");
element5.AddAttribute("xsi:type", "CD", doc);
element5.AddAttribute("displayName", mytext, doc);
EDIT
Как Youngjae указал ниже мне нужно определить пространство имен отдельно, используя перегруженный CreateAttribute метода следующим образом:
XmlAttribute typeAttr = doc.CreateAttribute("xsi", "type", xsiUri);
Спасибо.
Что это сделал - я должен был использовать перегруженный метод CreateAttribute, как вы указали. Благодарю. –