Dentro de mi aplicación web, estoy validando documentos Xml utilizando archivos xsd como recursos integrados, y eso fue fácil usando assembly.GetManifestResourceStream(string)
.¿Cómo uso include en un xsd incrustado que hace referencia a otro xsd incrustado?
Ahora necesito usar el elemento include
(en realidad necesito redefine
, pero el error que consigo es la misma, por lo que estoy ampliando el alcance de la cuestión) dentro de una de mis de xsd referencia a otra xsd incorporado, por lo que lo lo que hice fue:
añadir las siguientes líneas a AssemblyInfo.cs del proyecto
[assembly: System.Web.UI.WebResource("TurniArc.xml.schema.ImportOperatoriParametri.xsd", "text/xml", PerformSubstitution = true)]
[assembly: System.Web.UI.WebResource("TurniArc.xml.schema.ProcessiInput.xsd", "text/xml", PerformSubstitution = true)]
modificado el elemento de "incluir" dentro "ImportOperatoriParametri.xsd" en esto:
<xs:include schemaLocation="<% = WebResource("TurniArc.xml.schema.ProcessiInput.xsd") %>">
Esta técnica funcionó cuando tenía que hacer referencia a una imagen incrustada de un CSS incrustado. Lamentablemente, aquí no es así, ya que el método GetManifestResourceStream lanza la excepción
'<', hexadecimal value 0x3C, is an invalid attribute character. Line 3, position 34.
Parece que no se ha establecido el atributo "PerformSubstition", porque está tratando de leer el atributo de schemaLocation como una cadena "regular".
¿Qué estoy haciendo mal? Gracias
+1 Muy útil, e importante, pregunta. –