LSParser

LSParser (XML 파싱 인터페이스)

다양한 입력 소스로부터 DOM 트리를 생성하거나 확장할 수 있는 객체를 위한 인터페이스예요. XML을 파싱하고 그에 대응하는 DOM 문서 구조를 만드는 API를 제공해요.

출처: Java API Reference

본문

LSParser 인스턴스는 DOMImplementationLS.createLSParser() 메서드를 호출해 얻을 수 있어요.

LSParser를 통해 문서가 처음 제공될 때, 텍스트 노드 타입(NODE_TEXT)의 인접한 두 노드는 존재하지 않고 빈 텍스트 노드도 없어요. 또한 Attr 노드의 valuenodeValue 속성은 처음에 XML 1.0 정규화 값(normalized value)을 반환할 것으로 기대돼요.

비동기 LSParser 객체는 events::EventTarget 인터페이스도 구현해, 비동기 파서에 이벤트 리스너를 등록할 수 있도록 해요. 지원되는 이벤트는 다음과 같아요.

  • load: LSParser가 문서 로드를 끝마쳤을 때 발생해요.
  • progress: 데이터가 파싱되는 동안 진행 상황을 알릴 때 발생해요.

파싱 중 발생하는 오류는 오류 핸들러(LSParser.domConfig"error-handler" 파라미터)를 통해 애플리케이션에 보고돼요. 스펙은 오류 및 경고 타입을 정의해요.

  • "check-character-normalization-failure" [error]: 정규화 확인에 실패한 문자열을 만났을 때 발생해요.
  • "doctype-not-allowed" [fatal]: "disallow-doctype"true인데 doctype을 만났을 때 발생해요.
  • "no-input-specified" [fatal]: LSInput 객체에 입력이 지정되지 않았을 때 발생해요.
  • "unsupported-encoding" [fatal]: 지원하지 않는 인코딩을 만났을 때 발생해요.
  • "unsupported-media-type" [fatal]: 지원하지 않는 미디어 타입을 만났을 때 발생해요.

이 밖에도 IO 오류(파일 없음, 권한 거부 등), XML well-formedness 오류 등 구현체별 오류와 경고가 발생할 수 있어요.

더 알아보기 (Learn more)

Java 공식 API