2012-02-21 21 views
5

Estoy usando XSD2CODE con Visual Studio 2010. Sé que puedo hacer clic con el botón derecho en un archivo de esquema (XSD) y generar la clase C# desde él.Usando XSD2CODE con varios archivos de esquema

Lo que me gustaría saber es cómo puedo generar la clase C# cuando tengo dos archivos de esquema para un solo archivo XML?

Más información:

Tal vez no proporcionaron suficientes detalles en mi pregunta original.

Haciendo referencia a la pregunta Why does XSD.EXE Create Two .XSD Files, and How to Use Them?, básicamente estoy haciendo la misma pregunta para XSD2CODE en lugar de XSD.

Con XSD me gustaría utilizar el comando:

D:\>xsd response.xsd response_app1.xsd /classes

¿Cómo puedo hacer esto con XSD2CODE, tanto en la interfaz gráfica de usuario VS 2010 y/o la línea de comandos?

Respuesta

3

EDITAR:
Para responder a la pregunta actualizada, no parece que Xsd2Code se haya diseñado para manejar más de un archivo .xsd a la vez.

Deduzco esto desde:

  1. La línea de comandos de sintaxis
    Xsd2Code.exe <XSD File> [Namespace] [Output file name] [Options]
  2. Un vistazo rápido al código fuente (descarga construir 88331 de http://xsd2code.codeplex.com/SourceControl/list/changesets y mira en Trunk\Xsd2Code.Console\EntryPoint.cs

. Pascal Cabanel parece estar bastante activo en el sitio CodePlex de Xsd2Code. Considere ponerse en contacto con él para obtener una respuesta definitiva: http://www.codeplex.com/site/users/view/pcabanel

  • Dejaré mi anterior. contestar a continuación

Con el fin de crear automáticamente los archivos de clase xsd2Code de apoyo, puede hacer clic en el archivo .xsd en el Explorador de soluciones y en la ventana Propiedades, escriba/pegar Xsd2CodeCustomTool en la "Herramienta personalizada " propiedad.

Para "ver" tipos de datos de un archivo .xsd en el otro, puede usar una declaración include.

Aquí hay un ejemplo con Person.xsd que contiene una definición de datos y Employees.xsd include -ing Person.xsd y consume el tipo de datos Person.

  • Tenga en cuenta que dado que Employees.xsd ya incluye Person.xsd, solo tendrá que generar Xsd2Code for Employees.xsd.

Persona.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="CommonNamespace" 
      xmlns="CommonNamespace" 
    > 
    <xs:complexType name="Person"> 
     <xs:sequence> 
      <xs:element name="Name" type="xs:string"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:schema> 

Employees.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="CommonNamespace" 
      xmlns="CommonNamespace" 
    > 
    <xs:include schemaLocation="Person.xsd"/> 

    <xs:element name="Employees"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="Employee" type="Person" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

</xs:schema> 
+0

no entiendo cómo esto me ayuda con múltiples archivos de esquema – JonnyBoats

+0

pensé que la auto-generación de múltiples archivos era el problema. Actualicé mi respuesta. – AVIDeveloper

+0

AVIDeveloper - gracias por su actualización. Desafortunadamente, esto requeriría cambios en los archivos de esquema, algo que no es requerido por XSD. He actualizado la pregunta. – JonnyBoats

Cuestiones relacionadas