ISO/IEC 9075-14(SQL/토토 커뮤니티)의 토토 커뮤니티 관련 사양에 대한 중요한 개정이 SQL:2006에 도입되었습니다.포스트그레SQL의 XML 데이터 유형 및 관련 기능 구현은 대부분 2003년 이전 버전을 따르며 일부는 이후 버전에서 차용했습니다. 특히:
현재 표준이 보유할 XML 데이터 유형 계열을 제공하는 경우“문서”또는“콘텐츠”형이 지정되지 않은 또는 XML 스키마 유형 변형 및 유형토토 커뮤니티(순서)임의의 XML 콘텐츠를 담기 위해,PostgreSQL싱글 제공토토 커뮤니티보유할 수 있는 유형“문서”또는“내용”. 표준과 동등한 것은 없습니다.“시퀀스”유형.
포스트그레SQL은 SQL:2006에 도입된 두 가지 함수를 제공하지만 표준에 지정된 토토 커뮤니티 쿼리 대신 XPath 1.0 언어를 사용하는 변형입니다.
포스트그레SQL다음을 지원하지 않습니다콘텐츠 반환 중또는반환 순서절, 사양에서 이러한 항목을 갖도록 정의된 함수는 암시적으로 콘텐츠를 반환합니다.
이 섹션에서는 발생할 수 있는 몇 가지 차이점을 제시합니다.
그PostgreSQL특정 함수xpath()그리고xpath_exists()XPath 언어를 사용하여 XML 문서를 쿼리합니다.PostgreSQL또한 표준 함수의 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특정 함수.
XPath 기능 이상의 XQuery 기능은 다음과 같습니다.
XQuery 표현식은 가능한 모든 XPath 값 외에도 새로운 XML 노드를 구성하고 반환할 수 있습니다. XPath는 원자 유형(숫자, 문자열 등)의 값을 생성하고 반환할 수 있지만 표현식에 대한 입력으로 제공된 문서에 이미 존재하는 XML 노드만 반환할 수 있습니다.
XQuery에는 반복, 정렬 및 그룹화를 위한 제어 구성이 있습니다.
XQuery는 로컬 함수의 선언 및 사용을 허용합니다.
최신 XPath 버전은 이와 중복되는 기능을 제공하기 시작합니다(예: 기능적 스타일각각그리고정렬, 익명 함수 및parse-토토 커뮤니티문자열에서 노드를 생성하기 위해), XPath 3.0 이전에는 이러한 기능을 사용할 수 없었습니다.
XQuery 및 XPath 2.0 이상에 익숙한 개발자의 경우 XPath 1.0은 해결해야 할 여러 가지 차이점을 제시합니다.
XQuery/XPath 표현식의 기본 유형,시퀀스14235_14428
원하는 항목을 원하는 순서로 포함할 수 있는 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과 정확히 동일하게 될 수는 없습니다.
SQL:2006 이상에서는 표준 SQL 데이터 유형과 토토 커뮤니티 스키마 유형 간의 변환 방향이 모두 정확하게 지정됩니다. 그러나 규칙은 XQuery/XPath의 유형과 의미를 사용하여 표현되며 XPath 1.0의 다른 데이터 모델에 직접 적용되지 않습니다.
언제PostgreSQLSQL 데이터 값을 토토 커뮤니티에 매핑합니다(예:토토 커뮤니티요소) 또는 XML에서 SQL로(의 출력 열에서와 같이)토토 커뮤니티table), 특별히 취급되는 몇몇 경우를 제외하고PostgreSQL단순히 XML 데이터 유형의 XPath 1.0 문자열 형식이 SQL 데이터 유형의 텍스트 입력 형식으로 유효하다고 가정하며 그 반대도 마찬가지입니다. 이 규칙은 많은 데이터 유형에 대해 표준에 지정된 매핑과 유사한 결과를 생성하는 동시에 단순하다는 장점이 있습니다.
다른 시스템과의 상호 운용성이 문제가 되는 경우 일부 데이터 유형의 경우 데이터 유형 형식 지정 기능을 사용해야 할 수도 있습니다(예:PostgreSQL : 문서 : 17 : 9.8. 데이터 유형 토토 사이트 토토 사이트 기능) 명시적으로 표준 매핑을 생성합니다.
이 섹션은 고유하지 않은 제한에 관한 것입니다.lib토토 커뮤니티2라이브러리이지만 현재 구현에 적용PostgreSQL.
값별전달 메커니즘이 지원됨#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가 없으며 전달은 항상 효과적입니다.값별.
XPath 기반 함수는 XPath 표현식의 컨텍스트 항목 역할을 하기 위해 하나의 매개변수 전달을 지원하지만 명명된 매개변수로 표현식에 사용할 수 있는 추가 값 전달을 지원하지 않습니다.
토토 커뮤니티(순서)유형#그PostgreSQL 토토 커뮤니티데이터 유형은 값만 보유할 수 있습니다.문서또는콘텐츠양식. XQuery/XPath 표현식 컨텍스트 항목은 단일 XML 노드 또는 원자 값이어야 하지만 XPath 1.0에서는 이를 XML 노드로만 제한하고 허용하는 노드 유형이 없습니다.콘텐츠. 결과는 잘 구성된 것입니다.문서는 토토 커뮤니티 값의 유일한 형식입니다.PostgreSQLXPath 컨텍스트 항목으로 제공할 수 있습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.