在我的Web应用程序中,我使用xsd文件作为嵌入资源验证Xml文档,使用assembly.GetManifestResourceStream(string)
很容易。
我现在需要使用include
元素(我实际上需要redefine
,但我得到的错误是相同的,所以我扩大了问题的范围)在我的一个xsd中引用另一个嵌入的xsd,所以我做的是:
将以下行添加到项目的AssemblyInfo.cs
中 [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)]
将“ImportOperatoriParametri.xsd”中的“include”元素修改为:
<xs:include schemaLocation="<% = WebResource("TurniArc.xml.schema.ProcessiInput.xsd") %>">
当我必须从嵌入式css引用嵌入图像时,此技术有效。遗憾的是,这里没有,因为GetManifestResourceStream方法抛出异常
'<', hexadecimal value 0x3C, is an invalid attribute character. Line 3, position 34.
似乎没有设置“PerformSubstition”属性,因为它试图将schemaLocation的属性读作“常规”字符串。
我做错了什么?谢谢
答案 0 :(得分:1)
看起来你在属性中错误地嵌套了双引号。最简单的是对外部对使用单引号。
<xs:include schemaLocation='<% = WebResource("TurniArc.xml.schema.ProcessiInput.xsd") %>'>