"xml.sax" --- SAX2 구문 분석기 지원
***********************************

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

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

The "xml.sax" package provides a number of modules which implement the
Simple API for XML (SAX) interface for Python.  The package itself
provides the SAX exceptions and the convenience functions which will
be most used by users of the SAX API.

참고:

  If you need to parse untrusted or unauthenticated data, see XML
  security.

버전 3.7.1에서 변경: SAX 구문 분석기는 보안을 강화하기 위해 더는 일반
외부 엔티티를 처리하지 않습니다. 이전에는, 구문 분석기가 DTD와 엔티티
에 대해 네트워크 연결을 만들어 원격 파일을 가져오거나 파일 시스템에서
로컬 파일을 로드했습니다. 이 기능은 구문 분석기 객체에 대해 인자
"feature_external_ges"로 메서드 "setFeature()"를 사용하여 다시 활성화
할 수 있습니다.

편리 함수는 다음과 같습니다:

xml.sax.make_parser(parser_list=[])

   SAX "XMLReader" 객체를 만들고 반환합니다. 발견된 첫 번째 구문 분석
   기가 사용됩니다. *parser_list*가 제공되면, "create_parser()"라는 함
   수가 있는 모듈의 이름을 나타내는 문자열의 이터러블이어야 합니다.
   *parser_list*에 나열된 모듈은 기본 구문 분석기 목록에 있는 모듈보다
   먼저 사용됩니다.

   버전 3.8에서 변경: *parser_list* 인자는 리스트뿐만 아니라 임의의 이
   터러블일 수 있습니다.

xml.sax.parse(filename_or_stream, handler, error_handler=handler.ErrorHandler())

   SAX 구문 분석기를 만들어 문서 구문 분석에 사용합니다.
   *filename_or_stream*으로 전달된 문서는 파일명이나 파일 객체일 수 있
   습니다. *handler* 매개 변수는 SAX "ContentHandler" 인스턴스여야 합
   니다. *error_handler*가 주어지면, SAX "ErrorHandler" 인스턴스여야
   합니다; 생략하면, 모든 에러에서 "SAXParseException"이 발생합니다.
   반환 값은 없습니다; 모든 작업은 전달된 *handler*가 처리해야 합니다.

xml.sax.parseString(string, handler, error_handler=handler.ErrorHandler())

   "parse()"와 비슷하지만, 매개 변수로 받은 버퍼 *string*에서 구문 분
   석합니다. *string*은 "str" 인스턴스나 *바이트열류 객체*여야 합니다.

   버전 3.5에서 변경: "str" 인스턴스에 대한 지원이 추가되었습니다.

전형적인 SAX 응용 프로그램은 입력기(reader), 처리기(handler) 및 입력
소스(input source)의 세 가지 종류의 객체를 사용합니다: 이 문맥에서 "입
력기(Reader)"는 구문 분석기에 대한 또 다른 용어입니다, 즉, 입력 소스에
서 바이트나 문자를 읽고, 이벤트 시퀀스를 생성하는 코드 조각입니다. 그
런 다음 이벤트는 처리기 객체로 배포됩니다, 즉 입력기가 처리기의 메서드
를 호출합니다. 따라서 SAX 응용 프로그램은 입력기 객체를 얻고, 입력 소
스를 만들거나 열고, 처리기를 만들고, 이 객체들을 모두 연결해야 합니다.
준비의 마지막 단계로, 입력기가 입력을 구문 분석하도록 호출됩니다. 구문
분석하는 동안, 처리기 객체의 메서드는 입력 데이터로부터 온 구조적 및
구문적 이벤트를 기반으로 호출됩니다.

For these objects, only the interfaces are relevant; they are normally
not instantiated by the application itself.  Since Python does not
have an explicit notion of interface, they are formally introduced as
classes, but applications may use implementations which do not inherit
from the provided classes.  The "InputSource", "Locator",
"Attributes", "AttributesNS", and "XMLReader" interfaces are defined
in the module "xml.sax.xmlreader".  The handler interfaces are defined
in "xml.sax.handler".  For convenience, "InputSource" (which is often
instantiated directly) and the handler classes are also available from
"xml.sax".  These interfaces are described below.

In addition to these classes, "xml.sax" provides the following
exception classes.

exception xml.sax.SAXException(msg, exception=None)

   XML 에러나 경고를 캡슐화합니다. 이 클래스에는 XML 구문 분석기나 응
   용 프로그램의 기본 에러나 경고 정보가 포함될 수 있습니다: 추가 기능
   을 제공하거나 지역화를 추가하기 위해 서브 클래싱 될 수 있습니다.
   "ErrorHandler" 인터페이스에 정의된 처리기가 이 예외의 인스턴스를 수
   신하지만, 예외를 실제로 발생시킬 필요는 없음에 유의하십시오 --- 정
   보를 담는 컨테이너로도 유용합니다.

   인스턴스로 만들어질 때, *msg*는 사람이 읽을 수 있는 에러에 관한 설
   명이어야 합니다. 선택적 *exception* 매개 변수를 주면, "None"이거나
   구문 분석 코드에 의해 잡힌 예외여야 하고, 정보로 함께 전달됩니다.

   이것은 다른 SAX 예외 클래스의 베이스 클래스입니다.

exception xml.sax.SAXParseException(msg, exception, locator)

   구문 분석 에러 시 발생하는 "SAXException"의 서브 클래스. 이 클래스
   의 인스턴스는 SAX "ErrorHandler" 인터페이스의 메서드에 전달되어 구
   문 분석 에러에 대한 정보를 제공합니다. 이 클래스는 "SAXException"
   인터페이스뿐만 아니라 SAX "Locator" 인터페이스를 지원합니다.

exception xml.sax.SAXNotRecognizedException(msg, exception=None)

   SAX "XMLReader"가 인식할 수 없는 기능이나 속성을 만날 때 발생하는
   "SAXException"의 서브 클래스. SAX 응용 프로그램과 확장은 유사한 목
   적으로 이 클래스를 사용할 수 있습니다.

exception xml.sax.SAXNotSupportedException(msg, exception=None)

   SAX "XMLReader"가 지원되지 않는 기능을 활성화하거나 구현에서 지원하
   지 않는 값으로 속성을 설정하도록 요청될 때 발생하는 "SAXException"
   의 서브 클래스. SAX 응용 프로그램과 확장은 유사한 목적으로 이 클래
   스를 사용할 수 있습니다.

더 보기:

  SAX: The Simple API for XML
     이 사이트는 SAX API의 정의가 집중되는 곳입니다. Java 구현과 온라
     인 설명서를 제공합니다. 구현과 역사적 정보에 대한 링크도 있습니다
     .

  모듈 "xml.sax.handler"
     응용 프로그램이 제공하는 객체에 대한 인터페이스의 정의.

  모듈 "xml.sax.saxutils"
     SAX 응용 프로그램에서 사용하기 위한 편리 함수.

  모듈 "xml.sax.xmlreader"
     구문 분석기가 제공하는 객체에 대한 인터페이스의 정의.


SAXException 객체
=================

"SAXException" 예외 클래스는 다음 메서드를 지원합니다:

SAXException.getMessage()

   에러 상태를 설명하는 사람이 읽을 수 있는 메시지를 반환합니다.

SAXException.getException()

   캡슐화된 예외 객체나 "None"을 반환합니다.
