JavaTM Platform
Standard Ed. 6

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



public interface LSParser

다양한 입력 소스로부터 DOM 트리를 구축 또는 확장할 수 있는 객체에의 인터페이스입니다.

LSParser 는, XML 를 해석해, 대응하는 DOM 문서 구조를 구축하기 위한 API 를 제공합니다. LSParser 인스턴스는,DOMImplementationLS.createLSParser() 메소드를 호출해 취득할 수 있습니다.

「DOM Level 3 Core」로 지정되고 있도록(듯이), 문서를 LSParser 를 개입시켜 이용할 수 있는 경우

비동기 LSParser 객체는,events::EventTarget 인터페이스도 구현합니다. 따라서, 비동기 LSParser 객체에 이벤트 청취자를 등록할 수 있습니다.

비동기 LSParser 객체가 지원하고 있는 이벤트는 다음과 같습니다.

로드
LSParser 는 문서의 로드를 완료합니다. LSLoadEvent 인터페이스의 정의도 참조해 주세요.
진척
LSParser 는, 데이터를 해석할 경우에 진척을 통지합니다. 이 스펙에서는, 진척 이벤트를 정확하게 언제 발송 할 필요가 있는지 정의하지 않습니다. 즉, 의도적으로 구현 의존대로 되어 있습니다. 여기에서는, 어플리케이션이 진척 이벤트를 발송 하는 방법의 일례를 나타냅니다. 퍼서가 데이터의 수신을 개시하면(자), 진척 이벤트가 발송 되어 해석이 개시된 것을 나타냅니다. 이 이후, 수신 및 해석되는 4096 바이트의 데이터 마다 진척 이벤트가 발송 됩니다. 이것은 일례에 지나지 않습니다만, 구현에서는, 해석중에 언제라도 진척 이벤트를 발송 하도록(듯이), 또는 전혀 발송 하지 않게 선택할 수 있습니다. LSProgressEvent 인터페이스도 참조해 주세요.

주: 이 스펙으로 정의 떠날 수 있어 모든 이벤트는, 이름 공간 URI 「http://www.w3.org/2002/DOMLS」 를 사용합니다.

입력 소스를 해석중, 에러는 에러 핸들러 (LSParser.domConfig「error-handler」파라미터)를 사용해 보고됩니다. 이 스펙에서는, XML 나 다른 마크 업을 해석중에 발생할 가능성이 있는 모든 에러는 정의되고 있지 않습니다만, 일반적인 에러 케이스의 일부를 정의하고 있습니다. 이 스펙으로 정의되고 있는 에러와 경고의 종류 (DOMError.type)는 다음과 같습니다.

"check-character-normalization-failure" [error]
「check-character-normalization」 파라미터가 true 로 설정되어 있어, 캐릭터 라인으로 정규화 체크가 실패했을 경우에 돌려주어집니다.
"doctype-not-allowed" [fatal]
disallow-doctype 구성 파라미터가 true 로 설정되어 있어, 「doctype」가 검출되었을 경우에 돌려주어집니다.
"no-input-specified" [fatal]
문서를 로드해,LSInput 객체로 입력이 지정되지 않는 경우에 돌려주어집니다.
"pi-base-uri-not-preserved" [warning]
처리 명령의 베이스 URI 를 보관 유지할 수 없는 장소에서 처리 명령이 검출되었을 경우에 돌려주어집니다. 이 경고가 반환되는 일례에는, 다음과 같이「entities」구성 파라미터가 false 로 설정되어 있어, XML 파일이 해석되었을 경우를 들 수 있습니다.
 <! DOCTYPE root [ <! ENTITY e SYSTEM 'subdir/myentity.ent' ]> 
 <root> &e; </root>
또,subdir/myentity.ent 가 다음을 포함한 경우
<one> <two/> </one> <? pi 3.14159? > 
 <more/>
"unbound-prefix-in-entity" [warning]
「namespaces」구성 파라미터가 true 로 설정되어 있어, 바인드되어 있지 않은 이름 공간의 접두사가, 엔티티의 치환 텍스트로 검출되었을 경우는, 구현 의존의 경고가 돌려주어집니다. 이 경고를 돌려주는 것은 강제당하지 않습니다. 이것은, 일부의 기존의 퍼서가, 엔티티의 치환 텍스트에 있는 바인드되어 있지 않은 이름 공간의 접두사를 인식하지 않을 가능성이 있기 (위해)때문에입니다.
"unknown-character-denormalization" [fatal]
「ignore-unknown-character-denormalizations」구성 파라미터가 false 로 설정되어 있어, 정규화 프로퍼티을 판정할 수 없는 문자가 처리로 검출되었을 경우에 돌려주어집니다.
"unsupported-encoding" [fatal]
지원되어 있지 않은 인코딩이 검출되었을 경우에 돌려주어집니다.
"unsupported-media-type" [fatal]
「supported-media-types-only」구성 파라미터가 true 로 설정되어 있어, 지원되어 있지 않은 미디어 타입이 검출되었을 경우에 돌려주어집니다.

