JavaTM Platform
Standard Ed. 6

org.w3c.dom
인터페이스 DOMConfiguration



public interface DOMConfiguration

DOMConfiguration 인터페이스는 문서의 구성을 나타내, 인정되고 있는 파라미터의 테이블을 보관 유지합니다. 이 구성을 사용하면(자),CDATASection 노드를 Text 노드에 옮겨놓거나Document 의 검증이 요구되었을 때에 사용하는 schema의 형태를 지정하거나 하는 등,Document.normalizeDocument() 의 동작을 변경할 수 있습니다. DOMConfiguration 객체는,DOMParser 인터페이스나 DOMSerializer 인터페이스의「DOM Level 3 Load and Save」에서도 사용할 수 있습니다.

DOMConfiguration 객체로 사용하는 파라미터명은, DOM 레벨 3 스펙 전체로 정의되고 있습니다. 이름은 대문자와 소문자가 구별됩니다. 충돌을 피하기 (위해)때문에, 규칙으로서 DOM 스펙의 범위외에서 정의된 파라미터를 참조하는 이름은 일의로 할 필요가 있습니다. 파라미터는 프로퍼티으로서 공개되므로, 이름은, 추가의 문자 「-」(HYPHEN-MINUS)을 포함한 「Unicode」의 섹션 5.16 「식별자」에 따르는 것을 추천합니다만, DOM 구현에 의해 강제는 되지 않습니다. DOM 레벨 3 코어 구현에서는, 이 스펙으로 정의 떠날 수 있어 모든 파라미터를 인식할 필요가 있습니다. 일부의 파라미터치도, 이 구현으로 지원될 필요가 있습니다. 값이 지원되고 있는지 어떤지에 대해서는, 파라미터의 정의를 참조해 주세요.

주: 파라미터는, SAX2「SAX」로 사용되는 기능 및 프로퍼티과 같습니다.

다음의 파라미터 리스트는 DOM 로 정의되고 있습니다.

