\section{\module{xml.sax.saxutils} ---
         SAX ユーティリティ}

\declaremodule{standard}{xml.sax.saxutils}
\modulesynopsis{SAX とともに使う有用な関数とクラスです。}
\sectionauthor{Martin v. L\"owis}{loewis@informatik.hu-berlin.de}
\moduleauthor{Lars Marius Garshol}{larsga@garshol.priv.no}

\versionadded{2.0}


モジュール \module{xml.sax.saxutils} には SAX アプリケーションの作成に
役立つ多くの関数やクラスも含まれており、直接利用したり、基底クラスとし
て使うことができます。

\begin{funcdesc}{escape}{data\optional{, entities}}
  文字列データ内の \character{\&}、\character{<}、\character{>} をエス
  ケープします。

  オプションの \var{entities} パラメータに辞書を渡すことで、そのほ
  かの文字をエスケープさせることも可能です。辞書のキーと値はすべて文字列
  で、キーに指定された文字は対応する値に置換されます。
\end{funcdesc}

\begin{funcdesc}{unescape}{data\optional{, entities}}
  エスケープされた文字列 \character{\&amp;}、\character{\&lt;}、
  \character{\&gt;} を元の文字に戻します。

  オプションの \var{entities} パラメータに辞書を渡すことで、そのほ
  かの文字をエスケープさせることも可能です。辞書のキーと値はすべて文字列
  で、キーに指定された文字は対応する値に置換されます。
  \versionadded{2.3}
\end{funcdesc}

\begin{funcdesc}{quoteattr}{data\optional{, entities}}
  \function{escape()} に似ていますが、\var{data} は属性値の作成に使わ
  れます。戻り値はクォート済みの \var{data} で、置換する文字の追加も可
  能です。\function{quoteattr()} はクォートすべき文字を \var{data} の
  文脈から判断し、クォートすべき文字を残さないように文字列をエンコード
  します。

  \var{data} の中にシングル・クォート、ダブル・クォートがあれば、両方
  ともエンコードし、全体をダブルクォートで囲みます。戻り値の文字列はその
  ままで属性値として利用できます。:

\begin{verbatim}
>>> print "<element attr=%s>" % quoteattr("ab ' cd \" ef")
<element attr="ab ' cd &quot; ef">
\end{verbatim}

  この関数は参照具象構文を使って、 HTML や SGML の属性値を生成するのに
  便利です。
  \versionadded{2.2}
\end{funcdesc}

\begin{classdesc}{XMLGenerator}{\optional{out\optional{, encoding}}}
  このクラスは \class{ContentHandler} インターフェースの実装で、SAX イ
  ベントを XML ドキュメントに書き戻します。つまり、
  \class{XMLGenerator} をコンテント・ハンドラとして用いると、パースし
  たオリジナル・ドキュメントの複製が作れるのです。\var{out} に指定する
  のはファイル風のオブジェクトで、デフォルトは \var{sys.stdout} です。
  \var{encoding} は出力ストリームのエンコーディングで、デフォルトは
  \code{'iso-8859-1'} です。
\end{classdesc}

\begin{classdesc}{XMLFilterBase}{base}
  このクラスは \class{XMLReader} とクライアント・アプリケーションのイ
  ベント・ハンドラとの間に位置するものとして設計されています。デフォル
  トでは何もせず、ただリクエストをリーダに、イベントをハンドラに、それ
  ぞれ加工せず渡すだけです。しかし、サブクラスでメソッドをオーバーライ
  ドすると、イベント・ストリームやリクエストを加工してから渡すように変
  更可能です。
\end{classdesc}

\begin{funcdesc}{prepare_input_source}{source\optional{, base}}
  この関数は引き数に入力ソース、オプションとして URL を取り、読み取り
  可能な解決済み \class{InputSource} オブジェクトを返します。入力ソー
  スは文字列、ファイル風オブジェクト、\class{InputSource} のいずれでも
  良く、この関数を使うことで、パーサは様々な \var{source} パラメータを
  \method{parse()} に渡すことが可能になります。
\end{funcdesc}
