2014-11-04 3 views
-1

У меня проблема. Невозможно назвать XAttribute следующим образом: XAttribute ("xmlns", nss.NamespaceName)xmlns = "something" - должно быть в родительском узле

XNamespace ns = "urn: hl7-org: v3"; XNamespace nsVoc = "urn: hl7-org: v3/voc";

new XElement("ClinicalDocument", 
       new XAttribute(XNamespace.Xmlns + "xsi", xsiNs.NamespaceName), 
       new XAttribute("xmlns", nss.NamespaceName), 
       new XAttribute(XNamespace.Xmlns + "voc", nsVoc.NamespaceName), 
       new XAttribute(xsiNs + "schemaLocation", ns.NamespaceName + "../Schemas/cda/Schemas/CDA.xsd"), 
new XElement("typeId", 
       new XAttribute("root", rootTypeId), 
       new XAttribute("extension", extensionTypeId)), 
new XElement("templateId", 
       new XAttribute("root", rootTemplateId)), 
       new XElement("templateId", 
       new XAttribute("root", rootTemplatedId)), 

. . .

я не закрыть этот родительский кивок здесь .. У меня есть 2000 строк betwean конца NOD

ПОСЛАНИЕ IS: Префикс «» не может быть переопределена из «» до «урны: HL7-ORG: v3» в пределах тот же самый тег начального элемента.

ответ

0

Вместо

new XElement("ClinicalDocument", 
       new XAttribute(XNamespace.Xmlns + "xsi", xsiNs.NamespaceName), 
       new XAttribute("xmlns", nss.NamespaceName), 

вам нужно

XNamespace df = nss.NamespaceName; 
new XElement(df + "ClinicalDocument", 
    new XAttribute(XNamespace.Xmlns + "xsi", xsiNs.NamespaceName), 
       new XAttribute(XNamespace.Xmlns + "voc", nsVoc.NamespaceName), 
       new XAttribute(xsiNs + "schemaLocation", ns.NamespaceName + "../Schemas/cda/Schemas/CDA.xsd"), 
new XElement(df + "typeId", 

так что вам нужно, чтобы убедиться, что вы создаете XNamespace для этого пространства имен по умолчанию, а затем ваш код должен убедиться, что new XElement() вызовы используют, например new XElement(df + "foo") для создания элемента в правом пространстве имен.

Смежные вопросы