현재 Xclery 엔진 Zorba과 함께 Eclipses XQuery 플러그인 xqdt을 사용하고 있습니다.스키마 인식 XQuery
XQuery 엔진에서 내 XPath 표현의 정확성을 "유형 확인"하고 싶습니다. 스키마가 비디오/비디오가 허용되지만 비디오/그림이 허용되지 않는다고 정의하면 인터프리터는 후자의 XPath 표현이 유효하지 않다고 경고해야합니다.
나는 Schema-Aware Queries and Stylesheets 튜토리얼을 따르려고했으나 제대로 작동하지 않습니다. 내 코드 예제에서는 예제 video.xml 및 예제 video.xsd을 사용합니다.
내 첫 번째로, 그 중 하나의 예제를 제거하면 형식 오류가 발생합니다. "videos.xsd"에 스키마 가져 오기 기본 요소 네임 스페이스 ";
1 import schema default element namespace "" at "videos.xsd";
2
3 declare variable $input as schema-element(result) := doc('videos.xml')/*;
4 for $v in $input/videos/video
5 return $v
...\XQqueryProject\videos.xq>:3,1: type error [err:XPTY0004]:
element(result, xs:untyped) can not be treated as type schema-element(result)
내 맞춤법이 틀린 동영상 2 경로에 대해 경고하지 않는 대신 스키마 요소의 요소를 사용하여, 유형의 재생 및 아무것도 인쇄되지 않습니다
import schema default element namespace "" at "videos.xsd";
declare variable $input as element(result) := doc('videos.xml')/*;
for $v in $input/videos/video2
return $v
가 Q : 누군가가 나에게 제공 할 수를 $ input/videos/video2가 실패하는 최소한의 작업 예제가 있습니까?
업데이트 : 내가하지만 성공없이,의 videos.xsd에 videos.xml을 네임 스페이스를 추가
import schema default element namespace "myVideos" at "videos.xsd";
에 가져 오기 스키마를 변경했습니다.
xml이 네임 스페이스에없는 것처럼 보입니다 (접두어가없는 것과 다릅니다). 아마도 xsd와 xml을 모두 네임 스페이스 uri에 연결하고 XPath의 접두어를 사용하여 네임 스페이스를 참조하는 것이 가장 좋습니다. XQDT 내에서 적어도 스키마 인식에 XPath 문의 유효성 검사가 포함되는지 여부는 확실하지 않습니다. – grtjn
힌트를 보내 주셔서 감사 드리며이를 테스트 해 보겠습니다. XQDT에 대해서 : xqdt가 'compile time'오류를 보여줄지는 신경 쓰지 않지만 질의가 실행될 때 Zorba가 이것을보고 싶습니다. –