LSParser
LSParser (XML 파싱 인터페이스)
다양한 입력 소스로부터 DOM 트리를 생성하거나 확장할 수 있는 객체를 위한 인터페이스예요. XML을 파싱하고 그에 대응하는 DOM 문서 구조를 만드는 API를 제공해요.
본문
LSParser 인스턴스는 DOMImplementationLS.createLSParser() 메서드를 호출해 얻을 수 있어요.
LSParser를 통해 문서가 처음 제공될 때, 텍스트 노드 타입(NODE_TEXT)의 인접한 두 노드는 존재하지 않고 빈 텍스트 노드도 없어요. 또한 Attr 노드의 value와 nodeValue 속성은 처음에 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 오류 등 구현체별 오류와 경고가 발생할 수 있어요.