summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/rdf
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/rdf')
-rw-r--r--offapi/com/sun/star/rdf/BlankNode.idl82
-rw-r--r--offapi/com/sun/star/rdf/FileFormat.idl82
-rw-r--r--offapi/com/sun/star/rdf/Literal.idl92
-rw-r--r--offapi/com/sun/star/rdf/ParseException.idl55
-rw-r--r--offapi/com/sun/star/rdf/QueryException.idl56
-rw-r--r--offapi/com/sun/star/rdf/Repository.idl60
-rw-r--r--offapi/com/sun/star/rdf/RepositoryException.idl56
-rw-r--r--offapi/com/sun/star/rdf/Statement.idl63
-rw-r--r--offapi/com/sun/star/rdf/URI.idl102
-rw-r--r--offapi/com/sun/star/rdf/URIs.idl333
-rw-r--r--offapi/com/sun/star/rdf/XBlankNode.idl60
-rw-r--r--offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl452
-rw-r--r--offapi/com/sun/star/rdf/XDocumentRepository.idl243
-rw-r--r--offapi/com/sun/star/rdf/XLiteral.idl72
-rw-r--r--offapi/com/sun/star/rdf/XMetadatable.idl106
-rw-r--r--offapi/com/sun/star/rdf/XNamedGraph.idl229
-rw-r--r--offapi/com/sun/star/rdf/XNode.idl79
-rw-r--r--offapi/com/sun/star/rdf/XQuerySelectResult.idl76
-rw-r--r--offapi/com/sun/star/rdf/XReifiedStatement.idl57
-rw-r--r--offapi/com/sun/star/rdf/XRepository.idl465
-rw-r--r--offapi/com/sun/star/rdf/XRepositorySupplier.idl63
-rw-r--r--offapi/com/sun/star/rdf/XResource.idl61
-rw-r--r--offapi/com/sun/star/rdf/XURI.idl77
-rw-r--r--offapi/com/sun/star/rdf/makefile.mk71
24 files changed, 3092 insertions, 0 deletions
diff --git a/offapi/com/sun/star/rdf/BlankNode.idl b/offapi/com/sun/star/rdf/BlankNode.idl
new file mode 100644
index 000000000000..5829a3f02e9f
--- /dev/null
+++ b/offapi/com/sun/star/rdf/BlankNode.idl
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_BlankNode_idl__
+#define __com_sun_star_rdf_BlankNode_idl__
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XBlankNode_idl__
+#include <com/sun/star/rdf/XBlankNode.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents a blank node that may occur in a RDF graph.
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+service BlankNode : XBlankNode
+{
+
+ //-------------------------------------------------------------------------
+ /** create a blank RDF node.
+
+ <p>
+ Be careful! With this constructor you can create a node that aliases
+ another node that already exists in some repository.
+ That may or may not be what you want.
+ If you want to create a new blank node that is guaranteed to be unique,
+ use <member>XRepository::createBlankNode</member> instead.
+ <p>
+
+ @param NodeID
+ the ID for the blank node.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the argument does not represent a valid blank node ID
+
+ @see XRepository::createBlankNode
+ */
+ create( [in] string NodeID )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/FileFormat.idl b/offapi/com/sun/star/rdf/FileFormat.idl
new file mode 100644
index 000000000000..e5814ca70828
--- /dev/null
+++ b/offapi/com/sun/star/rdf/FileFormat.idl
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_FileFormat_idl__
+#define __com_sun_star_rdf_FileFormat_idl__
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** Constants to specify RDF file formats.
+
+ <p>
+ These constants are mainly for use with
+ <member>XRepository::importGraph</member>
+ and <member>XRepository::exportGraph</member>.
+ </p>
+
+ <p>
+ Note that these are integers because UNO IDL does not permit
+ <atom>string</atom> constants.
+ </p>
+
+ @since OOo 3.0
+
+ @see XRepository::importGraph
+ @see XRepository::exportGraph
+ */
+constants FileFormat
+{
+
+ /// <a href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF/XML</a>
+ const short RDF_XML = 0; // "application/rdf+xml";
+
+ /// <a href="http://www.w3.org/DesignIssues/Notation3">N3 (Notation-3)</a>
+ const short N3 = 1; // "text/rdf+n3";
+
+ /// <a href="http://www.w3.org/TR/rdf-testcases/#ntriples">N-Triples</a>
+ const short NTRIPLES = 2; // "text/plain";
+
+ /// <a href="http://www.wiwiss.fu-berlin.de/suhl/bizer/TriG/Spec/">TriG</a>
+ const short TRIG = 3; // "application/x-trig";
+
+ /// <a href="http://sw.nokia.com/trix/TriX.html">TriX</a>
+ const short TRIX = 4; // "if only the damn server were up i'd know";
+
+ /// <a href="http://www.dajobe.org/2004/01/turtle/">Turtle</a>
+ const short TURTLE = 5; // "application/turtle";
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/Literal.idl b/offapi/com/sun/star/rdf/Literal.idl
new file mode 100644
index 000000000000..17a197534c65
--- /dev/null
+++ b/offapi/com/sun/star/rdf/Literal.idl
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_Literal_idl__
+#define __com_sun_star_rdf_Literal_idl__
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XLiteral_idl__
+#include <com/sun/star/rdf/XLiteral.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents a literal that may occur in a RDF graph.
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+service Literal : XLiteral
+{
+
+ //-------------------------------------------------------------------------
+ /** creates a plain literal RDF node.
+
+ @param Value
+ the string value of the literal
+ */
+ create( [in] string Value );
+
+ //-------------------------------------------------------------------------
+ /** creates a typed literal RDF node.
+
+ @param Value
+ the string value of the literal
+
+ @param Type
+ the data type of the literal
+ */
+ createWithType( [in] string Value, [in] XURI Type );
+
+ //-------------------------------------------------------------------------
+ /** creates a literal RDF node with a language.
+
+ @param Value
+ the string value of the literal
+
+ @param Language
+ the language of the literal
+ */
+ createWithLanguage( [in] string Value, [in] string Language );
+
+ // NOTE: there is no createWithTypeAndLanguage!
+};
+
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/ParseException.idl b/offapi/com/sun/star/rdf/ParseException.idl
new file mode 100644
index 000000000000..4c75afcadc98
--- /dev/null
+++ b/offapi/com/sun/star/rdf/ParseException.idl
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_ParseException_idl__
+#define __com_sun_star_rdf_ParseException_idl__
+
+#ifndef __com_sun_star_uno_Eception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents an error condition that is signalled on parsing an RDF file.
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+exception ParseException : com::sun::star::uno::Exception
+{
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/QueryException.idl b/offapi/com/sun/star/rdf/QueryException.idl
new file mode 100644
index 000000000000..aa446de10012
--- /dev/null
+++ b/offapi/com/sun/star/rdf/QueryException.idl
@@ -0,0 +1,56 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_QueryException_idl__
+#define __com_sun_star_rdf_QueryException_idl__
+
+#ifndef __com_sun_star_uno_Eception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents an error condition that is signalled on evaluating a query
+ against an RDF Repository.
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+exception QueryException : com::sun::star::uno::Exception
+{
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/Repository.idl b/offapi/com/sun/star/rdf/Repository.idl
new file mode 100644
index 000000000000..5911d4dfe473
--- /dev/null
+++ b/offapi/com/sun/star/rdf/Repository.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_Repository_idl__
+#define __com_sun_star_rdf_Repository_idl__
+
+#ifndef __com_sun_star_rdf_XRepository_idl__
+#include <com/sun/star/rdf/XRepository.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** provides access to a set of named RDF graphs.
+
+ @since OOo 3.0
+
+ @see XRepository
+ @see XRepositorySupplier
+ */
+service Repository : XRepository
+{
+ /** constructs repository with in-memory storage.
+ */
+ create();
+ // FIXME: if we want to support HTTP/SQL-based storage, or inference, define more constructors here
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/RepositoryException.idl b/offapi/com/sun/star/rdf/RepositoryException.idl
new file mode 100644
index 000000000000..8d15b23c943b
--- /dev/null
+++ b/offapi/com/sun/star/rdf/RepositoryException.idl
@@ -0,0 +1,56 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_RepositoryException_idl__
+#define __com_sun_star_rdf_RepositoryException_idl__
+
+#ifndef __com_sun_star_uno_Eception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents an error condition that is signalled on accessing an RDF
+ Repository.
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+exception RepositoryException : com::sun::star::uno::Exception
+{
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/Statement.idl b/offapi/com/sun/star/rdf/Statement.idl
new file mode 100644
index 000000000000..3979103fd4df
--- /dev/null
+++ b/offapi/com/sun/star/rdf/Statement.idl
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_Statement_idl__
+#define __com_sun_star_rdf_Statement_idl__
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#include <com/sun/star/rdf/XURI.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents a RDF statement, or triple.
+
+ @since OOo 3.2
+
+ @see XRepository
+ */
+struct Statement
+{
+ /// the subject of the RDF statement.
+ XResource Subject;
+ /// the predicate of the RDF statement.
+ XURI Predicate;
+ /// the object of the RDF statement.
+ XNode Object;
+ /// the named graph that contains this statement, or <NULL/>.
+ XURI Graph;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/URI.idl b/offapi/com/sun/star/rdf/URI.idl
new file mode 100644
index 000000000000..a0a785c96a65
--- /dev/null
+++ b/offapi/com/sun/star/rdf/URI.idl
@@ -0,0 +1,102 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_URI_idl__
+#define __com_sun_star_rdf_URI_idl__
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#include <com/sun/star/rdf/XURI.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents an URI node that may occur in a RDF graph.
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+service URI : XURI
+{
+
+ //-------------------------------------------------------------------------
+ /** creates an URI RDF node.
+
+ @param Value
+ the URI, represented as <atom>string</atom>.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the argument does not represent a valid URI
+ */
+ create( [in] string Value )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ //-------------------------------------------------------------------------
+ /** creates an URI RDF node from namespace prefix and local name.
+
+ @param Namespace
+ the namespace prefix of the URI, represented as
+ <atom>string</atom>.
+
+ @param LocalName
+ the local name of the URI, represented as <atom>string</atom>.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the arguments do not represent a valid URI
+ */
+ createNS( [in] string Namespace, [in] string LocalName )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ //-------------------------------------------------------------------------
+ /** creates an URI RDF node for a well-known URI.
+
+ @param Id
+ the URI, represented as a constant from <type>URIs</type>.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the argument is not a valid constant from <type>URIs</type>
+
+ @see URIs
+ */
+ createKnown( [in] short Id )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/URIs.idl b/offapi/com/sun/star/rdf/URIs.idl
new file mode 100644
index 000000000000..ca12ba249377
--- /dev/null
+++ b/offapi/com/sun/star/rdf/URIs.idl
@@ -0,0 +1,333 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_URIs_idl__
+#define __com_sun_star_rdf_URIs_idl__
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+
+//=============================================================================
+/** Constants to specify some well-known URIs.
+
+ <p>
+ These constants are for use with <member>URI::createKnown</member>.
+ </p>
+
+ @since OOo 3.2
+
+ @see URI::createKnown
+ */
+constants URIs
+{
+ /// http://www.w3.org/2001/XMLSchema-datatypes#NCName
+ const short XSD_NCNAME = 1;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#string
+ const short XSD_STRING = 2;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#normalizedString
+ const short XSD_NORMALIZEDSTRING = 3;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#boolean
+ const short XSD_BOOLEAN = 4;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#decimal
+ const short XSD_DECIMAL = 5;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#float
+ const short XSD_FLOAT = 6;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#double
+ const short XSD_DOUBLE = 7;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#integer
+ const short XSD_INTEGER = 8;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#nonNegativeInteger
+ const short XSD_NONNEGATIVEINTEGER = 9;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#positiveInteger
+ const short XSD_POSITIVEINTEGER = 10;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#nonPositiveInteger
+ const short XSD_NONPOSITIVEINTEGER = 11;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#negativeInteger
+ const short XSD_NEGATIVEINTEGER = 12;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#long
+ const short XSD_LONG = 13;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#int
+ const short XSD_INT = 14;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#short
+ const short XSD_SHORT = 15;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#byte
+ const short XSD_BYTE = 16;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#unsignedLong
+ const short XSD_UNSIGNEDLONG = 17;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#unsignedInt
+ const short XSD_UNSIGNEDINT = 18;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#unsignedShort
+ const short XSD_UNSIGNEDSHORT = 19;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#unsignedByte
+ const short XSD_UNSIGNEDBYTE = 20;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#hexBinary
+ const short XSD_HEXBINARY = 21;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#base64Binary
+ const short XSD_BASE64BINARY = 22;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#dateTime
+ const short XSD_DATETIME = 23;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#time
+ const short XSD_TIME = 24;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#date
+ const short XSD_DATE = 25;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#gYearMonth
+ const short XSD_GYEARMONTH = 26;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#gYear
+ const short XSD_GYEAR = 27;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#gMonthDay
+ const short XSD_GMONTHDAY = 28;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#gDay
+ const short XSD_GDAY = 29;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#gMonth
+ const short XSD_GMONTH = 30;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#anyURI
+ const short XSD_ANYURI = 31;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#token
+ const short XSD_TOKEN = 32;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#language
+ const short XSD_LANGUAGE = 33;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#NMTOKEN
+ const short XSD_NMTOKEN = 34;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#Name
+ const short XSD_NAME = 35;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#duration
+ const short XSD_DURATION = 36;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#QName
+ const short XSD_QNAME = 37;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#NOTATION
+ const short XSD_NOTATION = 38;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#NMTOKENS
+ const short XSD_NMTOKENS = 39;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#ID
+ const short XSD_ID = 40;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#IDREF
+ const short XSD_IDREF = 41;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#IDREFS
+ const short XSD_IDREFS = 42;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#ENTITY
+ const short XSD_ENTITY = 43;
+ /// http://www.w3.org/2001/XMLSchema-datatypes#ENTITIES
+ const short XSD_ENTITIES = 44;
+
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#type
+ const short RDF_TYPE = 1000;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#subject
+ const short RDF_SUBJECT = 1001;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate
+ const short RDF_PREDICATE = 1002;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#object
+ const short RDF_OBJECT = 1003;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
+ const short RDF_PROPERTY = 1004;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement
+ const short RDF_STATEMENT = 1005;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#value
+ const short RDF_VALUE = 1006;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#first
+ const short RDF_FIRST = 1007;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#rest
+ const short RDF_REST = 1008;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#nil
+ const short RDF_NIL = 1009;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
+ const short RDF_XMLLITERAL = 1010;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt
+ const short RDF_ALT = 1011;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag
+ const short RDF_BAG = 1012;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#List
+ const short RDF_LIST = 1013;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq
+ const short RDF_SEQ = 1014;
+ /// http://www.w3.org/1999/02/22-rdf-syntax-ns#_1
+ const short RDF_1 = 1015;
+ /* hmm... that's a lot of potential constants:
+ _n where n is a decimal integer greater than zero with no leading zeros.
+ */
+
+ /// http://www.w3.org/2000/01/rdf-schema#comment
+ const short RDFS_COMMENT = 1100;
+ /// http://www.w3.org/2000/01/rdf-schema#label
+ const short RDFS_LABEL = 1101;
+ /// http://www.w3.org/2000/01/rdf-schema#domain
+ const short RDFS_DOMAIN = 1102;
+ /// http://www.w3.org/2000/01/rdf-schema#range
+ const short RDFS_RANGE = 1103;
+ /// http://www.w3.org/2000/01/rdf-schema#subClassOf
+ const short RDFS_SUBCLASSOF = 1104;
+ /// http://www.w3.org/2000/01/rdf-schema#Literal
+ const short RDFS_LITERAL = 1105;
+ /// http://www.w3.org/2000/01/rdf-schema#member
+ const short RDFS_MEMBER = 1106;
+ /// http://www.w3.org/2000/01/rdf-schema#subPropertyOf
+ const short RDFS_SUBPROPERTYOF = 1107;
+ /// http://www.w3.org/2000/01/rdf-schema#isDefinedBy
+ const short RDFS_ISDEFINEDBY = 1108;
+ /// http://www.w3.org/2000/01/rdf-schema#seeAlso
+ const short RDFS_SEEALSO = 1109;
+ /// http://www.w3.org/2000/01/rdf-schema#Resource
+ const short RDFS_RESOURCE = 1110;
+ /// http://www.w3.org/2000/01/rdf-schema#Class
+ const short RDFS_CLASS = 1111;
+ /// http://www.w3.org/2000/01/rdf-schema#Datatype
+ const short RDFS_DATATYPE = 1112;
+ /// http://www.w3.org/2000/01/rdf-schema#Container
+ const short RDFS_CONTAINER = 1113;
+ /// http://www.w3.org/2000/01/rdf-schema#ContainerMembershipProperty
+ const short RDFS_CONTAINERMEMBERSHIPPROPERTY = 1114;
+
+ /// http://www.w3.org/2002/07/owl#Class
+ const short OWL_CLASS = 1200;
+ /// http://www.w3.org/2002/07/owl#ObjectProperty
+ const short OWL_OBJECTPROPERTY = 1201;
+ /// http://www.w3.org/2002/07/owl#DatatypeProperty
+ const short OWL_DATATYPEPROPERTY = 1202;
+ /// http://www.w3.org/2002/07/owl#FunctionalProperty
+ const short OWL_FUNCTIONALPROPERTY = 1203;
+ /// http://www.w3.org/2002/07/owl#Thing
+ const short OWL_THING = 1204;
+ /// http://www.w3.org/2002/07/owl#Nothing
+ const short OWL_NOTHING = 1205;
+ /// http://www.w3.org/2002/07/owl#Individual
+ const short OWL_INDIVIDUAL = 1206;
+ /// http://www.w3.org/2002/07/owl#equivalentClass
+ const short OWL_EQUIVALENTCLASS = 1207;
+ /// http://www.w3.org/2002/07/owl#equivalentProperty
+ const short OWL_EQUIVALENTPROPERTY = 1208;
+ /// http://www.w3.org/2002/07/owl#sameAs
+ const short OWL_SAMEAS = 1209;
+ /// http://www.w3.org/2002/07/owl#differentFrom
+ const short OWL_DIFFERENTFROM = 1210;
+ /// http://www.w3.org/2002/07/owl#AllDifferent
+ const short OWL_ALLDIFFERENT = 1211;
+ /// http://www.w3.org/2002/07/owl#distinctMembers
+ const short OWL_DISTINCTMEMBERS = 1212;
+ /// http://www.w3.org/2002/07/owl#inverseOf
+ const short OWL_INVERSEOF = 1213;
+ /// http://www.w3.org/2002/07/owl#TransitiveProperty
+ const short OWL_TRANSITIVEPROPERTY = 1214;
+ /// http://www.w3.org/2002/07/owl#SymmetricProperty
+ const short OWL_SYMMETRICPROPERTY = 1215;
+ /// http://www.w3.org/2002/07/owl#InverseFunctionalProperty
+ const short OWL_INVERSEFUNCTIONALPROPERTY = 1216;
+ /// http://www.w3.org/2002/07/owl#Restriction
+ const short OWL_RESTRICTION = 1217;
+ /// http://www.w3.org/2002/07/owl#onProperty
+ const short OWL_ONPROPERTY = 1218;
+ /// http://www.w3.org/2002/07/owl#allValuesFrom
+ const short OWL_ALLVALUESFROM = 1219;
+ /// http://www.w3.org/2002/07/owl#someValuesFrom
+ const short OWL_SOMEVALUESFROM = 1220;
+ /// http://www.w3.org/2002/07/owl#minCardinality
+ const short OWL_MINCARDINALITY = 1221;
+ /// http://www.w3.org/2002/07/owl#maxCardinality
+ const short OWL_MAXCARDINALITY = 1222;
+ /// http://www.w3.org/2002/07/owl#cardinality
+ const short OWL_CARDINALITY = 1223;
+ /// http://www.w3.org/2002/07/owl#Ontology
+ const short OWL_ONTOLOGY = 1224;
+ /// http://www.w3.org/2002/07/owl#imports
+ const short OWL_IMPORTS = 1225;
+ /// http://www.w3.org/2002/07/owl#versionInfo
+ const short OWL_VERSIONINFO = 1226;
+ /// http://www.w3.org/2002/07/owl#priorVersion
+ const short OWL_PRIORVERSION = 1227;
+ /// http://www.w3.org/2002/07/owl#backwardCompatibleWith
+ const short OWL_BACKWARDCOMPATIBLEWITH = 1228;
+ /// http://www.w3.org/2002/07/owl#incompatibleWith
+ const short OWL_INCOMPATIBLEWITH = 1229;
+ /// http://www.w3.org/2002/07/owl#DeprecatedClass
+ const short OWL_DEPRECATEDCLASS = 1230;
+ /// http://www.w3.org/2002/07/owl#DeprecatedProperty
+ const short OWL_DEPRECATEDPROPERTY = 1231;
+ /// http://www.w3.org/2002/07/owl#AnnotationProperty
+ const short OWL_ANNOTATIONPROPERTY = 1232;
+ /// http://www.w3.org/2002/07/owl#OntologyProperty
+ const short OWL_ONTOLOGYPROPERTY = 1233;
+ /// http://www.w3.org/2002/07/owl#oneOf
+ const short OWL_ONEOF = 1234;
+ /// http://www.w3.org/2002/07/owl#dataRange
+ const short OWL_DATARANGE = 1235;
+ /// http://www.w3.org/2002/07/owl#disjointWith
+ const short OWL_DISJOINTWITH = 1236;
+ /// http://www.w3.org/2002/07/owl#unionOf
+ const short OWL_UNIONOF = 1237;
+ /// http://www.w3.org/2002/07/owl#complementOf
+ const short OWL_COMPLEMENTOF = 1238;
+ /// http://www.w3.org/2002/07/owl#intersectionOf
+ const short OWL_INTERSECTIONOF = 1239;
+ /// http://www.w3.org/2002/07/owl#hasValue
+ const short OWL_HASVALUE = 1240;
+
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#hasPart
+ const short PKG_HASPART = 2000;
+/* REMOVED
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#idref
+ const short PKG_IDREF = 2001;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#path
+ const short PKG_PATH = 2002;
+*/
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#mimeType
+ const short PKG_MIMETYPE = 2003;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Package
+ const short PKG_PACKAGE = 2004;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Element
+ const short PKG_ELEMENT = 2005;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#File
+ const short PKG_FILE = 2006;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#MetadataFile
+ const short PKG_METADATAFILE = 2007;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Document
+ const short PKG_DOCUMENT = 2008;
+
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#prefix
+ const short ODF_PREFIX = 2100;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#suffix
+ const short ODF_SUFFIX = 2101;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#Element
+ const short ODF_ELEMENT = 2102;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#ContentFile
+ const short ODF_CONTENTFILE = 2103;
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#StylesFile
+ const short ODF_STYLESFILE = 2104;
+/* REMOVED
+ /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#MetadataFile
+ const short ODF_METADATAFILE = 2105;
+*/
+
+ /// urn:oasis:names:tc:opendocument:xmlns:text:1.0meta-field
+// const short TEXT_META_FIELD = 3000;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XBlankNode.idl b/offapi/com/sun/star/rdf/XBlankNode.idl
new file mode 100644
index 000000000000..d63a4bd93a00
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XBlankNode.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XBlankNode_idl__
+#define __com_sun_star_rdf_XBlankNode_idl__
+
+#ifndef __com_sun_star_rdf_XResource_idl__
+#include <com/sun/star/rdf/XResource.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents a blank node that may occur in a RDF graph.
+
+ <p>
+ Blank nodes are distinct, but have no URI; in other words,
+ they are resources that are anonymous.
+ </p>
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+interface XBlankNode : XResource
+{
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl b/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl
new file mode 100644
index 000000000000..f8bbade4ef74
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl
@@ -0,0 +1,452 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XDocumentMetadataAccess_idl__
+#define __com_sun_star_rdf_XDocumentMetadataAccess_idl__
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_beans_PropertyValue_idl__
+#include <com/sun/star/beans/PropertyValue.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_io_IOException_idl__
+#include <com/sun/star/io/IOException.idl>
+#endif
+
+#ifndef __com_sun_star_io_XInputStream_idl__
+#include <com/sun/star/io/XInputStream.idl>
+#endif
+
+#ifndef __com_sun_star_datatransfer_UnsupportedFlavorException_idl__
+#include <com/sun/star/datatransfer/UnsupportedFlavorException.idl>
+#endif
+
+#ifndef __com_sun_star_embed_XStorage_idl__
+#include <com/sun/star/embed/XStorage.idl>
+#endif
+
+#ifndef __com_sun_star_task_XInteractionHandler_idl__
+#include <com/sun/star/task/XInteractionHandler.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_FileFormat_idl__
+#include <com/sun/star/rdf/FileFormat.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_ParseException_idl__
+#include <com/sun/star/rdf/ParseException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#include <com/sun/star/rdf/XURI.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XMetadatable_idl__
+#include <com/sun/star/rdf/XMetadatable.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XRepositorySupplier_idl__
+#include <com/sun/star/rdf/XRepositorySupplier.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** document metadata functionality related to the "manifest.rdf".
+
+ <p>
+ This interface contains some methods that create connections between
+ the content and the RDF metadata of an ODF document.
+ The main idea is to make querying and manipulating the
+ data in the metadata manifest easier.
+ </p>
+
+ <p>
+ Note that this interface inherits from <type>XURI</type>: the
+ base URI of the document is the string value of the RDF node.
+ This is so that you can easily make RDF statements about the document.
+ </p>
+
+ @since OOo 3.2
+
+ @see XDocumentRepository
+ */
+interface XDocumentMetadataAccess
+{
+ interface XURI;
+ interface XRepositorySupplier;
+
+ //-------------------------------------------------------------------------
+ /** get the unique ODF element with the given metadata reference.
+
+ @param MetadataReference
+ a metadata reference, comprising the stream name and the XML ID
+ For example: Pair("content.xml", "foo-element-1")
+
+ @returns
+ the ODF element with the given metadata references if it exists,
+ else <NULL/>
+ */
+ XMetadatable getElementByMetadataReference(
+ [in] com::sun::star::beans::StringPair MetadataReference);
+
+ //-------------------------------------------------------------------------
+ /** get the ODF element that corresponds to an URI.
+
+ @param URI
+ an URI that may identify an ODF element
+
+ @returns
+ the ODF element that corresponds to the given URI, or <NULL/>
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given URI is <NULL/>
+ */
+ XMetadatable getElementByURI([in] XURI URI)
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ //-------------------------------------------------------------------------
+ /** get the names of all metadata files with a given type.
+
+ @param Type
+ the <code>rdf:type</code> property of the requested named graphs
+
+ @returns
+ the names of all metadata graphs that have a <code>rdf:type</code>
+ property with the given Type as object
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given Type is <NULL/>
+ */
+ sequence<XURI> getMetadataGraphsWithType([in] XURI Type)
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ //-------------------------------------------------------------------------
+ /** add a metadata file to the manifest.
+
+ <p>
+ This convenience method does the following:
+ <ul>
+ <li>create a new graph with the given name in the repository</li>
+ <li>insert statements declaring the new graph to be a
+ metadata file into the manifest graph</li>
+ <li>insert statements declaring <code>rdf:type</code> properties
+ for the new graph into the manifest graph</li>
+ </ul>
+ </p>
+
+ @param FileName
+ the name of the stream in the ODF storage where the graph will
+ be stored
+
+ @param Types
+ a list of types that will be inserted as <code>rdf:type</code>
+ properties for the graph
+
+ @returns
+ the name of the new graph
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the FileName is invalid
+
+ @throws com::sun::star::container::ElementExistException
+ if a stream with the given FileName already exists
+ */
+ XURI addMetadataFile([in] string FileName,
+ [in] sequence<XURI> Types )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+ //-------------------------------------------------------------------------
+ /** import a metadata file into the document repository, and add it to the
+ manifest.
+
+ <p>
+ This convenience method does the following:
+ <li>import the given file into a graph with the given name
+ in the repository</li>
+ <li>insert statements declaring the new graph to be a
+ metadata file into the manifest graph</li>
+ <li>insert statements declaring <code>rdf:type</code> properties
+ for the new graph into the manifest graph</li>
+ </p>
+
+ @param FileName
+ the name of the stream in the ODF storage where the graph will
+ be stored
+
+ @param BaseURI
+ a base URI to resolve relative URI references
+
+ @param Types
+ a list of types that will be inserted as <code>rdf:type</code>
+ properties for the graph
+
+ @returns
+ the name of the new graph
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given stream is <NULL/>,
+ or BaseURI is <NULL/> and the format requires use of a base URI,
+ or the FileName is invalid
+
+ @throws com::sun::star::datatransfer::UnsupportedFlavorException
+ if the format requested is unknown or not supported
+
+ @throws com::sun::star::container::ElementExistException
+ if a stream with the given FileName already exists
+
+ @throws ParseException
+ if the input does not conform to the specified file format.
+
+ @throws com::sun::star::io::IOException
+ if an I/O error occurs.
+
+ @see FileFormat
+ */
+ XURI importMetadataFile( [in] /*FileFormat*/ short Format,
+ [in] com::sun::star::io::XInputStream InStream,
+ [in] string FileName, [in] XURI BaseURI,
+ [in] sequence<XURI> Types )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::datatransfer::UnsupportedFlavorException,
+ com::sun::star::container::ElementExistException,
+ ParseException,
+ com::sun::star::io::IOException );
+
+ //-------------------------------------------------------------------------
+ /** remove a metadata file from the manifest and the repository.
+
+ <p>
+ This convenience method does the following:
+ <li>delete the graph with the given GraphName in the repository</li>
+ <li>remove the statements declaring the graph to be a
+ metadata file from the manifest graph</li>
+ </p>
+
+ @param GraphName
+ the name of the graph that is to be removed
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given GraphName is <NULL/>
+
+ @throws com::sun::star::container::NoSuchElementException
+ if a graph with the given GraphName does not exist
+ */
+ void removeMetadataFile([in] XURI GraphName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException );
+
+ //-------------------------------------------------------------------------
+ /** add a content or styles file to the manifest.
+
+ <p>
+ This convenience method adds the required statements declaring a
+ content or styles file to the manifest graph.
+ <ul>
+ <li>If the FileName ends in "content.xml",
+ an <code>odf:ContentFile</code> is added.</li>
+ <li>If the FileName ends in "styles.xml" ,
+ an <code>odf:StylesFile</code> is added.</li>
+ <li>Other FileNames are invalid.</li>
+ </ul>
+ </p>
+
+ @param FileName
+ the name of the stream in the ODF storage
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the FileName is invalid
+
+ @throws com::sun::star::container::ElementExistException
+ if a stream with the given FileName already exists
+ */
+ void addContentOrStylesFile([in] string FileName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+ //-------------------------------------------------------------------------
+ /** remove a content or styles file from the manifest.
+
+ <p>
+ This convenience method removes the statements declaring a
+ content or styles file from the manifest graph.
+ </p>
+
+ @param FileName
+ the name of the stream in the ODF storage
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the FileName is invalid
+
+ @throws com::sun::star::container::NoSuchElementException
+ if a graph with the given GraphName does not exist
+ */
+ void removeContentOrStylesFile([in] string FileName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException );
+
+ //-------------------------------------------------------------------------
+ /** initialize document metadata from a storage.
+
+ <p>
+ This method re-initializes the document metadata,
+ loads the stream named "manifest.rdf" from the storage, and then
+ loads all metadata streams mentioned in the manifest.
+ </p>
+
+ <p>
+ Note that it is not an error if the storage does not contain
+ a manifest.
+ In this case, the document metadata will be default initialized.
+ </p>
+
+ <p>
+ If an InteractionHandler argument is given, it will be used for
+ error reporting. Otherwise, errors will be reported as exceptions.
+ </p>
+
+ @param Storage
+ a storage, representing e.g. an ODF package file, or sub-document
+
+ @param BaseURI
+ a base URI to resolve relative URI references
+ <p>N.B.: when loading from an ODF package, the base URI is not the
+ URI of the package, but the URI of the directory in the package
+ that contains the metadata.rdf</p>
+
+ @param InteractionHandler
+ an InteractionHandler, used for error reporting
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if any argument is <NULL/>
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if an error occurs while loading and no InteractionHandler given
+ */
+ void loadMetadataFromStorage(
+ [in] com::sun::star::embed::XStorage Storage,
+ [in] XURI BaseURI,
+ [in] com::sun::star::task::XInteractionHandler InteractionHandler )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+ //-------------------------------------------------------------------------
+ /** store document metadata to a storage.
+
+ <p>
+ This method stores all the graphs in the document metadata repository
+ to the given storage.
+ </p>
+
+ <p>
+ Note that to be stored correctly, a named graph must have a complete
+ entry in the manifest graph.
+ </p>
+
+ @param Storage
+ a storage, representing e.g. an ODF package file, or sub-document
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if Storage argument is <NULL/>
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if an error occurs while loading
+ */
+ void storeMetadataToStorage(
+ [in] com::sun::star::embed::XStorage Storage )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+ //-------------------------------------------------------------------------
+ /** loads document metadata from a medium.
+
+ <p>If the Medium contains an InteractionHandler, it will be used for
+ error reporting.</p>
+
+ @param Medium
+ the <type>com::sun::star::document::MediaDescriptor</type>
+ representing the source
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the argument does not contain a URL or Stream property
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if an error occurs while loading
+
+ @see com::sun::star::document::MediaDescriptor
+ */
+ void loadMetadataFromMedium(
+ [in] sequence < com::sun::star::beans::PropertyValue > Medium )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+ //-------------------------------------------------------------------------
+ /** stores document metadata to a medium.
+
+ @param Medium
+ the <type>com::sun::star::document::MediaDescriptor</type>
+ representing the target
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the argument does not contain a URL or Stream property
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if an error occurs while storing
+
+ @see com::sun::star::document::MediaDescriptor
+ */
+ void storeMetadataToMedium(
+ [in] sequence < com::sun::star::beans::PropertyValue > Medium )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XDocumentRepository.idl b/offapi/com/sun/star/rdf/XDocumentRepository.idl
new file mode 100644
index 000000000000..215fd89fa954
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XDocumentRepository.idl
@@ -0,0 +1,243 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XDocumentRepository_idl__
+#define __com_sun_star_rdf_XDocumentRepository_idl__
+
+#ifndef __com_sun_star_beans_Pair_idl__
+#include <com/sun/star/beans/Pair.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XMetadatable_idl__
+#include <com/sun/star/rdf/XMetadatable.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XRepository_idl__
+#include <com/sun/star/rdf/XRepository.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** extends <type>XRepository</type> with document-specific functionality.
+
+ <p>
+ This subclass of <type>XRepository</type> provides some methods which
+ only make sense for repositories that are attached to a document.
+ For example, the methods allow for manipulating in-content metadata,
+ which is stored as RDFa.
+ </p>
+
+ @since OOo 3.2
+
+ @see XRepositorySupplier
+ @see XDocumentMetadataAccess
+ */
+interface XDocumentRepository : XRepository
+{
+
+ //-------------------------------------------------------------------------
+ /** update the RDFa statement(s) that correspond to an ODF element in the
+ repository.
+
+ <p>
+ This method will do the following steps:
+ <ol>
+ <li>Remove all previously set RDFa statements for the Object parameter
+ from the repository</li>
+ <li>If the RDFaContent parameter is the empty <atom>string</atom>,
+ for every Predicate in the given list of Predicates,
+ add the following RDF statement to an unspecified named graph:
+ <ul>
+ <li><code>Subject Predicate
+ XLiteral(Object->getText()^^RDFaDatatype)</code></li>
+ </ul>
+ </li>
+ <li>If the RDFaContent parameter is not the empty <atom>string</atom>,
+ for every Predicate in the given list of Predicates,
+ add the following RDF statement to an unspecified named graph:
+ <ul>
+ <li>
+ <code>Subject Predicate XLiteral(RDFaContent^^RDFaDatatype)</code>
+ </li>
+ </ul>
+ </li>
+ </ol>
+ </p>
+
+ <p>
+ RDFa statements are handled specially because they are not logically
+ part of any named graph in the repository.
+ Also, they have rather unusual semantics;
+ just using <member>XNamedGraph::addStatement</member> would be
+ ambiguous:
+ if the object is a <type>XMetadatable</type>, do we insert
+ the object itself (URI) or its literal content (RDFa)?
+ </p>
+
+ @param Subject
+ the subject of the RDF triple(s).
+
+ @param Predicates
+ the predicates of the RDF triple(s).
+
+ @param Object
+ the object of the RDF triple(s) is the text content of this
+ parameter.
+
+ @param RDFaContent
+ the <code>rdfa:content</code> attribute (may be the empty
+ <atom>string</atom>).
+
+ @param RDFaDatatype
+ the <code>rdfa:datatype</code> attribute (may be <NULL/>)
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if any parameter is <NULL/>, Predicates is empty,
+ or Object is of a type that can not have RDFa metadata attached.
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ void setStatementRDFa(
+ [in] XResource Subject,
+ [in] sequence<XURI> Predicates,
+ [in] XMetadatable Object,
+ [in] string RDFaContent,
+ [in] XURI RDFaDatatype)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** remove the RDFa statement(s) that correspond to an ODF element from the
+ repository.
+
+ <p>
+ RDFa statements are handled specially because they are not logically
+ part of any graph.
+ </p>
+
+ @param Element
+ the element whose RDFa statement(s) should be removed
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given Element is <NULL/>, or of a type that can not have
+ RDFa metadata attached.
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ void removeStatementRDFa([in] XMetadatable Element)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** find the RDFa statement(s) associated with an ODF element.
+
+ @param Element
+ the ODF element for which RDFa statements should be found
+
+ @returns
+ <ul>
+ <li>if the element has no RDFa meta-data attributes:
+ the empty sequence.</li>
+ <li>if the element has RDFa meta-data attributes:
+ <ul>
+ <li>a sequence with the RDFa-statements corresponding to the
+ attributes.</li>
+ <li>a flag indicating whether there is a xhtml:content
+ attribute.</li>
+ </ul>
+ </li>
+ </ul>
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given Element is <NULL/>, or of a type that can not have
+ RDFa metadata attached.
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see Statement
+ */
+ com::sun::star::beans::Pair< sequence<Statement>, boolean >
+ getStatementRDFa([in] XMetadatable Element)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** gets matching RDFa statements from the repository.
+
+ <p>
+ This method exists because RDFa statements are not part of any named
+ graph, and thus they cannot be enumerated with
+ <member>XNamedGraph::getStatements</member>.
+ </p>
+
+ <p>
+ Any parameter may be <NULL/>, which acts as a wildcard.
+ For example, to get all statements about myURI:
+ <code>getStatementsRDFa(myURI, null, null)</code>
+ </p>
+
+ @param Subject
+ the subject of the RDF triple.
+
+ @param Predicate
+ the predicate of the RDF triple.
+
+ @param Object
+ the object of the RDF triple.
+
+ @returns
+ an iterator over all RDFa statements in the repository that match
+ the parameters, represented as an
+ enumeration of <type>Statement</type>
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see Statement
+ @see XRepository::getStatements
+ @see XNamedGraph::getStatements
+ */
+ com::sun::star::container::XEnumeration/*<Statement>*/ getStatementsRDFa(
+ [in] XResource Subject,
+ [in] XURI Predicate,
+ [in] XNode Object)
+ raises( RepositoryException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XLiteral.idl b/offapi/com/sun/star/rdf/XLiteral.idl
new file mode 100644
index 000000000000..148809107212
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XLiteral.idl
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XLiteral_idl__
+#define __com_sun_star_rdf_XLiteral_idl__
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#include <com/sun/star/rdf/XURI.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents a literal that may occur in a RDF graph.
+
+ <p>
+ RDF literals may come in three varieties:
+ <ul>
+ <li>just a string Value</li>
+ <li>Value and Language</li>
+ <li>typed literal: Value and Datatype (represented by an URI)</li>
+ </ul>
+ Note that there is no literal with both Language and Datatype.
+ </p>
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+interface XLiteral : XNode
+{
+ /// the content of the literal
+ [readonly, attribute] string Value;
+ /// the language of the literal; may be the empty <atom>string</atom>
+ [readonly, attribute] string Language;
+ /// the data type of the literal; may be <NULL/>
+ [readonly, attribute] XURI Datatype;
+ //FIXME: TODO: have not looked at handling all kinds of types, maybe just have an any attr here...
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XMetadatable.idl b/offapi/com/sun/star/rdf/XMetadatable.idl
new file mode 100644
index 000000000000..e7f01d9c05ba
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XMetadatable.idl
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XMetadatable_idl__
+#define __com_sun_star_rdf_XMetadatable_idl__
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_beans_StringPair_idl__
+#include <com/sun/star/beans/StringPair.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#include <com/sun/star/rdf/XURI.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** marks an object representing an ODF element that may have RDF meta data
+ attached.
+
+ <p>
+ To make using ODF elements as part of RDF statements more convenient,
+ this interface inherits from <type>XURI</type>.
+ The URI is constructed by concatenating the URI of the document, the
+ stream name, a fragment separator, and the XML ID.
+ </p>
+
+ <p>
+ Note that using the <type>XURI</type> interface on an instance of
+ <type>XMetadatable</type> may have the side effect of creating a metadata
+ reference for the instance.
+ </p>
+
+ @since OOo 3.2
+
+ @see XRepository
+ @see XDocumentMetadataAccess
+ */
+interface XMetadatable : XURI
+{
+ //-------------------------------------------------------------------------
+ /** a metadata reference, comprising the stream name and the XML ID.
+
+ <p>
+ Note that this metadata reference must be unique for the ODF document.
+ This implies that the XML ID part must be unique for every stream.
+ A pair of two empty strings signifies "no metadata reference".
+ For example: Pair("content.xml", "foo-element-1")
+ </p>
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given metadata reference is invalid, or not unique
+ */
+ [attribute] com::sun::star::beans::StringPair MetadataReference {
+ set raises ( com::sun::star::lang::IllegalArgumentException );
+ };
+
+ //-------------------------------------------------------------------------
+ /** creates a metadata reference for this object, if necessary.
+
+ <p>
+ If this object already has a metadata reference, do nothing;
+ otherwise, create metadata reference with a fresh, unique XML ID
+ and assign it to the MetadataReference attribute.
+ </p>
+ */
+ void ensureMetadataReference();
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XNamedGraph.idl b/offapi/com/sun/star/rdf/XNamedGraph.idl
new file mode 100644
index 000000000000..d71c5a599e9e
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XNamedGraph.idl
@@ -0,0 +1,229 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XNamedGraph_idl__
+#define __com_sun_star_rdf_XNamedGraph_idl__
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_RepositoryException_idl__
+#include <com/sun/star/rdf/RepositoryException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#include <com/sun/star/rdf/XURI.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents an RDF named graph that is stored in an RDF Repository.
+
+ <p>
+ Note that this interface inherits from <type>XResource</type>: the
+ name of the graph is the string value of the RDF node.
+ This is so that you can easily make RDF statements about named graphs.
+ </p>
+
+ <p>
+ Note that instances may be destroyed via
+ <member>XRepository::destroyGraph</member>.
+ If a graph is destroyed, subsequent calls to <member>addStatement</member>,
+ <member>removeStatements</member> will fail with an
+ <type scope="com::sun::star::container">NoSuchElementException</type>.
+ </p>
+
+ @since OOo 3.2
+
+ @see XRepository
+ */
+interface XNamedGraph : XURI
+{
+
+ //-------------------------------------------------------------------------
+ /** returns the name of the graph.
+
+ <p>
+ The name is unique within the repository.
+ </p>
+
+ @returns
+ the name of the graph
+ */
+ XURI getName();
+
+ //-------------------------------------------------------------------------
+ /** removes all statements from the graph.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if this graph does not exist in the repository any more
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ void clear()
+ raises( com::sun::star::container::NoSuchElementException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** adds a RDF statement to the graph.
+
+ <p>
+ Note that the ODF elements that can have metadata attached all
+ implement the interface <type>XMetadatable</type>, which inherits
+ from <type>XResource</type>, meaning that you can simply pass them
+ in as arguments here, and it will magically work.
+ </p>
+
+ @param Subject
+ the subject of the RDF triple.
+
+ @param Predicate
+ the predicate of the RDF triple.
+
+ @param Object
+ the object of the RDF triple.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if any parameter is <NULL/>
+
+ @throws com::sun::star::container::NoSuchElementException
+ if this graph does not exist in the repository any more
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ void addStatement([in] XResource Subject,
+ [in] XURI Predicate,
+ [in] XNode Object)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** removes matching RDF statements from the graph.
+
+ <p>
+ Note that the ODF elements that can have metadata attached all
+ implement the interface <type>XMetadatable</type>, which inherits
+ from <type>XResource</type>, meaning that you can simply pass them
+ in as arguments here, and it will magically work.
+ </p>
+
+ <p>
+ Any parameter may be <NULL/>, which acts as a wildcard.
+ For example, to remove all statements about myURI:
+ <code>removeStatement(myURI, null, null)</code>
+ </p>
+
+ @param Subject
+ the subject of the RDF triple.
+
+ @param Predicate
+ the predicate of the RDF triple.
+
+ @param Object
+ the object of the RDF triple.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if this graph does not exist in the repository any more
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ void removeStatements([in] XResource Subject,
+ [in] XURI Predicate,
+ [in] XNode Object)
+ raises( com::sun::star::container::NoSuchElementException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** gets matching RDF statements from a graph.
+
+ <p>
+ Note that the ODF elements that can have metadata attached all
+ implement the interface <type>XMetadatable</type>, which inherits
+ from <type>XResource</type>, meaning that you can simply pass them
+ in as arguments here, and it will magically work.
+ </p>
+
+ <p>
+ Any parameter may be <NULL/>, which acts as a wildcard.
+ For example, to get all statements about myURI:
+ <code>getStatements(myURI, null, null)</code>
+ </p>
+
+ @param Subject
+ the subject of the RDF triple.
+
+ @param Predicate
+ the predicate of the RDF triple.
+
+ @param Object
+ the object of the RDF triple.
+
+ @returns
+ an iterator over all RDF statements in the graph that match
+ the parameters, represented as an
+ enumeration of <type>Statement</type>
+
+ @throws com::sun::star::container::NoSuchElementException
+ if this graph does not exist in the repository any more
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see Statement
+ */
+ com::sun::star::container::XEnumeration/*<Statement>*/ getStatements(
+ [in] XResource Subject,
+ [in] XURI Predicate,
+ [in] XNode Object)
+ raises( com::sun::star::container::NoSuchElementException,
+ RepositoryException );
+
+//FIXME reification: addReifiedStatement(Statement)...
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XNode.idl b/offapi/com/sun/star/rdf/XNode.idl
new file mode 100644
index 000000000000..0c7f70d5e4f7
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XNode.idl
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XNode_idl__
+#define __com_sun_star_rdf_XNode_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents a node that may occur in a RDF graph.
+
+ <p>
+ In the RDF data model, there are three distinct types of nodes:
+ URIs, blank nodes, and literals.
+ </p>
+
+ <pre>
+ XNode
+ |
+ |---XLiteral
+ |
+ XResource
+ |
+ |---XBlankNode
+ |
+ XURI
+ </pre>
+
+ @since OOo 3.0
+
+ @see XRepository
+ @see Statement
+ @see XResource
+ @see XBlankNode
+ @see XURI
+ @see XLiteral
+ */
+interface XNode
+{
+ /// the string value of the node.
+ [readonly, attribute] string StringValue;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XQuerySelectResult.idl b/offapi/com/sun/star/rdf/XQuerySelectResult.idl
new file mode 100644
index 000000000000..19ceecaf36d1
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XQuerySelectResult.idl
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XQuerySelectResult_idl__
+#define __com_sun_star_rdf_XQuerySelectResult_idl__
+
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents the result of a SPARQL "SELECT" query.
+
+ <p>
+ The result consists of:
+ <ol>
+ <li>a list of query variable names (column labels)</li>
+ <li>an iterator of query results (rows),
+ each being a list of bindings for the above variables</li>
+ </ol>
+ Note that each query result retrieved via
+ <member scope="com::sun::star::container">XEnumeration::nextElement</member>
+ has the type <type dim="[]">XNode</type>,
+ the length of the sequence being the same as the number of query variables.
+ </p>
+
+ @since OOo 3.0
+
+ @see XRepository::querySelect
+ @see XNode
+ */
+interface XQuerySelectResult : com::sun::star::container::XEnumeration
+{
+ //-------------------------------------------------------------------------
+ /** get the names of the query variables.
+
+ <p>
+ </p>
+ */
+ sequence<string> getBindingNames();
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XReifiedStatement.idl b/offapi/com/sun/star/rdf/XReifiedStatement.idl
new file mode 100644
index 000000000000..9f697552aa6e
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XReifiedStatement.idl
@@ -0,0 +1,57 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XReifiedStatement_idl__
+#define __com_sun_star_rdf_XReifiedStatement_idl__
+
+#ifndef __com_sun_star_rdf_Statement_idl__
+#include <com/sun/star/rdf/Statement.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents a reified RDF statement.
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+interface XReifiedStatement : XResource
+{
+ /// the statement that is reified
+ [readonly, attribute] Statement Statement;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XRepository.idl b/offapi/com/sun/star/rdf/XRepository.idl
new file mode 100644
index 000000000000..1b76ff1158a7
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XRepository.idl
@@ -0,0 +1,465 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XRepository_idl__
+#define __com_sun_star_rdf_XRepository_idl__
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+
+#ifndef __com_sun_star_io_IOException_idl__
+#include <com/sun/star/io/IOException.idl>
+#endif
+
+#ifndef __com_sun_star_io_XInputStream_idl__
+#include <com/sun/star/io/XInputStream.idl>
+#endif
+
+#ifndef __com_sun_star_io_XOutputStream_idl__
+#include <com/sun/star/io/XOutputStream.idl>
+#endif
+
+#ifndef __com_sun_star_datatransfer_UnsupportedFlavorException_idl__
+#include <com/sun/star/datatransfer/UnsupportedFlavorException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_FileFormat_idl__
+#include <com/sun/star/rdf/FileFormat.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_ParseException_idl__
+#include <com/sun/star/rdf/ParseException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_QueryException_idl__
+#include <com/sun/star/rdf/QueryException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_RepositoryException_idl__
+#include <com/sun/star/rdf/RepositoryException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XBlankNode_idl__
+#include <com/sun/star/rdf/XBlankNode.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#include <com/sun/star/rdf/XURI.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_Statement_idl__
+#include <com/sun/star/rdf/Statement.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XQuerySelectResult_idl__
+#include <com/sun/star/rdf/XQuerySelectResult.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XNamedGraph_idl__
+#include <com/sun/star/rdf/XNamedGraph.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** provides access to a set of named RDF graphs.
+
+ <p>
+ A repository for storing information according to the data model of the
+ <a href="http://www.w3.org/RDF/">Resource Description Framework</a>.
+ This interface may be used e.g. for repositories that correspond to a
+ loaded ODF document, or for repositories that are backed by some kind of
+ database.
+ </p>
+ <p>
+ The RDF triples are stored as a set of named RDF graphs.
+ Importing and exporting files in the
+ <a href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF/XML</a>
+ format is supported.
+ Support for other file formats is optional.
+ Support for querying the repository with the
+ <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a>
+ query language is provided.
+ </p>
+
+
+ @since OOo 3.2
+
+ @see XRepositorySupplier
+ @see XDocumentRepository
+ */
+interface XRepository
+{
+
+ //-------------------------------------------------------------------------
+ /** creates a fresh unique blank node.
+
+ @returns
+ a newly generated blank node which is unique in this repository
+ */
+ XBlankNode createBlankNode();
+
+
+ //-------------------------------------------------------------------------
+ /** imports a named graph into the repository.
+
+ <p>
+ Implementations must support RDF/XML format.
+ Support for other RDF formats is optional.
+ If the format is not supported by the implementation, an
+ <type scope="com::sun::star::datatransfer">UnsupportedFlavorException
+ </type> is raised.
+ If the format requires use of a BaseURI, but none is given, an
+ <type scope="com::sun::star::lang">IllegalArgumentException</type>
+ is raised.
+ </p>
+
+ @param Format
+ the format of the input file
+
+ @param InStream
+ the input stream, containing an RDF file in the specified format
+
+ @param GraphName
+ the name of the graph that is imported
+
+ @param BaseURI
+ a base URI to resolve relative URI references
+
+ @returns
+ the imported graph
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given stream or the GraphName is <NULL/>,
+ or BaseURI is <NULL/> and the format requires use of a base URI
+
+ @throws com::sun::star::datatransfer::UnsupportedFlavorException
+ if the format requested is unknown or not supported
+
+ @throws com::sun::star::container::ElementExistException
+ if a graph with the given GraphName already exists in the
+ repository
+
+ @throws ParseException
+ if the input does not conform to the specified file format.
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @throws com::sun::star::io::IOException
+ if an I/O error occurs.
+
+ @see FileFormat
+ */
+ XNamedGraph importGraph([in] /*FileFormat*/ short Format,
+ [in] com::sun::star::io::XInputStream InStream,
+ [in] XURI GraphName, [in] XURI BaseURI)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::datatransfer::UnsupportedFlavorException,
+ com::sun::star::container::ElementExistException,
+ ParseException,
+ RepositoryException,
+ com::sun::star::io::IOException );
+
+ //-------------------------------------------------------------------------
+ /** exports a named graph from the repository.
+
+ <p>
+ Implementations must support RDF/XML format.
+ Support for other RDF formats is optional.
+ If the format is not supported by the implementation, an
+ <type scope="com::sun::star::datatransfer">UnsupportedFlavorException
+ </type> is raised.
+ </p>
+
+ @param Format
+ the format of the output file
+
+ @param OutStream
+ the target output stream
+
+ @param GraphName
+ the name of the graph that is to be exported
+
+ @param BaseURI
+ a base URI to resolve relative URI references
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given stream or the GraphName is <NULL/>,
+ or BaseURI is <NULL/> and the format requires use of a base URI
+
+ @throws com::sun::star::datatransfer::UnsupportedFlavorException
+ if the format requested is unknown or not supported
+
+ @throws com::sun::star::container::NoSuchElementException
+ if a graph with the given GraphName does not exist
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @throws com::sun::star::io::IOException
+ if an I/O error occurs.
+
+ @see FileFormat
+ */
+ void exportGraph([in] /*FileFormat*/ short Format,
+ [in] com::sun::star::io::XOutputStream OutStream,
+ [in] XURI GraphName, [in] XURI BaseURI)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::datatransfer::UnsupportedFlavorException,
+ com::sun::star::container::NoSuchElementException,
+ RepositoryException,
+ com::sun::star::io::IOException );
+
+ //-------------------------------------------------------------------------
+ /** gets the names of all the graphs in the repository.
+
+ @returns
+ a list containing the names of the graphs in the repository
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ sequence<XURI> getGraphNames()
+ raises( RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** gets a graph by its name.
+
+ @param GraphName
+ the name of the graph that is to be returned
+
+ @returns
+ the graph with the given name if it exists, else <NULL/>
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given GraphName is invalid
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ XNamedGraph getGraph([in] XURI GraphName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** creates a graph with the given name.
+
+ <p>
+ The name must be unique within the repository.
+ </p>
+
+ @param GraphName
+ the name of the graph that is to be created
+
+ @returns
+ the graph with the given name
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given GraphName is invalid
+
+ @throws com::sun::star::container::ElementExistException
+ if a graph with the given GraphName already exists
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ XNamedGraph createGraph([in] XURI GraphName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** destroys the graph with the given name, and removes it from the
+ repository.
+
+ <p>
+ This invalidates any instances of <type>XNamedGraph</type>
+ for the argument.
+ </p>
+
+ @param GraphName
+ the name of the graph that is to be destroyed
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given GraphName is invalid
+
+ @throws com::sun::star::container::NoSuchElementException
+ if a graph with the given GraphName does not exist
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ void destroyGraph([in] XURI GraphName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** gets matching RDF statements from the repository.
+
+ <p>
+ Any parameter may be <NULL/>, which acts as a wildcard.
+ For example, to get all statements about myURI:
+ <code>getStatements(myURI, null, null)</code>
+ </p>
+
+ @param Subject
+ the subject of the RDF triple.
+
+ @param Predicate
+ the predicate of the RDF triple.
+
+ @param Object
+ the object of the RDF triple.
+
+ @returns
+ an iterator over all RDF statements in the repository that match
+ the parameters, represented as an
+ enumeration of <type>Statement</type>
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see Statement
+ @see XNamedGraph::getStatements
+ */
+ com::sun::star::container::XEnumeration/*<Statement>*/ getStatements(
+ [in] XResource Subject,
+ [in] XURI Predicate,
+ [in] XNode Object)
+ raises( RepositoryException );
+
+
+ //-------------------------------------------------------------------------
+ /** executes a SPARQL "SELECT" query.
+
+ <p>
+ This method runs a SPARQL query that returns a list of variable
+ bindings, i.e., a query beginning with "SELECT".
+ The result is basically a (rectangular) table with labeled columns,
+ where individual cells may be <NULL/>.
+ </p>
+
+ @param Query
+ the SPARQL query <atom>string</atom>
+
+ @returns
+ an enumeration, containing
+ <ol>
+ <li>a list of query variable names (column labels)</li>
+ <li>the query results (rows),
+ each being a list of bindings for the above variables</li>
+ </ol>
+
+ @throws QueryException
+ if the query is malformed, or evaluation fails
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see XQuerySelectResult
+ */
+ XQuerySelectResult querySelect([in] string Query)
+ raises( QueryException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** executes a SPARQL "CONSTRUCT" query.
+
+ <p>
+ This method runs a SPARQL query that constructs a result graph,
+ i.e., a query beginning with "CONSTRUCT".
+ </p>
+
+ @param Query
+ the SPARQL query <atom>string</atom>
+
+ @returns
+ an iterator over the query result graph, represented as an
+ enumeration of <type>Statement</type>
+
+ @throws QueryException
+ if the query is malformed, or evaluation fails
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see Statement
+ */
+ com::sun::star::container::XEnumeration/*<Statement>*/ queryConstruct(
+ [in] string Query)
+ raises( QueryException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** executes a SPARQL "ASK" query.
+
+ <p>
+ This method runs a SPARQL query that computes a boolean,
+ i.e., a query beginning with "ASK".
+ </p>
+
+ @param Query
+ the SPARQL query <atom>string</atom>
+
+ @returns
+ the boolean query result
+
+ @throws QueryException
+ if the query is malformed, or evaluation fails
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ boolean queryAsk([in] string Query)
+ raises( QueryException,
+ RepositoryException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XRepositorySupplier.idl b/offapi/com/sun/star/rdf/XRepositorySupplier.idl
new file mode 100644
index 000000000000..15984a9438d4
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XRepositorySupplier.idl
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XRepositorySupplier_idl__
+#define __com_sun_star_rdf_XRepositorySupplier_idl__
+
+#ifndef __com_sun_star_rdf_XRepository_idl__
+#include <com/sun/star/rdf/XRepository.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** provides access to an RDF Repository.
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+interface XRepositorySupplier
+{
+ //-------------------------------------------------------------------------
+ /** provides the RDF Repository associated with this object.
+
+ @returns
+ an object of type <type>XRepository</type>
+ */
+ XRepository getRDFRepository();
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XResource.idl b/offapi/com/sun/star/rdf/XResource.idl
new file mode 100644
index 000000000000..3c10b586fd78
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XResource.idl
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XResource_idl__
+#define __com_sun_star_rdf_XResource_idl__
+
+#ifndef __com_sun_star_rdf_XNode_idl__
+#include <com/sun/star/rdf/XNode.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents a resource node that may occur in a RDF graph.
+
+ <p>
+ Note that this interface exists only to separate resources from literals.
+ </p>
+
+ @since OOo 3.0
+
+ @see XRepository
+ @see XBlankNode
+ @see XURI
+ */
+interface XResource : XNode
+{
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/XURI.idl b/offapi/com/sun/star/rdf/XURI.idl
new file mode 100644
index 000000000000..6ba59cec0dd6
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XURI.idl
@@ -0,0 +1,77 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#define __com_sun_star_rdf_XURI_idl__
+
+#ifndef __com_sun_star_rdf_XResource_idl__
+#include <com/sun/star/rdf/XResource.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** represents an URI node that may occur in a RDF graph.
+
+ <p>
+ Note that this is actually an IRI, but the RDF literature speaks of URIs
+ only, so we chose to use established terminology.
+ </p>
+
+ <p>
+ The URI is split into a Namespace and a LocalName,
+ using the first applicable of the following criteria:
+ <ol>
+ <li>after the first occurrence of the fragment separator: "#"</li>
+ <li>after the last occurrence of the path separator: "/"</li>
+ <li>after the last occurrence of the scheme separator: ":"</li>
+ </ol>
+ An URI without a ":" is invalid.
+ This implies that the Namespace part of an URI must not be empty, while
+ the LocalName part may be empty.
+ </p>
+
+ @since OOo 3.0
+
+ @see XRepository
+ */
+interface XURI : XResource
+{
+ /// prefix
+ [readonly, attribute] string Namespace;
+ /// suffix
+ [readonly, attribute] string LocalName;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/rdf/makefile.mk b/offapi/com/sun/star/rdf/makefile.mk
new file mode 100644
index 000000000000..b27ea74e54cb
--- /dev/null
+++ b/offapi/com/sun/star/rdf/makefile.mk
@@ -0,0 +1,71 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..$/..
+
+PRJNAME=offapi
+
+TARGET=cssrdf
+PACKAGE=com$/sun$/star$/rdf
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# ------------------------------------------------------------------------
+
+IDLFILES= \
+ FileFormat.idl \
+ URIs.idl \
+ ParseException.idl \
+ QueryException.idl \
+ RepositoryException.idl \
+ XNode.idl \
+ XResource.idl \
+ XBlankNode.idl \
+ XURI.idl \
+ XLiteral.idl \
+ BlankNode.idl \
+ URI.idl \
+ Literal.idl \
+ Statement.idl \
+ XReifiedStatement.idl \
+ XQuerySelectResult.idl \
+ XNamedGraph.idl \
+ XRepository.idl \
+ XDocumentRepository.idl \
+ Repository.idl \
+ XRepositorySupplier.idl \
+ XMetadatable.idl \
+ XDocumentMetadataAccess.idl \
+
+
+# ------------------------------------------------------------------
+
+.INCLUDE : target.mk
+.INCLUDE : $(PRJ)$/util$/target.pmk
+