"canonical-form"
true
[「옵션」의정규 XML 로 지정되고 있는 규칙에 따라,DocumentType 노드 (존재하는 경우)를 트리로부터 삭제하거나 개개의 요소로부터 불필요한 이름 공간 선언을 삭제해 문서를 표준화 합니다. 이것은 DOM 로 표현할 수 있는 컨텐츠에 제한됩니다. 특히, DOM 로 속성의 순서를 지정하는 방법은 없습니다. 또, 이 파라미터를 true 로 설정하면(자), 아래와 같은 파라미터 상태도 설정됩니다. 나중에, 그 중의 1 개(살)로 변경하면(자), 「canonical-form」는 false 에 돌아옵니다. false 로 설정되는 파라미터는 「entities」, 「normalize-characters」, 「cdata-sections」로,true 로 설정되는 파라미터는 「namespaces」, 「namespace-declarations」, 「well-formed」, 「element-content-whitespace」입니다. 그 이외의 파라미터는, 파라미터의 설명에 명시적으로 지정되어 있지 않은 한, 변경되지 않습니다.
false
[「필수」(디폴트) 문서를 표준화 하지 않습니다.
"cdata-sections"
true
[「필수」(디폴트) 문서의 CDATASection 노드를 유지합니다.
false
[「필수」문서의 CDATASection 노드를 Text 노드로 변환합니다. 이것에 의해, 새로운 Text 노드는, 인접하는 Text 노드와 결합됩니다.
"check-character-normalization"
true
[「옵션」문서내의 캐릭터 라인이,「XML 1.1」의 부록 B 로 정의되고 있도록(듯이)완전하게 정규화되고 있는지 어떤지를 확인합니다. 캐릭터 라인의 정규화 체크에 실패했을 경우,DOMError.type 에러는, 「check-character-normalization-failure」가 발행되는 것과 같습니다.
false
[「필수」(디폴트) 문자가 정규화되고 있는지 어떤지를 체크하지 않습니다.
"comments"
true
[「필수」(디폴트) 문서의 Comment 노드를 유지합니다.
false
[「필수」문서의 Comment 노드를 파기합니다.
"datatype-normalization"
true
[「옵션」XML schema의 XML schema 정규화치 등, 트리의 schema 정규화치를 공개합니다. 이 파라미터에는 schema 정보가 필요하기 때문에, 「validate」파라미터도 true 로 설정됩니다. 「validate」가 false 때에 이 파라미터를 액티브하게 해도 효과는 없고, schema의 정규화는 행해지지 않습니다.

주: 문서는 XML 1.0 처리의 결과를 포함하고 있으므로, 이 파라미터는,「XML 1.0」의 섹션 3.3. 3 으로 정의되고 있는 속성치 정규화에는 적용되지 않고, 문서형 정의 (DTD) 이외의 schema 언어만을 대상으로 하고 있습니다.

false
[「필수」(디폴트) 트리로 schema 정규화를 실행하지 않습니다.
"element-content-whitespace"
true
[「필수」(디폴트) 문서로 모든 공백 문자를 유지합니다.
false
[「옵션」의요소 컨텐츠의 공백 문자로 설명되고 있는 것 같은 요소 컨텐츠에 출현한 공백 문자를 포함한 모든 Text 노드를 파기합니다. 구현에서는,Text.isElementContentWhitespace 속성을 사용해,Text 노드를 파기할 필요가 있을지 어떨지를 판정하는 것이 요구됩니다.
"entities"
true
[「필수」(디폴트) 문서의 EntityReference 노드를 유지합니다.
false
[「필수」문서로부터 모든 EntityReference 노드를 삭제해, 그 위치에서 엔티티 확장을 실시합니다. Text 노드는,Node.normalize 로 정의되고 있는 대로 정규화됩니다. 확장되어 있지 않은 엔티티 참조만이 문서에 유지됩니다.

주: 이 파라미터는 Entity 노드에는 영향을 주지 않습니다.

"error-handler"
[「필수」DOMErrorHandler 객체를 포함합니다. 문서로 에러가 발생했을 경우, 구현에서는, 이 파라미터를 사용해 등록된 DOMErrorHandler 를 호출합니다. 구현에서는, 디폴트의 DOMErrorHandler 객체가 제공되는 경우가 있습니다. 불려 갔을 경우,DOMError.relatedData 에는 에러가 발생한 장소에 가장 가까운 노드가 포함됩니다. 에러가 발생한 장소를 구현으로 특정할 수 없는 경우는,DOMError.relatedDataDocument 노드가 포함됩니다. 에러 핸들러내로부터 문서에 대해서 변경을 더하면(자), 구현에 의존한 동작이 됩니다.
"infoset"
true
[「필수」XML 정보 세트 XML 정보 세트로 정의된 정보를 문서에 유지합니다. 이것에 의해, validate-if-schema, entities, datatype-normalization, cdata-sections 파라미터는 false 로 설정됩니다. 또, namespace-declarations, well-formed, element-content-whitespace, comments, namespaces 파라미터는 true 로 설정됩니다. 다른 파라미터는, 파라미터의 기술로 명시적으로 지정하지 않는 한, 변경되지 않습니다. getParameter 로 이 파라미터를 조회하면(자), 상기의 파라미터가 적절히 설정되어 있는 경우만,true 가 돌려주어집니다.
false
infosetfalse 로 설정해도 영향은 없습니다.
"namespaces"
true
[「필수」(디폴트) 정의에 따라, 이름 공간 처리를 실행합니다.
false
[「옵션」이름 공간 처리를 실행하지 않습니다.
"namespace-declarations"
「namespaces」파라미터를 false 로 설정해도 영향은 없습니다.
true
[「필수」(디폴트) schema로 지정 또는 디폴트 설정되어 있는 이름 공간 선언 속성을 문서에 포함합니다. XML 이름 공간「XML Namespaces 1.1」의 이름 공간의 선언의 섹션도 참조해 주세요.
false
[「필수」모든 이름 공간 선언 속성을 파기합니다. 이 파라미터가 false 로 설정되어 있어도, 이름 공간 접두사 ( Node.prefix)는 보관 유지됩니다.
"normalize-characters"
true
[「옵션」의「XML 1.1」의 부록 B 로 정의되고 있도록(듯이), 문서의 캐릭터 라인을완전하게 정규화합니다.
false
[「필수」(디폴트) 문자의 정규화를 실행하지 않습니다.
"schema-location"
[「옵션」공백 문자 (「XML 1.0」의 섹션 2.3 으로 정의되고 있는비끝 생성 S 에 일치하는 문자)로 단락지어진 URI 의 리스트를 포함한 DOMString 객체를 나타냅니다. 이 객체는, 검증을 하는 schema (현재의 schema)를 나타냅니다. 이 리스트로 참조되는 schema의 형태는,schema-type 로 지정된 형태에 일치하지 않으면 안됩니다. 일치하지 않는 경우, 구현의 동작은 보증되지 않습니다. 이 프로퍼티을 사용해 지정된 schema는, 문서로 독자적으로 지정된 schema 정보보다 우선됩니다. 이름 공간 인식 schema의 경우, 이 프로퍼티으로 지정된 schema와 schema 문서 (schema import 메카니즘을 사용)의 문서 인스턴스 (schemaLocation 속성을 사용)로 지정된 schema가 같은 targetNamespace 를 공유할 때, 사용자가 이 프로퍼티을 사용해 지정한 schema가 사용됩니다. 이 프로퍼티을 사용해 지정된 2 개의 schema가, 같은 targetNamespace 를 공유하는지, 이름 공간을 가지지 않는 경우, 동작은 구현에 의존해 정해집니다. 장소를 지정하지 않았던 경우, 이 파라미터는 null 가 됩니다.

주: schema-type 파라미터치를 설정하지 않는 한,「schema-location」파라미터는 무시됩니다. Document.documentURI 를 설정해, 참조된 외부 엔티티를 구현으로 문제 없게 해결할 수 있도록(듯이) 하는 것을 강하게 추천합니다.

"schema-type"
[「옵션」절대 URI 를 포함해, 문서의 검증에 사용되는 schema 언어의 형태를 나타내는 DOMString 객체를 표현합니다. 절대 URI 로, 자구 체크는 행해지지 않는 것에 주의. 이 파라미터가 설정되지 않는 경우, 구현에서는, 지원되고 있는 schema 언어나 로드시에 사용된 schema 언어에 응해, 디폴트의 값을 지정할 수 있습니다. 값을 지정하지 않는 경우, 이 파라미터는 null 가 됩니다.

주: XML schema「XML Schema Part 1」 의 경우는, 어플리케이션으로 값「http://www.w3.org/2001/XMLSchema」를 사용할 필요가 있습니다. XML DTD「XML 1.0」의 경우는, 어플리케이션으로 값「http://www.w3.org/TR/REC-xml」를 사용할 필요가 있습니다. 다른 schema 언어는 W3C 의 범위외이기 (위해)때문에, 이 메소드를 사용하려면 , 절대 URI 를 사용하는 것을 추천합니다.

"split-cdata-sections"
true
[「필수」(디폴트) CDATA 섹션 종료 마커 「]]>」를 포함하고 있는 CDATA 섹션을 분할합니다. CDATA 섹션이 분할되면(자), 분할의 결과의 문서순서에 DOMError.type 가 「cdata-sections-splitted」이며,DOMError.relatedData 가 문서의 최초의 CDATASection 노드인 경고가 통지됩니다.
false
[「필수」(디폴트) CDATASection 를 표현할 수 없는 문자를 포함한 경우에 에러를 통지합니다.
"validate"
true
[「옵션」의「XML 1.0」으로 정의되고 있도록(듯이) 정규화되고 있는 문서의 schema (XML schema, DTD, schema외의 형태 또는 표현)에 대한 검증을 필요로 합니다. 검증 에러가 발견되거나 schema가 발견되지 않거나 했을 경우는, 에러 핸들러에 통지됩니다. 「datatype-normalization」파라미터가 true 로 설정되어 있지 않은 한, 사용되고 있는 schema에 따라 schema 정규화치는 공개되지 않습니다.
  • 이 파라미터는, 다음의 항목에 대해 재평가합니다. Attr 인터페이스의 설명으로 지정되고 있도록(듯이),At tr.specifiedfalse 인 속성 노드
  • 모든 Text 노드의 Text.isElementContentWhitespace 속성의 값
  • 모든 Attr 노드의 Attr.isId 속성의 값
  • Element.schemaTypeInfo 속성과 Attr.schemaTypeInfo 속성

주: 「validate-if-schema」와「validate」는 서로 배타적입니다. 한편을 true 로 설정하면(자), 한편은 false 로 설정됩니다. 어플리케이션에서는, 문서의 검증시, 이 옵션의 디폴트인 well-formed 파라미터를 true 로 설정하는 일도 고려할 필요가 있습니다.

false
[「필수」(디폴트) 내부 부분집합 처리를 포함해, schema 처리를 실행하지 않습니다. 디폴트의 속성치 정보는 유지됩니다. 그런데도 「validate-if-schema」가 true 인 경우는, 검증을 할 가능성이 있습니다.
"validate-if-schema"
true
[「옵션」schema로 문서 요소의 선언 (XML schema, DTD, 혹은 schema외의 형태 또는 표현. 발견된 장소에 무관계)가 발견되었을 경우만 검증을 유효하게 합니다. 검증이 유효한 경우, 이 파라미터는, 「validate」파라미터가 true 로 설정되어 있을 때와 같은 동작을 합니다.

주: 「validate-if-schema」와「validate」는 서로 배타적입니다. 한편을 true 로 설정하면(자), 한편은 false 로 설정됩니다.

false
[「필수」(디폴트) 문서에 schema가 있는 경우, 내부 부분집합 처리등의 schema 처리를 실행하지 않습니다. 디폴트의 속성치 정보는 유지됩니다. 그런데도 「validate」가 true 인 경우는, 검증을 합니다.
"well-formed"
true
[「필수」(디폴트) Document.xmlVersion 로 사용되고 있는 XML 버젼에 따라, 모든 노드가 정형식의 XML 일지 어떨지를 체크합니다.
  • Node.nodeName 속성이 노드형에 대해서 무효인 문자를 포함하고 있는지 어떤지를 체크해, 필요에 따라서DOMError.SEVERITY_ERROR 중요도를 포함한 「wf-invalid-character-in-node-name」 형의 DOMError 를 생성한다
  • Attr,Element, Comment,Text,CDATASection 등의 노드내의 텍스트 컨텐츠가 무효인 문자를 포함하고 있는지 어떤지를 체크해, 필요에 따라서 DOMError.SEVERITY_ERROR 중요도를 포함한 「wf-invalid-character」형의 DOMError 를 생성한다
  • ProcessingInstruction 노드내의 데이터가 무효인 문자를 포함하고 있는지 어떤지를 체크해, 필요에 따라서 DOMErr or.SEVERITY_ERROR 중요도를 포함한「wf-invalid-character」 형의 DOMError 를 생성한다
false
[「옵션」XML 의 정형식을 체크하지 않습니다.

엔티티에 관련하는 시스템 식별자의 해결은,Document.documentURI 를 사용해 행해집니다. 다만,「DOM Level 3 Load and Save」로 정의되고 있는 「LS」기능을 DOM 구현이 지원하고 있을 때는,Document 노드에 추가되고 있는 DOMConfiguration 객체로 「resource-resolver」파라미터를 사용할 수도 있습니다. 이 파라미터가 설정되어 있으면(자),Document.normalizeDocument()Document.documentURI 를 이용하는 대신에 자원 리절버를 호출합니다.

「Document Object Model (DOM) Level 3 Core Specification」를 참조해 주세요.

도입된 버젼:
DOM Level 3

메소드의 개요
 boolean canSetParameter (String  name, Object  value)
          특정의 값에 대해서 파라미터를 설정하는 것이 지원되고 있는지 어떤지를 체크합니다.
 Object getParameter (String  name)
          기존의 경우는, 파라미터의 값을 돌려줍니다.
 DOMStringList getParameterNames ()
          DOMConfiguration 객체가 지원하고 있는 파라미터의 리스트.
 void setParameter (String  name, Object  value)
          파라미터의 값을 설정합니다.
 

메소드의 상세

setParameter

void setParameter(String  name,
                  Object  value)
                  throws DOMException 
파라미터의 값을 설정합니다.

파라미터:
name - 설정하는 파라미터의 이름
value - 새로운 값 또는 사용자가 파라미터를 설정하지 않는 경우는 null. 파라미터의 치 형은 DOMUserData 에 의해 정의되지만, 객체형은 파라미터의 정의에 의해 정의된 형태에 일치해야 한다. 예를 들어, 파라미터가 error-handler 인 경우, 값은 DOMErrorHandler 형태가 아니면 안된다
예외:
DOMException - NOT_FOUND_ERR:파라미터명이 인식되지 않는 경우
NOT_SUPPORTED_ERR:파라미터명은 인식되고 있어도, 요구된 값을 설정할 수 없는 경우
TYPE_MISMATCH_ERR:이 파라미터명의 치 형이 예상한 치 형과 호환성이 없는 경우

getParameter

Object  getParameter(String  name)
                    throws DOMException 
기존의 경우는, 파라미터의 값을 돌려줍니다.

파라미터:
name - 파라미터의 이름
반환값:
지정된 파라미터에 관련지을 수 있었던 현재의 객체. 객체를 관련지을 수 있지 않은 경우나 파라미터가 지원되어 있지 않은 경우는 null
예외:
DOMException - NOT_FOUND_ERR:파라미터명이 인식되지 않는 경우

canSetParameter

boolean canSetParameter(String  name,
                        Object  value)
특정의 값에 대해서 파라미터를 설정하는 것이 지원되고 있는지 어떤지를 체크합니다.

파라미터:
name - 체크하는 파라미터의 이름
value - 객체. null 의 경우, 반환되는 값은 true.
반환값:
파라미터가 지정된 값에 문제 없게 설정할 수 있었을 경우는 true. 파라미터가 인식되지 않는 경우나 요구된 값이 지원되어 있지 않은 경우는 false. 이것에 의해, 파라미터 자체의 현재의 값은 변경되지 않는다

getParameterNames

DOMStringList  getParameterNames()
DOMConfiguration 객체가 지원하고 있는 파라미터의 리스트. 어플리케이션에서는 적어도 1 개의 값을 이러한 파라미터에 대해서 설정할 수 있습니다. 이 리스트에는, 이 스펙의 외부에서 정의된 파라미터명도 포함될 가능성이 있는 것에 주의해 주세요.


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