我使用xsd.exe将CDA xsd序列化为csharp类,并尝试构建CCD文档。该文档必须通过验证过程(http://xreg2.nist.gov/cda-validation/validation.html)并且失败,因为一个元素没有正确序列化。
任何帮助将非常感谢如何使其工作!谢谢!
我需要它包含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;
}
}
}
答案 0 :(得分: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;