2008-09-26 34 views
5

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 grupo creen que debemos mantener los XML ad hoc y no tratarlos como "tipos".¿Cuáles son las ventajas y desventajas de usar esquemas XML?

Los XML son un esfuerzo para llevar la estructura y la centralidad a una serie de archivos de configuración de texto que son una pesadilla de mantenimiento.

Estamos utilizando .NET 3.5/C# y nuestras tablas están diseñadas con los tipos de datos adecuados. Mi argumento es que ya estamos "orientados a tipos" en nuestro pensamiento sobre por qué se rompe ese enfoque porque es XML. Es debido a la falta de tipos con los archivos de texto que ocurrió el problema original. No utilizar un enfoque de "tipos" nos deja abiertos al mismo problema.

Puede ser mi comprensión de los beneficios de los esquemas XML son incorrectos. ¿Cuáles son las ventajas y desventajas de usar esquemas XML?

Respuesta

2

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

Uno de los mayores costos de XML es que se debe analizar mediante cadenas. Cuantas más suposiciones pueda hacer sobre sus archivos XML (por ejemplo, su estructura), mejor será su rendimiento.

Por lo tanto, en última instancia, como muchas cosas, es suficiente la necesidad de beneficios de rendimiento para justificar los costos en tiempo de desarrollador. ¿O hay un deseo lo suficientemente fuerte de utilizar sistemas tipados estáticamente para justificar el costo de escribir el XSD?

En última instancia, las necesidades de su proyecto dictarán lo que debe hacer, pero el tipado estático y el rendimiento son los principales beneficios a tener en cuenta.

2

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 te importa qué tipo de aporte recibes, solo quieres información.

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

+2

Si no dijiste, iba a hacerlo. ¡XML sin Schema, es solo texto simple! – leppie

1

Una gran ventaja del uso de esquemas es que ayuda a garantizar que todos en el proyecto se pongan de acuerdo sobre cómo se debe diseñar 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 parte de un código falla porque se le ha dado algún XML incorrecto.

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

1

Si no tiene un esquema, terminará por volver a implementar toda la validación usted mismo (o no validar en absoluto y fallar en la entrada no válida). Los analizadores/validadores XSD hacen todo el trabajo por usted, y son optimizados y depurados por expertos en su dominio. ¿Por qué volverías a hacer todo ese trabajo tú mismo?

2

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 verboso, si puedo decirlo. Y a veces es realmente un desastre describir una estructura compleja, con contenido condicional.

Afortunadamente, 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 se podría imaginar con XSD.

1

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

0

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

Cuestiones relacionadas