2011-04-22 6 views
0

저는 며칠 동안이 문제에 어려움을 겪었으며 귀하의 도움에 진심으로 감사드립니다. XML 메시지를 반환하는 여러 웹 서비스를 쿼리하는 Java 응용 프로그램이 있습니다. 그런 다음 애플리케이션은 xquery를 사용하여 반환 된 여러 XML 메시지를 구문 분석합니다. 내가 이해 한 것을 토대로, xquery는 XML을 읽을 XML 문서가 필요하고, Java 애플리케이션의 경우 리턴 된 각 Webservices XML에 대한 XML 문서를 작성하면 응답 시간이 길어지고 느려집니다.WebServices를 사용하여 xQuery에 반환 된 XML을 구문 분석하는 방법은 무엇입니까?

Webservices 호출에서 반환 된 XML 문자열을 XML 문서를 만들지 않고 xquery에 대한 입력으로 직접 전달할 수있는 방법이 있습니까? 단일 소스의 XML은 일관성이 있지만 XML 구조가 여러 Webservices 호출에서 다르므로 매우 유연한 응용 프로그램 처리 프레임 워크가 필요합니다.

미리 감사드립니다. Neil.

+0

@ user720994 : XPath/XQuery 3.0 (현재 작업 초안)에는 ['fn : parse-xml()'] (http://www.w3.org/TR/xpath-functions-30/)이 있습니다. # func-parse-xml) 함수를 호출합니다. –

답변

0

문자열은 문자열이고 XQuery/XPath는 네임 스페이스, 요소 및 특성이있는 구문 분석 된 개체가 필요합니다. 그래서 파싱이 필요합니다.

DOM 대신 InputSource를 전달할 수 있지만 어쨌든 DOM을 후드 아래에 빌드한다고 들었습니다.

0

있는 방법은 웹 서비스 호출에 의해 반환 된 XML 문자열 이 는 XML 문서를 생성하지 않고 는 XQuery에 입력으로 직접 전달 될 수 있나요?

아니요, XQuery는 XML 문서에서 작동합니다. 문자열을 XQuery 응용 프로그램에 전달할 수 있으며 XML 문서가 아닌 문자열로 처리됩니다. string-length(), substring(), matches(), tokenize(), replace(), ..., 등을

:

"<t name='Ann'/>" 

같은 스트링 인수 (들)을 받아들이는 임의의 함수로 처리 될 수있다 : 예를 들어

이 문자열을 XML 문서로 처리하려고합니다. 예를 들어

과 같은 XPath 표현식을 평가하려고합니다.
/t/@name 

물론이 문자열은 구문 분석되지 않는 한 문자열에 사용할 수 없습니다.

관련 문제