java - XQuery에서 배열을 사용하거나 구현하는 방법은 무엇입니까?

출처 java xml xquery marklogic

XQuery에서 배열에 대한 기본 지원이 있습니까? 예를 들어, 우리가
xquery의 간단한 자바 프로그램은 우리가 어떻게 할 것인가 :

(전체 프로그램을 xquery로 번역하도록 요청하는 것이 아니라
xquery에 아래 코드의 줄 번호 2에 배열을 구현하는 방법은 무엇입니까? 나는
marklogic / xdmp 기능도 사용).

java.lang.String test = new String("Hello XQuery");
char[] characters = test.toCharArray();

for(int i = 0; i<characters.length; i++) {
    if(character[i] == (char)13) { 
        character[i] = (char) 0x00;
    }
}

Legend:

hex 0x00 dec 0 : null
hex 0x0d dec 13: carriage return
hex 0x0a dec 10: line feed
hex 0x20 dec 22: dquote
샘플 코드를 XQuery로 변환하는 문제는 배열에 대한 지원이 없다는 것이 아니라 x00이 XML에서 유효한 문자가 아니라는 사실입니다. 이 문제가 아니라면 간단한 함수 호출로 쿼리를 표현할 수 있습니다.

translate($input, '&#x13;', '&#x00;')


자, 당신은 그것이 속임수라고 주장 할 수 있습니다. 그것은 당신이 손으로하려는 일을 정확히 수행하는 기능이 있기 때문에 발생합니다. 그러나이 함수가 존재하지 않았다면 XQuery에서 프로그래밍 할 수 있습니다. 원하는 방식으로 조작 할 수 있도록 문자열에 사용할 수있는 충분한 프리미티브가 있습니다. 필요한 경우 (거의 필요하지 않음) string-to-codepoints() 함수를 사용하여 문자열을 정수 시퀀스로 변환 한 다음 시퀀스를 조작하기 위해 모든 XQuery 기능을 활용할 수 있습니다.

교훈은 XQuery 또는 XSLT와 같은 선언적 언어를 사용할 때 더 원시적 인 언어에서 사용하도록 강요된 것과 동일한 저수준 프로그래밍 기술을 사용하지 않는 것입니다. 일반적으로 문제를 표현하는 훨씬 더 직접적인 방법이 있습니다.
관련 기사

java - 인스턴스 변수의 이름이 인수 변수와 같을 때 호출

java - 객체 배열의 모든 조합

java - Java의 arraylist에 대용량 파일을로드하는 가장 좋은 방법

java - 배포 (게시) 후 Weblogic 오류 : 오류 503-- 서비스를 사용할 수 없음

java - "리소스로 시도"에 문제가 있음

java - Java 인터페이스에 대한 Java 특성 파일 바인딩

java - 날짜 시간 형식 Java로 시간 추가

java - Java의 내부 클래스에서 변수에 액세스

java - ArrayIndexOutOfBoundsException 데이터 액세스 시도

java - charAt ()은 문자열을 반환하지 않습니까?