많은 XSD에서 100 개 이상의 클래스를 생성하여 내부 테스트 용 테스트 하네스 애플리케이션을 작성합니다. XSD.exe를 사용하여 이러한 클래스를 생성합니다. 너무 많은 위험을 초래하여 너무 오래 걸립니다.XML 속성에 대한 열거 형 직렬화
나는 약간의 고통을 초래하는 문제가 있습니다. 이 열거 형을 얻으려고합니다. (이제는이 하나만 남은 것들에 대해서도 똑같은 기술을 할 것입니다 ...)
나는 무엇을 만들고 싶습니까? 내가 열거 (I '를 가지고
this.receiver = new MCCI_MT000100BCReceiver();
this.receiver.typeCode = CommunicationFunctionType.RSP;
this.receiver.device = new MCCI_MT000100BCDevice();
:
<receiver typeCode="RCV">
<device classCode="DEV" determinerCode="INSTANCE">
<id root="..." extension="..." />
<asAgent classCode="AGNT">
<representedOrganization classCode="ORG" determinerCode="INSTANCE">
<id root="..." extension="..." />
</representedOrganization>
</asAgent>
</device>
</receiver>
그러나, 수신기는 내가 explicetly 테스트 환경을 시작 객체로 설정 한 경우에도, 속성을 얻을 수 없습니다 : 수신기 요소는 형태 코드 속성)가 XSD.exe가 문제가되지 않았으므로 XMLEnums와 [Flags] 특성을 추가했습니다.
[Flags]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:hl7-org:v3")]
public enum CommunicationFunctionType
{
/// <remarks/>
[System.Xml.Serialization.XmlEnum("RCV")]
RCV = 1,
/// <remarks/>
[System.Xml.Serialization.XmlEnum("RSP")]
RSP = 2,
/// <remarks/>
[System.Xml.Serialization.XmlEnum("SND")]
SND = 3,
}
그리고 이것은 그 열거를 사용하는 클래스 중 하나입니다 :
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(TypeName = "MCCI_MT000100BC.Receiver", Namespace = "urn:hl7-org:v3")]
public partial class MCCI_MT000100BCReceiver
{
private CS[] realmCodeField;
private II typeIdField;
private II[] templateIdField;
private MCCI_MT000100BCDevice deviceField;
private CommunicationFunctionType typeCodeField;
private bool typeCodeFieldSpecified;
public MCCI_MT000100BCReceiver()
{
this.typeCodeField = CommunicationFunctionType.RCV;
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("realmCode")]
public CS[] realmCode
{
get
{
return this.realmCodeField;
}
set
{
this.realmCodeField = value;
}
}
/// <remarks/>
public II typeId
{
get
{
return this.typeIdField;
}
set
{
this.typeIdField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("templateId")]
public II[] templateId
{
get
{
return this.templateIdField;
}
set
{
this.templateIdField = value;
}
}
/// <remarks/>
public MCCI_MT000100BCDevice device
{
get
{
return this.deviceField;
}
set
{
this.deviceField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public CommunicationFunctionType typeCode
{
get
{
return this.typeCodeField;
}
set
{
this.typeCodeField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool typeCodeSpecified
{
get
{
return this.typeCodeFieldSpecified;
}
set
{
this.typeCodeFieldSpecified = value;
}
}
}
내가 열거를 직렬화하는 .NET이 시간에 할 좋아하는 일이 아니라, 어떤 도움을 주시면 감사하겠습니다 것을 이해합니다.
xsd에 열거 형이 정의되어 있습니까? –
@Jayanta - 예, 정의되었습니다. 나는 그 중 약 100 개를 가지고 있으며 XSD는 제약이있는 여러 개의 중첩 된 조합을 좋아하지 않으므로 90 % 이상만 가져옵니다. –