У меня XSD (Это стандартный RFC xsd, как определено в http://web.rete.toscana.it/eCompliance/portale/dispatcher?from=rfc&pathname=%2Fapps%2Ftsf%2Fdata%2FeCompliance%2FeCRepository%2Frfc%2F0098.06%2F98.6.zip) с
<complexType name="EventoClinico">
...
<sequence>
...
<element name="Corpo" type="sisrt:Corpo" minOccurs="0" />
</sequence>
...
</complexType>
, а "Corpo" -
<complexType name="Corpo">
<sequence>
<any namespace="##any" processContents="lax" />
</sequence>
</complexType>
xsdИнструмент .exe переводит Corpo Element в свойство
public XmlElement Corpo;
.
Вопрос:
Как мне заполнить свойство своим пользовательским классом:
public class Example{
public string AString {get;set;}
}
Как установить EventoClinico.Corpo = new Example ("строка");?
С уважением.
Франческо.
Вотрешение, как предлагается в следующих сообщениях:
public XmlElement Convert<TObj>(TObj obj) {
XmlSerializer s = new XmlSerializer(typeof(TObj));
StringBuilder sb = new StringBuilder();
XmlWriterSettings settings= new XmlWriterSettings();
//settings.ConformanceLevel=ConformanceLevel.Fragment;
settings.OmitXmlDeclaration=true;
XmlWriter w = XmlWriter.Create(sb, settings);
s.Serialize(w, obj);
return ToXmlElement(sb.ToString());
}
public XmlElement ToXmlElement(string xml)
{
XmlDocumentFragment frag = new XmlDocument().CreateDocumentFragment();
frag.InnerXml = xml;
return frag.FirstChild as XmlElement;
}