la validación de esquemas XML ignora cuando se habilita la conformidad a nivel de fragmento?

StackOverflow https://stackoverflow.com/questions/3632767

  •  26-09-2019
  •  | 
  •  

Pregunta

Desde mi estancia con XML y la validación de esquema, parece que cuando fragment- conformidad con el nivel está habilitado para una XMLReader ejemplo, la fuente XML deja de ser validado en contra de cualquier incluido esquemas.

Sin embargo no puedo verificar esto en la documentación de MSDN, ya que no parece describir el comportamiento esquema XSD a la luz del nivel de conformidad. También si Asumo este problema es verdad, no puedo encontrar una solución para ello.

Me gustaría saber cómo validar un XML fragmento en contra de un esquema XSD.

En mi caso estoy en contra de la validación de XHTML estricto esquema 1 . Por el hecho obsoleto etiquetas HTML, como

no están siendo marcado como no válido, esto es parte de la razón por la que creo fragmento de conformidad ignora esquema. También cuando utilizo la conformidad de nivel de documento en el mismo escenario, los errores de validez se marcan con éxito.

Para un ejemplo de código del tipo de escenario de validación estoy usando sede este .

¿Fue útil?

Solución

Creo que he encontrado la respuesta en este artículo MSKB curiosamente titulado ¿CÓMO a: Validar XML fragmentos contra un esquema XML en Visual C # .NET La parte inferior de los estados del artículo:

  

NOTA: sólo el tipo de declaraciones y   los elementos de nivel superior en el XML   esquema se validan con un XML   esquema. Subelementos son considerados como   local y por lo tanto no puede ser   validados. Con el fin de validar una   subelemento, declarar un alto nivel   elemento y se refieren a eso.

Creo que hay un error en ese párrafo y la intención es top-level elements in the XML estado schema document/fragment are validated against an XML Schema

Debido a que el ejemplo de código Microsoft comienza su fragmento en el nivel superior (en lugar de forma arbitraria dentro de un documento) funciona con la validación. Sin embargo, en mi caso estoy tomando una construcción de mediados del documento.

Me correcta si mi interpretación es errónea.


Solución / solución

Una solución es para mí para rellenar mi fragmentos dentro de un elemento de nivel superior con el propósito de validación.

En otras palabras, si estoy tratando con el fragmento XHTML:

<div>MY FRAGMENT</div>

Me puede envolver para su validación a es conforme al esquema estricto XHTML como:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML fragment enclosed, conforming to XHTML 1.0 Strict Template.</title>
</head>
<body>

    <div>MY FRAGMENT</div>

</body>
</html>

Esta solución funciona para mí, así que voy a usar en el ínterin; si o no existe una solución mejor no estoy seguro todavía.

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