이것에 설명 된 함수 및 기능과 같은 표현
섹션은 유형 값에 대해 작동사설 토토.
확인하다PostgreSQL : 문서 : 8.3 : 토토 사이트 유형에 대한 정보사설 토토타입. 그만큼
기능과 같은 표현식사설 토토PARSE
and사설 토토serialize
변환
그리고 유형에서사설 토토여기에서 반복되지 않습니다.
이러한 많은 기능을 사용하여 설치해야합니다.
와 함께 건축되었습니다.구성
-with-lib사설 토토.
함수 세트 및 기능과 같은 표현식입니다 SQL 데이터에서 사설 토토 컨텐츠를 생성 할 수 있습니다. 따라서 쿼리 결과를 형식화하는 데 특히 적합합니다 클라이언트 응용 프로그램의 처리를위한 사설 토토 문서로.
사설 토토comment
(텍스트)
함수사설 토토comment
지정된 텍스트는 내용입니다. 텍스트는 포함 할 수 없습니다--또는 a로 끝납니다.-결과 구성은 유효한 사설 토토 주석입니다. 만약
인수는 null이고 결과는 null입니다.
예 :
선택 사설 토토Comment ( 'Hello'); 사설 토토comment -------------- <!-안녕하세요-
사설 토토concat
(사설 토토[, ...])
함수사설 토토concat
사설 토토 컨텐츠 조각을 포함하는 단일 값. 널 값
생략된다; unnull이없는 경우 결과는 Null입니다.
논쟁.
예 :
선택 사설 토토CONCAT ( '<abc/', '<bar foo </bar'); 사설 토토concat ------------------------ <ABC/ <bar foo </bar
사설 토토 선언은 현재 존재하는 경우 다음과 같이 결합됩니다. 만약에 모든 인수 값에는 동일한 사설 토토 버전 선언이 있으며 해당 버전은 결과에 사용되며 그렇지 않으면 버전이 사용되지 않습니다. 모든 인수 값이 독립형 선언 값을 갖는 경우"예", 그 값이 사용됩니다 결과. 모든 인수 값에 독립형이있는 경우 선언 값과 적어도 하나는"아니오", 그 결과 결과에 사용됩니다. 또 다른 결과에는 독립형 선언이 없습니다. 결과가 있다면 독립형 선언이 필요하지만 아니요 버전 선언, 버전 1.0이있는 버전 선언 사설 토토은 사설 토토 선언이 필요하기 때문에 사용됩니다. 버전 선언을 포함합니다. 인코딩 선언은 다음과 같습니다 모든 경우에 무시하고 제거되었습니다.
예 :
사설 토토CONCAT를 선택하십시오 ( '<? xml 버전 = "1.1"? <foo/', '<? xml 버전 = "1.1"stockalone = "no"? <bar/'); 사설 토토concat -------------------------------------- <? xml 버전 = "1.1"? <foo/ <bar/
사설 토토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 (이름 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 사설 토토 스키마 사양으로 정확한 설명이 나타납니다.
사설 토토forest
(컨텐츠[as이름] [, ...])
the사설 토토forest
표현
주어진 것을 사용하여 요소의 사설 토토 숲 (시퀀스)을 생성합니다.
이름과 내용.
예 :
사설 토토FOREST ( 'ABC', FOO, 123)를 선택하십시오. 사설 토토forest --------------------------------- <foo abc </foo <bar 123 </bar 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
.
사설 토토pi
(이름대상[, 컨텐츠])
the사설 토토pi
표현이 생성됩니다
사설 토토 처리 지침. 콘텐츠는 존재하는 경우해야합니다
문자 시퀀스를 포함하지 않음?.
예 :
선택 사설 토토PI (이름 php, 'echo "hello world";'); 사설 토토PI --------------------------------- <? php echo "Hello World";?
사설 토토root
(사설 토토, 버전텍스트| 값 없음 [, 독립형 예 | 아니오 | 가치])
the사설 토토root
표현
사설 토토 값의 루트 노드의 특성을 변경합니다. 경우 a
버전은 지정되어 있으며 버전의 값을 대체합니다.
선언, 독립형 값이 지정되면이
독립형 선언의 값을 대체합니다.
사설 토토ROOT (사설 토토PARSE (Document '<? 사설 토토 버전 = "1.1"? <content abc </content'), 버전 '1.0', 독립형 예); 사설 토토root ------------------------------------------ <? xml 버전 = "1.0"standalone = "yes"? <content ABC </content
사설 토토agg
(사설 토토)
함수사설 토토agg
is,
여기에 설명 된 다른 기능과는 달리 집계입니다
기능. 입력 값을 집계로 연결합니다
함수 호출, 좋아요사설 토토concat
보다PostgreSQL : 문서 : 8.3 : 사설 토토 사이트 함수집계 함수에 대한 일반 정보.
예 :
테이블 테스트 생성 (y int, x xml); 테스트 값에 삽입 (1, '<foo abc </foo'); 테스트 값에 삽입 (2, '<bar/'); 테스트에서 사설 토토agg (x)를 선택하십시오. 사설 토토agg ------------------------ <foo abc </foo <bar/
현재 구현에서 연결은 원칙적으로 정의되지 않습니다. 입력 다른 방식으로 정렬 할 값은 일반적으로 작동하며 하지만. 예를 들어, 위의 예에서는 할 수 있습니다 그렇게 순서에 영향을 미칩니다 :
사설 토토agg (x)를 선택하십시오 (Y desc의 테스트 순서에서 * 선택) 탭; 사설 토토agg ------------------------ <bar/ <foo abc </foo
그러나이 접근법은 모든 사람에게 작동하는 것은 아닙니다. 상황 및 모든 버전의 PostgreSQL. 미래 PostgreSQL의 버전은 아마도 추가를 제공 할 것입니다 적절한 방식으로 순서를 제어하는 기능 (사설 토토agg (expr 주문, expr, expr, ...).
사설 토토is document
표현is document인수 사설 토토 값이 적절한 사설 토토 인 경우 true를 반환합니다. 문서, false가 아닌 경우 (즉, 콘텐츠입니다. 인수가 무인 인 경우 조각) 또는 null. 보다섹션 8.13차이에 대해 문서와 콘텐츠 조각 사이.
데이터 유형의 처리 값사설 토토,
PostgreSQL은 함수를 제공합니다xpath
23383_23429
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', array [ 'my', 'http://example.com']); xpath -------- 시험
다음 기능은 관계형의 내용을 매핑합니다 사설 토토 값으로 테이블. 사설 토토 수출로 생각할 수 있습니다 기능성.
TABLE_TO_사설 토토 (TBL Regclass, Nulls Boolean, TableForest Boolean, Targetns Text) 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)
동일한 매개 변수를 순서대로 전달하는 것이 중요합니다. 일치하는 사설 토토 데이터 매핑 및 사설 토토 스키마를 얻습니다 서류.
다음 함수는 사설 토토 데이터 매핑 및를 생성합니다 하나의 문서 (또는 포레스트)의 해당 사설 토토 스키마 링크 함께. 그들은 독립적 인 곳에서 유용 할 수 있습니다 자기 설명 결과가 필요합니다.
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
테이블 매핑 형식이에 따라 다릅니다.TableForest설명 된대로 매개 변수 위에.
데이터베이스 컨텐츠 매핑의 결과는 모양입니다 이것:
<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 : 스타일 시트