2009-05-29 3 views
49

XPath, XQueryXPointer의 차이점은 무엇입니까? 내가 아는 한, XQueryXPath의 확장 버전입니다. 나는 XPath에 대한 기본적인 지식을 가지고있다. XPath에 사용할 수있는 기능이 있습니까? XQuery에 없습니까? 어제, 나는 새로운 단어, XPointer을 들었다. 나는 혼란 스럽다. 어떤 목적으로 사용되는 언어입니까?XPath, XQuery 및 XPointer의 차이점

답변

54

위키 백과는 이와 같은 질문을하기에 좋은 곳입니다. 일반적으로 XPath은 DOM에서 정확한 XML 노드를 간결하게 나타내는 데 사용되는 언어입니다. XQuery은 SQL 유사 문자 인 FLWOR 구문을 제공하는 XPath의 상위 집합입니다. 마지막으로 은 XPath를 포함하지만 더 간단한 위치 기반 주소 지정 체계를 제공합니다.

물론 전체 세부 정보는 W3C 사양을 읽을 수 있습니다.

16

글쎄, 나는 XQuery가 탁월한 가치가 있다고 생각한다. XPath와 XPointer는 거의 동일하며 XML 노드 선택에 사용됩니다. 반면에 XQuery는 XPath의 상당히 큰 확장입니다. 예를 들어 사용자 정의 함수를 선언 할 수 있습니다. 따라서 XML과 기본적으로 작동하는 프로그래밍 언어와 같은 것입니다. 당신은 여기에 몇 가지 샘플을 확인하실 수 있습니다 : embedding-xquery-in-java

감사

38

매튜에 의해 대답은 좋은 첫 인상을 준다 비록, 언급 된 표준에 대해 알려줄 수있는 더 많은이, 그리고 관련되는 많은이있다 . 온라인으로 제공되는 XML Holland 사용자 그룹 잡지의 멋진 기사가 XQuery의 역사에 대해 많이 알려주고 있으며 이러한 표준을 다양한 관점에서 살펴 봅니다. 첫 번째 부분은 여기에서 매우 관련이 있습니다.

XQueryXML Query Language을 나타냅니다. 그것은 이미 본질을 말해줍니다. 대규모 XML 파일 집합에서 하위 집합과 하위 구조를 선택하는 언어입니다. 결과는 예를 들어 후속 프로세스에서 사용하거나 웹 브라우저에 표시하기에 적합한 것으로 조작 할 수 있습니다. XPath은 XQuery에서 많이 사용됩니다.

모든 XML 표준에는 자체 범위가 있습니다. 나는 몇 가지 이름을 지을 것이다. XSLT은 XML을 다른 형식으로 변환하기위한 언어입니다. XPointer은 XML 조각 또는 심지어 노드의 하위 부분에서 노드를보다 정확하게 주소 지정하기위한 XPath의 확장입니다. XLink은 관계를 정의하는 표준입니다. XInclude은 예를 들어 XLink 관계를 사용하여 여러 개의 XML 조각으로 구성하는 표준입니다. 그리고 XProc은 원하는 최종 결과를 얻기 위해 XML 문서를 처리하는 방법을 설명하는 표준입니다. XML로 표현되며 XML 파이프 라인이라고도하는 프로세스를 단계별로 설명합니다. XProc에서는 a.o를 사용합니다. XQuery, XSLT 및 XInclude 언어 (간접적으로 XPath, XPointer 및 XLink)를 사용하여 각 단계 내에서 정확히 수행해야 할 작업을 표현할 수 있습니다.

이 표준은 모두 묶여 있습니다. 그들은 서로 관련이 있고 서로 의존합니다.언급 된 XML 표준의 일부 사이의 중복 당신은 또한 W3Schools에서 찾을 수 다음 이미지에 아주 잘 요약되어 있습니다 :

What is XPath

전체 문서는 여기에서 찾을 수 있습니다 : http://grtjn.blogspot.nl/2011/10/xquery-novelties-revisited.html

HTH를!

+0

의 제는 XQuery 구현 관점에서

는 XML 쿼리하는 XQuery를위한 시작에 불과했다. XQuery Full-Text와 XQuery Update Facility와 같은 추가 기준이 이미 정의 된 것보다 훨씬 다재다능하게 만들어지기 시작했습니다. 지금까지 조금 날짜가 있지만, 위에 언급 한 기사는 이들 중 대부분을 통과합니다. – grtjn

3

XPath는 의도적으로 기존 노드를 읽는 것으로 제한됩니다.

XSLT로 XQuery는 노드를 만들 수 있습니다. 또한 노드를 업데이트 할 수 있습니다 (XQuery 업데이트 기능 포함). 위뿐만 아니라보기 ;-)