이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다범퍼카 토토 사이트 PostgreSQL : 문서 : 17 : 9.15. XML 기능버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

9.14. 토토 사이트 기능

이것에 설명 된 함수 및 기능과 같은 표현 섹션은 유형 값에 대해 작동토토 사이트. 확인하다PostgreSQL : 문서 : 8.4 : 스포츠 토토 결과 유형에 대한 정보토토 사이트타입. 그만큼 기능과 같은 표현식토토 사이트PARSEand토토 사이트serialize변환 그리고 유형에서토토 사이트여기에서 반복되지 않습니다. 이러한 많은 기능을 사용하여 설치해야합니다. 와 함께 건축되었습니다.구성 -with-lib토토 사이트.

9.14.1. 토토 사이트 컨텐츠 생성

함수 세트 및 기능과 같은 표현식입니다 SQL 데이터에서 토토 사이트 컨텐츠를 생성 할 수 있습니다. 따라서 쿼리 결과를 형식화하는 데 특히 적합합니다 클라이언트 응용 프로그램의 처리를위한 토토 사이트 문서로.

9.14.1.1. 토토 사이트comment

토토 사이트comment(텍스트)

함수토토 사이트comment지정된 텍스트는 내용입니다. 텍스트는 포함 할 수 없습니다"--"또는 a로 끝납니다."-"결과 구성이 a 유효한 토토 사이트 주석. 인수가 null이면 결과가 있습니다 널.

예 :

선택 토토 사이트Comment ( 'Hello');

  토토 사이트comment
--------------
 <!-안녕하세요-

9.14.1.2. 토토 사이트CONCAT

 토토 사이트concat(토토 사이트[, ...])

함수토토 사이트concat토토 사이트 컨텐츠 조각을 포함하는 단일 값. 널 값 생략된다; unnull이없는 경우 결과는 Null입니다. 논쟁.

예 :

토토 사이트CONCAT를 선택합니다 ( '<abc/', '<bar foo </bar');

      토토 사이트concat
------------------------
 <ABC/ <bar foo </bar

토토 사이트 선언은 현재 존재하는 경우 다음과 같이 결합됩니다. 만약에 모든 인수 값에는 동일한 토토 사이트 버전 선언이 있으며 해당 버전은 결과에 사용되며 그렇지 않으면 버전이 사용되지 않습니다. 모든 인수 값이 독립형 선언 값을 갖는 경우"예", 그 값이 사용됩니다 결과. 모든 인수 값에 독립형이있는 경우 선언 값과 적어도 하나는"아니오", 그 결과 결과에 사용됩니다. 또 다른 결과에는 독립형 선언이 없습니다. 결과가 있다면 독립형 선언이 필요하지만 아니요 버전 선언, 버전 1.0이있는 버전 선언 토토 사이트은 토토 사이트 선언이 필요하기 때문에 사용됩니다. 버전 선언을 포함합니다. 인코딩 선언은 다음과 같습니다 모든 경우에 무시하고 제거되었습니다.

예 :

토토 사이트CONCAT를 선택하십시오 ( '<? 토토 사이트 버전 = "1.1"? <foo/', '<? xml 버전 = "1.1"stockalone = "no"? <bar/');

             토토 사이트concat
--------------------------------------
 <? xml 버전 = "1.1"? <foo/ <bar/

9.14.1.3. 토토 사이트element

 토토 사이트element(이름이름[, 토토 사이트attributes (value[asattname] [, ... ])] [, 내용, ...])

the토토 사이트element표현 주어진 이름, 속성 및 콘텐츠.

예 :

토토 사이트ELEMENT (NAME FOO)를 선택합니다.

 토토 사이트element
------------
 <foo/

토토 사이트element (이름 foo, 토토 사이트attributes ( 'xyz'as bar))를 선택하십시오.

    토토 사이트element
-----------------
 <foo bar = "xyz"/

토토 사이트element (이름 foo, 토토 사이트attributes (current_date as bar), 'cont', 'ent')를 선택하십시오.

             토토 사이트element
------------------------------------------------
 <foo bar = "2007-01-26" content </foo

