xref: /aoo4110/main/unoxml/source/rdf/CURI.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #include "CNodes.hxx"
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase3.hxx>
27*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp>
28*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XInitialization.hpp>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/rdf/XURI.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/rdf/URIs.hpp>
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/IllegalArgumentException.hpp>
33*b1cdbd2cSJim Jagielski 
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski /// anonymous implementation namespace
36*b1cdbd2cSJim Jagielski namespace {
37*b1cdbd2cSJim Jagielski 
38*b1cdbd2cSJim Jagielski namespace css = ::com::sun::star;
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski class CURI:
41*b1cdbd2cSJim Jagielski     public ::cppu::WeakImplHelper3<
42*b1cdbd2cSJim Jagielski         css::lang::XServiceInfo,
43*b1cdbd2cSJim Jagielski         css::lang::XInitialization,
44*b1cdbd2cSJim Jagielski         css::rdf::XURI>
45*b1cdbd2cSJim Jagielski {
46*b1cdbd2cSJim Jagielski public:
47*b1cdbd2cSJim Jagielski     explicit CURI(css::uno::Reference< css::uno::XComponentContext > const & context);
~CURI()48*b1cdbd2cSJim Jagielski     virtual ~CURI() {}
49*b1cdbd2cSJim Jagielski 
50*b1cdbd2cSJim Jagielski     // ::com::sun::star::lang::XServiceInfo:
51*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException);
52*b1cdbd2cSJim Jagielski     virtual ::sal_Bool SAL_CALL supportsService(const ::rtl::OUString & ServiceName) throw (css::uno::RuntimeException);
53*b1cdbd2cSJim Jagielski     virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException);
54*b1cdbd2cSJim Jagielski 
55*b1cdbd2cSJim Jagielski     // ::com::sun::star::lang::XInitialization:
56*b1cdbd2cSJim Jagielski     virtual void SAL_CALL initialize(const css::uno::Sequence< ::com::sun::star::uno::Any > & aArguments) throw (css::uno::RuntimeException, css::uno::Exception);
57*b1cdbd2cSJim Jagielski 
58*b1cdbd2cSJim Jagielski     // ::com::sun::star::rdf::XNode:
59*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getStringValue() throw (css::uno::RuntimeException);
60*b1cdbd2cSJim Jagielski 
61*b1cdbd2cSJim Jagielski     // ::com::sun::star::rdf::XURI:
62*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getLocalName() throw (css::uno::RuntimeException);
63*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getNamespace() throw (css::uno::RuntimeException);
64*b1cdbd2cSJim Jagielski 
65*b1cdbd2cSJim Jagielski private:
66*b1cdbd2cSJim Jagielski     CURI(const CURI &); // not defined
67*b1cdbd2cSJim Jagielski     CURI& operator=(const CURI &); // not defined
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski     /// handle css.rdf.URIs
70*b1cdbd2cSJim Jagielski     void SAL_CALL initFromConstant(const sal_Int16 i_Constant);
71*b1cdbd2cSJim Jagielski 
72*b1cdbd2cSJim Jagielski     css::uno::Reference< css::uno::XComponentContext > m_xContext;
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski     ::rtl::OUString m_Namespace;
75*b1cdbd2cSJim Jagielski     ::rtl::OUString m_LocalName;
76*b1cdbd2cSJim Jagielski };
77*b1cdbd2cSJim Jagielski 
CURI(css::uno::Reference<css::uno::XComponentContext> const & context)78*b1cdbd2cSJim Jagielski CURI::CURI(css::uno::Reference< css::uno::XComponentContext > const & context) :
79*b1cdbd2cSJim Jagielski     m_xContext(context), m_Namespace(), m_LocalName()
80*b1cdbd2cSJim Jagielski {}
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski // com.sun.star.uno.XServiceInfo:
getImplementationName()83*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL CURI::getImplementationName() throw (css::uno::RuntimeException)
84*b1cdbd2cSJim Jagielski {
85*b1cdbd2cSJim Jagielski     return comp_CURI::_getImplementationName();
86*b1cdbd2cSJim Jagielski }
87*b1cdbd2cSJim Jagielski 
supportsService(::rtl::OUString const & serviceName)88*b1cdbd2cSJim Jagielski ::sal_Bool SAL_CALL CURI::supportsService(::rtl::OUString const & serviceName) throw (css::uno::RuntimeException)
89*b1cdbd2cSJim Jagielski {
90*b1cdbd2cSJim Jagielski     css::uno::Sequence< ::rtl::OUString > serviceNames = comp_CURI::_getSupportedServiceNames();
91*b1cdbd2cSJim Jagielski     for (::sal_Int32 i = 0; i < serviceNames.getLength(); ++i) {
92*b1cdbd2cSJim Jagielski         if (serviceNames[i] == serviceName)
93*b1cdbd2cSJim Jagielski             return sal_True;
94*b1cdbd2cSJim Jagielski     }
95*b1cdbd2cSJim Jagielski     return sal_False;
96*b1cdbd2cSJim Jagielski }
97*b1cdbd2cSJim Jagielski 
getSupportedServiceNames()98*b1cdbd2cSJim Jagielski css::uno::Sequence< ::rtl::OUString > SAL_CALL CURI::getSupportedServiceNames() throw (css::uno::RuntimeException)
99*b1cdbd2cSJim Jagielski {
100*b1cdbd2cSJim Jagielski     return comp_CURI::_getSupportedServiceNames();
101*b1cdbd2cSJim Jagielski }
102*b1cdbd2cSJim Jagielski 
103*b1cdbd2cSJim Jagielski const char s_nsXS       [] = "http://www.w3.org/2001/XMLSchema#";
104*b1cdbd2cSJim Jagielski const char s_nsXSD      [] = "http://www.w3.org/2001/XMLSchema-datatypes#";
105*b1cdbd2cSJim Jagielski const char s_nsRDF      [] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
106*b1cdbd2cSJim Jagielski const char s_nsRDFs     [] = "http://www.w3.org/2000/01/rdf-schema#";
107*b1cdbd2cSJim Jagielski const char s_nsOWL      [] = "http://www.w3.org/2002/07/owl#";
108*b1cdbd2cSJim Jagielski const char s_nsPkg      [] =
109*b1cdbd2cSJim Jagielski     "http://docs.oasis-open.org/ns/office/1.2/meta/pkg#";
110*b1cdbd2cSJim Jagielski const char s_nsODF      [] =
111*b1cdbd2cSJim Jagielski     "http://docs.oasis-open.org/ns/office/1.2/meta/odf#";
112*b1cdbd2cSJim Jagielski 
initFromConstant(const sal_Int16 i_Constant)113*b1cdbd2cSJim Jagielski void SAL_CALL CURI::initFromConstant(const sal_Int16 i_Constant)
114*b1cdbd2cSJim Jagielski {
115*b1cdbd2cSJim Jagielski     const char *ns(0);
116*b1cdbd2cSJim Jagielski     const char *ln(0);
117*b1cdbd2cSJim Jagielski     switch (i_Constant)
118*b1cdbd2cSJim Jagielski     {
119*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NCNAME:
120*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
121*b1cdbd2cSJim Jagielski             ln = "NCName";
122*b1cdbd2cSJim Jagielski             break;
123*b1cdbd2cSJim Jagielski 
124*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_STRING:
125*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
126*b1cdbd2cSJim Jagielski             ln = "string";
127*b1cdbd2cSJim Jagielski             break;
128*b1cdbd2cSJim Jagielski 
129*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NORMALIZEDSTRING:
130*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
131*b1cdbd2cSJim Jagielski             ln = "normalizedString";
132*b1cdbd2cSJim Jagielski             break;
133*b1cdbd2cSJim Jagielski 
134*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_BOOLEAN:
135*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
136*b1cdbd2cSJim Jagielski             ln = "boolean";
137*b1cdbd2cSJim Jagielski             break;
138*b1cdbd2cSJim Jagielski 
139*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_DECIMAL:
140*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
141*b1cdbd2cSJim Jagielski             ln = "decimal";
142*b1cdbd2cSJim Jagielski             break;
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_FLOAT:
145*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
146*b1cdbd2cSJim Jagielski             ln = "float";
147*b1cdbd2cSJim Jagielski             break;
148*b1cdbd2cSJim Jagielski 
149*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_DOUBLE:
150*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
151*b1cdbd2cSJim Jagielski             ln = "double";
152*b1cdbd2cSJim Jagielski             break;
153*b1cdbd2cSJim Jagielski 
154*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_INTEGER:
155*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
156*b1cdbd2cSJim Jagielski             ln = "integer";
157*b1cdbd2cSJim Jagielski             break;
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NONNEGATIVEINTEGER:
160*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
161*b1cdbd2cSJim Jagielski             ln = "nonNegativeInteger";
162*b1cdbd2cSJim Jagielski             break;
163*b1cdbd2cSJim Jagielski 
164*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_POSITIVEINTEGER:
165*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
166*b1cdbd2cSJim Jagielski             ln = "positiveInteger";
167*b1cdbd2cSJim Jagielski             break;
168*b1cdbd2cSJim Jagielski 
169*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NONPOSITIVEINTEGER:
170*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
171*b1cdbd2cSJim Jagielski             ln = "nonPositiveInteger";
172*b1cdbd2cSJim Jagielski             break;
173*b1cdbd2cSJim Jagielski 
174*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NEGATIVEINTEGER:
175*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
176*b1cdbd2cSJim Jagielski             ln = "negativeInteger";
177*b1cdbd2cSJim Jagielski             break;
178*b1cdbd2cSJim Jagielski 
179*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_LONG:
180*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
181*b1cdbd2cSJim Jagielski             ln = "long";
182*b1cdbd2cSJim Jagielski             break;
183*b1cdbd2cSJim Jagielski 
184*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_INT:
185*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
186*b1cdbd2cSJim Jagielski             ln = "int";
187*b1cdbd2cSJim Jagielski             break;
188*b1cdbd2cSJim Jagielski 
189*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_SHORT:
190*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
191*b1cdbd2cSJim Jagielski             ln = "short";
192*b1cdbd2cSJim Jagielski             break;
193*b1cdbd2cSJim Jagielski 
194*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_BYTE:
195*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
196*b1cdbd2cSJim Jagielski             ln = "byte";
197*b1cdbd2cSJim Jagielski             break;
198*b1cdbd2cSJim Jagielski 
199*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_UNSIGNEDLONG:
200*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
201*b1cdbd2cSJim Jagielski             ln = "unsignedLong";
202*b1cdbd2cSJim Jagielski             break;
203*b1cdbd2cSJim Jagielski 
204*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_UNSIGNEDINT:
205*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
206*b1cdbd2cSJim Jagielski             ln = "unsignedInt";
207*b1cdbd2cSJim Jagielski             break;
208*b1cdbd2cSJim Jagielski 
209*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_UNSIGNEDSHORT:
210*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
211*b1cdbd2cSJim Jagielski             ln = "unsignedShort";
212*b1cdbd2cSJim Jagielski             break;
213*b1cdbd2cSJim Jagielski 
214*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_UNSIGNEDBYTE:
215*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
216*b1cdbd2cSJim Jagielski             ln = "unsignedByte";
217*b1cdbd2cSJim Jagielski             break;
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_HEXBINARY:
220*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
221*b1cdbd2cSJim Jagielski             ln = "hexBinary";
222*b1cdbd2cSJim Jagielski             break;
223*b1cdbd2cSJim Jagielski 
224*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_BASE64BINARY:
225*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
226*b1cdbd2cSJim Jagielski             ln = "base64Binary";
227*b1cdbd2cSJim Jagielski             break;
228*b1cdbd2cSJim Jagielski 
229*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_DATETIME:
230*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
231*b1cdbd2cSJim Jagielski             ln = "dateTime";
232*b1cdbd2cSJim Jagielski             break;
233*b1cdbd2cSJim Jagielski 
234*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_TIME:
235*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
236*b1cdbd2cSJim Jagielski             ln = "time";
237*b1cdbd2cSJim Jagielski             break;
238*b1cdbd2cSJim Jagielski 
239*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_DATE:
240*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
241*b1cdbd2cSJim Jagielski             ln = "date";
242*b1cdbd2cSJim Jagielski             break;
243*b1cdbd2cSJim Jagielski 
244*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_GYEARMONTH:
245*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
246*b1cdbd2cSJim Jagielski             ln = "gYearMonth";
247*b1cdbd2cSJim Jagielski             break;
248*b1cdbd2cSJim Jagielski 
249*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_GYEAR:
250*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
251*b1cdbd2cSJim Jagielski             ln = "gYear";
252*b1cdbd2cSJim Jagielski             break;
253*b1cdbd2cSJim Jagielski 
254*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_GMONTHDAY:
255*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
256*b1cdbd2cSJim Jagielski             ln = "gMonthDay";
257*b1cdbd2cSJim Jagielski             break;
258*b1cdbd2cSJim Jagielski 
259*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_GDAY:
260*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
261*b1cdbd2cSJim Jagielski             ln = "gDay";
262*b1cdbd2cSJim Jagielski             break;
263*b1cdbd2cSJim Jagielski 
264*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_GMONTH:
265*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
266*b1cdbd2cSJim Jagielski             ln = "gMonth";
267*b1cdbd2cSJim Jagielski             break;
268*b1cdbd2cSJim Jagielski 
269*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_ANYURI:
270*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
271*b1cdbd2cSJim Jagielski             ln = "anyURI";
272*b1cdbd2cSJim Jagielski             break;
273*b1cdbd2cSJim Jagielski 
274*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_TOKEN:
275*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
276*b1cdbd2cSJim Jagielski             ln = "token";
277*b1cdbd2cSJim Jagielski             break;
278*b1cdbd2cSJim Jagielski 
279*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_LANGUAGE:
280*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
281*b1cdbd2cSJim Jagielski             ln = "language";
282*b1cdbd2cSJim Jagielski             break;
283*b1cdbd2cSJim Jagielski 
284*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NMTOKEN:
285*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
286*b1cdbd2cSJim Jagielski             ln = "NMTOKEN";
287*b1cdbd2cSJim Jagielski             break;
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NAME:
290*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
291*b1cdbd2cSJim Jagielski             ln = "Name";
292*b1cdbd2cSJim Jagielski             break;
293*b1cdbd2cSJim Jagielski 
294*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_DURATION:
295*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
296*b1cdbd2cSJim Jagielski             ln = "duration";
297*b1cdbd2cSJim Jagielski             break;
298*b1cdbd2cSJim Jagielski 
299*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_QNAME:
300*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
301*b1cdbd2cSJim Jagielski             ln = "QName";
302*b1cdbd2cSJim Jagielski             break;
303*b1cdbd2cSJim Jagielski 
304*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NOTATION:
305*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
306*b1cdbd2cSJim Jagielski             ln = "NOTATION";
307*b1cdbd2cSJim Jagielski             break;
308*b1cdbd2cSJim Jagielski 
309*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_NMTOKENS:
310*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
311*b1cdbd2cSJim Jagielski             ln = "NMTOKENS";
312*b1cdbd2cSJim Jagielski             break;
313*b1cdbd2cSJim Jagielski 
314*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_ID:
315*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
316*b1cdbd2cSJim Jagielski             ln = "ID";
317*b1cdbd2cSJim Jagielski             break;
318*b1cdbd2cSJim Jagielski 
319*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_IDREF:
320*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
321*b1cdbd2cSJim Jagielski             ln = "IDREF";
322*b1cdbd2cSJim Jagielski             break;
323*b1cdbd2cSJim Jagielski 
324*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_IDREFS:
325*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
326*b1cdbd2cSJim Jagielski             ln = "IDREFS";
327*b1cdbd2cSJim Jagielski             break;
328*b1cdbd2cSJim Jagielski 
329*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_ENTITY:
330*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
331*b1cdbd2cSJim Jagielski             ln = "ENTITY";
332*b1cdbd2cSJim Jagielski             break;
333*b1cdbd2cSJim Jagielski 
334*b1cdbd2cSJim Jagielski         case css::rdf::URIs::XSD_ENTITIES:
335*b1cdbd2cSJim Jagielski             ns = s_nsXSD;
336*b1cdbd2cSJim Jagielski             ln = "ENTITIES";
337*b1cdbd2cSJim Jagielski             break;
338*b1cdbd2cSJim Jagielski 
339*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_TYPE:
340*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
341*b1cdbd2cSJim Jagielski             ln = "type";
342*b1cdbd2cSJim Jagielski             break;
343*b1cdbd2cSJim Jagielski 
344*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_SUBJECT:
345*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
346*b1cdbd2cSJim Jagielski             ln = "subject";
347*b1cdbd2cSJim Jagielski             break;
348*b1cdbd2cSJim Jagielski 
349*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_PREDICATE:
350*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
351*b1cdbd2cSJim Jagielski             ln = "predicate";
352*b1cdbd2cSJim Jagielski             break;
353*b1cdbd2cSJim Jagielski 
354*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_OBJECT:
355*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
356*b1cdbd2cSJim Jagielski             ln = "object";
357*b1cdbd2cSJim Jagielski             break;
358*b1cdbd2cSJim Jagielski 
359*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_PROPERTY:
360*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
361*b1cdbd2cSJim Jagielski             ln = "Property";
362*b1cdbd2cSJim Jagielski             break;
363*b1cdbd2cSJim Jagielski 
364*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_STATEMENT:
365*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
366*b1cdbd2cSJim Jagielski             ln = "Statement";
367*b1cdbd2cSJim Jagielski             break;
368*b1cdbd2cSJim Jagielski 
369*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_VALUE:
370*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
371*b1cdbd2cSJim Jagielski             ln = "value";
372*b1cdbd2cSJim Jagielski             break;
373*b1cdbd2cSJim Jagielski 
374*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_FIRST:
375*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
376*b1cdbd2cSJim Jagielski             ln = "first";
377*b1cdbd2cSJim Jagielski             break;
378*b1cdbd2cSJim Jagielski 
379*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_REST:
380*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
381*b1cdbd2cSJim Jagielski             ln = "rest";
382*b1cdbd2cSJim Jagielski             break;
383*b1cdbd2cSJim Jagielski 
384*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_NIL:
385*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
386*b1cdbd2cSJim Jagielski             ln = "nil";
387*b1cdbd2cSJim Jagielski             break;
388*b1cdbd2cSJim Jagielski 
389*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_XMLLITERAL:
390*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
391*b1cdbd2cSJim Jagielski             ln = "XMLLiteral";
392*b1cdbd2cSJim Jagielski             break;
393*b1cdbd2cSJim Jagielski 
394*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_ALT:
395*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
396*b1cdbd2cSJim Jagielski             ln = "Alt";
397*b1cdbd2cSJim Jagielski             break;
398*b1cdbd2cSJim Jagielski 
399*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_BAG:
400*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
401*b1cdbd2cSJim Jagielski             ln = "Bag";
402*b1cdbd2cSJim Jagielski             break;
403*b1cdbd2cSJim Jagielski 
404*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_LIST:
405*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
406*b1cdbd2cSJim Jagielski             ln = "List";
407*b1cdbd2cSJim Jagielski             break;
408*b1cdbd2cSJim Jagielski 
409*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_SEQ:
410*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
411*b1cdbd2cSJim Jagielski             ln = "Seq";
412*b1cdbd2cSJim Jagielski             break;
413*b1cdbd2cSJim Jagielski 
414*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDF_1:
415*b1cdbd2cSJim Jagielski             ns = s_nsRDF;
416*b1cdbd2cSJim Jagielski             ln = "_1";
417*b1cdbd2cSJim Jagielski             break;
418*b1cdbd2cSJim Jagielski 
419*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDFS_COMMENT:
420*b1cdbd2cSJim Jagielski             ns = s_nsRDFs;
421*b1cdbd2cSJim Jagielski             ln = "comment";
422*b1cdbd2cSJim Jagielski             break;
423*b1cdbd2cSJim Jagielski 
424*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDFS_LABEL:
425*b1cdbd2cSJim Jagielski             ns = s_nsRDFs;
426*b1cdbd2cSJim Jagielski             ln = "label";
427*b1cdbd2cSJim Jagielski             break;
428*b1cdbd2cSJim Jagielski 
429*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDFS_DOMAIN:
430*b1cdbd2cSJim Jagielski             ns = s_nsRDFs;
431*b1cdbd2cSJim Jagielski             ln = "domain";
432*b1cdbd2cSJim Jagielski             break;
433*b1cdbd2cSJim Jagielski 
434*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDFS_RANGE:
435*b1cdbd2cSJim Jagielski             ns = s_nsRDFs;
436*b1cdbd2cSJim Jagielski             ln = "range";
437*b1cdbd2cSJim Jagielski             break;
438*b1cdbd2cSJim Jagielski 
439*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDFS_SUBCLASSOF:
440*b1cdbd2cSJim Jagielski             ns = s_nsRDFs;
441*b1cdbd2cSJim Jagielski             ln = "subClassOf";
442*b1cdbd2cSJim Jagielski             break;
443*b1cdbd2cSJim Jagielski 
444*b1cdbd2cSJim Jagielski         case css::rdf::URIs::RDFS_LITERAL:
445*b1cdbd2cSJim Jagielski             ns = s_nsRDFs;
446*b1cdbd2cSJim Jagielski             ln = "Literal";
447*b1cdbd2cSJim Jagielski             break;
448*b1cdbd2cSJim Jagielski 
449*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_CLASS:
450*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
451*b1cdbd2cSJim Jagielski             ln = "Class";
452*b1cdbd2cSJim Jagielski             break;
453*b1cdbd2cSJim Jagielski 
454*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_OBJECTPROPERTY:
455*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
456*b1cdbd2cSJim Jagielski             ln = "ObjectProperty";
457*b1cdbd2cSJim Jagielski             break;
458*b1cdbd2cSJim Jagielski 
459*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_DATATYPEPROPERTY:
460*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
461*b1cdbd2cSJim Jagielski             ln = "DatatypeProperty";
462*b1cdbd2cSJim Jagielski             break;
463*b1cdbd2cSJim Jagielski 
464*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_FUNCTIONALPROPERTY:
465*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
466*b1cdbd2cSJim Jagielski             ln = "FunctionalProperty";
467*b1cdbd2cSJim Jagielski             break;
468*b1cdbd2cSJim Jagielski 
469*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_THING:
470*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
471*b1cdbd2cSJim Jagielski             ln = "Thing";
472*b1cdbd2cSJim Jagielski             break;
473*b1cdbd2cSJim Jagielski 
474*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_NOTHING:
475*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
476*b1cdbd2cSJim Jagielski             ln = "Nothing";
477*b1cdbd2cSJim Jagielski             break;
478*b1cdbd2cSJim Jagielski 
479*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_INDIVIDUAL:
480*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
481*b1cdbd2cSJim Jagielski             ln = "Individual";
482*b1cdbd2cSJim Jagielski             break;
483*b1cdbd2cSJim Jagielski 
484*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_EQUIVALENTCLASS:
485*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
486*b1cdbd2cSJim Jagielski             ln = "equivalentClass";
487*b1cdbd2cSJim Jagielski             break;
488*b1cdbd2cSJim Jagielski 
489*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_EQUIVALENTPROPERTY:
490*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
491*b1cdbd2cSJim Jagielski             ln = "equivalentProperty";
492*b1cdbd2cSJim Jagielski             break;
493*b1cdbd2cSJim Jagielski 
494*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_SAMEAS:
495*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
496*b1cdbd2cSJim Jagielski             ln = "sameAs";
497*b1cdbd2cSJim Jagielski             break;
498*b1cdbd2cSJim Jagielski 
499*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_DIFFERENTFROM:
500*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
501*b1cdbd2cSJim Jagielski             ln = "differentFrom";
502*b1cdbd2cSJim Jagielski             break;
503*b1cdbd2cSJim Jagielski 
504*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_ALLDIFFERENT:
505*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
506*b1cdbd2cSJim Jagielski             ln = "AllDifferent";
507*b1cdbd2cSJim Jagielski             break;
508*b1cdbd2cSJim Jagielski 
509*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_DISTINCTMEMBERS:
510*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
511*b1cdbd2cSJim Jagielski             ln = "distinctMembers";
512*b1cdbd2cSJim Jagielski             break;
513*b1cdbd2cSJim Jagielski 
514*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_INVERSEOF:
515*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
516*b1cdbd2cSJim Jagielski             ln = "inverseOf";
517*b1cdbd2cSJim Jagielski             break;
518*b1cdbd2cSJim Jagielski 
519*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_TRANSITIVEPROPERTY:
520*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
521*b1cdbd2cSJim Jagielski             ln = "TransitiveProperty";
522*b1cdbd2cSJim Jagielski             break;
523*b1cdbd2cSJim Jagielski 
524*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_SYMMETRICPROPERTY:
525*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
526*b1cdbd2cSJim Jagielski             ln = "SymmetricProperty";
527*b1cdbd2cSJim Jagielski             break;
528*b1cdbd2cSJim Jagielski 
529*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_INVERSEFUNCTIONALPROPERTY:
530*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
531*b1cdbd2cSJim Jagielski             ln = "InverseFunctionalProperty";
532*b1cdbd2cSJim Jagielski             break;
533*b1cdbd2cSJim Jagielski 
534*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_RESTRICTION:
535*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
536*b1cdbd2cSJim Jagielski             ln = "Restriction";
537*b1cdbd2cSJim Jagielski             break;
538*b1cdbd2cSJim Jagielski 
539*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_ONPROPERTY:
540*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
541*b1cdbd2cSJim Jagielski             ln = "onProperty";
542*b1cdbd2cSJim Jagielski             break;
543*b1cdbd2cSJim Jagielski 
544*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_ALLVALUESFROM:
545*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
546*b1cdbd2cSJim Jagielski             ln = "allValuesFrom";
547*b1cdbd2cSJim Jagielski             break;
548*b1cdbd2cSJim Jagielski 
549*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_SOMEVALUESFROM:
550*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
551*b1cdbd2cSJim Jagielski             ln = "someValuesFrom";
552*b1cdbd2cSJim Jagielski             break;
553*b1cdbd2cSJim Jagielski 
554*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_MINCARDINALITY:
555*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
556*b1cdbd2cSJim Jagielski             ln = "minCardinality";
557*b1cdbd2cSJim Jagielski             break;
558*b1cdbd2cSJim Jagielski 
559*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_MAXCARDINALITY:
560*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
561*b1cdbd2cSJim Jagielski             ln = "maxCardinality";
562*b1cdbd2cSJim Jagielski             break;
563*b1cdbd2cSJim Jagielski 
564*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_CARDINALITY:
565*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
566*b1cdbd2cSJim Jagielski             ln = "cardinality";
567*b1cdbd2cSJim Jagielski             break;
568*b1cdbd2cSJim Jagielski 
569*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_ONTOLOGY:
570*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
571*b1cdbd2cSJim Jagielski             ln = "Ontology";
572*b1cdbd2cSJim Jagielski             break;
573*b1cdbd2cSJim Jagielski 
574*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_IMPORTS:
575*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
576*b1cdbd2cSJim Jagielski             ln = "imports";
577*b1cdbd2cSJim Jagielski             break;
578*b1cdbd2cSJim Jagielski 
579*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_VERSIONINFO:
580*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
581*b1cdbd2cSJim Jagielski             ln = "versionInfo";
582*b1cdbd2cSJim Jagielski             break;
583*b1cdbd2cSJim Jagielski 
584*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_PRIORVERSION:
585*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
586*b1cdbd2cSJim Jagielski             ln = "priorVersion";
587*b1cdbd2cSJim Jagielski             break;
588*b1cdbd2cSJim Jagielski 
589*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_BACKWARDCOMPATIBLEWITH:
590*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
591*b1cdbd2cSJim Jagielski             ln = "backwardCompatibleWith";
592*b1cdbd2cSJim Jagielski             break;
593*b1cdbd2cSJim Jagielski 
594*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_INCOMPATIBLEWITH:
595*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
596*b1cdbd2cSJim Jagielski             ln = "incompatibleWith";
597*b1cdbd2cSJim Jagielski             break;
598*b1cdbd2cSJim Jagielski 
599*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_DEPRECATEDCLASS:
600*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
601*b1cdbd2cSJim Jagielski             ln = "DeprecatedClass";
602*b1cdbd2cSJim Jagielski             break;
603*b1cdbd2cSJim Jagielski 
604*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_DEPRECATEDPROPERTY:
605*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
606*b1cdbd2cSJim Jagielski             ln = "DeprecatedProperty";
607*b1cdbd2cSJim Jagielski             break;
608*b1cdbd2cSJim Jagielski 
609*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_ANNOTATIONPROPERTY:
610*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
611*b1cdbd2cSJim Jagielski             ln = "AnnotationProperty";
612*b1cdbd2cSJim Jagielski             break;
613*b1cdbd2cSJim Jagielski 
614*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_ONTOLOGYPROPERTY:
615*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
616*b1cdbd2cSJim Jagielski             ln = "OntologyProperty";
617*b1cdbd2cSJim Jagielski             break;
618*b1cdbd2cSJim Jagielski 
619*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_ONEOF:
620*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
621*b1cdbd2cSJim Jagielski             ln = "oneOf";
622*b1cdbd2cSJim Jagielski             break;
623*b1cdbd2cSJim Jagielski 
624*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_DATARANGE:
625*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
626*b1cdbd2cSJim Jagielski             ln = "dataRange";
627*b1cdbd2cSJim Jagielski             break;
628*b1cdbd2cSJim Jagielski 
629*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_DISJOINTWITH:
630*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
631*b1cdbd2cSJim Jagielski             ln = "disjointWith";
632*b1cdbd2cSJim Jagielski             break;
633*b1cdbd2cSJim Jagielski 
634*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_UNIONOF:
635*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
636*b1cdbd2cSJim Jagielski             ln = "unionOf";
637*b1cdbd2cSJim Jagielski             break;
638*b1cdbd2cSJim Jagielski 
639*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_COMPLEMENTOF:
640*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
641*b1cdbd2cSJim Jagielski             ln = "complementOf";
642*b1cdbd2cSJim Jagielski             break;
643*b1cdbd2cSJim Jagielski 
644*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_INTERSECTIONOF:
645*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
646*b1cdbd2cSJim Jagielski             ln = "intersectionOf";
647*b1cdbd2cSJim Jagielski             break;
648*b1cdbd2cSJim Jagielski 
649*b1cdbd2cSJim Jagielski         case css::rdf::URIs::OWL_HASVALUE:
650*b1cdbd2cSJim Jagielski             ns = s_nsOWL;
651*b1cdbd2cSJim Jagielski             ln = "hasValue";
652*b1cdbd2cSJim Jagielski             break;
653*b1cdbd2cSJim Jagielski 
654*b1cdbd2cSJim Jagielski 
655*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_HASPART:
656*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
657*b1cdbd2cSJim Jagielski             ln = "hasPart";
658*b1cdbd2cSJim Jagielski             break;
659*b1cdbd2cSJim Jagielski 
660*b1cdbd2cSJim Jagielski /* REMOVED
661*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_IDREF:
662*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
663*b1cdbd2cSJim Jagielski             ln = "idref";
664*b1cdbd2cSJim Jagielski             break;
665*b1cdbd2cSJim Jagielski 
666*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_PATH:
667*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
668*b1cdbd2cSJim Jagielski             ln = "path";
669*b1cdbd2cSJim Jagielski             break;
670*b1cdbd2cSJim Jagielski */
671*b1cdbd2cSJim Jagielski 
672*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_MIMETYPE:
673*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
674*b1cdbd2cSJim Jagielski             ln = "mimeType";
675*b1cdbd2cSJim Jagielski             break;
676*b1cdbd2cSJim Jagielski 
677*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_PACKAGE:
678*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
679*b1cdbd2cSJim Jagielski             ln = "Package";
680*b1cdbd2cSJim Jagielski             break;
681*b1cdbd2cSJim Jagielski 
682*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_ELEMENT:
683*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
684*b1cdbd2cSJim Jagielski             ln = "Element";
685*b1cdbd2cSJim Jagielski             break;
686*b1cdbd2cSJim Jagielski 
687*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_FILE:
688*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
689*b1cdbd2cSJim Jagielski             ln = "File";
690*b1cdbd2cSJim Jagielski             break;
691*b1cdbd2cSJim Jagielski 
692*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_METADATAFILE:
693*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
694*b1cdbd2cSJim Jagielski             ln = "MetadataFile";
695*b1cdbd2cSJim Jagielski             break;
696*b1cdbd2cSJim Jagielski 
697*b1cdbd2cSJim Jagielski         case css::rdf::URIs::PKG_DOCUMENT:
698*b1cdbd2cSJim Jagielski             ns = s_nsPkg;
699*b1cdbd2cSJim Jagielski             ln = "Document";
700*b1cdbd2cSJim Jagielski             break;
701*b1cdbd2cSJim Jagielski 
702*b1cdbd2cSJim Jagielski         case css::rdf::URIs::ODF_PREFIX:
703*b1cdbd2cSJim Jagielski             ns = s_nsODF;
704*b1cdbd2cSJim Jagielski             ln = "prefix";
705*b1cdbd2cSJim Jagielski             break;
706*b1cdbd2cSJim Jagielski 
707*b1cdbd2cSJim Jagielski         case css::rdf::URIs::ODF_SUFFIX:
708*b1cdbd2cSJim Jagielski             ns = s_nsODF;
709*b1cdbd2cSJim Jagielski             ln = "suffix";
710*b1cdbd2cSJim Jagielski             break;
711*b1cdbd2cSJim Jagielski 
712*b1cdbd2cSJim Jagielski         case css::rdf::URIs::ODF_ELEMENT:
713*b1cdbd2cSJim Jagielski             ns = s_nsODF;
714*b1cdbd2cSJim Jagielski             ln = "Element";
715*b1cdbd2cSJim Jagielski             break;
716*b1cdbd2cSJim Jagielski 
717*b1cdbd2cSJim Jagielski         case css::rdf::URIs::ODF_CONTENTFILE:
718*b1cdbd2cSJim Jagielski             ns = s_nsODF;
719*b1cdbd2cSJim Jagielski             ln = "ContentFile";
720*b1cdbd2cSJim Jagielski             break;
721*b1cdbd2cSJim Jagielski 
722*b1cdbd2cSJim Jagielski         case css::rdf::URIs::ODF_STYLESFILE:
723*b1cdbd2cSJim Jagielski             ns = s_nsODF;
724*b1cdbd2cSJim Jagielski             ln = "StylesFile";
725*b1cdbd2cSJim Jagielski             break;
726*b1cdbd2cSJim Jagielski 
727*b1cdbd2cSJim Jagielski /* REMOVED
728*b1cdbd2cSJim Jagielski         case css::rdf::URIs::ODF_METADATAFILE:
729*b1cdbd2cSJim Jagielski             ns = s_nsODF;
730*b1cdbd2cSJim Jagielski             ln = "MetadataFile";
731*b1cdbd2cSJim Jagielski             break;
732*b1cdbd2cSJim Jagielski */
733*b1cdbd2cSJim Jagielski 
734*b1cdbd2cSJim Jagielski         default:
735*b1cdbd2cSJim Jagielski             throw css::lang::IllegalArgumentException(
736*b1cdbd2cSJim Jagielski                 ::rtl::OUString::createFromAscii("CURI::initialize: "
737*b1cdbd2cSJim Jagielski                     "invalid URIs constant argument"), *this, 0);
738*b1cdbd2cSJim Jagielski     }
739*b1cdbd2cSJim Jagielski     m_Namespace = ::rtl::OUString::createFromAscii(ns).intern();
740*b1cdbd2cSJim Jagielski     m_LocalName = ::rtl::OUString::createFromAscii(ln).intern();
741*b1cdbd2cSJim Jagielski     return;
742*b1cdbd2cSJim Jagielski }
743*b1cdbd2cSJim Jagielski 
744*b1cdbd2cSJim Jagielski // ::com::sun::star::lang::XInitialization:
initialize(const css::uno::Sequence<::com::sun::star::uno::Any> & aArguments)745*b1cdbd2cSJim Jagielski void SAL_CALL CURI::initialize(const css::uno::Sequence< ::com::sun::star::uno::Any > & aArguments) throw (css::uno::RuntimeException, css::uno::Exception)
746*b1cdbd2cSJim Jagielski {
747*b1cdbd2cSJim Jagielski     sal_Int32 len = aArguments.getLength();
748*b1cdbd2cSJim Jagielski     if ((len < 1) || (len > 2)) {
749*b1cdbd2cSJim Jagielski         throw css::lang::IllegalArgumentException(
750*b1cdbd2cSJim Jagielski             ::rtl::OUString::createFromAscii("CURI::initialize: "
751*b1cdbd2cSJim Jagielski                 "must give 1 or 2 argument(s)"), *this, 2);
752*b1cdbd2cSJim Jagielski     }
753*b1cdbd2cSJim Jagielski 
754*b1cdbd2cSJim Jagielski     sal_Int16 arg(0);
755*b1cdbd2cSJim Jagielski     ::rtl::OUString arg0;
756*b1cdbd2cSJim Jagielski     ::rtl::OUString arg1;
757*b1cdbd2cSJim Jagielski     if ((aArguments[0] >>= arg)) {
758*b1cdbd2cSJim Jagielski         // integer argument: constant from rdf::URIs
759*b1cdbd2cSJim Jagielski         if (len != 1) {
760*b1cdbd2cSJim Jagielski             throw css::lang::IllegalArgumentException(
761*b1cdbd2cSJim Jagielski                 ::rtl::OUString::createFromAscii("CURI::initialize: "
762*b1cdbd2cSJim Jagielski                     "must give 1 int argument"), *this, 1);
763*b1cdbd2cSJim Jagielski         }
764*b1cdbd2cSJim Jagielski         initFromConstant(arg);
765*b1cdbd2cSJim Jagielski         return;
766*b1cdbd2cSJim Jagielski     }
767*b1cdbd2cSJim Jagielski     if (!(aArguments[0] >>= arg0)) {
768*b1cdbd2cSJim Jagielski         throw css::lang::IllegalArgumentException(
769*b1cdbd2cSJim Jagielski             ::rtl::OUString::createFromAscii("CURI::initialize: "
770*b1cdbd2cSJim Jagielski                 "argument must be string or short"), *this, 0);
771*b1cdbd2cSJim Jagielski     }
772*b1cdbd2cSJim Jagielski     if (len > 1) {
773*b1cdbd2cSJim Jagielski         if (!(aArguments[1] >>= arg1)) {
774*b1cdbd2cSJim Jagielski             throw css::lang::IllegalArgumentException(
775*b1cdbd2cSJim Jagielski                 ::rtl::OUString::createFromAscii("CURI::initialize: "
776*b1cdbd2cSJim Jagielski                     "argument must be string"), *this, 1);
777*b1cdbd2cSJim Jagielski         }
778*b1cdbd2cSJim Jagielski         // just append the parameters and then split them again; seems simplest
779*b1cdbd2cSJim Jagielski         arg0 = arg0 + arg1;
780*b1cdbd2cSJim Jagielski         arg1 = ::rtl::OUString();
781*b1cdbd2cSJim Jagielski     }
782*b1cdbd2cSJim Jagielski 
783*b1cdbd2cSJim Jagielski     // split parameter
784*b1cdbd2cSJim Jagielski     sal_Int32 idx;
785*b1cdbd2cSJim Jagielski     if (    ((idx = arg0.indexOf    ('#')) >= 0)
786*b1cdbd2cSJim Jagielski         ||  ((idx = arg0.lastIndexOf('/')) >= 0)
787*b1cdbd2cSJim Jagielski         ||  ((idx = arg0.lastIndexOf(':')) >= 0))
788*b1cdbd2cSJim Jagielski     {
789*b1cdbd2cSJim Jagielski 
790*b1cdbd2cSJim Jagielski         if (idx < arg0.getLength() - 1) {
791*b1cdbd2cSJim Jagielski             arg1 = arg0.copy(idx+1);
792*b1cdbd2cSJim Jagielski             arg0 = arg0.copy(0, idx+1);
793*b1cdbd2cSJim Jagielski         }
794*b1cdbd2cSJim Jagielski     } else {
795*b1cdbd2cSJim Jagielski         throw css::lang::IllegalArgumentException(
796*b1cdbd2cSJim Jagielski             ::rtl::OUString::createFromAscii("CURI::initialize: "
797*b1cdbd2cSJim Jagielski                 "argument not splittable: no separator [#/:]"), *this, 0);
798*b1cdbd2cSJim Jagielski     }
799*b1cdbd2cSJim Jagielski 
800*b1cdbd2cSJim Jagielski     //FIXME: what is legal?
801*b1cdbd2cSJim Jagielski     if (arg0.getLength() > 0) {
802*b1cdbd2cSJim Jagielski         m_Namespace = arg0;
803*b1cdbd2cSJim Jagielski     } else {
804*b1cdbd2cSJim Jagielski         throw css::lang::IllegalArgumentException(
805*b1cdbd2cSJim Jagielski             ::rtl::OUString::createFromAscii("CURI::initialize: "
806*b1cdbd2cSJim Jagielski                 "argument is not valid namespace"), *this, 0);
807*b1cdbd2cSJim Jagielski     }
808*b1cdbd2cSJim Jagielski     //FIXME: what is legal?
809*b1cdbd2cSJim Jagielski     if (true) {
810*b1cdbd2cSJim Jagielski         m_LocalName = arg1;
811*b1cdbd2cSJim Jagielski     } else {
812*b1cdbd2cSJim Jagielski         throw css::lang::IllegalArgumentException(
813*b1cdbd2cSJim Jagielski             ::rtl::OUString::createFromAscii("CURI::initialize: "
814*b1cdbd2cSJim Jagielski                 "argument is not valid local name"), *this, 1);
815*b1cdbd2cSJim Jagielski     }
816*b1cdbd2cSJim Jagielski }
817*b1cdbd2cSJim Jagielski 
818*b1cdbd2cSJim Jagielski // ::com::sun::star::rdf::XNode:
getStringValue()819*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL CURI::getStringValue() throw (css::uno::RuntimeException)
820*b1cdbd2cSJim Jagielski {
821*b1cdbd2cSJim Jagielski     return m_Namespace + m_LocalName;
822*b1cdbd2cSJim Jagielski }
823*b1cdbd2cSJim Jagielski 
824*b1cdbd2cSJim Jagielski // ::com::sun::star::rdf::XURI:
getNamespace()825*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL CURI::getNamespace() throw (css::uno::RuntimeException)
826*b1cdbd2cSJim Jagielski {
827*b1cdbd2cSJim Jagielski     return m_Namespace;
828*b1cdbd2cSJim Jagielski }
829*b1cdbd2cSJim Jagielski 
getLocalName()830*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL CURI::getLocalName() throw (css::uno::RuntimeException)
831*b1cdbd2cSJim Jagielski {
832*b1cdbd2cSJim Jagielski     return m_LocalName;
833*b1cdbd2cSJim Jagielski }
834*b1cdbd2cSJim Jagielski 
835*b1cdbd2cSJim Jagielski } // closing anonymous implementation namespace
836*b1cdbd2cSJim Jagielski 
837*b1cdbd2cSJim Jagielski 
838*b1cdbd2cSJim Jagielski 
839*b1cdbd2cSJim Jagielski // component helper namespace
840*b1cdbd2cSJim Jagielski namespace comp_CURI {
841*b1cdbd2cSJim Jagielski 
_getImplementationName()842*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL _getImplementationName() {
843*b1cdbd2cSJim Jagielski     return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
844*b1cdbd2cSJim Jagielski         "CURI"));
845*b1cdbd2cSJim Jagielski }
846*b1cdbd2cSJim Jagielski 
_getSupportedServiceNames()847*b1cdbd2cSJim Jagielski css::uno::Sequence< ::rtl::OUString > SAL_CALL _getSupportedServiceNames()
848*b1cdbd2cSJim Jagielski {
849*b1cdbd2cSJim Jagielski     css::uno::Sequence< ::rtl::OUString > s(1);
850*b1cdbd2cSJim Jagielski     s[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
851*b1cdbd2cSJim Jagielski         "com.sun.star.rdf.URI"));
852*b1cdbd2cSJim Jagielski     return s;
853*b1cdbd2cSJim Jagielski }
854*b1cdbd2cSJim Jagielski 
_create(const css::uno::Reference<css::uno::XComponentContext> & context)855*b1cdbd2cSJim Jagielski css::uno::Reference< css::uno::XInterface > SAL_CALL _create(
856*b1cdbd2cSJim Jagielski     const css::uno::Reference< css::uno::XComponentContext > & context)
857*b1cdbd2cSJim Jagielski         SAL_THROW((css::uno::Exception))
858*b1cdbd2cSJim Jagielski {
859*b1cdbd2cSJim Jagielski     return static_cast< ::cppu::OWeakObject * >(new CURI(context));
860*b1cdbd2cSJim Jagielski }
861*b1cdbd2cSJim Jagielski 
862*b1cdbd2cSJim Jagielski } // closing component helper namespace
863*b1cdbd2cSJim Jagielski 
864