Herramienta Definición de esquemas XML (Xsd.exe)

Esta herramienta genera clases de esquemas XML o de Common Language Runtime a partir de archivos XDR, XML y XSD, o a partir de clases de un ensamblado de motor de tiempo de ejecución.

xsd file.xdr [/outputdir:directory]
xsd file.xml [/outputdir:directory]
xsd file.xsd {/classes | /dataset} [/element:element]
             [/language:language] [/namespace:namespace]
             [/outputdir:directory] [URI:uri]
xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename [...]]
Argumento Descripción
file.extension Archivo de entrada que se desea convertir. El argumento extension ha de ser alguna de las extensiones siguientes: .xdr, .xml, .xsd, .dll o .exe.

Si se especifica un archivo de esquema XDR (extensión .xdr), Xsd.exe convierte el esquema XDR en un esquema XSD. El archivo de resultados tiene el mismo nombre que el del esquema XDR, pero con la extensión .xsd.

Si se especifica un archivo XML (extensión .xml), Xsd.exe deduce, por los datos del archivo, que se trata de un esquema y genera un esquema XSD. El archivo de resultados tiene el mismo nombre que el archivo XML, pero con la extensión .xsd.

Si se especifica un archivo de esquema XML (extensión .xsd), Xsd.exe genera código fuente para objetos de motor de tiempo de ejecución que corresponden al esquema XML.

Si se especifica un archivo de ensamblado de motor de tiempo de ejecución (extensión .exe o .dll), Xsd.exe genera esquemas para uno o más tipos de ese ensamblado. Se puede utilizar la opción /type para especificar los tipos para los que se generan esquemas. Los esquemas de salida se denominan schema0.xsd, schema1.xsd, etc. Xsd.exe genera varios esquemas sólo si los tipos dados especifican un espacio de nombres utilizando el atributo personalizado XMLRoot.

Opciones generales

Opción Descripción
/h[elp] Muestra la sintaxis de comandos y opciones para la herramienta.
/o[utputdir]:directory Especifica el directorio de los archivos de resultados. Este argumento sólo puede aparecer una vez. El valor predeterminado es el directorio actual.
/? Muestra la sintaxis de comandos y opciones para la herramienta.

Opciones de archivos XSD

Se debe especificar sólo una de las opciones siguientes de archivos .xsd.

Opción Descripción
/c[lasses] Genera clases que corresponden al esquema especificado. Para leer datos XML del objeto, se debe utilizar el método System.XML.Serialization.XMLSerializer.Deserializer.
/d[ataset] Genera una clase derivada de DataSet que corresponde al esquema especificado. Para leer datos XML de la clase derivada, se debe utilizar el método System.Data.DataSet.ReadXml.

También se puede especificar cualquiera de las opciones siguientes de archivos .xsd.

Opción Descripción
/e[lement]:elemento Especifica el elemento del esquema para el que se genera código. De forma predeterminada se escriben todos los elementos. Este argumento se puede especificar varias veces.
/l[anguage]:lenguaje Especifica el lenguaje de programación que se utiliza. Elija entre CS (C#; valor predeterminado), VB (Visual Basic), JS (JScript) o VJS (Visual J#). También se puede especificar un nombre completo para una clase que implementa System.CodeDom.Compiler.CodeDomProvider.
/n[amespace]:espacio de nombres Especifica el espacio de nombres del motor de tiempo de ejecución para los tipos generados. El espacio de nombres predeterminado es Schemas.
/u[ri]:uri Especifica el identificador URI de los elementos del esquema para el que se genera código. Este identificador URI, si existe, se aplica a todos los elementos especificados con la opción /element.

Opciones de archivos DLL y EXE

Opción Descripción
/t[ype]:typename Especifica el nombre del tipo para el que se crea un esquema. Se pueden especificar varios argumentos de tipo. Si el argumento typename no especifica un espacio de nombres, Xsd.exe busca todos los tipos del ensamblado con el tipo especificado. Si el argumento typename especifica un espacio de nombres, sólo se busca ese tipo. Si el argumento typename termina con un asterisco (*), la herramienta busca todos los tipos que empiezan con la cadena que precede a este carácter. Si se omite la opción /type, Xsd.exe genera esquemas para todos los tipos del ensamblado.

Comentarios

Xsd.exe realiza las operaciones de conversión siguientes:

  • XDR en XSD
    Genera un esquema XML a partir de un archivo de esquema reducido de datos XML. XDR es un formato de esquemas anterior basado en XML.
  • XML en XSD
    Genera un esquema XML a partir de un archivo XML.
  • XSD en DataSet
    Genera clases DataSet de Common Language Runtime a partir de un archivo de esquema XSD. Las clases generadas proporcionan un modelo de objetos completo para datos XML regulares.
  • XSD en clases
    Genera clases de motor de tiempo de ejecución a partir de un archivo de esquema XSD. Las clases generadas se pueden utilizar conjuntamente con System.XML.Serialization.XMLSerializer para leer y escribir código XML que sigue al esquema.
  • Clases en XSD
    Genera un esquema XML a partir de un tipo o tipos de un archivo de ensamblado de motor de tiempo de ejecución. El esquema generado define el formato XML utilizado por System.XML.Serialization.XMLSerializer.

Xsd.exe sólo permite manipular esquemas XML que siguen al lenguaje de definición de esquemas XML (XSD) propuesto por el consorcio World Wide Web (W3C). Para obtener más información sobre la propuesta XSD (lenguaje de definición de esquemas XML) o la norma XML, vea http://w3.org.

Ejemplos

El comando siguiente genera un esquema XML a partir de myFile.xdr y lo guarda en el directorio actual.

xsd myFile.xdr 

El comando siguiente genera un esquema XML a partir de myFile.xml y lo guarda en el directorio especificado.

xsd myFile.xml/outputdir:myOutputDir

El comando siguiente genera un objeto DataSet que corresponde al esquema especificado en el lenguaje C#, y lo guarda como XSDSchemaFile.cs en el directorio actual.

xsd /dataset /language:CS XSDSchemaFile.xsd

El comando siguiente genera esquemas XML para todos los tipos del ensamblado myAssembly.dll, y los guarda como schema0.xsd en el directorio actual.

xsd myAssembly.dll

Vea también

Herramientas de .NET Framework | DataSet (Clase) | System.XML.Serialization.XMLSerializer.Deserializer | System.Xml.Serialization.XMLSerializer