このページの2つのバージョン間の差分を表示します。
|
次のリビジョン
|
前のリビジョン
|
blog:2016:2016-04-13 [2016-04-13 17:26] Decomo 作成 |
blog:2016:2016-04-13 [2016-10-24 12:58] (現在) 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) |
| | { |
| | if (pair.Value != null) |
| | { |
| | pair.Value.Dispose(); |
| | } |
| | } |
| } | } |
| |