Pregunta

Estamos utilizando el tipo de datos XML en Microsoft SQL Server 2005 para un proyecto. Algunos miembros del equipo y yo sentimos que también deberíamos usar XSD, mientras que los miembros del otro campamento creen que deberíamos mantener los XML ad hoc y no tratarlos como "tipos".

Los XML son un esfuerzo por aportar estructura y centralidad a varios archivos de configuración de texto que son una pesadilla de mantenimiento.

Estamos usando .NET 3.5 / C # y nuestras tablas están diseñadas con los tipos de datos apropiados. Mi argumento es que ya estamos orientados a los tipos. en nuestro pensamiento por qué romper ese enfoque porque es XML. Debido a la falta de tipos con los archivos de texto, se produjo el problema original. No usar un " tipos " enfoque nos deja abiertos al mismo problema.

Puede ser que entiendo que los beneficios de los esquemas XML son incorrectos. ¿Cuáles son las ventajas y desventajas de usar esquemas XML?

¿Fue útil?

Solución

Desafortunadamente, incluso el cuerpo autor de XSD (W3C) entiende que XSD es una tecnología bastante mala. Dicho esto, su intención no es necesariamente mala. Uno de los principales beneficios de C # es que está tipificado estáticamente. Escribir estáticamente sus documentos XML les brinda los mismos beneficios. Lo que probablemente sea mejor aquí es realizar ingeniería inversa en sus clases para producir el esquema utilizando los atributos de serialización XML. Cuando haga esto, C # creará un lector de datos personalizado para su archivo XML que mejorará drásticamente el rendimiento.

Uno de los mayores costos de XML es que debe analizarse en cadena. Cuantos más supuestos pueda hacer sobre sus archivos XML (por ejemplo, su estructura), mejor será su rendimiento.

Así que, en última instancia, como muchas cosas, es una necesidad suficiente de beneficios de rendimiento para justificar los costos en el tiempo del desarrollador. ¿O hay un deseo lo suficientemente fuerte de utilizar sistemas con tipos estáticos para justificar el costo de escribir el XSD.

Finalmente, las necesidades de su proyecto dictarán lo que debe hacer, pero la tipificación estática y el rendimiento son los principales beneficios a tener en cuenta.

Otros consejos

Mantener un repositorio de XML sin un XSD es similar (en mi opinión) a tener una base de datos donde todos los tipos se declaran como VARCHAR (n). No le importa qué tipo de información recibe, solo desea información.

Los XSD aseguran que sus XML tengan el tipo de entrada que espera. Le dan estructura a su modelo, lo que está buscando.

Bueno, como se dijo en las otras publicaciones y en la pregunta, XSD se asegurará de que esté utilizando el tipo correcto en el lugar correcto en su XML y que tendrá que pensar dos veces antes de cambiar su estructura.

Pero XSD es realmente demasiado detallado, si puedo decirlo. Y a veces es realmente un mensaje describir una estructura compleja, con contenido condicional.

Con suerte, XSD no es la única forma de validar un XML, un enfoque mucho más simple es usar RelaxNG , y especialmente su sintaxis compacta, que es realmente más legible de lo que puedas imaginar con XSD.

Una gran ventaja de usar esquemas es que ayuda a asegurar que todos en el proyecto estén de acuerdo en cómo se debe presentar un documento XML. Además, mediante el uso de esquemas, puede habilitar la validación en su analizador XML, lo que facilita saber cuándo falla algún fragmento de código porque se le da un XML incorrecto.

En el lado negativo, mantener esquemas puede ser una molestia, y puede que no valga la pena el esfuerzo dependiendo de su proyecto.

Si no tiene un esquema, terminará reimplementando toda la validación usted mismo (o no validando en absoluto y bloqueando una entrada no válida). Los analizadores / validadores XSD hacen todo ese trabajo por usted, y están optimizados y depurados por expertos en su dominio. ¿Por qué rehacerías todo ese trabajo tú mismo?

Los XSD no son el único esquema XML disponible. Utilice http://relaxng.org/ en su lugar. RelaxNG le permite expresar el esquema en XML, en lugar de tener que aprender otro lenguaje de datos. como lo hacen los XSD.

la razón importante para el desarrollo de XML es que permite el uso de datos de más fuentes y de más maneras, ya que se ha convertido en un estándar ampliamente aceptado para el intercambio de datos entre cualquier número de sistemas informáticos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top