XML Serializer C#Namespaces重复问题

时间:2014-10-01 18:27:45

标签: c# xml serialization

我在C#中使用XmlSerializer来生成基于模型的XML文档。我需要使用单独的前缀生成包含重复命名空间的以下XML根。以下是输出应该是什么样的......

<ClinicalDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="urn:hl7-org:v3 CDA_SDTC.xsd"
 xmlns="urn:hl7-org:v3"
 xmlns:cda="urn:hl7-org:v3"
 xmlns:sdtc="urn:hl7-org:sdtc">

但是,当我对其进行序列化时,将删除默认条目(其中包含重复的命名空间),并且根目录为前缀。

<cda:ClinicalDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sdtc="urn:hl7-org:sdtc" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema-instance" xmlns:cda="urn:hl7-org:v3">

这是我的XmlSerializer代码......

var writer = new XmlSerializer(clinicalDocument.GetType(),"urn:hl7-org:v3");

            var myNamespace = new XmlSerializerNamespaces();

            myNamespace.Add("sdtc", "urn:hl7-org:sdtc");
            myNamespace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
            myNamespace.Add("cda", "urn:hl7-org:v3");


            using (var file = new System.IO.StreamWriter(CCDUncOutputPath))
            {
                writer.Serialize(file, clinicalDocument, myNamespace);
                file.Close();
            };

            writer = null; 

            GC.Collect();

有人对此有解决方法吗?

0 个答案:

没有答案