JavaTM Platform
Standard Ed. 6

org.w3c.dom.ls
인터페이스 LSParserFilter



public interface LSParserFilter

LSParserFilter 를 사용하면(자), 해석중의 노드 구축시에, 어플리케이션으로 노드를 검증할 수 있습니다. 각 노드가 검증되므로, 노드를 변경 또는 삭제하거나 해석 전체를 조기에 종료할 수도 있습니다.

퍼서가 필터 메소드를 호출할 때, 소유자 Document 객체와 DOMImplementation 객체는 존재해, 액세스 가능합니다. 문서 요소는 LSParserFilter 의 메소드에게 건네질 것은 없습니다. 즉, 필터를 걸쳐 문서 요소를 배제할 수 없습니다. Document 노드,DocumentType 노드,Notation 노드,Entity노드, 및 Attr 노드는, 필터의 acceptNode 메소드에게 건네질 것은 없습니다. EntityReference 노드의 자식(child) 노드는,「entities」파라미터가 false 로 설정되었을 경우에는, 필터에는 건네받지 않습니다. 「entities」파라미터로 설명되고 있도록(듯이), 전개되지 않는 엔티티 참조 노드는 파기되지 않고, 항상 필터에게 건네집니다.

문서 해석중에 행해지는 모든 유효성 체크는, DOM 문서가 메모리로 구축될 때 DOM 문서로 행해지는 것이 아니라, 소스 문서가 입력 스트림에 나타났을 때에 소스 문서로 행해집니다. 필터에서는, 메모리의 문서는 스트림상의 문서의 부분집합이 되어, 또, 문서의 유효성은 필터 처리에 의해 영향을 받고 있는 경우가 있습니다.

요소가 필터 메소드에게 건네질 때는, 모든 디폴트 속성이 요소에 존재하고 있을 필요가 있습니다. 다른 모든 디폴트 컨텐츠는, 필터 메소드에게 건네질 필요가 있습니다.

DOM 어플리케이션이 필터의 예외를 throw 할 것은 없습니다. 필터로부터 예외가 throw 되는 경우, 그 영향은 DOM 구현에 따라서 다릅니다.

「Document Object Model (DOM) Level 3 Load and Save Specification」도 참조해 주세요.


필드의 개요
static short FILTER_ACCEPT
          노드를 받아들입니다.
static short FILTER_INTERRUPT
          문서의 일반적으로의 처리에 끼어듭니다.
static short FILTER_REJECT
          노드와 노드의 아이를 거부합니다.
static short FILTER_SKIP
          지정한 단일의 노드를 스킵 합니다.
 
메소드의 개요
 short acceptNode (Node  nodeArg)
           각 노드의 해석이 완료하면(자), 퍼서는 이 메소드를 호출합니다.
 int getWhatToShow ()
          LSParserFilter.acceptNode 메소드에 대해서 어느 형태의 노드를 나타낼까를 LSParser 에 통지합니다.
 short startElement (Element  elementArg)
           각 Element 의 개시 태그가 주사 된 뒤, 다만 Element 의 그 이후가 처리되기 전에, 퍼서는 이 메소드를 호출합니다.
 

필드의 상세

FILTER_ACCEPT

static final short FILTER_ACCEPT
노드를 받아들입니다.

관련 항목:
정수 필드치

FILTER_REJECT

static final short FILTER_REJECT
노드와 노드의 아이를 거부합니다.

관련 항목:
정수 필드치

FILTER_SKIP

static final short FILTER_SKIP
지정한 단일의 노드를 스킵 합니다. 지정한 노드의 아이는 계속해 고려됩니다.

관련 항목:
정수 필드치

FILTER_INTERRUPT

static final short FILTER_INTERRUPT
문서의 일반적으로의 처리에 끼어듭니다.

관련 항목:
정수 필드치
메소드의 상세

startElement

short startElement(Element  elementArg)
Element 의 개시 태그가 주사 된 뒤, 다만 Element 의 그 이후가 처리되기 전에, 퍼서는 이 메소드를 호출합니다. 이것은, 아이를 포함해 요소를 효율적으로 스킵 할 수 있도록(듯이) 하기 (위해)때문에입니다. startElement 함수에게 건네지는 것은 요소 노드뿐인 것에 주의해 주세요.
필터 처리를 위해서(때문에) startElement 에게 건네지는 요소 노드에는, Element 의 모든 속성이 포함됩니다만, 자식(child) 노드는 포함되지 않습니다. Element 는, 구축중의 문서에 없을 가능성이 있습니다 (친노드를 가지고 있지 않을 가능성 있어).
startElement 필터 함수는, Element 의 속성을 액세스 하거나 변경하거나 할 수 있습니다. Namespace 선언을 변경해도, 퍼서에 의한 이름 공간 해결에 영향은 없습니다.
효율을 위해서(때문에), 노드가 받아들여졌을 경우 필터에게 건네지는 Element 노드는, 트리에 실제로 배치되고 있는 노드와 같은 노드가 아닌 것도 있습니다. 실제의 노드 (노드 객체 식별)는, 문서의 읽기와 필터 처리동안에 재사용할 수 있습니다.

