la validación de esquemas XML ignora cuando se habilita la conformidad a nivel de fragmento?
-
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
Para un ejemplo de código del tipo de escenario de validación estoy usando sede este .
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.