지원되는 버전:현재 (18) / 17 / 16 / 15 / 14 / 13
개발 버전:개발
지원되지 않는 버전:12 / 11 / 10

D.3. 메이저 토토 사이트 제한 및 SQL/메이저 토토 사이트 준수#

ISO/IEC 9075-14(SQL/메이저 토토 사이트)의 메이저 토토 사이트 관련 사양에 대한 중요한 개정이 SQL:2006에 도입되었습니다.포스트그레SQL의 XML 데이터 유형 및 관련 기능 구현은 대부분 2003년 이전 버전을 따르며 일부는 이후 버전에서 차용했습니다. 특히:

  • 현재 표준이 보유할 XML 데이터 유형 계열을 제공하는 경우문서또는콘텐츠형이 지정되지 않은 또는 XML 스키마 유형 변형 및 유형메이저 토토 사이트(순서)임의의 XML 콘텐츠를 담기 위해,포스트그레SQL싱글 제공메이저 토토 사이트보유할 수 있는 유형문서또는콘텐츠. 표준과 동등한 것은 없습니다.시퀀스유형.

  • 포스트그레SQL은 SQL:2006에 도입된 두 가지 함수를 제공하지만 표준에 지정된 메이저 토토 사이트 쿼리 대신 XPath 1.0 언어를 사용하는 변형입니다.

  • PostgreSQL다음을 지원하지 않습니다콘텐츠 반환 중또는반환 순서절, 사양에서 이러한 항목을 갖도록 정의된 함수는 암시적으로 콘텐츠를 반환합니다.

이 섹션에서는 발생할 수 있는 몇 가지 차이점을 제시합니다.

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

PostgreSQL특정 함수xpath()그리고xpath_exists()XPath 언어를 사용하여 XML 문서를 쿼리합니다.포스트그레SQL또한 표준 함수의 XPath 전용 변형을 제공합니다.메이저 토토 사이트EXISTS그리고메이저 토토 사이트TABLE, 공식적으로 XQuery 언어를 사용합니다. 이 모든 기능에 대해,포스트그레SQL다음에 의존함lib메이저 토토 사이트2XPath 1.0만 제공하는 라이브러리.

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

두 가지 제한 범주에 유의해야 합니다. 즉, SQL 표준에 지정된 함수에 대해 XQuery에서 XPath로의 제한과 표준 및 표준 모두에 대해 XPath를 버전 1.0으로 제한하는 것입니다.PostgreSQL특정 함수.

D.3.1.1. XQuery를 XPath로 제한#

XPath 이상의 XQuery 기능은 다음과 같습니다.

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

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

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

최신 XPath 버전은 이와 중복되는 기능을 제공하기 시작합니다(예: 기능적 스타일각각그리고정렬, 익명 함수 및parse-메이저 토토 사이트문자열에서 노드 생성), XPath 3.0 이전에는 이러한 기능을 사용할 수 없었습니다.

D.3.1.2. XPath를 1.0으로 제한#

XQuery 및 XPath 2.0 이상에 익숙한 개발자의 경우 XPath 1.0은 해결해야 할 여러 가지 차이점을 제시합니다.

  • XQuery/XPath 표현식의 기본 유형,시퀀스14264_14457

  • 원하는 항목을 원하는 순서로 포함할 수 있는 XQuery/XPath 시퀀스와 달리 XPath 1.0 노드 집합에는 순서가 보장되지 않으며 다른 집합과 마찬가지로 동일한 항목이 여러 번 나타나는 것을 허용하지 않습니다.

    참고

    lib메이저 토토 사이트2라이브러리는 항상 노드 집합을 반환하는 것 같습니다.PostgreSQL구성원을 입력 문서와 동일한 상대 순서로 정렬합니다. 문서에서는 이 동작을 커밋하지 않으며 XPath 1.0 표현식은 이를 제어할 수 없습니다.

  • XQuery/XPath는 메이저 토토 사이트 스키마에 정의된 모든 유형과 해당 유형에 대한 많은 연산자 및 함수를 제공하는 반면, XPath 1.0에는 노드 집합과 세 가지 원자 유형만 있습니다.부울, 더블문자열.

  • XPath 1.0에는 조건 연산자가 없습니다. 다음과 같은 XQuery/XPath 표현식if ( 모자 ) then hat/@size else "모자 없음"XPath 1.0에 해당하는 항목이 없습니다.

  • XPath 1.0에는 문자열에 대한 순서 비교 연산자가 없습니다. 둘 다"고양이" < "개"그리고"고양이" "개"각각은 둘의 숫자 비교이기 때문에 거짓입니다.NaNs. 대조적으로,=그리고!=문자열을 문자열로 비교하세요.

  • XPath 1.0은 다음과 같은 차이점을 모호하게 만듭니다.값 비교그리고일반 비교XQuery/XPath가 정의한 대로입니다. 둘 다세일/@hatsize = 7그리고판매/@customer = "앨리스"존재적으로 정량화된 비교이며, 있으면 참판매속성에 대해 주어진 값을 사용하지만sale/@taxable = false()은와의 값 비교입니다.유효 부울 값16794_16840판매과세 대상속성 전혀.

  • XQuery/XPath 데이터 모델에서 a문서 노드문서 형식(즉, 외부에 주석과 처리 지침만 있는 정확히 하나의 최상위 요소) 또는 콘텐츠 형식(해당 제약 조건이 완화됨)을 가질 수 있습니다. XPath 1.0의 해당 기능인루트 노드, 문서 형식으로만 가능합니다. 이것이 이유의 일부입니다.메이저 토토 사이트모든 항목에 컨텍스트 항목으로 전달된 값PostgreSQLXPath 기반 함수는 문서 형식이어야 합니다.

