2013-04-28 1 views
0

Я использую xsd.exe для сериализации CDA xsd в классах csharp и пытаюсь создать документ CCD. Документ должен пройти процесс проверки (http://xreg2.nist.gov/cda-validation/validation.html) и не работает, потому что один элемент не сериализуется правильно.xsi: type = wont serialize правильно

Любая помощь будет принята с благодарностью за то, как заставить ее работать! Благодаря!

Мне нужно, чтобы он включал xsi: type = "PIVL_TS", но по какой-то причине это не так.

<effectiveTime xsi:type="PIVL_TS"> 
    <period value="6" unit="h"/> 
</effectiveTime> 

Я получаю вместо

<effectiveTime> 
    <period value="6" unit="h"/> 
</effectiveTime> 

Класс Csharp, который был создан выглядеть как показано ниже

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")] 
    [System.SerializableAttribute()] 
    [System.Diagnostics.DebuggerStepThroughAttribute()] 
    [System.ComponentModel.DesignerCategoryAttribute("code")] 
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:hl7-org:v3")] 
    public partial class PIVL_TS : SXCM_TS { 

     private IVL_TS phaseField; 

     private PQ periodField; 

     private string alignmentField; 

     private bool institutionSpecified1Field; 

     public PIVL_TS() { 
      this.institutionSpecified1Field = false; 
     } 

     /// <remarks/> 
     public IVL_TS phase { 
      get { 
       return this.phaseField; 
      } 
      set { 
       this.phaseField = value; 
      } 
     } 

     /// <remarks/> 
     public PQ period { 
      get { 
       return this.periodField; 
      } 
      set { 
       this.periodField = value; 
      } 
     } 

     /// <remarks/> 
     [System.Xml.Serialization.XmlAttributeAttribute()] 
     public string alignment { 
      get { 
       return this.alignmentField; 
      } 
      set { 
       this.alignmentField = value; 
      } 
     } 

     /// <remarks/> 
     [System.Xml.Serialization.XmlAttributeAttribute("institutionSpecified")] 
     [System.ComponentModel.DefaultValueAttribute(false)] 
     public bool institutionSpecified1 { 
      get { 
       return this.institutionSpecified1Field; 
      } 
      set { 
       this.institutionSpecified1Field = value; 
      } 
     } 
    } 

ответ

1

Я нашел, если я изменил родительский класс для типа ANY [] было бы добавить Что мне нужно. См. Комментарий ниже.

public partial class POCD_MT000040SubstanceAdministration { 

     private CS[] realmCodeField; 

     private POCD_MT000040InfrastructureRoottypeId typeIdField; 

     private II[] templateIdField; 

     private II[] idField; 

     private CD codeField; 

     private ED textField; 

     private CS statusCodeField; 

     //private PIVL_TS[] effectiveTimeField; 
     private ANY[] effectiveTimeField;