- Tienes mi completa admiración por la de intentar esto. Puede ser una locura, pero estoy descontando esa posibilidad.
- Ya que dicen ArcObjects / ArcEngine, estoy suponiendo .NETO de la aplicación
- Definitivamente, me gustaría empezar aquí. De alguna manera, usted necesita para obtener las clases generadas a partir de la XSD, y mientras que usted puede hacerlo usted mismo para cualquier subconjunto que necesita, va a doler. Si hay alguna manera de utilizar LINQ (y parece que hay), me gustaría probar esa ruta.
Si usted puede dar algunos detalles más sobre lo que estamos tratando de lograr (r/s? r/w?), Sospecho que alguien probablemente le puede dar más detalles. Lo que estás intentando es un largish, pero no insuperable problema.
Ah, y una rápida (obvio en retrospectiva) pregunta - ¿el servidor que estamos hablando de generar WSDL? Si es así, entonces usted debería ser capaz de obtener VS2008 o 2010 para consumir directamente, haciendo la vida mucho más agradable.
Edit: Agregar detalles de menor importancia de la experimentación:
Comenzando desde el enlace anteriormente, yo era capaz de generar clases de C# con XSD. Esto genera las clases que se producirá un error en tiempo de ejecución debido a que el problema de XSD & .NET no es la generación de establecimiento inflexible de tipos de listas correctamente. También probé las sugerencias y correcciones de este post, solo para ver lo que ha cambiado. Estoy convencida de que el cambio de los tipos de datos subyacentes de doble/int, etc. la cadena es la idea más grande que nunca, pero se debe trabajar. En ambos casos, el comando para generar las clases es:
xsd.exe gml.xsd ..\..\xlink/1.0.0\xlinks.xsd ..\..\iso\19139\20070417\gmd\gmd.xsd ..\..\iso\19139\20070417\gco\gco.xsd ..\..\iso\19139\20070417\gss\gss.xsd ..\..\iso\19139\20070417\gts\gts.xsd ..\..\iso\19139\20070417\gsr\gsr.xsd /classes
Y sí, es feo. También se supone que te has descargado el juego completo de los esquemas de OpenGIS.net (disponible aquí), que tienes que tener para resolver todas las referencias.
Una rápida comparación de los dos conjuntos resultantes de clases muestra sorprendentemente pocas diferencias (el tipo de datos original entre paréntesis después del nombre de la cambió miembro:
DirectPositionType.Text (double)
DirectPositionListType.Text (double)
GridType.axisLabels (NCName)
ParameterValueType.integerValueList (integer)
MeasureListType.Text (double)
Así, en el peor de los casos, si usted realmente necesita, es posible que desee utilizar el "fijo" versión 3.2.1, y, a continuación, actualizar los unos a los miembros a utilizar la serialización personalizada para conseguir un tipo más fuerte implantación en lugar de simplemente utilizar cadenas.