D.3. 윈 토토 제한 및 SQL/윈 토토에 대한 적합성

ISO/IEC 9075-14 (SQL/윈 토토)의 윈 토토 관련 사양에 대한 중요한 개정이 SQL : 2006과 함께 도입되었습니다.PostgreSQL의 윈 토토 데이터 유형 및 관련 기능의 구현은 2003 년 초기 판을 크게 따릅니다. 특히:

  • 현재 표준이 윈 토토 데이터 유형의 제품군을 제공하는 곳문서또는컨텐츠유형 또는 윈 토토 스키마 유형 변형 및 유형에서윈 토토 (시퀀스)임의의 윈 토토 컨텐츠를 보유하려면postgresql단일 제공윈 토토유형, 잡을 수있는 유형문서또는컨텐츠. 표준과 동등한 것은 없습니다시퀀스타입.

  • PostgreSQLSQL : 2006에서 소개 된 두 가지 기능을 제공하지만 표준에 지정된 윈 토토 쿼리 대신 XPATH 1.0 언어를 사용하는 변형에서

이 섹션은 당신이 겪을 수있는 결과 차이 중 일부를 제시합니다.

D.3.1. 쿼리는 XPath 1.0으로 제한됩니다

postgresql-특이 적 함수xpath ()andxpath_exists ()XPATH 언어를 사용하는 윈 토토 문서 쿼리.PostgreSQL표준 함수의 Xpath 전용 변형을 제공윈 토토existsand윈 토토table10604_10678postgresqllib윈 토토2XPath 1.0 만 제공하는 라이브러리.

