|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
public interface LSParser
다양한 입력 소스로부터 DOM 트리를 구축 또는 확장할 수 있는 객체에의 인터페이스입니다.
LSParser
는, XML 를 해석해, 대응하는 DOM 문서 구조를 구축하기 위한 API 를 제공합니다. LSParser
인스턴스는,DOMImplementationLS.createLSParser()
메소드를 호출해 취득할 수 있습니다.
「DOM Level 3 Core」로 지정되고 있도록(듯이), 문서를 LSParser 를 개입시켜 이용할 수 있는 경우
Attr
노드의 value
속성과 nodeValue
속성은,「XML 1.0 normalized value」를 최초로 돌려준다. 다만,「validate-if-schema」파라미터와「datatype-normalization」파라미터가 true
로 설정되어 있는 경우, 사용하고 있는 속성 정규화에 응해, 속성치는 XML 1.0 속성 정규화로 취득된 속성치와는 다를 가능성이 있다. 「datatype-normalization」파라미터가 false
로 설정되어 있는 경우는, XML 1.0 속성 정규화의 발생이 보증되어 속성 리스트가 이름 공간 선언을 포함하지 않는 경우,Element
노드의 attributes
속성은「XML Information Set」로 정의되고 있는 [attributes] 프로퍼티을 나타낸다
비동기 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]
"doctype-not-allowed" [fatal]
true
로 설정되어 있어, 「doctype」가 검출되었을 경우에 돌려주어집니다. "no-input-specified" [fatal]
LSInput
객체로 입력이 지정되지 않는 경우에 돌려주어집니다. "pi-base-uri-not-preserved" [warning]
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]
true
로 설정되어 있어, 바인드되어 있지 않은 이름 공간의 접두사가, 엔티티의 치환 텍스트로 검출되었을 경우는, 구현 의존의 경고가 돌려주어집니다. 이 경고를 돌려주는 것은 강제당하지 않습니다. 이것은, 일부의 기존의 퍼서가, 엔티티의 치환 텍스트에 있는 바인드되어 있지 않은 이름 공간의 접두사를 인식하지 않을 가능성이 있기 (위해)때문에입니다. "unknown-character-denormalization" [fatal]
false
로 설정되어 있어, 정규화 프로퍼티을 판정할 수 없는 문자가 처리로 검출되었을 경우에 돌려주어집니다. "unsupported-encoding" [fatal]
"unsupported-media-type" [fatal]
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 트리 구조를 필터가 구성해 있는것 같이, 구현은 필터를 호출합니다. |
필드의 상세 |
---|
static final short ACTION_APPEND_AS_CHILDREN
Element
또는 DocumentFragment
가 되어 있을 필요가 있습니다.
static final short ACTION_REPLACE_CHILDREN
Element
,Document
, 혹은 DocumentFragment
가 되어 있을 필요가 있습니다.
static final short ACTION_INSERT_BEFORE
Element
또는 DocumentFragment
가 되어 있을 필요가 있습니다.
static final short ACTION_INSERT_AFTER
Element
또는 DocumentFragment
가 되어 있을 필요가 있습니다.
static final short ACTION_REPLACE
Element
또는 DocumentFragment
가 되어 있을 필요가 있습니다.
메소드의 상세 |
---|
DOMConfiguration getDomConfig()
DOMConfiguration
객체입니다. 이 DOMConfiguration
는, 해석 조작에 고유합니다. 또,DOMConfiguration
객체의 파라미터치는, 해석 조작에 의해 작성 또는 사용되는 Document
의 DOMConfiguration
객체에 자동적으로 건네받을 것은 없습니다. DOM 어플리케이션이, DOMConfiguration
객체로부터,Document
객체가 참조하는 DOMConfiguration
객체에 필요한 파라미터치를 건네주는 권한을 가집니다. LSParser
의 DOMConfiguration
객체는 다음의 파라미터를 추가 또는 변경합니다.
"charset-overrides-xml-encoding"
true
LSInput
로 명시적으로 인코딩을 설정하면(자), 프로토콜의 인코딩은 오버라이드(override) 됩니다. false
"disallow-doctype"
true
false
"ignore-unknown-character-denormalizations"
true
false
"infoset"
DOMConfiguration
의 정의를 참조해 주세요. 「DOM Level 3 Core」란 달라, 이 파라미터는 LSParser
에 대해서 디폴트로 true
로 설정됩니다. "namespaces"
true
false
"resource-resolver"
LSResourceResolver
객체에 대한 참조, 또는 null. 외부 자원 (외부 XML 엔티티 또는 XML schema 로케이션)이 검출되었을 때에, 이 파라미터가 null 가 아닌 경우, 구현은 이 파라미터로 참조된 LSResourceResolver
에 의해 자원을 해결하도록(듯이) 요구합니다. "supported-media-types-only"
true
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
로 설정할 수 없습니다.
LSParserFilter getFilter()
DOMConfiguration
파라미터에 의해, 요구된 조작의 후에 필터가 불려 갑니다. 예를 들어,「validate」가 true
로 설정되어 있으면(자), 검증은 필터가 불려 가기 전에 실행됩니다.
void setFilter(LSParserFilter filter)
DOMConfiguration
파라미터에 의해, 요구된 조작의 후에 필터가 불려 갑니다. 예를 들어,「validate」가 true
로 설정되어 있으면(자), 검증은 필터가 불려 가기 전에 실행됩니다.
boolean getAsync()
LSParser
가 비동기의 경우는 true
, 동기의 경우는 false
입니다.
boolean getBusy()
LSParser
가 현재 문서를 로드하고 있어, Busy 상태의 경우는 true
, 그렇지 않은 경우는 false
입니다.
Document parse(LSInput input) throws DOMException , LSException
LSInput
로 식별된 자원으로부터 XML 문서를 해석합니다.
input
- 문서의 소스가 읽어내진다
LSInput
LSParser
가 동기
LSParser
의 경우는, 새롭게 작성되어 값이 설정되었다
Document
가 반환된다. LSParser
가 비동기의 경우는,
이 메소드가 값을 돌려줄 때 문서 객체가 아직 구축되어 있지 않을 가능성이 있으므로,
null
가 반환된다
DOMException
- INVALID_STATE_ERR:LSParser
의
LSParser.busy
속성이 true
의 경우
LSException
- PARSE_ERR:LSParser
가 XML 문서를 로드
할 수 없었던 경우. DOM 에러에 관한 상세를 취득하는 경우,
DOM 어플리케이션은「error-handler」파라미터를 사용해
DOMErrorHandler
를 접속할 필요가 있다Document parseURI(String uri) throws DOMException , LSException
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
를 접속할 필요가 있다Node parseWithContext(LSInput input, Node contextArg, short action) throws DOMException , LSException
LSInput
에 의해 특정된 자원으로부터 XML fragment를 해석해, 기존의 문서의 context
인수와 action
인수로 지정된 위치에 컨텐츠를 삽입합니다. 입력 스트림을 해석중, 문맥 노드 (또는 그 부모. 결과가 삽입되는 장소에 응해 다르다)는 바인드되어 있지 않은 이름 공간 접두사를 해결하기 위해서 사용됩니다. 문맥 노드의 ownerDocument
노드 (노드형이 DOCUMENT_NODE
의 경우는 노드 자체)는, 디폴트 속성과 엔티티 참조를 해결하기 위해서 사용됩니다. Document
노드이며, 액션이 ACTION_REPLACE_CHILDREN
인 경우, 문맥 노드로서 건네받는 문서는,xmlEncoding
,documentURI
,xmlVersion
,inputEncoding
,xmlStandalone
, 및 다른 모든 같은 속성이,LSParser.parse()
를 사용해 입력 소스가 해석되었을 경우로 설정되는 값으로 설정되도록(듯이) 변경됩니다. LSParser
가 비동기의 경우에서도 (LSParser.async
는 true
), 항상 동기입니다. 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.insertBefore
나 Node.replaceChild
도 참조
).
LSParser
가 이 메소드를 지원하지 않는 경우,
또는 문맥 노드가
형태 Document
의 노드로, DOM 구현이
아이 DocumentType
나
아이 Element
의 치환을 지원하지 않는 경우
LSParser.busy
속성이
true
의 경우
LSException
- PARSE_ERR:LSParser
가 XML fragment를 로드
할 수 없었던 경우. DOM 에러에 관한 상세를 취득하는 경우,
DOM 어플리케이션은「error-handler」파라미터를 사용해
DOMErrorHandler
를 접속할 필요가 있다void abort()
LSParser
로 로드 되고 있는 문서의 로딩을 중단합니다. LSParser
가 현재 Busy 상태가 아닌 경우, 이 메소드에의 호출은 아무것도 영향을 주지 않습니다.
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.