정의 끝난 에러나 경고를 돌려주는데 더해, 구현에서는, IO 에러 ( 「파일이 발견되지 않습니다, 액세스권은 거부되었습니다 ...」), XML 정형식 에러등을 부르는 것 외의 에러나 경고에 대해 구현 고유의 에러를 돌려줍니다.

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


필드의 개요
static short ACTION_APPEND_AS_CHILDREN
          해석 조작의 결과를 문맥 노드의 아이로서 추가합니다.
static short ACTION_INSERT_AFTER
          해석 조작의 결과를 문맥 노드의 직후의 형제 위젯로서 삽입합니다.
static short ACTION_INSERT_BEFORE
          해석 조작의 결과를 문맥 노드의 직전의 형제 위젯로서 삽입합니다.
static short ACTION_REPLACE
          문맥 노드를 해석 조작의 결과에 옮겨놓습니다.
static short ACTION_REPLACE_CHILDREN
          문맥 노드의 모든 아이를 해석 조작의 결과에 옮겨놓습니다.
 
메소드의 개요
 void abort ()
          현재 LSParser 로 로드 되고 있는 문서의 로딩을 중단합니다.
 boolean getAsync ()
          LSParser 가 비동기의 경우는 true, 동기의 경우는 false 입니다.
 boolean getBusy ()
          LSParser 가 현재 문서를 로드하고 있어, Busy 상태의 경우는 true, 그렇지 않은 경우는 false 입니다.
 DOMConfiguration getDomConfig ()
          입력 소스를 해석할 경우에 사용되는 DOMConfiguration 객체입니다.
 LSParserFilter getFilter ()
          필터가 있는 경우, DOM 트리 구조를 필터가 구성해 있는것 같이, 구현은 필터를 호출합니다.
 Document parse (LSInput  input)
          LSInput 로 식별된 자원으로부터 XML 문서를 해석합니다.
 Document parseURI (String  uri)
          URI 참조「IETF RFC 2396」으로 특정된 장소로부터 XML 문서를 해석합니다.
 Node parseWithContext (LSInput  input, Node  contextArg, short action)
          LSInput 에 의해 특정된 자원으로부터 XML fragment를 해석해, 기존의 문서의 context 인수와 action 인수로 지정된 위치에 컨텐츠를 삽입합니다.
 void setFilter (LSParserFilter  filter)
          필터가 있는 경우, DOM 트리 구조를 필터가 구성해 있는것 같이, 구현은 필터를 호출합니다.
 

필드의 상세

ACTION_APPEND_AS_CHILDREN

static final short ACTION_APPEND_AS_CHILDREN
해석 조작의 결과를 문맥 노드의 아이로서 추가합니다. 이 액션이 기능하려면 , 문맥 노드가,Element 또는 DocumentFragment 가 되어 있을 필요가 있습니다.

관련 항목:
정수 필드치

ACTION_REPLACE_CHILDREN

static final short ACTION_REPLACE_CHILDREN
문맥 노드의 모든 아이를 해석 조작의 결과에 옮겨놓습니다. 이 액션이 기능하려면 , 문맥 노드가,Element,Document, 혹은 DocumentFragment 가 되어 있을 필요가 있습니다.

관련 항목:
정수 필드치

ACTION_INSERT_BEFORE

static final short ACTION_INSERT_BEFORE
해석 조작의 결과를 문맥 노드의 직전의 형제 위젯로서 삽입합니다. 이 액션이 기능하려면 , 문맥 노드의 부모가,Element 또는 DocumentFragment 가 되어 있을 필요가 있습니다.

관련 항목:
정수 필드치

ACTION_INSERT_AFTER

static final short ACTION_INSERT_AFTER
해석 조작의 결과를 문맥 노드의 직후의 형제 위젯로서 삽입합니다. 이 액션이 기능하려면 , 문맥 노드의 부모가,Element 또는 DocumentFragment 가 되어 있을 필요가 있습니다.

관련 항목:
정수 필드치

ACTION_REPLACE

