0
現在、私のXmlDocumentは出力に名前空間タグを表示していません。私はXmlDocumentが新しく、古いプロジェクトの機能を別の言語でコピーしています。XMLDocumentにXML名前空間を正しく追加するにはどうすればよいですか?
スキーマの場所に名前空間がないことを除いて、私の出力はほぼ正しいように見えます。私のヘッダーとランダムな値のタグの例は次のとおりです。
<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"/>
私のコード
私のリテラル出力は(:私はコードに追加 'XSI' を削除します) :
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
私はそうのような過負荷にcreateAttributeをメソッドを使用して、個別に名前空間を定義するために必要なの下Youngjaeが指摘したように:
XmlAttribute typeAttr = doc.CreateAttribute("xsi", "type", xsiUri);
感謝を。
を与える - 私はあなたが指摘したように、オーバーロードcreateAttributeをメソッドを使用する必要がありました。ありがとう。 –