"xml.sax.saxutils" --- SAX 유틸리티
***********************************

**소스 코드:** Lib/xml/sax/saxutils.py

======================================================================

The module "xml.sax.saxutils" contains a number of classes and
functions that are commonly useful when creating SAX applications,
either in direct use, or as base classes.

xml.sax.saxutils.escape(data, entities={})

   data 문자열에 있는 "'&'", "'<'" 및 "'>'"를 이스케이프 합니다.

   딕셔너리를 선택적 *entities* 매개 변수로 전달하여 data의 다른 문자
   열을 이스케이프 할 수 있습니다. 키와 값은 모두 문자열이어야 합니다;
   각 키는 해당 값으로 치환되게 됩니다. 문자 "'&'", "'<'" 및 "'>'"는
   *entities*가 제공되더라도 항상 이스케이프 됩니다.

   참고:

     This function should only be used to escape characters that can't
     be used directly in XML. Do not use this function as a general
     string translation function.

xml.sax.saxutils.unescape(data, entities={})

   data 문자열에 있는 "'&amp;'", "'&lt;'" 및 "'&gt;'"를 역 이스케이프
   합니다.

   You can unescape other strings of data by passing a dictionary as
   the optional *entities* parameter.  The keys and values must all be
   strings; each key will be replaced with its corresponding value.
   "'&amp;'", "'&lt;'", and "'&gt;'" are always unescaped, even if
   *entities* is provided.

xml.sax.saxutils.quoteattr(data, entities={})

   "escape()"와 비슷하지만, *data*가 어트리뷰트 값으로 사용되도록 준비
   합니다. 반환 값은 추가로 필요한 치환이 적용된 *data*의 따옴표 붙은
   버전입니다. "quoteattr()"는 *data*의 내용에 따라 인용 부호 문자를
   선택하여 가능하면 문자열의 인용 부호 문자를 인코딩하지 않습니다. 작
   은따옴표와 큰따옴표가 모두 *data*에 이미 있으면, 큰따옴표 문자가 인
   코딩되고, *data*는 큰따옴표로 묶입니다. 결과 문자열은 어트리뷰트 값
   으로 직접 사용할 수 있습니다:

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

   이 함수는 참조 구상 문법(reference concrete syntax)을 사용하여 HTML
   이나 모든 SGML을 위한 어트리뷰트 값을 생성할 때 유용합니다.

class xml.sax.saxutils.XMLGenerator(out=None, encoding='iso-8859-1', short_empty_elements=False)

   이 클래스는 SAX 이벤트를 다시 XML 문서에 쓰는 방식으로
   "ContentHandler" 인터페이스를 구현합니다. 다시 말해, "XMLGenerator"
   를 내용 처리기로 사용하면 구문 분석 중인 원본 문서를 재생산합니다.
   *out*은 파일류 객체 여야하고, 기본값은 *sys.stdout*입니다.
   *encoding*은 출력 스트림의 인코딩이고, 기본값은 "'iso-8859-1'"입니
   다. *short_empty_elements*는 내용이 없는 엘리먼트의 형식을 제어합니
   다: "False"(기본값)는 시작/끝 태그 쌍으로 출력하고, "True"로 설정하
   면 하나의 스스로 닫힌 태그를 출력합니다.

   버전 3.2에서 변경: *short_empty_elements* 매개 변수를 추가했습니다.

class xml.sax.saxutils.XMLFilterBase(base)

   이 클래스는 "XMLReader"와 클라이언트 응용 프로그램의 이벤트 처리기
   사이에 위치하도록 설계되었습니다. 기본적으로, 이것은 요청을 입력기
   에 전달하고 이벤트를 변경 없이 처리기에 전달할 뿐 아무것도 하지 않
   지만, 서브 클래스는 특정 메서드를 재정의하여 이벤트 스트림이나 구성
   요청이 지나갈 때 수정할 수 있습니다.

xml.sax.saxutils.prepare_input_source(source, base='')

   이 함수는 입력 소스와 선택적인 베이스 URL을 받아들이고 완전히 결정
   되고 읽을 준비가 된 "InputSource" 객체를 반환합니다. 입력 소스는 문
   자열, 파일류 객체 또는 "InputSource" 객체로 지정할 수 있습니다; 구
   문 분석기는 "parse()" 메서드에 대한 다형적인 *source* 인자를 구현하
   는 데 이 함수를 사용할 수 있습니다.
