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

D.3. 스포츠 토토 사이트 제한 및 SQL/스포츠 토토 사이트 준수#

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

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

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

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

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

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

XQuery 언어와 XPath 버전 2.0 이상 사이에는 강한 연관성이 있습니다. 구문상 유효하고 두 버전 모두에서 성공적으로 실행되는 모든 표현식은 동일한 결과를 생성합니다(숫자 문자 참조 또는 미리 정의된 엔터티 참조가 포함된 표현식의 경우 사소한 예외는 있지만 XPath는 이를 그대로 유지하는 동안 XQuery가 해당 문자로 대체합니다). 그러나 이들 언어와 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 표현식의 기본 유형,시퀀스13912_14105

  • 원하는 순서로 원하는 항목을 포함할 수 있는 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에는 문자열에 대한 순서 비교 연산자가 없습니다. 둘 다"고양이" < "개"그리고"고양이" "개"각각은 2개의 숫자 비교이기 때문에 거짓입니다.NaNs. 대조적으로,=그리고!=문자열을 문자열로 비교하세요.

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

  • 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의 다른 데이터 모델에 직접 적용되지 않습니다.

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

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

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

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

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 노드로만 제한하고 허용하는 노드 유형이 없습니다.콘텐츠. 결과는 잘 구성된 것입니다.문서다음을 수행하는 유일한 XML 값 형식입니다.PostgreSQLXPath 컨텍스트 항목으로 제공할 수 있습니다.

수정사항 제출

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