Pregunta

Había una vez tuve un tipo de documento válido y XML válido. Pongo la antigua en la parte superior de este último, CNTRL-s'd y he aquí: todo era como todos deberían ser. Hoy en día tengo un esquema válido (hecha a la medida para mi sigue siendo válido XML). Hice lo mismo método probado y verdadero -. Pero por desgracia, sin éxito

consigo diferentes errores con cada validador diferente que uso, y sin embargo nuevos errores de los navegadores de enviarla a (pero que tiene sentido). Así que no estoy seguro de lo que debería dar para ser más útiles. Validome dice:

  

No se puede encontrar la declaración de 'xs: schema' elemento.

y

  

El marcado en el documento siguiendo el elemento raíz debe ser bien formado.

(pero lo es!)

Si que sería útil contar con el XML y el esquema, por favor no dude en preguntar , pensé que ya que ambos son válidos W3 y largo, me gustaría tratar de dejarlos fuera primero. Todo lo que hago es poner el esquema en la parte superior del XML y enviarlo a través del validador / navegador.

Gracias!

¿Fue útil?

Solución

@Nona Un esquema es un documento bien formado y también lo es su instancia. Si, sin embargo, que los concatena el resultado ya no es bien formado.

Si lo que tienes es:

<xs:schema ...>...</xs:schema>
<myxml ...>...</myxml>

esto no está bien formado (sin elemento raíz individual)

La razón por la cual el enfoque DTD es diferente es que el subconjunto interno se permite específicamente para ser antepuesto al elemento raíz. Por lo tanto:

<DOCTYPE myxml [
... my DTD ...
]>
<myxml ...>...</myxml>

está bien formado.

Por desgracia, no es completamente trivial para asociar un esquema con una instancia. Es posible que tenga que mirar xsi:schema-location.

Actualizar Por desgracia, la respuesta dependerá de la estructura de software que utilice. Que yo sepa no hay manera de empaquetar un documento y un esquema de tal manera que cualquier software aceptará y tratará de validar. Es por esto que los esquemas son mucho más esfuerzo que las DTD.

Este es un sitio simple donde se pueden presentar los dos documentos y prueba.

Cualquier cosa más allá de que puede necesitar un conocimiento del software. Habrá diferentes enfoques en función de si está utilizando Oracle, Microsoft, etc. Esto se puede hacer llamando a los métodos para cargar el documento, cargar el esquema y luego validar, o el establecimiento de propiedades (como se puede hacer en Xerces).

La respuesta puede depender de por qué está haciendo esto. Si usted está enviando documentos al propietario del esquema entonces se tratarían tener un sistema de validación. Si usted tiene que valiadte contra el esquema de otra persona, entonces usted tendrá que obtener el software y ejecutar este schemavalidation. ¿Estás en MS o Unix / Java?

Actualizar Sugerir ¿Cuál es la mejor manera de validar un archivo XML con un archivo XSD? Como se suele decir no hay un enfoque ultra-simple.

Otros consejos

Sólo una puñalada en la oscuridad, pero es lo que tiene el prefijo de espacio de nombres XML Schema declarado en el elemento raíz? Es xmlns: xs = "http://www.w3.org/2001/XMLSchema". Si un prefijo de espacio de nombres no está vinculado a un nombre de espacio de nombres, el documento no es válido.

A riesgo de afirmar lo obvio, es posible que desee considerar razones por las cuales la declaración de elemento XS: esquema no puede ser encontrado por el validador.

El segundo error sugiere que hay un soporte en ángulo que falta alguna parte, o que hay algunos elementos que no están anidados correctamente.

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