Pregunta

Creo que esto tiene que ver con keyref pero no estoy seguro, y estoy seguro de que realmente no se puede hacer nada.

Por ejemplo, decir que tengo myElement1 y myElement2. Si no hay myElement2 en el archivo XML, a continuación, myElement1 debe existir, por lo demás es opcional.

¿Hay alguna manera de forzar este tipo de validación en mi archivo XSD?

¿Fue útil?

Solución

Preguntas similares se han preguntado varias veces .. en stackoverflow o cualquier blogs de tecnología ..

pero la respuesta es siempre No es posible


casos como:

(a) validar elemento en función del valor o la presencia de cualquier otro elemento / atributo
valor (b) la validación de un elemento en función del valor o la presencia de cualquier otro elemento / atributo
(C) la validación de atributo en función del valor o la presencia de cualquier otro elemento / atributo
(D) definir elementos / atributos de mismo nombre que tiene diferentes tipos / DataTypes bajo mismo alcance
(E) validación de elementos secundarios sobre la base del valor o presencia de cualquier otro Elements / Atributos

todos los casos mencionados anteriormente no son posibles de alcanzar ..

pero si se puede poner en práctica algo transformación .. entonces se puede obtener ayuda. lo que yo quiero decir es "ir primero a través de la transformación y modificar el código XML como por su exigencia,

:: ejemplo, si se espera que el campo en particular con algún valor .. pasar el XML como es si la condición se cumple y no pasa si no lo hace .. en el siguiente bloque XSD va a validar y, obviamente, los errores hacia fuera :) usted puede darse cuenta de que se echa en falta su validación personalizada ..

de todas formas la intención es bloque o Pass del XML de acuerdo con los datos .. y eso es lo que está haciendo ..

Nota: Schematron se ha llegado en buenas prácticas recientemente! Aquí está el tutorial: http://zvon.org/xxl/SchematronTutorial/General/contents. html

Otros consejos

Lo que sugeriría es crear XSD para cada uno de los casos se definen a continuación:

Casos como:

  1. Validando elemento en función del valor o la presencia de cualquier otro elemento / atributo.
  2. Validación de valor de un elemento en función del valor o la presencia de cualquier otro elemento / atributo.
  3. atributo Validando en función del valor o la presencia de cualquier otro elemento / atributo.
  4. Haciendo caso omiso de elementos (aleatorio) / atributos de validación no está permitido. (Quiero decir es el uso de tiene restricciones.)
  5. Elementos / atributos de mismo nombre que tiene diferentes DataTypes.
  6. Validación de elementos secundarios sobre la base del valor o la presencia de cualesquiera otros elementos / atributos.

y crear allí propio XML para eso.

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