LSSerializer

LSSerializer (DOM 문서를 XML로 직렬화하는 인터페이스)

LSSerializer는 DOM 문서를 XML로 직렬화(작성)하는 API를 제공하는 인터페이스예요. XML 데이터는 문자열이나 출력 스트림으로 작성돼요.

출처: Java API Reference

본문

직렬화 중에 만들어진 변경이나 수정(fixup)은 직렬화된 데이터에만 영향을 주며, Document 객체와 그 자식은 직렬화 작업으로 절대 변경되지 않아요.

XML 데이터 직렬화 중에는 네임스페이스 수정(namespace fixup)이 수행돼요. NodenamespaceURI가 빈 문자열이면 null로 취급하고 접두사가 있다면 무시해요.

LSSerializer는 모든 노드 타입을 직렬화할 수 있어요. DocumentEntity 타입의 노드는 가능할 때 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]: 지원하지 않는 인코딩을 만났을 때 발생해요.

더 알아보기 (Learn more)

Java 공식 API