376.15. 네임스페이스 감사
Camel은 Cryostat 표현식을 평가하기 전에 들어오는 모든 메시지에 있는 모든 네임스페이스를 검색하고 덤프할 수 있으므로 가능한 네임스페이스 문제를 분석하고 파악하는 데 필요한 모든 풍부한 정보를 제공합니다.
이를 위해 내부적으로는 다른 특수화된 Cryostat 표현식을 사용하여 메시지에 표시되는 모든 네임스페이스 매핑을 추출하여 각 개별 매핑에 대한 접두사 및 전체 네임스페이스 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]}