xquery version "3.0"; (: : Copyright 2006-2009 The FLWOR Foundation. : : Licensed under the Apache License, Version 2.0 (the "License"); : you may not use this file except in compliance with the License. : You may obtain a copy of the License at : : http://www.apache.org/licenses/LICENSE-2.0 : : Unless required by applicable law or agreed to in writing, software : distributed under the License is distributed on an "AS IS" BASIS, : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. : See the License for the specific language governing permissions and : limitations under the License. :) (:~ : <p>This module provides functions to fetch the content of a resource identified : by a URI. For example, it fetches the content of file or http resources.</p> : : <p>In order to retrieve such content, the functions use the : URI resolution and URL resolver process as documented at : <a href="../../html/uriresolvers.html"> : URI Resolvers</a>.</p> : : @author Matthias Brantner : : @project external :) module namespace fetch = "http://www.zorba-xquery.com/modules/fetch"; declare namespace an = "http://www.zorba-xquery.com/annotations"; declare namespace zerr = "http://www.zorba-xquery.com/errors"; declare namespace ver = "http://www.zorba-xquery.com/options/versioning"; declare option ver:module-version "2.1"; (:~ : <p>Tries to fetch the resource referred to by the given URI.</p> : : <p>It queries all URI mappers and resolvers with kind : <tt>EntityData::SOME_CONTENT</tt>.</p> : : <p>The content is assumed to be UTF-8 encoded.</p> : : @param $uri the resource to fetch. : @return the resource referred to by the given URI as streamble string. : : @error zerr:ZXQP0025 if the URI could not be resolved : or did not resolve to a <tt>StreamResource</tt>. : : @see <a href="../../html/uriresolvers.html">URI Resolvers</a>. : @see <a href="../../html/options_and_annotations.html">Documentation of Zorba's annotations</a>. :) declare %an:streamable function fetch:content($uri as xs:string) as xs:string { fetch:content($uri, "SOME_CONTENT") }; (:~ : <p>Tries to fetch the resource referred to by the given URI.</p> : : <p>It queries all URI mappers and resolvers with kind the specified : entity kind.</p> : : <p>The content is assumed to be UTF-8 encoded.</p> : : @param $uri the resource to fetch. : @param $entity-kind the kind of resource to fetch. : @return the resource referred to by the given URI as streamble string. : : @error zerr:ZXQP0025 if the URI could not be resolved : or did not resolve to a <tt>StreamResource</tt>. : : @see <a href="../../html/uriresolvers.html">URI Resolvers</a>. : @see <a href="../../html/options_and_annotations.html">Documentation of Zorba's annotations</a>. :) declare %an:streamable function fetch:content($uri as xs:string, $entity-kind as xs:string) as xs:string { fetch:content($uri, $entity-kind, "UTF-8") }; (:~ : <p>Tries to fetch the resource referred to by the given URI.</p> : : <p>It queries all URI mappers and resolvers with kind the specified : entity kind.</p> : : @param $uri the resource to fetch. : @param $entity-kind the kind of resource to fetch. : @param $encoding the encoding of the content : @return the resource referred to by the given URI as streamble string. : : @error zerr:ZXQP0025 if the URI could not be resolved : or did not resolve to a <tt>StreamResource</tt>. : @error zerr:ZXQP0006 if the given encoding is invalid or not supported. : : @see <a href="../../html/uriresolvers.html">URI Resolvers</a>. : @see <a href="../../html/options_and_annotations.html">Documentation of Zorba's annotations</a>. :) declare %an:streamable function fetch:content( $uri as xs:string, $entity-kind as xs:string, $encoding as xs:string) as xs:string external; (:~ : <p>Tries to fetch the resource referred to by the given URI and : returning it as base64Binary.</p> : : <p>It queries all URI mappers and resolvers with kind : <tt>EntityData::SOME_CONTENT</tt>.</p> : @param $uri the resource to fetch. : @return the resource referred to by the given URI as streamble base64Binary. : : @error zerr:ZXQP0025 if the URI could not be resolved : or did not resolve to a <tt>StreamResource</tt>. :) declare %an:streamable function fetch:content-binary($uri as xs:string) as xs:base64Binary { fetch:content-binary($uri, "SOME_CONTENT") }; (:~ : <p>Tries to fetch the resource referred to by the given URI and : returning it as base64Binary.</p> : : <p>It queries all URI mappers and resolvers with kind the specified : entity kind.</p> : : @param $uri the resource to fetch. : @param $entity-kind the kind of resource to fetch. : @return the resource referred to by the given URI as streamble base64Binary. : : @error zerr:ZXQP0025 if the URI could not be resolved : or did not resolve to a <tt>StreamResource</tt>. :) declare %an:streamable function fetch:content-binary( $uri as xs:string, $entity-kind as xs:string) as xs:base64Binary external;