static final short ACTION_REPLACE
문맥 노드를 해석 조작의 결과에 옮겨놓습니다. 이 액션이 기능하려면 , 문맥 노드가 부모를 가지지 않으면 안되어, 그 부모가 Element 또는 DocumentFragment 가 되어 있을 필요가 있습니다.

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

getDomConfig

DOMConfiguration  getDomConfig()
입력 소스를 해석할 경우에 사용되는 DOMConfiguration 객체입니다. 이 DOMConfiguration 는, 해석 조작에 고유합니다. 또,DOMConfiguration 객체의 파라미터치는, 해석 조작에 의해 작성 또는 사용되는 DocumentDOMConfiguration 객체에 자동적으로 건네받을 것은 없습니다. DOM 어플리케이션이, DOMConfiguration 객체로부터,Document 객체가 참조하는 DOMConfiguration 객체에 필요한 파라미터치를 건네주는 권한을 가집니다.
「DOM Level 3 Core」로 정의된「DOMConfiguration」 인터페이스로 인식되고 있는 파라미터에 가세해,LSParserDOMConfiguration 객체는 다음의 파라미터를 추가 또는 변경합니다.
"charset-overrides-xml-encoding"
true
[「옵션」(디폴트) HTTP「IETF RFC 2616」 등의 고위 레벨 프로토콜이 처리중의 입력 스트림의 문자 인코딩을 지시하는 경우, XML 선언이나 텍스트 선언 (「XML 1.0」의 섹션 4.3. 3 「엔티티의 문자 인코딩」도 참조)로 지정된 인코딩은, 고위 레벨 프로토콜에 의한 문자 인코딩에 의해 오버라이드(override) 됩니다. 또,LSInput 로 명시적으로 인코딩을 설정하면(자), 프로토콜의 인코딩은 오버라이드(override) 됩니다.
false
[「필수」퍼서는, 고위 레벨 프로토콜의 캐릭터 세트 인코딩 정보를 무시합니다.
"disallow-doctype"
true
[「옵션」문서를 해석중에 doctype 노드가 발견되었을 경우, 치명적인 에러의「doctype-not-allowed」를 throw 합니다. 이것은, doctype 노드가 허가되지 않는 SOAP 포락선과 같은 것을 취급할 때 도움이 됩니다.
false
[「필수」 (디폴트) 문서로 doctype 노드를 허가합니다.
"ignore-unknown-character-denormalizations"
true
[「필수」(디폴트) 「XML 1.1」을 지원하고 있어, 완전한 정규화를 확인중에, 정규화 프로퍼티을 판정할 수 없는 문자를 프로세서가 검출했을 경우, 프로세서는 그 문자로 생길 가능성이 있는 불완전한 정규화를 무시합니다. 이 파라미터는 「XML 1.0」에 대해서는 무시됩니다.
false
[「옵션」정규화 프로퍼티을 판정할 수 없는 문자를 프로세서가 검출했을 경우, 치명적인 에러의「unknown-character-denormalization」를 통지합니다.
"infoset"
이 파라미터의 상세한 것에 대하여는,DOMConfiguration 의 정의를 참조해 주세요. 「DOM Level 3 Core」란 달라, 이 파라미터는 LSParser 에 대해서 디폴트로 true 로 설정됩니다.
"namespaces"
true
[「필수」(디폴트) XML 이름 공간 XML 이름 공간 1.1 의 정의에 따라 이름 공간 처리를 실시합니다.
false
[「옵션」이름 공간 처리를 실행하지 않습니다.
"resource-resolver"
[「필수」 LSResourceResolver 객체에 대한 참조, 또는 null. 외부 자원 (외부 XML 엔티티 또는 XML schema 로케이션)이 검출되었을 때에, 이 파라미터가 null 가 아닌 경우, 구현은 이 파라미터로 참조된 LSResourceResolver 에 의해 자원을 해결하도록(듯이) 요구합니다.
"supported-media-types-only"
true
[「옵션」해석된 자원의 미디어 타입이 지원되고 있는 미디어 타입인 것을 체크합니다. 지원되어 있지 않은 미디어 타입이 검출되었을 경우, 형태「unsupported-media-type」의 치명적 에러가 돌려주어집니다. 「IETF RFC 3023」으로 정의되고 있는 미디어 타입은 항상 받아들여집니다.
false
[「필수」(디폴트) 임의의 미디어 타입을 받아들입니다.
"validate"
이 파라미터의 상세한 것에 대하여는,DOMConfiguration 의 정의를 참조해 주세요. 「DOM Level 3 Core」란 달라, 이 파라미터가 false 로 설정되었을 경우, 내부 부분집합의 처리는 항상 실행됩니다.
"validate-if-schema"
이 파라미터의 상세한 것에 대하여는,DOMConfiguration 의 정의를 참조해 주세요. 「DOM Level 3 Core」란 달라, 이 파라미터가 false 로 설정되었을 경우, 내부 부분집합의 처리는 항상 실행됩니다.
"well-formed"
이 파라미터의 상세한 것에 대하여는,DOMConfiguration 의 정의를 참조해 주세요. 「DOM Level 3 Core」란 달라, 이 파라미터는 false 로 설정할 수 없습니다.


getFilter

LSParserFilter  getFilter()
필터가 있는 경우, DOM 트리 구조를 필터가 구성해 있는것 같이, 구현은 필터를 호출합니다. 필터에서는, 구축하고 있는 문서로부터 요소를 삭제하거나 초기에 해석을 종료하거나 하는 것을 선택할 수 있습니다.
적용되고 있는 DOMConfiguration 파라미터에 의해, 요구된 조작의 후에 필터가 불려 갑니다. 예를 들어,「validate」true 로 설정되어 있으면(자), 검증은 필터가 불려 가기 전에 실행됩니다.


setFilter

void setFilter(LSParserFilter  filter)
필터가 있는 경우, DOM 트리 구조를 필터가 구성해 있는것 같이, 구현은 필터를 호출합니다. 필터에서는, 구축하고 있는 문서로부터 요소를 삭제하거나 초기에 해석을 종료하거나 하는 것을 선택할 수 있습니다.
적용되고 있는 DOMConfiguration 파라미터에 의해, 요구된 조작의 후에 필터가 불려 갑니다. 예를 들어,「validate」true 로 설정되어 있으면(자), 검증은 필터가 불려 가기 전에 실행됩니다.


getAsync

boolean getAsync()
LSParser 가 비동기의 경우는 true, 동기의 경우는 false 입니다.


getBusy

boolean getBusy()
LSParser 가 현재 문서를 로드하고 있어, Busy 상태의 경우는 true, 그렇지 않은 경우는 false 입니다.


parse

Document  parse(LSInput  input)
               throws DOMException ,
                      LSException 
LSInput 로 식별된 자원으로부터 XML 문서를 해석합니다.

파라미터:
input - 문서의 소스가 읽어내진다 LSInput
반환값:
LSParser 가 동기 LSParser 의 경우는, 새롭게 작성되어 값이 설정되었다 Document 가 반환된다. LSParser 가 비동기의 경우는, 이 메소드가 값을 돌려줄 때 문서 객체가 아직 구축되어 있지 않을 가능성이 있으므로, null 가 반환된다
예외:
DOMException - INVALID_STATE_ERR:LSParserLSParser.busy 속성이 true 의 경우
LSException - PARSE_ERR:LSParser 가 XML 문서를 로드 할 수 없었던 경우. DOM 에러에 관한 상세를 취득하는 경우, DOM 어플리케이션은「error-handler」파라미터를 사용해 DOMErrorHandler 를 접속할 필요가 있다

parseURI

Document  parseURI(String  uri)
                  throws DOMException ,
                         LSException 
URI 참조「IETF RFC 2396」으로 특정된 장소로부터 XML 문서를 해석합니다. URI 에 fragment 식별자가 포함되는 경우 (「IETF RFC 2396」의 섹션 4.1 을 참조), 이 스펙에서는 동작은 정의되고 있지 않습니다. 동작은, 이 스펙의 장래 버젼으로 정의될 가능성이 있습니다.

파라미터:
uri - 읽어내지는 XML 문서의 장소
반환값:
LSParser 가 동기 LSParser 의 경우는, 새롭게 작성되어 값이 설정되었다 Document 가 반환된다. 에러가 발생했을 경우는 null 하지만 반환된다. LSParser 가 비동기의 경우는, 이 메소드가 값을 돌려줄 때 문서 객체가 아직 구축되어 있지 않을 가능성이 있으므로, null 가 반환된다
예외:
DOMException - INVALID_STATE_ERR:LSParser.busy 속성이 true 의 경우
LSException - PARSE_ERR:LSParser 가 XML 문서를 로드 할 수 없었던 경우. DOM 에러에 관한 상세를 취득하는 경우, DOM 어플리케이션은「error-handler」파라미터를 사용해 DOMErrorHandler 를 접속할 필요가 있다

parseWithContext

Node  parseWithContext(LSInput  input,
                      Node  contextArg,
                      short action)
                      throws DOMException ,
                             LSException 
LSInput 에 의해 특정된 자원으로부터 XML fragment를 해석해, 기존의 문서의 context 인수와 action 인수로 지정된 위치에 컨텐츠를 삽입합니다. 입력 스트림을 해석중, 문맥 노드 (또는 그 부모. 결과가 삽입되는 장소에 응해 다르다)는 바인드되어 있지 않은 이름 공간 접두사를 해결하기 위해서 사용됩니다. 문맥 노드의 ownerDocument 노드 (노드형이 DOCUMENT_NODE 의 경우는 노드 자체)는, 디폴트 속성과 엔티티 참조를 해결하기 위해서 사용됩니다.
새로운 데이터가 문서에 삽입될 때, 문맥 노드의 새로운 직접적인 아이 또는 형제 위젯 마다 적어도 1 개의 변경 이벤트가 트리거됩니다.
문맥 노드가 Document 노드이며, 액션이 ACTION_REPLACE_CHILDREN 인 경우, 문맥 노드로서 건네받는 문서는,xmlEncoding,documentURI,xmlVersion,inputEncoding,xmlStandalone, 및 다른 모든 같은 속성이,LSParser.parse() 를 사용해 입력 소스가 해석되었을 경우로 설정되는 값으로 설정되도록(듯이) 변경됩니다.
이 메소드는,LSParser 가 비동기의 경우에서도 (LSParser.asynctrue), 항상 동기입니다.
해석중에 에러가 발생하면(자),DOMConfiguration「error-handler」파라미터에 관련하는 ErrorHandler 인스턴스를 통해서 호출해 측에 통지됩니다.
parseWithContext 를 호출하고 있을 때는,「validate」,「validate-if-schema」,「element-content-whitespace」의 구성 파라미터의 값은 무시되어 항상 디폴트 값가 사용됩니다. 다른 파라미터는 일반적으로 대로 사용되어 퍼서는, 문서 전체를 해석했는지와 같이,LSParserFilter 를 호출합니다.

파라미터:
input - 소스 문서가 읽어내진다 LSInput. 소스 문서는, XML fragment, 즉 완전한 XML 문서 (문맥 노드가 DOCUMENT_NODE 형, 액션이 ACTION_REPLACE_CHILDREN 인 경우를 제외하다), DOCTYPE (내부 부분집합), 엔티티 선언, 표기법선언, 혹은 XML 선언 또는 텍스트 선언 이외에 된다 필요가 있는
contextArg - 해석되는 데이터의 문맥으로서 사용되는 노드. 이 노드는 Document 노드, DocumentFragment 노드, 혹은 Element 노드의 아이로서 허가되는 형태의 노드가 될 필요가 있다. 예를 들어,Attribute 노드는 불가
action - 이 파라미터는, 삽입되고 있는 새로운 노드 세트와 문맥 노드의 기존의 아이와의 사이에 실행할 필요가 있다 액션을 나타낸다. 생각되는 액션세트는 전술의 ACTION_TYPES 로 정의된다
반환값:
해석 조작의 결과인 노드. 결과가 톱 레벨 노드보다 고위에 있는 경우는, 최초의 노드가 반환된다
예외:
DOMException - HIERARCHY_REQUEST_ERR:컨텐츠를 문맥 노드의 아이에게 옮겨놓거나 문맥 노드의 아이의 앞이나 뒤로 삽입할 수 없는 경우 (「DOM Level 3 Core」Node.insertBeforeNode.replaceChild 도 참조 ).
NOT_SUPPORTED_ERR:LSParser 가 이 메소드를 지원하지 않는 경우, 또는 문맥 노드가 형태 Document 의 노드로, DOM 구현이 아이 DocumentType 나 아이 Element 의 치환을 지원하지 않는 경우
NO_MODIFICATION_ALLOWED_ERR:문맥 노드가 읽어내 전용 노드로, 문맥이 그 아이의 리스트에 추가되고 있는 경우, 또는 문맥 노드의 친노드가 읽어내 전용 노드로, 문맥이 그 아이의 리스트에 삽입되고 있는 경우
INVALID_STATE_ERR:LSParser.busy 속성이 true 의 경우
LSException - PARSE_ERR:LSParser 가 XML fragment를 로드 할 수 없었던 경우. DOM 에러에 관한 상세를 취득하는 경우, DOM 어플리케이션은「error-handler」파라미터를 사용해 DOMErrorHandler 를 접속할 필요가 있다

abort

void abort()
현재 LSParser 로 로드 되고 있는 문서의 로딩을 중단합니다. LSParser 가 현재 Busy 상태가 아닌 경우, 이 메소드에의 호출은 아무것도 영향을 주지 않습니다.


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 도 참조해 주세요.