XQuery 언어와 XPath 버전 2.0 이상 사이에는 강한 연결이 있습니다. 구문 적으로 유효하고 두 가지에서 성공적으로 실행되는 모든 표현식이 동일한 결과를 생성합니다 (숫자 문자 참조를 포함하는 표현식 또는 사전 정의 된 엔티티 참조를 포함하는 표현식에 대해서는 사소한 예외가 있습니다. 그러나 이러한 언어와 XPath 1.0 사이에는 그러한 연결이 없습니다. 그것은 이전의 언어 였고 여러 측면에서 다릅니다.

명심해야 할 두 가지 범주의 한계가 있습니다 : SQL 표준에 지정된 함수에 대한 xquery에서 Xpath로의 제한, 표준과 표준 모두에 대한 XPath의 버전 1.0에 대한 제한이 있습니다.postgresql-특이 적 함수.

D.3.1.1. xquery의 xpath 제한

XPATH를 넘어서 XQuery의 특징은 다음과 같습니다.

  • XQuery 표현식은 가능한 모든 XPATH 값 외에도 새로운 윈 토토 노드를 구성하고 반환 할 수 있습니다. XPath는 원자 유형 (숫자, 문자열 등)의 값을 생성하고 반환 할 수 있지만 표현식에 입력 한 문서에 이미 제공된 윈 토토 노드 만 반환 할 수 있습니다..

  • XQuery는 반복, 정렬 및 그룹화를위한 제어 구성이 있습니다.

  • XQuery는 로컬 기능의 선언 및 사용을 허용합니다.

최근 XPath 버전은 기능과 겹치는 기능을 제공하기 시작합니다 (예 : 기능 스타일for-eachandSort, 익명 함수 및parse-윈 토토문자열에서 노드를 생성하려면 xpath 3.0 이전에는 이러한 기능을 사용할 수 없었습니다.

D.3.1.2. 1.0으로의 XPath 제한

XQuery 및 XPath 2.0에 익숙한 개발자의 경우 XPath 1.0은 다음과 같은 여러 차이점을 나타냅니다.

  • xquery/xpath 표현식의 기본 유형,시퀀스13632_13825

  • 원하는 순서로 원하는 항목을 포함 할 수있는 XQuery/XPath 시퀀스와 달리 XPath 1.0 노드 세트는 주문이 보장되지 않으며 어떤 세트와 마찬가지로 동일한 항목의 여러 모양을 허용하지 않습니다..

    Note

    thelib윈 토토2라이브러리는 항상 노드 세트를 반환하는 것 같습니다PostgreSQL입력 문서에있는 동일한 상대 순서로 회원과 함께. 문서화는이 동작에 전념하지 않으며 XPath 1.0 표현식은 그것을 제어 할 수 없습니다.

  • XQuery/XPath는 윈 토토 스키마에 정의 된 모든 유형을 제공하고 해당 유형에 대한 많은 연산자와 기능을 제공하지만 XPath 1.0은 노드 세트 만 있으며 세 가지 원자 유형부울, 더블String.

  • XPath 1.0에는 조건부 연산자가 없습니다. xquery/xpath 표현식if (모자) 그런 다음 모자/@size else "no hat"XPath 1.0에 해당하지 않습니다.

  • XPath 1.0에는 문자열에 대한 주문 비교 연산자가 없습니다. 둘 다"cat"< "dog"and"고양이" "개"각각은 숫자 비교이기 때문에 false입니다.NANs. 대조적으로,=and! =문자열을 문자열과 비교하십시오.

  • xpath 1.0 간의 구별이 흐려집니다가치 비교and일반 비교xquery/xpath가 그것들을 정의합니다. 둘 다sale/@hatsize = 7and판매/@customer = "Alice"실존 적으로 정량화 된 비교, 어떤 경우도.판매속성에 주어진 값이 있지만sale/@taxable = false ()|유효 부울 가치전체 노드 세트. 아니요만이 사실입니다.판매a과세전혀 속성.

  • XQuery/XPath 데이터 모델에서 A문서 노드는 문서 양식 (즉, 댓글 및 처리 지침 만 포함하는 최상위 요소 1 개) 또는 컨텐츠 양식 (해당 제약 조건이 완화 됨)을 가질 수 있습니다. 그것의 XPath 1.0,에 해당합니다.루트 노드는 문서 형식으로 만 가능합니다. 이것이 이유 중 일부입니다윈 토토값은 컨텍스트 항목으로 전달되었습니다postgresqlxpath 기반 함수는 문서 형식이어야합니다.

여기서 강조된 차이점은 모두 그분이 아닙니다. XQuery와 2.0 이상의 XPath 버전에는 XPath 1.0 호환 모드가 있으며 W3C 목록이 있습니다.기능 라이브러리 변경언어 변경해당 모드에 적용되는 것은 차이점에 대한보다 완전한 (아직 철저하지는 않지만) 설명을 제공합니다. 호환성 모드는 이후 언어를 XPath 1.0과 정확히 동일하게 만들 수 없습니다.

D.3.1.3. SQL과 윈 토토 데이터 유형과 값 간의 매핑

SQL : 2006 이상에서 표준 SQL 데이터 유형과 윈 토토 스키마 유형 사이의 양방향 방향이 정확하게 지정됩니다. 그러나 규칙은 XQuery/XPath의 유형과 의미를 사용하여 표현되며 XPath 1.0의 다른 데이터 모델에 직접 응용 프로그램이 없습니다..

언제PostgreSQLSQL 데이터 값을 윈 토토에 맵핑합니다 (윈 토토element) 또는 윈 토토에서 SQL (의 출력 열에서와 같이윈 토토table), 특별히 처리 된 몇 가지 사례를 제외하고PostgreSQL단순히 윈 토토 데이터 유형의 XPath 1.0 문자열 양식이 SQL 데이터 유형의 텍스트 입력 형식으로 유효하다고 가정합니다. 이 규칙은 많은 데이터 유형에 대해 표준에 지정된 매핑과 유사한 결과를 생성하는 동안 단순성의 미덕을 가지고 있습니다.

다른 시스템과의 상호 운용성이 우려되는 경우 일부 데이터 유형의 경우 데이터 유형 형식 형식 기능 (예 :을 사용해야 할 수도 있습니다.PostgreSQL : 문서 : 13 : 9.8. 데이터 유형 토토 사이트 추천 토토 사이트 추천 기능) 명시 적으로 표준 매핑을 생성합니다.

D.3.2. 구현의 부수적 한계

이 섹션은 내재 된 한계와 관련이 있습니다lib윈 토토2라이브러리이지만 현재 구현에 적용PostgreSQL.

D.3.2.1. 오직value통과 메커니즘이 지원

SQL 표준은 두 가지를 정의합니다전달 메커니즘윈 토토 인수를 SQL에서 윈 토토 함수로 전달하거나 결과를 수신 할 때 적용되는 것 :by ref, 특정 윈 토토 값이 노드 아이덴티티를 유지하고20116_20126, 윈 토토의 내용이 전달되지만 노드 아이덴티티는 보존되지 않습니다. 메커니즘은 매개 변수 목록 앞에, 모든 매개 변수의 기본 메커니즘으로, 또는 매개 변수를 기본값을 무시하기 위해 지정할 수 있습니다..

차이를 설명하려면 ifx| 윈 토토 값이며, SQL : 2006 환경 의이 두 쿼리는 각각 true and false를 생성합니다..

윈 토토Query 선택 ( '$ a is $ b'refxAS,x비어있는 b null);
선택 XmlQuery ( '$ a is $ b'value에 따라 전달xa,xb 비어있는 b null);

PostgreSQL수락value또는by refin윈 토토exists또는윈 토토table구성하지만 무시합니다. 그만큼윈 토토Data Type은 캐릭터 스트링 직렬화 된 표현을 보유하고 있으므로 보존 할 노드 아이덴티티가 없으며 항상 효과적으로 통과합니다value.

D.3.2.2. 이름 지정된 매개 변수를 쿼리로 전달할 수 없습니다

XPath 기반 함수는 XPath 표현식의 컨텍스트 항목으로 작용하기 위해 하나의 매개 변수를 전달하는 지원을 지원하지만, 표현식에 명명 된 매개 변수로 사용할 수 있도록 추가 값을 전달하는 것을 지원하지 않습니다..

D.3.2.3. 아니요윈 토토 (시퀀스)타입

thePostgreSQL 윈 토토데이터 유형은 값 만 값을 보유 할 수 있습니다문서또는컨텐츠양식. xquery/xpath 표현식 컨텍스트 항목은 단일 윈 토토 노드 또는 원자 값이어야하지만 XPath 1.0은 윈 토토 노드로만 제한되며 NODE 유형이 없습니다컨텐츠. 상향은 잘 형성된 것입니다문서PostgreSQLXPATH 컨텍스트 항목으로 공급할 수 있습니다.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면