2011-06-26 23 views
12

Tengo problemas para aprender el propósito de los documentos XSD y me gustaría tener una explicación o un enlace a un recurso decente. He estado leyendo varios sitios web durante un par de horas y no he encontrado nada que explique el "panorama general".¿Cuándo deberían usarse los archivos XSD?

En concreto, me gustaría saber:

  1. ¿Cuándo se necesita un XSD? ¿Por qué usarías uno?
  2. ¿Qué ventajas ofrece una XSD? ¿Cuáles son las alternativas?

Por lo que entiendo hasta ahora, básicamente describe una estructura de clase en formato XML. Pero, ¿qué haces con eso en ese momento? ¿Se usa durante la compilación? ¿Se usa para que pueda guardar instancias de clases en un documento XML más fácilmente?

Tengo problemas para ver por qué necesitaría describir una clase en un archivo XML, cuando podría simplemente usar el archivo de código. Lo primero que pensé fue que de alguna manera el XSD se carga en tiempo de ejecución, y permitiría a los usuarios modificarlo sobre la marcha, pero eso realmente no tiene sentido porque si se agrega un objeto, no hay forma de referenciarlo en el resto de el código.

Además, ¿es posible describir funciones en un documento XSD/XML?

Gracias de antemano.

+0

Está describiendo un uso extremadamente limitado y limitado de los archivos de esquema XML. Por favor, vuelva a redactar el título de su pregunta y las etiquetas para referirse a los usos específicos a los que se refiere. – skaffman

+0

Más sobre XSD http://stackoverflow.com/questions/3403644/what-is-the-purpose-of-xsd-files – pramodc84

Respuesta

5

XSD le permite definir objetos de esquema. Hay muchas herramientas que toman xsd como entrada y generan clases para esos objetos. Muchas de estas herramientas también generan Marshalling/Unmarshalling - (convirtiendo objetos a xml y viceversa) además de solo las clases de objetos de valor simple. Hay muchas aplicaciones que necesitan convertir instancias de objetos en memoria a representación xml e inversa y sin un xsd y una herramienta adecuada que necesitaría escribir el código de conversión para cada objeto a mano, que puede ser propenso a errores y/o puede ser muy costoso dependiendo de la cantidad de clases en su dominio. La representación xml de un objeto puede no ser válida también si proviene de una fuente externa, tener un xsd puede validar estos y le permite desasignarlos a instancias de objeto.

Para más información, ver

Castor/XML Beans etc para java

herramienta XSD.exe para Microsoft Tech.

1

1) De http://en.wikipedia.org/wiki/XML_Schema_(W3C):

Como todos los lenguajes de esquema XML, XSD se puede utilizar para expresar un conjunto de normas a las que un documento XML debe ajustarse con el fin de ser considerados 'válidos' de acuerdo con ese esquema .

Ejemplo: Tenemos un diseño de archivo XML, que describe un examen. Preguntas, tipos de preguntas, respuestas, puntos, etc. Para asegurarse de que cada archivo de examen que usamos en los exámenes reales funciona como se espera, los validamos contra un XSD.

2) Para obtener una lista de, por ejemplo) esquemas alternativos (DTD y sus características, echar un vistazo a estas diapositivas:

2

Copia desde W3Schools:

"

El propósito de un esquema XML es definen los bloques de construcción legales de un documento XML , al igual que una DTD.

un esquema XML:

- defines elements that can appear in a document 
- defines attributes that can appear in a document 
- defines which elements are child elements 
- defines the order of child elements 
- defines the number of child elements 
- defines whether an element is empty or can include text 
- defines data types for elements and attributes 
- defines default and fixed values for elements and attributes 

"

En la práctica, se define el XML que es válido para un propósito determinado - lado a otro ejemplo, un desarrollador del sistema se puede utilizar para definir lo que consitutes una válida Archivo XML para ingresar a su sistema.

+0

Solo déjalo aquí: http://w3fools.com/ – miku

1

Los XSD son documentos que especifican la estructura de un documento XML y ayudan en su validación. La alternativa a estos son los archivos DTD. Estos archivos se utilizan principalmente para documentos html.

2

Parece que se ha sentido confundido acerca de un aspecto único de XML Schema: su uso como entrada para XSD.EXE o alguna otra herramienta que puede hacer algo similar. XSD.EXE consume un archivo de esquema XML y puede producir un conjunto de clases .NET que se pueden serializar en XML que se validarán con el esquema.

Esta es una caja de esquina de una caja de esquina.

13

Su habla de "archivos de clase" y "estructura de clases" sugiere que usted está pensando en su estructura de datos tal como se define principalmente por las estructuras de datos del lenguaje de programación - es decir, usted está tomando un punto de vista de programación centrada en lugar de un Data- vista céntrica Eso es más bien perder el punto de XML, que comienza desde el punto de vista de que si las aplicaciones (especialmente las aplicaciones que se desarrollan independientemente) deben intercambiar datos de manera efectiva, entonces el diseño de los datos debe ser independiente del diseño de las aplicaciones. Este "diseño de los datos" a menudo se expresa en un esquema (ya sea un esquema XSD u otro tipo), y representa un contrato entre las aplicaciones que se comunican (del mismo modo que el RFC822 define los datos que debe manejar una aplicación de correo electrónico). Al validar los datos con el esquema, las aplicaciones pueden estar seguras de que lo que se envían está de acuerdo con la especificación acordada.

+0

+1 Gracias por la visión. Tienes razón, he estado pensando estrictamente desde el punto de vista de la programación. Supongo que estoy demostrando mi inexperiencia. Ojalá pudiera aceptar esto como la respuesta. Desafortunadamente, esto no "responde" exactamente la pregunta que originalmente hice, pero definitivamente me ha dado algo en qué pensar. Muchas gracias. – Eric

Cuestiones relacionadas