即使强制使用前缀也无法在XMLDocument中显示

时间:2019-05-24 17:32:32

标签: c# prefix xml-attribute

我正在构建一个XmlDocument,它必须针对提交者提供的undefined XSD进行验证,但无法显示前缀,因此验证失败。

使用Notepad ++进行验证会引发此错误

ERROR: Element '{urn:hl7-org:v3}value': The type definition is abstract.

我发现失败的行应该是以下

<value code="XXX.YY" codeSystem="2.16.840.1.113883.6.2" codeSystemName="CODE" displayName="DISPLAYNAME" type="CD">

我拥有的模板具有xsi:type =“ CD”属性(请注意尾随的xsi :) 我认为这不是名称空间问题,

xsi名称空间应正确设置

    XmlDocument xml = new XmlDocument();
    XmlNode cdRoot = xml.CreateNode("element", "ClinicalDocument", "");

    XmlAttribute ns = xml.CreateAttribute("xmlns");
    ns.Value = "urn:hl7-org:v3";
    cdRoot.Attributes.Append(ns);

    XmlAttribute att = xml.CreateAttribute("xmlns:xsi");
    att.Value = "http://www.w3.org/2001/XMLSchema-instance";
    cdRoot.Attributes.Append(att);

因此属性前缀应该。我尝试过

XmlNode value = xml.CreateNode(................

XmlAttribute att = xml.CreateAttribute("xsi:type");
att.Value = "CD";
value.Attributes.Append(att);

然后

XmlAttribute att = xml.CreateAttribute("type");
att.prefix = "xsi"
att.Value = "CD";
value.Attributes.Append(att);

我也尝试在构造函数中创建一个具有名称空间本身的XmlNode:它可以工作,但是将标记引入了整个名称空间,而且也不起作用。

0 个答案:

没有答案