1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28#ifndef __com_sun_star_uri_UriReferenceFactory_idl__ 29#define __com_sun_star_uri_UriReferenceFactory_idl__ 30 31module com { module sun { module star { module uri { 32 33published interface XUriReferenceFactory; 34 35/** 36 creates URI references. 37 38 <p>See <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a> for a 39 description of URI references and related terms.</p> 40 41 <p>For parsing absolute URI references, this service tries to use a 42 scheme-specific parser. Such a scheme-specific parser will typically enforce 43 additional restrictions during parsing, and will typically return objects 44 that support extra, scheme-specific interfaces in addition to 45 <type scope="com::sun::star::uri">XUriReference</type>. If no such parser 46 is found, and for relative URI references, a generic parser is used, which 47 returns objects that only support 48 <type scope="com::sun::star::uri">XUriReference</type>.</p> 49 50 <p>Locating a scheme-specific parser works as follows: A scheme consists of 51 Latin captial letters 52 “<code>A</code>”–“<code>Z</code>”, Latin small 53 letters “<code>a</code>”–“<code>z</code>”, 54 digits “<code>0</code>”–“<code>9</code>”, 55 “<code>+</code>”, “<code>-</code>”, and 56 “<code>.</code>”. A scheme <var>s</var> is transformed into 57 a string <var>s</var>′ character-by-character, by translating 58 Lating capital letters to their small counterparts, translating 59 “<code>+</code>” to “<code>PLUS</code>”, 60 “<code>-</code>” to “<code>HYPHEN</code>”, 61 “<code>.</code>” to “<code>DOT</code>”, and copying 62 Latin small letters and digits unchanged. If the component context used 63 while creating this <code>UriReferenceFactory</code> instance offers a 64 service manager, and there is a service available at that service manager 65 whose name is the concatenation of 66 “<code>com.sun.star.uri.UriSchemeParser_</code>” and 67 <var>s</var>′, then that service is used. It is an error if that 68 service does not support 69 <type scope="com::sun::star::uri">XUriSchemeParser</type>.</p> 70 71 @since OOo 2.0 72 */ 73published service UriReferenceFactory: XUriReferenceFactory; 74 75}; }; }; }; 76 77#endif 78