375.15. 감사 네임스페이스

Camel은 XPath 표현식을 평가하기 전에 들어오는 모든 네임스페이스에 있는 모든 네임스페이스를 검색하고 덤프할 수 있으며, 가능한 네임스페이스 문제를 분석하고 파악하는 데 필요한 풍부한 정보를 모두 제공할 수 있습니다.

이를 달성하기 위해 내부적으로는 또 다른 특수 조정된 XPath 표현식을 사용하여 메시지에 표시되는 모든 네임스페이스 매핑을 추출하여 각 개별 매핑에 대한 접두사와 전체 네임스페이스 URI를 표시합니다.

고려해야 할 몇 가지 사항:

  • 암시적 XML 네임스페이스 (xmlns:xml="http://www.w3.org/XML/1998/namespace")는 값을 추가하지 않기 때문에 출력에서 비활성화합니다.
  • 기본 네임스페이스는 출력의 DEFAULT 키워드 아래에 나열됩니다.
  • 네임스페이스는 다른 범위에서 다시 매핑할 수 있습니다. 내부 요소에서 다른 네임스페이스를 할당하거나 내부 범위에서 변경할 수 있는 최상위 'a' 접두사를 고려하십시오. 검색된 각 접두사에 대해 연결된 모든 URI가 나열됩니다.

Java DSL 및 Spring DSL에서 이 옵션을 활성화할 수 있습니다.

Java DSL:

XPathBuilder.xpath("/foo:person/@id", String.class).logNamespaces()

Spring DSL:

<xpath logNamespaces="true" resultType="String">/foo:person/@id</xpath>

감사 결과는 org.apache.camel.builder.xml.XPathBuilder 로거 아래에 INFO 수준에 표시됩니다.

2012-01-16 13:23:45,878 [stSaxonWithFlag] INFO  XPathBuilder  - Namespaces discovered in message:
{xmlns:a=[http://apache.org/camel], DEFAULT=[http://apache.org/default],
xmlns:b=[http://apache.org/camelA, http://apache.org/camelB]}