XML API에서 제공하는 두 개의 컨텍스트 인터페이스(XStaticContext 및
XDynamicContext)를 사용할 수 있습니다.
이 태스크 정보
- 정적 컨텍스트
- 정적 컨텍스트는 준비 시간 특성을 구성하는 데 사용됩니다.
참고: 준비 시간은 XCompilationFactory에서 컴파일 메소드 중 하나의 실행 또는
XFactory에서 준비 메소드 중 하나의 실행을 참조합니다.
정적
컨텍스트는 실행 파일을 준비하는 데 필요한 항목, 역호환성과 같은 컴파일 모드 및 런타임에 사용 가능한
외부 변수 및 함수의 이름 및 유형과 같은 항목, 산술 모드 등을 정의합니다.
이 항목은 호출에서 변경되지 않습니다.
- 동적 컨텍스트
- 동적 컨텍스트는 실행 시간 특성을 구성하는 데 사용됩니다.
동적 컨텍스트는 실행 파일의 각 호출에 고유한 항목,
외부 입력 또는 결과에 대한 외부 변수, 외부 함수 구현, 분석기의 값과 같은 항목을 정의합니다.
이 항목은
호출에서 변경될 수 있습니다.
준비 시간 특성은
XFactory 인스턴스에 직접 설정되지 않으므로 스레드 보안될 수 있습니다.
실행 시간 특성에서도 마찬가지입니다. 실행 파일 오브젝트가 스레드 보안되도록
XExecutable 인스턴스에서 별도의 오브젝트에 유지됩니다.
준비 및 실행 단계는 서로 구분되어 있습니다.
준비는 시간이 걸리고 모든 실행 시 준비하려면 비효율적일 수 있기 때문입니다.
별도의 단계를 보유하면 표현식, 조회 또는 스타일시트에서
임의의 수만큼 입력 문서를 처리하는 데 사용할 결과 실행 파일 오브젝트를
한 번 준비할 수 있습니다.
프로시저
- 정적 컨텍스트, XStaticContext를 사용하여 준비 시간 특성을 구성하십시오.
준비 시간 특성은 실행 파일 오브젝트에 직접 빌드됩니다.
따라서 특정 특성 세트로 실행 파일 오브젝트를 작성한 후에 수정되며 변경 불가능합니다.
특성은 서로 다르지만,
동일한 표현식, 조회 또는 스타일시트에 대한 실행 파일 오브젝트가
필요하면 새로 생성해야 합니다.
준비 시간 특성을 설정하는 데 사용되는 XStaticContext의 메소드 예제:
- setUseCompiler
- 생성된 실행 파일 오브젝트는 컴파일 및 해석된 항목과 매우 다릅니다.
따라서 이는 준비 시간 특성입니다.
- declareVariable
- 변수 유형은 표현식, 조회 또는 스타일시트를 컴파일하는 항목에 영향을 주므로,
이는 준비 시간 특성입니다.
반면에 변수의 값을 바인드하는 작업은
실행 시간 특성이며, 각 실행에서 값은 달라질 수 있습니다.
- setSourceResolver
- 준비 시간에 등록된 소스 분석기는 포함 및 가져오기를 분석하는 데 사용됩니다.
또한 소스분석기는 실행 시간에 등록될 수도 있지만 다른 목적으로 사용됩니다.
- 동적 컨텍스트, XDynamicContext를 사용하여 실행 시간 특성을 구성하십시오.
실행 시간 특성은 실행 파일 오브젝트의 실행 메소드에 대한 각 호출에서 서로 다를 수 있습니다.
실행 시간 특성을 설정하는 데 사용되는 XDynamicContext의 메소드 예제:
- bind 메소드
- XDynamicContext 인터페이스에서 bind 메소드는 변수에 대한 값을 제공하는 데 사용됩니다.
값은 각 실행에서 달라질 수 있습니다.
- setSourceResolver
- 실행 시간에 등록된 소스 분석기는 XPath fn:doc 함수 또는 XSLT
fn:document 함수를 통해 로드된 입력 문서를 분석하는 데 사용됩니다.
- setXSLTInitialTemplate
- XSL 변환에 대해 호출할 초기 템플리트를 식별합니다.
다음에 수행할 작업
또한 XPath, XQuery, XSLT 스펙에는 정적 및 동적 컨텍스트의 개념이 포함되어 있습니다.
자세한 정보는 다음 웹 페이지를
참조하십시오.
XStaticContext
및 XDynamicContext 인터페이스는 세 개의 모든 언어(XPath, XQuery, XSLT)의
설정을 병합합니다. 어떤 언어에 어떤 설정을 적용할 것인지 찾기 위해
다음 관련 태스크에서 해당 언어에 대한 "기본 조작 수행" 문서를 참조하십시오.