유효하지 않은 요소 및 속성 이름 불쾌한 캐릭터를 THE로 대체하여 탈출합니다 순서_XHHHH_, 여기HHHH는 문자의 유니 코드입니다 16 진수 표기법의 CodePoint. 예를 들어:

토토 사이트ELEMENT (이름 "foo $ bar", 토토 사이트ATTRIBUTES ( 'XYZ'로 "a & b"));

            토토 사이트element
------------------------------------
 <foo_x0024_bar a_x0026_b = "xyz"/

명시 적 속성 이름은 속성 값은 열 참조이며,이 경우 열 이름은 기본적으로 속성 이름으로 사용됩니다. 다른 경우에는 속성에 명시적인 이름이 부여되어야합니다. 그래서이 예는 유효합니다 :

테이블 테스트 생성 (토토 사이트, B 토토 사이트);
테스트에서 XmlElement (이름 테스트, Xmlattributes (a, b))를 선택하십시오.

그러나 이것들은 다음과 같습니다.

토토 사이트ELEMENT (이름 테스트, 토토 사이트ATTRIBUTES ( 'constant'), a, b)를 선택하여 테스트;
XmlElement (이름 테스트, Xmlattributes (func (a, b)))를 테스트에서 선택하십시오;

요소 컨텐츠는 지정된 경우 형식으로 형식화됩니다 데이터 유형에. 내용 자체가 유형 인 경우토토 사이트, 복잡한 토토 사이트 문서를 구성 할 수 있습니다. 예를 들어:

토토 사이트ELEMENT (Name Foo, 토토 사이트ATTRIBUTES ( 'XYZ'AS BAR)),
                            토토 사이트element (이름 ABC),
                            토토 사이트comment ( '테스트'),
                            토토 사이트element (name xyz));

                  토토 사이트element
-----------------------------------------------------
 <foo bar = "xyz" <abc/ <!-테스트- <xyz/</foo

다른 유형의 내용은 유효한 토토 사이트로 형식화됩니다. 문자 데이터. 이것은 특히 캐릭터를 의미합니다 <,, & & & & 엔티티로 변환됩니다. 이진 데이터 (데이터 유형BYTEA) Base64 또는 Hex 인코딩에 표시됩니다 구성 매개 변수 설정토토 사이트binary. 그만큼 개별 데이터 유형에 대한 특정 동작이 예상됩니다 SQL 및 PostgreSQL 데이터 유형을 정렬하려면 Evolve 토토 사이트 스키마 사양으로 정확한 설명이 나타납니다.

9.14.1.4. 토토 사이트forest

 토토 사이트forest(컨텐츠[as이름] [, ...])

the토토 사이트forest표현 주어진 것을 사용하여 요소의 토토 사이트 숲 (시퀀스)을 생성합니다. 이름과 내용.

예 :

토토 사이트FOREST ( 'ABC'는 foo로, 123으로 막대);

          토토 사이트forest
---------------------------------
 <foo abc </foo <bar 123 </bar

토토 사이트FOREST (table_name, column_name)를 선택하십시오.
information_schema.columns에서
여기서 table_schema = 'pg_catalog';

                                         토토 사이트forest
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
 <table_name pg_authid </table_name <culns_name rolname </column_name
 <table_name pg_authid </table_name <culns_name rolsuper </column_name
 ...

두 번째 예에서 볼 수 있듯이 요소 이름은 다음과 같습니다. 컨텐츠 값이 열 참조 인 경우 생략 CASE 열 이름은 기본적으로 사용됩니다. 그렇지 않으면 이름입니다 지정해야합니다.

유효하지 않은 요소 이름 토토 사이트 이름은 showing토토 사이트element위. 마찬가지로, 컨텐츠 데이터는 유효한 토토 사이트 컨텐츠를 만들기 위해 탈출하여 이미 유형이 아니라면토토 사이트.

토토 사이트 숲은 유효한 토토 사이트 문서가 아닙니다. 둘 이상의 요소로 구성되므로 유용 할 수 있습니다. 포장하다토토 사이트forest표현토토 사이트element.

9.14.1.5. 토토 사이트PI

 토토 사이트pi(이름대상[, 컨텐츠])

