| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef __com_sun_star_uri_UriReferenceFactory_idl__ |
| #define __com_sun_star_uri_UriReferenceFactory_idl__ |
| |
| module com { module sun { module star { module uri { |
| |
| published interface XUriReferenceFactory; |
| |
| /** |
| creates URI references. |
| |
| <p>See <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a> for a |
| description of URI references and related terms.</p> |
| |
| <p>For parsing absolute URI references, this service tries to use a |
| scheme-specific parser. Such a scheme-specific parser will typically enforce |
| additional restrictions during parsing, and will typically return objects |
| that support extra, scheme-specific interfaces in addition to |
| <type scope="com::sun::star::uri">XUriReference</type>. If no such parser |
| is found, and for relative URI references, a generic parser is used, which |
| returns objects that only support |
| <type scope="com::sun::star::uri">XUriReference</type>.</p> |
| |
| <p>Locating a scheme-specific parser works as follows: A scheme consists of |
| Latin captial letters |
| “<code>A</code>”–“<code>Z</code>”, Latin small |
| letters “<code>a</code>”–“<code>z</code>”, |
| digits “<code>0</code>”–“<code>9</code>”, |
| “<code>+</code>”, “<code>-</code>”, and |
| “<code>.</code>”. A scheme <var>s</var> is transformed into |
| a string <var>s</var>′ character-by-character, by translating |
| Lating capital letters to their small counterparts, translating |
| “<code>+</code>” to “<code>PLUS</code>”, |
| “<code>-</code>” to “<code>HYPHEN</code>”, |
| “<code>.</code>” to “<code>DOT</code>”, and copying |
| Latin small letters and digits unchanged. If the component context used |
| while creating this <code>UriReferenceFactory</code> instance offers a |
| service manager, and there is a service available at that service manager |
| whose name is the concatenation of |
| “<code>com.sun.star.uri.UriSchemeParser_</code>” and |
| <var>s</var>′, then that service is used. It is an error if that |
| service does not support |
| <type scope="com::sun::star::uri">XUriSchemeParser</type>.</p> |
| |
| @since OpenOffice 2.0 |
| */ |
| published service UriReferenceFactory: XUriReferenceFactory; |
| |
| }; }; }; }; |
| |
| #endif |