여기에 강조된 차이점이 전부는 아닙니다. XQuery와 XPath 2.0 이상 버전에는 XPath 1.0 호환 모드와 W3C 목록이 있습니다.함수 라이브러리 변경그리고언어 변경해당 모드에 적용하면 차이점에 대한 보다 완전한(그러나 여전히 완전하지는 않음) 설명을 제공합니다. 호환성 모드로 인해 이후 언어가 XPath 1.0과 정확히 동일하게 될 수는 없습니다.

D.3.1.3. SQL과 메이저 토토 사이트 데이터 유형 및 값 간의 매핑#

SQL:2006 이상에서는 표준 SQL 데이터 유형과 메이저 토토 사이트 스키마 유형 간의 변환 방향이 모두 정확하게 지정됩니다. 그러나 규칙은 XQuery/XPath의 유형과 의미를 사용하여 표현되며 XPath 1.0의 다른 데이터 모델에 직접 적용되지 않습니다.

언제PostgreSQLSQL 데이터 값을 메이저 토토 사이트에 매핑합니다(예:메이저 토토 사이트요소) 또는 XML에서 SQL로(의 출력 열에서와 같이)메이저 토토 사이트table), 특별히 취급되는 몇몇 경우를 제외하고포스트그레SQL단순히 XML 데이터 유형의 XPath 1.0 문자열 형식이 SQL 데이터 유형의 텍스트 입력 형식으로 유효하다고 가정하며 그 반대도 마찬가지입니다. 이 규칙은 많은 데이터 유형에 대해 표준에 지정된 매핑과 유사한 결과를 생성하는 동시에 단순하다는 장점이 있습니다.

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

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

이 섹션은 고유하지 않은 제한에 관한 것입니다.lib메이저 토토 사이트2라이브러리이지만 현재 구현에 적용포스트그레SQL.

D.3.2.1. 만값 기준전달 메커니즘이 지원됨#

SQL 표준은 두 가지를 정의합니다.전달 메커니즘SQL에서 메이저 토토 사이트 함수로 메이저 토토 사이트 인수를 전달하거나 결과를 수신할 때 적용됩니다.참조 기준, 여기서 특정 메이저 토토 사이트 값은 노드 ID를 유지합니다.값별, XML 콘텐츠가 전달되지만 노드 ID는 유지되지 않습니다. 매개변수 목록 앞에 메커니즘을 지정하여 모든 매개변수에 대한 기본 메커니즘으로 지정하거나 매개변수 뒤에 메커니즘을 지정하여 기본값을 재정의할 수 있습니다.

차이점을 설명하기 위해, 만약x는 XML 값입니다. SQL:2006 환경에서 이 두 쿼리는 각각 true와 false를 생성합니다.

SELECT 메이저 토토 사이트QUERY('$a는 $b입니다' PASSING BY REFxAS A,xAS b 비어 있으면 NULL);
SELECT 메이저 토토 사이트QUERY('$a는 $b입니다' 값 전달xAS A,xAS b 비어 있으면 NULL);

포스트그레SQL수락하겠습니다값별또는참조 기준안에메이저 토토 사이트EXISTS또는메이저 토토 사이트TABLE구성하지만 무시합니다.메이저 토토 사이트데이터 유형은 문자열 직렬 표현을 보유하므로 보존할 노드 ID가 없으며 전달은 항상 효과적입니다.값 기준.

D.3.2.2. 명명된 매개변수를 쿼리에 전달할 수 없습니다.#

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

D.3.2.3. 아니요메이저 토토 사이트(순서)유형#

포스트그레SQL 메이저 토토 사이트데이터 유형은 값만 보유할 수 있습니다.문서또는콘텐츠양식. XQuery/XPath 표현식 컨텍스트 항목은 단일 XML 노드 또는 원자 값이어야 하지만 XPath 1.0에서는 이를 XML 노드로만 제한하고 허용하는 노드 유형이 없습니다.콘텐츠. 결과는 잘 구성된 것입니다.문서는 메이저 토토 사이트 값의 유일한 형식입니다.PostgreSQLXPath 컨텍스트 항목으로 제공할 수 있습니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.