the토토 사이트pi표현이 생성됩니다 토토 사이트 처리 지침. 콘텐츠는 존재하는 경우해야합니다 문자 시퀀스를 포함하지 않음?.

예 :

선택 토토 사이트PI (이름 php, 'echo "hello world";');

            토토 사이트PI
---------------------------------
 <? php echo "Hello World";?

9.14.1.6. 토토 사이트root

 토토 사이트root(토토 사이트, 버전텍스트| 가치 없음 [, 독립형 예 | 아니오 | 가치])

the토토 사이트root표현 토토 사이트 값의 루트 노드의 특성을 변경합니다. 경우 a 버전은 지정되어 있으며 루트의 값을 대체합니다. 노드의 버전 선언; 독립형 설정이있는 경우 지정된 루트 노드의 값을 대체합니다 독립형 선언.

토토 사이트ROOT (토토 사이트PARSE (Document '<? 토토 사이트 버전 = "1.1"? <content abc </content'), 선택을 선택하십시오. 
               버전 '1.0', 독립형 예);

                토토 사이트root
------------------------------------------
 <? xml 버전 = "1.0"standalone = "yes"?
 <content ABC </content

9.14.1.7. 토토 사이트agg

토토 사이트agg(토토 사이트)

함수토토 사이트aggIS, 여기에 설명 된 다른 기능과는 달리 집계입니다 기능. 입력 값을 집계로 연결합니다 함수 호출, 좋아요토토 사이트CONCAT보다PostgreSQL : 문서 : 8.4 : 스포츠 토토 베트맨 함수집계 함수에 대한 추가 정보.

예 :

테이블 테스트 생성 (y int, x xml);
테스트 값에 삽입 (1, '<foo abc </foo');
테스트 값에 삽입 (2, '<bar/');
테스트에서 토토 사이트agg (x)를 선택하십시오.
        토토 사이트agg
------------------------
 <foo abc </foo <bar/

연결 순서를 결정합니다 다음 접근 방식이 사용될 수 있습니다.

토토 사이트AGG (X)를 선택하여 (Y DESC에서 Test Order에서 선택 *) 탭으로 선택하십시오.
        토토 사이트agg
------------------------
 <bar/ <foo abc </foo

다시 참조PostgreSQL : 문서추가 정보는

9.14.1.8. 토토 사이트 Predicates

토토 사이트is document

표현is document인수 토토 사이트 값이 적절한 토토 사이트 인 경우 true를 반환합니다. 문서, false가 아닌 경우 (즉, 콘텐츠입니다. 인수가 무인 인 경우 조각) 또는 null. 보다섹션 8.13차이에 대해 문서와 콘텐츠 조각 사이.

9.14.2. 처리 토토 사이트

데이터 유형의 처리 값토토 사이트, PostgreSQL은 함수를 제공합니다xpath23159_23205

xpath(xpath, 토토 사이트[, NSARRAY])

함수xpath평가 xpath 표현xpath토토 사이트 값에 대한토토 사이트. 그것 노드 세트에 해당하는 토토 사이트 값 배열을 반환합니다. XPath 표현식에 의해 생성.

두 번째 인수는 잘 형성된 토토 사이트 문서 여야합니다. ~ 안에 특히 단일 루트 노드 요소가 있어야합니다.

함수의 세 번째 인수는 네임 스페이스 배열입니다. 매핑. 이 배열은 2 차원 배열이어야합니다 두 번째 축의 길이는 2와 같다 (즉, 배열 배열, 각 배열은 정확히 2로 구성됩니다. 강요). 각 배열 항목의 첫 번째 요소는 다음과 같습니다 네임 스페이스 이름, 두 번째 네임 스페이스 uri.

예 :