파라미터:
elementArg - 새롭게 검출된 요소. 메소드가 불려 갔을 때, 요소는 불완전하고, 속성을 가지지만, 아이를 가지지 않는다
반환값:
  • FILTER_ACCEPT. 구축하고 있는 DOM 문서에 Element (을)를 포함할 필요가 있는 경우
  • FILTER_REJECT. Element 와 그 모든 아이를 거부할 필요가 있는 경우
  • FILTER_SKIP. Element 를 스킵 할 필요가 있는 경우. 그 모든 아이가, 스킵 한 Element 의 장소에 삽입된다
  • FILTER_INTERRUPT. 필터 조작으로 문서의 처리를 정지하는 경우. 문서의 처리를 중단하면(자), 결과의 DOM 트리의 XML 정형식은 보증되지 않는다. Element 는 거부된다
다른 값이 돌려주어지면(자), 특정할 수 없는 동작이 발생합니다.

acceptNode

short acceptNode(Node  nodeArg)
각 노드의 해석이 완료하면(자), 퍼서는 이 메소드를 호출합니다. 노드와 노드의 모든 하위 노드가 나타나 완비됩니다. 친노드도 존재합니다만, 해석되어 있지 않은 추가의 아이를 가지는 경우가 있기 (위해)때문에, 불완전한 가능성이 있습니다. 속성 노드는, 이 함수에게 건네질 것은 없습니다.
이 메소드내에서, 새로운 노드를 자유롭게 변경할 수 있습니다 (아이의 추가 또는 삭제, 텍스트 노드의 변경 등). 이 노드의 외부의 나머지의 문서 상태는 정의되고 있지 않습니다. 문서의 다른 부분에의 이동 또는 변경의 영향은 보증되지 않습니다.
유효성을 검사하는 퍼서의 경우는, 필터에 의한 변경전에, 원의 문서로 체크를 합니다. 필터에 의해 행해진 문서 변경의 유효성은 일절 체크되지 않습니다.
이 새로운 노드가 거부되었을 경우, 퍼서는 새로운 노드와 그 하위 노드를 재사용할 가능성이 있습니다.

파라미터:
nodeArg - 새롭게 구축된 요소. 메소드가 불려 갔을 때, 요소는 완전하고, 요소의 모든 아이 ( 및 재귀적으로 그러한 아이)(와)과 속성을 소유해, 친에 대해자로서 추가된다
반환값:
  • FILTER_ACCEPT. 구축하는 DOM 문서에 이 Node (을)를 포함할 필요가 있는 경우
  • FILTER_REJECT. Node 와 그 모든 아이를 거부할 필요가 있는 경우
  • FILTER_SKIP. Node 를 스킵 할 필요가 있어,NodeNode 의 모든 아이에게 옮겨놓을 필요가 있는 경우
  • FILTER_INTERRUPT. 필터 조작으로 문서의 처리를 정지하는 경우. 문서의 처리를 중단하면(자), 결과의 DOM 트리의 XML 정형식은 보증되지 않는다. Node 는 받아들여져 마지막 완전하게 해석되었다 노드가 된다

getWhatToShow

int getWhatToShow()
LSParserFilter.acceptNode 메소드에 대해서 어느 형태의 노드를 나타낼까를 LSParser 에 통지합니다. 노드는, 이 속성을 사용하고 있는 필터에 나타나지 않는 경우는, 구축되고 있는 DOM 문서에 자동적으로 포함할 수 있습니다. 정수의 정의에 대해서는 NodeFilter 를 참조해 주세요. 정수 SHOW_ATTRIBUTE,SHOW_DOCUMENT,SHOW_DOCUMENT_TYPE,SHOW_NOTATION,SHOW_ENTITY, 및 SHOW_DOCUMENT_FRAGMENT 는, 여기에서는 의미가 없습니다. 이러한 노드가 LSParserFilter.acceptNode 에게 건네질 것은 없습니다.
여기서 사용되고 있는 정수는,「DOM Level 2 Traversal and Range」로 정의되고 있습니다.


JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.