33장. XQuery


33.1. 개요

XQuery는 원래 XML 형식으로 데이터베이스에 저장된 데이터의 쿼리 언어로 고안되었습니다. XQuery 언어를 사용하면 메시지가 XML 형식일 때 현재 메시지의 일부를 선택할 수 있습니다. XQuery는 Cryostat 언어의 상위 집합이므로 유효한 모든 Cryostat 표현식도 유효한 XQuery 표현식입니다.

33.2. Java 구문

XQuery 표현식을 여러 가지 방법으로 xquery() 에 전달할 수 있습니다. 간단한 표현식의 경우 XQuery 표현식을 문자열(java.lang.String)으로 전달할 수 있습니다. 더 긴 XQuery 표현식의 경우 식을 파일에 저장하는 것을 선호할 수 있습니다. 이 표현식은 java.io.File 인수 또는 java.net.URL 인수를 오버로드된 xquery() 메서드에 전달하여 참조할 수 있습니다. XQuery 표현식은 메시지 콘텐츠에 암시적으로 작동하고 그 결과로 노드 세트를 반환합니다. 컨텍스트에 따라 반환 값은 서술자(빈 노드 세트가 false로 해석되는 경우) 또는 표현식으로 해석됩니다.

33.3. Saxon 모듈 추가

경로에서 XQuery를 사용하려면 예 33.1. “camel-saxon 종속성 추가” 에 표시된 것처럼 camel-saxon 에 대한 종속성을 프로젝트에 추가해야 합니다.

예 33.1. camel-saxon 종속성 추가

<!-- Maven POM File -->
...
<dependencies>
  ...
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-saxon</artifactId>
    <version>${camel-version}</version>
  </dependency>
  ...
</dependencies>

33.4. Camel on EAP 배포

camel-saxon 구성 요소는 Red Hat JBoss EAP(JBoss Enterprise Application Platform) 컨테이너에 간단한 배포 모델을 제공하는 EAP의 Camel(Wildfly Camel) 프레임워크에서 지원합니다.

33.5. 정적 가져오기

애플리케이션 코드에서 xquery() 정적 메서드를 사용하려면 Java 소스 파일에 다음 import 문을 포함합니다.

import static org.apache.camel.component.xquery.XQueryBuilder.xquery;

33.6. 변수

표 33.1. “XQuery 변수” XQuery를 사용할 때 액세스할 수 있는 변수를 나열합니다.

표 33.1. XQuery 변수
Variable유형설명

exchange

교환

현재 교환

in.body

개체

IN 메시지의 본문

out.body

개체

OUT 메시지의 본문

in.headers.key

개체

키가 key인 IN 메시지 헤더

out.headers.key

개체

키가 key인 OUT 메시지 헤더

key

개체

키가 인 교환 속성

33.7. 예제

예 33.2. “XQuery를 사용하는 경로” XQuery를 사용하는 경로를 표시합니다.

예 33.2. XQuery를 사용하는 경로

<camelContext>
  <route>
    <from uri="activemq:MyQueue"/>
    <filter>
      <language langauge="xquery">/foo:person[@name='James']</language>
      <to uri="mqseries:SomeOtherQueue"/>
    </filter>
  </route>
</camelContext>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.