xpath ( '/my : a/text ()', '<my : a xmlns : my = "http://example.com" test </my : a', 
             배열 [배열 [ 'my', 'http://example.com']);

 xpath  
--------
 시험

9.14.3. 매핑 테이블 토토 사이트

다음 기능은 관계형의 내용을 매핑합니다 토토 사이트 값으로 테이블. 토토 사이트 수출로 생각할 수 있습니다 기능 :

TABLE_TO_토토 사이트 (TBL Regclass, Nulls Boolean, TableForest Boolean, Targetns 텍스트)
query_to_토토 사이트 (쿼리 텍스트, Nulls 부울, Tableforest Boolean, Targetns Text)
cursor_to_토토 사이트 (cursor refcursor, count int, nulls boolean, 
              TableForest Boolean, Targetns Text)

각 함수의 반환 유형은입니다.토토 사이트.

table_to_토토 사이트컨텐츠를 맵핑합니다 지명 된 테이블의 매개 변수로 전달TBL. 그만큼Regclass타입 일반적인 표기법을 사용하여 테이블을 식별하는 문자열을 허용합니다. 선택적 스키마 자격 및 이중 인용문 포함.query_to_토토 사이트쿼리를 실행합니다 그의 텍스트가 매개 변수로 전달됩니다쿼리결과 세트를지도합니다.cursor_to_토토 사이트표시된 수를 가져옵니다 매개 변수로 지정된 커서의 행커서. 이 변형은 큰 경우 권장됩니다 결과 값이 쌓여 있으므로 테이블을 매핑해야합니다. 각 함수에 의한 메모리에서.

ifTableForest거짓이면 결과 토토 사이트 문서 결과는 다음과 같습니다.

<pableName
  <줄
    <councleName1 data </columnname1
    <councleName2 data </columnname2
  </row

  <줄
    ...
  </row

  ...
</tableName

if탁자는 사실입니다 결과는 다음과 같이 보이는 토토 사이트 컨텐츠 조각입니다.

<pableName
  <councleName1 data </columnname1
  <councleName2 data </columnname2
</tableName

<tableName
  ...
</tableName

...

테이블 이름을 사용할 수없는 경우 쿼리를 매핑 할 때 또는 커서, 문자열테이블사용됩니다 첫 번째 형식으로Row두 번째 체재.

이 형식들 사이의 선택은 사용자에게 달려 있습니다. 그만큼 첫 번째 형식은 적절한 토토 사이트 문서이며, 이는 중요합니다. 많은 응용 프로그램에서. 두 번째 형식은 더 유용한 경향이 있습니다 에서cursor_to_토토 사이트기능 if 결과 값은 나중에 하나의 문서로 다시 조립됩니다. 에. 위에서 논의 된 토토 사이트 컨텐츠를 생성하기위한 기능 특정한토토 사이트element결과를 맛으로 바꾸는 데 사용됩니다.

데이터 값은 설명과 동일한 방식으로 맵핑됩니다. 함수토토 사이트element위.

매개 변수nulls결정 널 값이 출력에 포함되어야하는지 여부. 사실이라면 열의 널 값은 다음과 같이 표시됩니다.

<ColumnName XSI : nil = "true"/

여기서XSI는 토토 사이트 네임 스페이스입니다 토토 사이트 스키마 인스턴스의 접두사. 적절한 네임 스페이스 선언은 결과 값에 추가됩니다. 거짓 인 경우 널 값을 포함하는 열은 단순히에서 생략됩니다 산출.

매개 변수targetns지정합니다 결과의 원하는 토토 사이트 네임 스페이스. 특별한 경우 네임 스페이스가 필요하고 빈 문자열을 전달해야합니다.

다음 함수는 토토 사이트 스키마 문서를 반환합니다 해당 매핑을 설명합니다 위의 기능 :

TABLE_TO_토토 사이트SCHEMA (TBL Regclass, Nulls Boolean, TableForest Boolean, Targetns 텍스트)
query_to_토토 사이트schema (쿼리 텍스트, Nulls Boolean, Tableforest Boolean, Targetns 텍스트)
cursor_to_토토 사이트schema (Cursor Refcursor, Nulls Boolean, Tableforest Boolean, Targetns Text)

동일한 매개 변수를 순서대로 전달하는 것이 중요합니다. 일치하는 토토 사이트 데이터 매핑 및 토토 사이트 스키마를 얻습니다 서류.

다음 함수는 토토 사이트 데이터 매핑 및 the를 생성합니다 하나의 문서 (또는 포레스트)의 해당 토토 사이트 스키마 링크 함께. 그들은 독립적 인 곳에서 유용 할 수 있습니다 자기 설명 결과가 필요합니다 :

table_to_토토 사이트_and_xmlschema (TBL Regclass, Nulls Boolean, Tableforest Boolean, Targetns 텍스트)
query_to_토토 사이트_and_xmlschema (쿼리 텍스트, nulls boolean, 탁자 부울, targetns text)

또한 다음 기능을 사용할 수 있습니다 전체 스키마 또는 전체의 유사한 매핑을 생성합니다 현재 데이터베이스 :

schema_to_xml (schema name, nulls boolean, 탁자 부울, targetns 텍스트)
schema_to_xmlschema (스키마 이름, nulls boolean, 탁자 부울, targetns 텍스트)
schema_to_xml_and_xmlschema (스키마 이름, nulls boolean, 탁자 부울, Targetns 텍스트)

database_to_xml (nulls boolean, 탁자 부울, Targetns 텍스트)
database_to_xmlschema (nulls boolean, 탁자 부울, Targetns 텍스트)
database_to_xml_and_xmlschema (nulls boolean, 탁자 부울, targetns 텍스트)

이들은 잠재적으로 많은 데이터를 생성합니다. 메모리에서 구축해야합니다. 콘텐츠를 요청할 때 대형 스키마 또는 데이터베이스의 매핑은 가치가있을 수 있습니다. 대신 테이블을 개별적으로 매핑하는 것을 고려합니다 커서를 통해서도.

스키마 컨텐츠 매핑의 결과는 다음과 같습니다.

<schemaname

표 1 매핑

표 2 매핑

...

</schemaname

테이블 매핑 형식이에 따라 다릅니다.탁자설명 된대로 매개 변수 위에.

데이터베이스 컨텐츠 매핑의 결과는 모양입니다 이것:

<dbname

<schema1name
  ...
</schema1name

<Schema2Name
  ...
</schema2name

...

</dbname

스키마 매핑이 위와 같은 곳.

기능,그림 9-1XSLT 스타일 시트를 보여줍니다.table_to_토토 사이트_and_xmlschema테이블 데이터의 표 표현을 포함하는 HTML 문서. 비슷한 방식으로 이러한 기능의 결과는 다른 토토 사이트 기반 형식으로 변환.

그림 9-1. 변환을위한 XSLT 스타일 시트 SQL/토토 사이트 출력으로 HTML

<? xml 버전 = "1.0"?
<xsl : 스타일 버전 = "1.0"
    xmlns : xsl = "http://www.w3.org/1999/xsl/transform"
    xmlns : xsd = "http://www.w3.org/2001/xmlschema"
    xmlns = "http://www.w3.org/1999/xhtml"

  <xsl : 출력 메소드 = "xml"
      doctype-system = "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"
      doctype-public = "-// w3c/dtd xhtml 1.0 엄격한 // en"
      인트 = "예"/

  <xsl : 템플릿 매치 = "/*"
    <xsl : variable name = "schema"select = "// xsd : schema"/
    <xsl : 변수 이름 = "tabletypename"
                  select = "$ schema/xsd : element [@name = name (current ())]/@type"/
    <xsl : 변수 이름 = "rowtypename"
                  select = "$ schema/xsd : complextype [@name = $ tabletypeName]/xsd : 시퀀스/xsd : 요소 [@name = 'row']/@type"/

    <html
      <헤드
        <title <xsl : select value-of select = "name (current ())"/ </title
      </head
      <body
        <테이블
          <tr
            <xsl : for-each select = "$ schema/xsd : complextype [@name = $ rowtypename]/xsd : sequence/xsd : element/@name"
              <th <xsl : select value-of select = "."/ </th
            </xsl : for-each
          </tr

          <xsl : for-each select = "row"
            <tr
              <xsl : for-each select = "*"
                <td <xsl : select value-of select = "."/ </td
              </xsl : for-each
            </tr
          </xsl : for-each
        </테이블
      </body
    </html
  </xsl : 템플릿

</xsl : 스타일 시트