구문 분석되지 않은 텍스트 분석기 사용

XUnparsedTextResolver 인터페이스가 구현 가능하며, 구현은 XSLT 구문 분석되지 않은 텍스트 함수를 통해 로드된 자원의 기본 분석 동작을 대체하도록 XDynamicContext에 등록됩니다.

이 태스크 정보

XSLT 구문 분석되지 않은 텍스트 함수를 통해 로드된 자원의 기본 분석 동작은 정적 컨텍스트에서 기본 URI에 기반하여 상대적 URI를 분석하는 것입니다. 기본 URI를 사용할 수 없으면 현재 작업 디렉토리가 사용됩니다. 절대적 URI는 그대로 사용됩니다.

프로시저

XDynamicContext 인터페이스에서 setUnparsedTextResolver 메소드를 사용하여 구문 분석되지 않은 텍스트 분석기를 등록하십시오.

다음은 구문 분석되지 않은 텍스트 분석기의 기본 예제입니다.
XFactory factory = XFactory.newInstance();

// Prepare the stylesheet.
XSLTExecutable executable = factory.prepareXSLT(new StreamSource(stylesheetFile));
           
// Create the dynamic context and set the unparsed text resolver.
XDynamicContext dynamicContext = factory.newDynamicContext();
AnUnparsedTextResolver resolver = new AnUnparsedTextResolver(replacementBase);
dynamicContext.setUnparsedTextResolver(resolver);
           
// Execute the transformation.
Source source = new StreamSource(inputFile);
Result result = new StreamResult(System.out);
executable.execute(source, dynamicContext, result);
다음은 구문 분석되지 않은 텍스트 분석기 구현의 기본 예제입니다.
class AnUnparsedTextResolver implements XUnparsedTextResolver
{
    String _replacementBase;
       
    public AnUnparsedTextResolver(String replacementBase)
    {
        _replacementBase=replacementBase;
    }
       
    // Resolve URI, returning the resource that URI represents.
    // Implements the "rebase:" pseudo-scheme.
    public String getResource(String href, String encoding, String base) {
        String rebasePrefix="rebase:";

        if (href.startsWith(rebasePrefix)) {
            href = href.substring(rebasePrefix.length());
            base = _replacementBase;
        }
           
        try {
            // Get base URI object
            URI uri = new java.net.URI(base);
            // Resolved relative reference against base URI
            URI resolvedURI = uri.resolve(href);
            // Try to read...
            URL url = resolvedURI.toURL();
            URLConnection urlCon = url.openConnection();
            BufferedInputStream stream = new BufferedInputStream(urlCon.getInputStream());
            StringBuffer buffer = new StringBuffer();
            int s;
            while ((s = stream.read())!= -1) {
                // Do any character manipulation here.
                buffer.append((char)s);
            }
            return buffer.toString();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_resolvers_text
파일 이름:txml_resolvers_text.html