32.5. Saxon 활성화
32.5.1. 사전 요구 사항
Saxon 구문 분석기를 사용하기 위한 사전 요구 사항은 camel-saxon
아티팩트에 종속성을 추가합니다(Maven POM에 종속성을 추가하거나 Maven POM을 사용하는 경우, 또는 camel-saxon-2.23.2.fuse-7_10_0-00018-redhat-00001.jar
파일을 classpath에 추가하는 것입니다.
32.5.2. Java DSL에서 Saxon 구문 분석기 사용
Java DSL에서 Saxon 구문 분석기를 활성화하는 가장 간단한 방법은 saxon()
fluent 빌더 메서드를 호출하는 것입니다. 예를 들어 다음 예와 같이 Saxon 구문 분석기를 호출할 수 있습니다.
// Java // create a builder to evaluate the xpath using saxon XPathBuilder builder = XPathBuilder.xpath("tokenize(/foo/bar, '_')[2]").saxon(); // evaluate as a String result String result = builder.evaluate(context, "<foo><bar>abc_def_ghi</bar></foo>");
32.5.3. XML DSL에서 Saxon 구문 분석기 사용
XML DSL에서 Saxon 구문 분석기를 활성화하는 가장 간단한 방법은 xpath
요소에서 saxon
속성을 true로 설정하는 것입니다. 예를 들어 다음 예와 같이 Saxon 구문 분석기를 호출할 수 있습니다.
<xpath saxon="true" resultType="java.lang.String">current-dateTime()</xpath>
32.5.4. Saxon을 사용한 프로그래밍
애플리케이션 코드에서 Saxon XML 구문 분석기를 사용하려면 다음 코드를 사용하여 명시적으로 Saxon transformer 팩토리 인스턴스를 생성할 수 있습니다.
// Java import javax.xml.transform.TransformerFactory; import net.sf.saxon.TransformerFactoryImpl; ... TransformerFactory saxonFactory = new net.sf.saxon.TransformerFactoryImpl();
반면 generic CryostatP API를 사용하여 transformer 팩토리 인스턴스를 생성하려면 먼저 ESBInstall/etc/system.properties
파일에서 javax.xml.transform.TransformerFactory
속성을 설정해야 합니다.
javax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
그런 다음 일반 CryostatP API를 사용하여 다음과 같이 Saxon 팩토리를 인스턴스화할 수 있습니다.
// Java import javax.xml.transform.TransformerFactory; ... TransformerFactory factory = TransformerFactory.newInstance();
애플리케이션이 Saxon을 사용하는 타사 라이브러리에 종속되는 경우 두 번째 일반적인 접근 방식을 사용해야 할 수 있습니다.
Saxon 라이브러리는 OSGi 번들인 net.sf.saxon/saxon9he
로 컨테이너에 설치해야 합니다(일반적으로 기본적으로 설치됨). 7.1 이전 버전의 Fuse ESB에서는 일반 CryostatP API를 사용하여 Saxon을 로드할 수 없습니다.