LSSerializer
LSSerializer (DOM 문서를 XML로 직렬화하는 인터페이스)
LSSerializer는 DOM 문서를 XML로 직렬화(작성)하는 API를 제공하는 인터페이스예요. XML 데이터는 문자열이나 출력 스트림으로 작성돼요.
본문
직렬화 중에 만들어진 변경이나 수정(fixup)은 직렬화된 데이터에만 영향을 주며, Document 객체와 그 자식은 직렬화 작업으로 절대 변경되지 않아요.
XML 데이터 직렬화 중에는 네임스페이스 수정(namespace fixup)이 수행돼요. Node의 namespaceURI가 빈 문자열이면 null로 취급하고 접두사가 있다면 무시해요.
LSSerializer는 모든 노드 타입을 직렬화할 수 있어요. Document나 Entity 타입의 노드는 가능할 때 well-formed XML을 만들어요. Document 노드를 작성하면 XML 선언과 DTD 부분 집합을 포함해 전체 문서를 직렬화해요. 대부분의 XML 파서가 요구하는 인코딩인 UTF-8, UTF-16, UTF-16BE, UTF-16LE를 지원해야 해요.
문서를 직렬화하는 동안 발견되는 오류나 경고는 오류 핸들러(LSSerializer.domConfig의 "error-handler" 파라미터)를 통해 보고돼요. 정의된 오류 타입은 다음과 같아요.
"no-output-specified"[fatal]:LSOutput에 출력이 지정되지 않았을 때 발생해요."unbound-prefix-in-entity-reference"[fatal]: 바인딩되지 않은 네임스페이스 접두사를 가진 엔티티가 참조될 때 발생해요."unsupported-encoding"[fatal]: 지원하지 않는 인코딩을 만났을 때 발생해요.