2009-04-24 10 views
11

He estado buscando una manera de hacer una validación más avanzada de reglas comerciales de documentos XML. Hasta ahora Schematron parece ser capaz de hacer, lo que necesito.Validación XML con Schematron/XSD en C#

He estado mirando a mi alrededor, y las pocas bibliotecas que he encontrado eran muy antiguas y aparentemente ya no son compatibles. ¿Estaba Schematron solo "caliente" en 2002? ¿Hay bibliotecas que puedan hacer la validación en C#, o cómo lo hago?

¿O hay otros que pueden hacer la validación avanzada y tienen bibliotecas C# y están estandarizados?

+1

Sé que esta es una * vieja * pregunta, pero: ¿alguna vez encontró una solución? Ahora me encuentro en esta situación: uso XSD para la validación de esquemas, pero me gustaría usar un enfoque como Schematron para reglas de negocios. De hecho, no lo sabía hasta que comencé a investigar "hacer mi propio validador XSLT", y preferiría simplemente usar un validador de salida, si existe una implementación práctica de Schematron (u otra). –

Respuesta

13

Por lo que vale la pena, esto ha sido mi experiencia ...

que he tenido momentos en los que me gustaría esquemas podrían hacer más en la línea de la validación de reglas de negocio. Sin embargo, en mi experiencia, un esquema está ahí para definir un contrato de datos (formato, tipos, etc.) ... NO para hacer cumplir las reglas comerciales. Tratar de hacerlo más que eso se encuentra con toda clase de problemas y puede ser la razón por la cual Schematron parece haber perdido popularidad (posiblemente una mala suposición de que no puedo hacer copias de seguridad).

Para evitar esto, se puede hacer generalmente un enfoque de dos pasos:

  • validar el XML tipos de estructura/de datos, etc usando la validación del esquema.
  • Aplicar la comprobación de las reglas comerciales frente al xml (en el código C# normal).

Entiendo si usted quiere hacer un enfoque integral de la validación, pero intentar usar el esquema para esto causa más dolores de cabeza en el largo plazo. Al final, terminará teniendo un control más preciso sobre la verificación de su regla de negocios al aislar el código.

+5

Vale mucho la pena ! He tenido algunos de los mismos pensamientos, pero el problema no es tanto que necesite un enfoque todo en uno, es que necesito un "paquete de validación" que se pueda compartir entre muchas aplicaciones, muchas de las cuales no soy el afiliado con. Entonces, es más la necesidad de algún tipo de estándar abierto para la validación de reglas comerciales en XML. – asgerhallas

+0

Esto es exactamente lo que hice después de jugar con Schematron después de meses. –

+5

También vale la pena señalar que Schematron ahora es un estándar ISO. –

Cuestiones relacionadas