Actualmente estoy teniendo un problema con la generación de archivos de clase de un xsd con elementos que se repiten. Estoy usando la herramienta personalizada 'MsDatasetGenerator' en VS2005 SP1 que crea un conjunto de datos tipeados de xsd para C#. Estoy tratando de analizar el código XML mediante este esquemaXSD generación de clases tablas anidadas problema
<?xml version="1.0" encoding=\"utf-8\"?>
<xs:schema id="XSDobject" targetNamespace="http://tempuri.org/XSDobject.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XSDobject.xsd" xmlns:mstns="http://tempuri.org/XSDobject.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="order">
<xs:complexType>
<xs:sequence>
<xs:element name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="phone" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="buyer">
<xs:complexType>
<xs:sequence>
<xs:element name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="phone" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
pero me da error “La misma tabla de 'contacto' que sigue no puede ser la tabla secundaria en dos relaciones anidadas. "
El XSD se compila correctamente pero es el conjunto de datos tipeados que no puede manejar tablas repetitivas. Ahora también he probado la herramienta xsd.exe pero parece generar el mismo código que el msdatasetgenerator. También probé algunas herramientas de generación de código de terceros como XSD2Code, CodeXS, AltovaXmlSpy pero tampoco puedo hacer que funcione con elementos anidados.
Alternativamente podría resolver el problema con la transformación xslt en la entrada y la salida pero me costaría mucho rendimiento.
Así que ahora estoy preguntando si alguien podría ayudarme con una buena solución para VS2005, o conozco un buen generador de clases xsd que pueda manejar este problema. No tiene que ser un conjunto de datos tipeados si funciona como una matriz o una lista, también es perfecto, siempre que sea fácil serializarlo y deserializarlo.
Gracias de antemano Freggel