このページの2つのバージョン間の差分を表示します。
次のリビジョン
|
前のリビジョン
次のリビジョン
両方とも次のリビジョン
|
blog:2016:2016-04-13 [2016-04-13 17:26] Decomo 作成 |
blog:2016:2016-04-13 [2016-10-24 12:56] Decomo |
====== C#でローカルのDTDファイルを使うXMLリゾルバを作る ====== | ====== C#でローカルのDTDファイルを使うXMLリゾルバを作る ====== |
| |
以前、[[blog/2016/2016-02-24|C#でXmlDocumentを作る時にリゾルバでタイムアウトする]]と書いたが、ようやくローカルのDTDファイルを使ったXMLリゾルバが作れたので、コードをまるっと公開。尚、.NET Framework 4では殆ど同じことを行う''XmlPreloadedResolver''クラスが追加されているので、使えるならそっちを使うのが良い。悲しいかな、うちは.NET 3.5なのさ…… | 以前、[[2016-02-24|C#でXmlDocumentを作る時にリゾルバでタイムアウトする]]と書いたが、ようやくローカルのDTDファイルを使ったXMLリゾルバが作れたので、コードをまるっと公開。尚、.NET Framework 4では殆ど同じことを行う''XmlPreloadedResolver''クラスが追加されているので、使えるならそっちを使うのが良い。悲しいかな、うちは.NET 3.5なのさ…… |
| |
<code csharp> | <code csharp> |
AddDTD("xhtml-symbol.ent", @"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent", @"path/to/xhtml-symbol.ent"); | AddDTD("xhtml-symbol.ent", @"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent", @"path/to/xhtml-symbol.ent"); |
AddDTD("xhtml-special.ent", @"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent", @"path/to/xhtml-special.ent"); | AddDTD("xhtml-special.ent", @"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent", @"path/to/xhtml-special.ent"); |
| } |
| |
| ~DocTypeManager() |
| { |
| foreach (var pair in DTDStreamForURI) |
| { |
| pair.Value.Dispose(); |
| } |
} | } |
| |