2011-03-04 31 views
5

私のWebアプリケーションの中で、埋め込みリソースとしてxsdファイルを使ってXmlドキュメントを検証していますが、これはassembly.GetManifestResourceStream(string)を使って簡単でした。別の埋め込みxsdを参照する埋め込みxsdでインクルードを使用するにはどうすればよいですか?

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」内部「含む」要素:私が埋め込まれたCSSから埋め込まれた画像を参照しなければならなかった場合

    <xs:include schemaLocation="<% = WebResource("TurniArc.xml.schema.ProcessiInput.xsd") %>"> 
    

この技術は、働きました。 「通常の」文字列としてのschemaLocationの属性を読み込むしようとしているので、GetManifestResourceStreamメソッドは、それが「PerformSubstition」属性が設定されていないように思える例外

'<', hexadecimal value 0x3C, is an invalid attribute character. Line 3, position 34. 

をスローするので悲しいことに、ここでは、しません。

私は間違っていますか?ありがとうございました

+0

+1非常に有用で重要な質問です。 –

答えて

1

属性に二重引用符を間違って入れたようです。最も簡単なのは、外側のペアに一重引用符を使用することです。

<xs:include schemaLocation='<% = WebResource("TurniArc.xml.schema.ProcessiInput.xsd") %>'> 
+0

あなたは正しいですが、私はそれを逃しましたが、それは内部または外部の一重引用符で動作していません – Piddu

+0

まあ同じエラーメッセージ? – xan

+0

同じエラーメッセージ(なぜコメントは15文字以上でなければならないのですか?:-)私は簡単な答えで答えることができました) – Piddu

関連する問題