LSSerializerFilter

LSSerializerFilter (직렬화 중 노드 검사 필터)

LSSerializerFilter는 애플리케이션이 직렬화되는 노드를 검사하고, 어떤 노드를 직렬화할지 결정할 수 있게 해 주는 인터페이스예요.

출처: Java API Reference

본문

LSSerializerFilter 인터페이스는 [DOM Level 2 Traversal and Range]에 정의된 NodeFilter 인터페이스에 기반해요.

Document, DocumentType, DocumentFragment, Notation, Entity, 그리고 Attr 노드의 자식은 필터에 전달되지 않아요. EntityReference 노드의 자식 노드는 LSParserFilter.acceptNode() 메서드로 그 EntityReference 노드가 건너뛰어진 경우에만 필터에 전달돼요.

Element를 직렬화할 때 요소는 속성보다 먼저 필터에 전달돼요. 네임스페이스 선언 속성과 기본 속성은 ("discard-default-content"false인 경우를 제외하고) 필터에 전달되지 않아요.

getWhatToShow() 메서드는 필터에 어떤 타입의 노드를 보여줄지 LSSerializer에 알려줘요. 노드가 이 속성으로 필터에 표시되지 않으면 자동으로 직렬화돼요. 여기서 SHOW_DOCUMENT, SHOW_DOCUMENT_TYPE 등의 상수는 의미가 없으며, 그런 노드는 필터에 전달되지 않아요.

DOM 애플리케이션은 필터에서 예외를 발생시키지 말아야 해요. 필터에 전달된 노드를 수정하려는 시도의 결과는 구현에 따라 달라져요.

더 알아보기 (Learn more)

Java 공식 API