Added: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/odma-ucp.html
URL:
http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/odma-ucp.html?rev=1206884&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/odma-ucp.html (added)
+++ incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/odma-ucp.html Sun Nov
27 22:36:56 2011
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html;
charset=windows-1252">
+ <TITLE></TITLE>
+ <META NAME="GENERATOR" CONTENT="StarOffice 6.0 (Win32)">
+ <META NAME="AUTHOR" CONTENT="Ocke Janssen">
+ <META NAME="CREATED" CONTENT="20020304;14253800">
+ <META NAME="CHANGEDBY" CONTENT="Ocke Janssen">
+ <META NAME="CHANGED" CONTENT="20020322;13284473">
+ <STYLE>
+ <!--
+ @page { margin: 2cm }
+ P { margin-bottom: 0.21cm }
+ H1 { margin-bottom: 0.21cm }
+ H1.western { font-family: "Albany", sans-serif; font-size: 16pt
}
+ H1.cjk { font-size: 16pt }
+ H1.ctl { font-size: 16pt }
+ H2 { margin-bottom: 0.21cm }
+ H2.western { font-family: "Albany", sans-serif; font-size:
14pt; font-style: italic }
+ H2.cjk { font-size: 14pt; font-style: italic }
+ H2.ctl { font-size: 14pt; font-style: italic }
+ TD P { margin-bottom: 0.21cm }
+ TH P { margin-bottom: 0.21cm; font-style: italic }
+ P.code-western { margin-bottom: 0.1cm; font-size: 8pt }
+ P.code-cjk { margin-bottom: 0.1cm }
+ P.code-ctl { margin-bottom: 0.1cm }
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="de-DE">
+<H1 CLASS="western">The ODMA Provider</H1>
+<H2 CLASS="western">Preface</H2>
+<P>The ODMA Content Provider (OCP) implements a Content Provider for
+the Universal Content Broker (UCB). It provides access to a document
+structure stored in a Document Management System (DMS).</P>
+<H2 CLASS="western">OCP Content</H2>
+<P>The OCP Content provides two types of content; the document and
+the <B>Root Folder</B>.</P>
+<OL>
+ <LI><P>The document Content corresponds to a document stored in the
+ DMS.</P>
+ <LI><P>The Root Folder exists at any time and is used to show all
+ documents avaible at that time. All other OCP contents are children
+ of this folder. The OCP Root Folder can only contain OCP Documents.
+ It has the URL „<B>vnd.sun.star.odma:/</B>“.</P>
+</OL>
+<H2 CLASS="western"><SPAN ID="Frame1" STYLE="float: left; width: 7cm; height:
5.5cm; border: none; padding: 0cm; background: #ffffff">
+ <P STYLE="margin-top: 0.21cm"><IMG SRC="./odma-ucp.gif" NAME="Graphic1"
ALIGN=LEFT WIDTH=100% BORDER=0><BR CLEAR=LEFT><BR><BR>
+ </P>
+</SPAN><BR CLEAR=LEFT>Creation of new OCP Contents
+</H2>
+<P>OCP Folders implement the interface XContentCreator. OCP Root
+Folder supports the command „insert“. That's why the OCP
+Root Folder can create new OCP Streams. To create a new OCP Streams:</P>
+<OL>
+ <LI><P>Let the root folder create a new content by calling its
+ createNewContent-method. The content type to use for new streams is
+ <B>application/vnd.sun.star.odma</B>.</P>
+ <LI><P STYLE="font-weight: medium">Set a title at the new stream. (
+ Let the new child execute a setPropertyValues – command, which
+ sets at least the property „Title“ to a non-empty value
+ ).</P>
+ <LI><P STYLE="font-weight: medium">Other properties which may be set
+ are
+ </P>
+</OL>
+<UL>
+ <LI><P STYLE="font-weight: medium">Author,</P>
+ <LI><P STYLE="font-weight: medium">Subject and</P>
+ <LI><P STYLE="font-weight: medium">Keywords</P>
+</UL>
+<OL START=4>
+ <LI><P STYLE="font-weight: medium">Let the new child ( not the
+ parent! ) execute the command „transfer“. This will
+ commit the creation process. You need to supply the implementation
+ of an XInputStream with the command's parameters, that provides
+ access to the stream data.
+ </P>
+</OL>
+<H2 CLASS="western">URL Scheme for OCP Contents</H2>
+<P>Each OCP content has an identifier corresponding to the following
+scheme:</P>
+<P>vnd.sun.star.odma:/<name></P>
+<P>where <name> is the DocumentID given by the DMS.</P>
+<P STYLE="font-weight: medium">Examples:</P>
+<P><B>vnd.sun.star.odma:/ </B><SPAN STYLE="font-weight: medium">( The
+URL of the OCP Root Folder )</SPAN></P>
+<P STYLE="font-weight: medium"><B>vnd.sun.star.odma:/</B> a document
+id given by the DMS</P>
+<P><B>vnd.sun.star.odma:/</B><SPAN STYLE="font-weight:
medium">::ODMA\DMS_ID\DM_SPECIFIC_INFO</SPAN></P>
+<H2 CLASS="western">Appendix</H2>
+<P STYLE="font-weight: medium">The following table gives an overview
+of the different OCP contents.</P>
+<P STYLE="font-weight: medium"><BR><BR>
+</P>
+<TABLE WIDTH=642 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+ <COL WIDTH=48>
+ <COL WIDTH=168>
+ <COL WIDTH=120>
+ <COL WIDTH=128>
+ <COL WIDTH=136>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH=48>
+ <P><BR>
+ </P>
+ </TH>
+ <TH WIDTH=168>
+ <P>UCB Type</P>
+ <P>(returned by XContent::getContentType )</P>
+ </TH>
+ <TH WIDTH=120>
+ <P>Properties</P>
+ </TH>
+ <TH WIDTH=128>
+ <P>Commands</P>
+ </TH>
+ <TH WIDTH=136>
+ <P>Interfaces</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH=48>
+ <P>Document</P>
+ </TD>
+ <TD WIDTH=168>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium">application/vnd.sun.star.odma</P>
+ </TD>
+ <TD WIDTH=120>
+ <P>[readonly] ContentType</P>
+ <P>[readonly] DateCreated</P>
+ <P>[readonly] DateModified</P>
+ <P>[readonly] IsDocument</P>
+ <P>[readonly] IsFolder</P>
+ <P STYLE="font-style: normal; font-weight:
medium">Title</P>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium">Author</P>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium">Subject</P>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium">Keywords</P>
+ </TD>
+ <TD WIDTH=128>
+ <P>getCommandInfo</P>
+ <P>getPropertySetInfo</P>
+ <P>getPropertyValues</P>
+ <P>setPropertyValues</P>
+ <P>delete</P>
+ <P>open</P>
+ <P>close</P>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=136>
+ <P>lang::<B>XTypeProvider</B>,</P>
+ <P>lang::<B>XServiceInfo</B></P>
+ <P>lang::<B>XComponent</B></P>
+ <P>ucb::<B>XContent</B></P>
+ <P>ucb::<B>XCommandProcessor</B></P>
+ <P>beans::<B>XPropertiesChangeNotifier</B></P>
+ <P>beans::<B>XPropertyContainer</B></P>
+
<P>beans::<B>XPropertySetInfoChangeNotifier</B></P>
+ <P>ucb::<B>XCommandInfoChangeNotifier</B></P>
+ <P>container::<B>XChild</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TH WIDTH=48>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium">Root
+ Folder</P>
+ </TH>
+ <TD WIDTH=168>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium">application/vnd.sun.star.odma</P>
+ </TD>
+ <TD WIDTH=120>
+ <P>[readonly] ContentType</P>
+ <P>[readonly] DateCreated</P>
+ <P>[readonly] DateModified</P>
+ <P>[readonly] IsDocument</P>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium">[readonly]
+ IsFolder</P>
+ </TD>
+ <TD WIDTH=128>
+ <P>getCommandInfo</P>
+ <P>getPropertySetInfo</P>
+ <P>getPropertyValues</P>
+ <P>setPropertyValues</P>
+ <P>transfer</P>
+ <P>delete</P>
+ <P>open</P>
+ <P ALIGN=LEFT STYLE="font-style: normal;
font-weight: medium">close</P>
+ </TD>
+ <TD WIDTH=136>
+ <P><B>same as OCP Folder</B>, plus
+ </P>
+ <P>ucb::<B>XContentCreator</B></P>
+ </TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<P><BR><BR>
+</P>
+<P>More information about ODMA can be found at
+<A HREF="http://www.infonuovo.com/odma/">www.infonuovo.com/odma/</A></P>
+<P>To enable ODMA the following basic macro has to executed to insert
+the settings needed in the Configuration.</P>
+<pre>
+EM ***** BASIC *****
+
+' Option Explicit
+
+Sub RegisterUcpOdma
+ Dim aConfigProvider As Object
+ Dim aConfiguration As Object
+ Dim aFilters as Object
+ Dim aNewNode as Object
+ Dim nResponse as Integer
+ Dim bAddNode as Boolean
+
+ ' access the global configuration provider
+ aConfigProvider = createUnoService(
"com.sun.star.configuration.ConfigurationProvider" )
+
+ ' create an access object for TypeDetection module
+ Dim aParams(0) As new com.sun.star.beans.PropertyValue
+ aParams(0).Name = "nodepath"
+ aParams(0).Value = "/org.openoffice.ucb.Configuration"
+ aConfiguration = aConfigProvider.createInstanceWithArguments( _
+ "com.sun.star.configuration.ConfigurationUpdateAccess", _
+ aParams() )
+
+ ' open the set node for the types
+ aContentProviders = aConfiguration.getByName( "ContentProviders" )
+ aContentProvidersDataPrimaryKeys = aContentProviders.getByName( "Local"
)
+ aSecondaryKeys = aContentProvidersDataPrimaryKeys.getByName(
"SecondaryKeys" )
+ aContentProvidersDataSecondaryKeys = aSecondaryKeys.getByName( "Office"
)
+ aProviderData = aContentProvidersDataSecondaryKeys.getByName(
"ProviderData" )
+
+ ' existence check
+ bAddNode = TRUE
+ dim xx() as string
+ xx() = aProviderData.getElementNames
+ for i=LBOUND(xx) to UBOUND(xx)
+ aContentProviderData = aProviderData.getByName( xx(i) )
+ if ( aContentProviderData.ServiceName =
"com.sun.star.ucb.OdmaContentProvider" ) Then
+ nResponse = MsgBox( "The type is already present in the
configuration! Overwrite?", 4 )
+ if ( 6 = nResponse ) Then
+ aProviderData.removeByName( xx(i) )
+ Else
+ bAddNode = FALSE
+ End If
+ End If
+ next i
+
+ if ( bAddNode ) Then
+ ' create a new node for the new type
+ aContentProviderData = aProviderData.createInstance( )
+ ' fill this new type node
+ aContentProviderData.ServiceName =
"com.sun.star.ucb.OdmaContentProvider"
+ aContentProviderData.URLTemplate = "vnd.sun.star.odma"
+ ' insert this new type
+ aProviderData.insertByName( "Provider" + (UBOUND(xx) -
LBOUND(xx) + 2), aContentProviderData )
+ End If
+
+
+ ' commit the changes done
+ aConfiguration.commitChanges( )
+
+ ' register the component implementing the filter
+' RegisterFilterComponent( )
+End Sub
+
+Sub RegisterFilterComponent
+ Dim oRegistry as Object
+ Dim oImplReg as Object
+ oRegistry = createUnoService( "com.sun.star.registry.SimpleRegistry" )
+ oImplReg = createUnoService(
"com.sun.star.registry.ImplementationRegistration" )
+ if ( IsNull( oRegistry ) Or IsNull( oImplReg ) ) Then
+ MsgBox "could not create the components necessary for
registering the component!"
+ Exit Sub
+ End If
+
+ On Local Error Resume Next
+ oRegistry.open( "applicat.rdb", FALSE, FALSE )
+ if ( Not oRegistry.IsValid() ) Then
+ MsgBox "could not open the registry!"
+ Exit Sub
+ End If
+ On Local Error Goto 0
+
+ oImplReg.registerImplementation( "com.sun.star.loader.SharedLibrary",
"ucpodma1.dll", oRegistry )
+End Sub
+
+</pre>
+</P>
+</BODY>
+</HTML>
Propchange: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/odma-ucp.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/package-contents.gif
URL:
http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/package-contents.gif?rev=1206884&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/package-contents.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/package-ucp.html
URL:
http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/package-ucp.html?rev=1206884&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/package-ucp.html
(added)
+++ incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/package-ucp.html Sun
Nov 27 22:36:56 2011
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+ <TITLE></TITLE>
+ <META NAME="GENERATOR" CONTENT="StarOffice/5.2 (Win32)">
+ <META NAME="AUTHOR" CONTENT="Kai Sommerfeld">
+ <META NAME="CREATED" CONTENT="20000714;12280562">
+ <META NAME="CHANGEDBY" CONTENT="Kai Sommerfeld">
+ <META NAME="CHANGED" CONTENT="20010516;11055191">
+ <STYLE>
+ <!--
+ @page { size: 21cm 29.7cm; margin: 2cm }
+ H1 { margin-bottom: 0.21cm; font-family: "Arial", sans-serif;
font-size: 16pt }
+ TH P { margin-bottom: 0.21cm; font-style: italic }
+ TD P { margin-bottom: 0.21cm }
+ H2 { margin-bottom: 0.21cm; font-family: "Arial", sans-serif;
font-size: 14pt; font-style: italic }
+ P { margin-bottom: 0.21cm }
+ A.sdfootnoteanc { font-size: 57% }
+ -->
+ </STYLE>
+</HEAD>
+<BODY>
+<H1>The Package Content Provider</H1>
+<H2>Preface</H2>
+<P>The Package Content Provider ( PCP ) implements a Content Provider
+for the Universal Content Broker (UCB). It provides access to the
+content of ZIP/JAR archive files. Possibly it will be extended to
+support other packages ( like OLE storages ) in the future.</P>
+<H2>PCP Contents</H2>
+<P>The PCP provides two different types of contents: <B>Stream </B><SPAN
STYLE="font-weight: medium">and
+</SPAN><B>Folder</B>.</P>
+<OL>
+ <LI><P>A PCP Stream is a content which represents a file inside a
+ package. It is always contained in a PCP Folder. A PCP Stream has no
+ children.</P>
+ <LI><P>A PCP Folder is a container for other PCP Folders and PCP
+ Streams.</P>
+</OL>
+<H2><IMG SRC="package-contents.gif" NAME="Object1" ALIGN=LEFT WIDTH=533
HEIGHT=276 BORDER=0><BR CLEAR=LEFT>Creation
+Of New PCP Contents</H2>
+<P>PCP Folders implement the interface XContentCreator. PCP Streams
+and PCP Folders support the command „insert“. That's why
+all PCP Folders can create new PCP Folders and PCP Streams. To create
+a new child of a PCP Folder:</P>
+<OL>
+ <LI><P>Let the parent folder create a new content by calling its
+ createNewContent-method. The content type to use for new folders is
+ <B>application/vnd.sun.star.pkg-folder</B><SPAN STYLE="font-weight:
medium">.
+ To create a new stream, use the type string
+ </SPAN><B>application/vnd.sun.star.pkg-stream</B><SPAN
STYLE="font-weight: medium">.</SPAN></P>
+ <LI><P STYLE="font-weight: medium">Set a title at the new
+ folder/stream. ( Let the new child execute a setPropertyValues –
+ command, which sets at least the property „Title“ to a
+ non-empty value ).</P>
+ <LI><P STYLE="font-weight: medium">Let the new child ( not the
+ parent! ) execute the command „insert“. This will commit
+ the creation process. For Streams, you need to supply the
+ implementation of an XInputStream with the command's parameters,
+ that provides access to the stream data.
+ </P>
+</OL>
+<P><BR><BR>
+</P>
+<P STYLE="font-weight: medium">Another, <B>more convenient way for
+creating streams</B> is simply to assemble the URL for the new
+content ( last part of the path will become the title of the new
+stream ) and to obtain a Content object for that URL from the UCB.
+Then let the content execute the command "insert". The
+command will fail, if you set the command's parameter
+"ReplaceExisting" to false and there is already a stream
+with the title given by the content's URL.</P>
+<H2>URL Scheme for PCP Contents</H2>
+<P>Each PCP content has an identifier corresponding to the following
+scheme:</P>
+<P><FONT FACE="Courier New, monospace">package-URL =
+"vnd.sun.star.pkg://" orig-URL [ abs-path ]</FONT></P>
+<P><FONT FACE="Courier New, monospace">abs-path = "/"
+path-segments</FONT></P>
+<P><FONT FACE="Courier New, monospace">path-segements = segment *(
+"/" segment )</FONT></P>
+<P><FONT FACE="Courier New, monospace">segment = pchar</FONT></P>
+<P><FONT FACE="Courier New, monospace">pchar = unreserved | escaped |
+":" | "@" | "&" | "=" |
+"+" | "$" | ","</FONT></P>
+<P><FONT FACE="Courier New, monospace">unreserved = alphanum | mark</FONT></P>
+<P><FONT FACE="Courier New, monospace">mark = "-" | "_"
+| "." | "!" | "~" | "*" | "'"
+| "(" | ")"</FONT></P>
+<P><FONT FACE="Courier New, monospace">escaped = "%" hex
+hex</FONT></P>
+<P><FONT FACE="Courier New, monospace">orig-URL = 1 *( unreserved |
+escaped | "$" | "," | ";" | ":"
+| "@" | "&" | "&" | "="
+| "+"</FONT></P>
+<P><B>Examples:</B></P>
+<P><SPAN STYLE="font-weight:
medium"><B>vnd.sun.star.pkg://file:%2F%2F%2Fe:%2Fmy.xsw/
+</B>( The root folder of the package located at <A
HREF="../../../../../my.xsw">file:///e:/my.xsw</A>
+)</SPAN></P>
+<P><SPAN STYLE="font-weight:
medium"><B>vnd.sun.star.pkg://file:%2F%2F%2Fe:%2Fmy.xsw/Content</B>
+( The folder/stream named "Content" that is contained in
+the root folder of the located at <A
HREF="../../../../../my.xsw">file:///e:/my.xsw</A>
+)</SPAN></P>
+<P><SPAN STYLE="font-weight:
medium"><B>vnd.sun.star.pkg://file:%2F%2F%2Fe:%2Fmy.xsw/Content%20A</B>
+( The folder/stream named "Content A" that is contained in
+the root folder of the located at <A
HREF="../../../../../my.xsw">file:///e:/my.xsw</A>
+)</SPAN></P>
+<H2 STYLE="page-break-before: always">Appendix</H2>
+<P>The following table gives an overview of the different PCP
+contents.</P>
+<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+ <COL WIDTH=23*>
+ <COL WIDTH=64*>
+ <COL WIDTH=67*>
+ <COL WIDTH=51*>
+ <COL WIDTH=51*>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH=9%>
+ <P><BR>
+ </P>
+ </TH>
+ <TH WIDTH=25%>
+ <P>UCB Type</P>
+ <P>(returned by XContent::getContentType )</P>
+ </TH>
+ <TH WIDTH=26%>
+ <P>Properties</P>
+ </TH>
+ <TH WIDTH=20%>
+ <P>Commands</P>
+ </TH>
+ <TH WIDTH=20%>
+ <P>Interfaces</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH=9%>
+ <P>Stream</P>
+ </TD>
+ <TD WIDTH=25%>
+ <P>application/vnd.sun.star.pkg-stream</P>
+ </TD>
+ <TD WIDTH=26%>
+ <P>[readonly] ContentType</P>
+ <P>[readonly] IsDocument</P>
+ <P>[readonly] IsFolder</P>
+ <P>MediaType</P>
+ <P>[readonly] Size</P>
+ <P>Title</P>
+ <P>Compressed<A CLASS="sdfootnoteanc"
NAME="sdfootnote1anc" HREF="#sdfootnote1sym"><SUP>1</SUP></A></P>
+ </TD>
+ <TD WIDTH=20%>
+ <P>getCommandInfo</P>
+ <P>getPropertySetInfo</P>
+ <P>getPropertyValues</P>
+ <P>setPropertyValues</P>
+ <P>insert</P>
+ <P>delete</P>
+ <P>open</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P>lang::<B>XTypeProvider</B>,</P>
+ <P>lang::<B>XServiceInfo</B>,</P>
+ <P>lang::<B>XComponent</B>,</P>
+ <P>ucb::<B>XContent</B>,</P>
+ <P>ucb::<B>XCommandProcessor</B>,</P>
+ <P>beans::<B>XPropertiesChangeNotifier</B>,</P>
+ <P>beans::<B>XPropertyContainer</B>,</P>
+
<P>beans::<B>XPropertySetInfoChangeNotifier</B>,</P>
+ <P>ucb::<B>XCommandInfoChangeNotifier</B>,</P>
+ <P>container::<B>XChild</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=9%>
+ <P>Folder</P>
+ </TD>
+ <TD WIDTH=25%>
+ <P>application/vnd.sun.star.pkg-folder</P>
+ </TD>
+ <TD WIDTH=26%>
+ <P>[readonly] ContentType</P>
+ <P>[readonly] IsDocument</P>
+ <P>[readonly] IsFolder</P>
+ <P>MediaType</P>
+ <P>[readonly] Size</P>
+ <P>Title
+ </P>
+ </TD>
+ <TD WIDTH=20%>
+ <P>getCommandInfo</P>
+ <P>getPropertySetInfo</P>
+ <P>getPropertyValues</P>
+ <P>setPropertyValues</P>
+ <P>insert</P>
+ <P>delete</P>
+ <P>open</P>
+ <P>transfer<A CLASS="sdfootnoteanc"
NAME="sdfootnote2anc" HREF="#sdfootnote2sym"><SUP>2</SUP></A></P>
+ <P>flush<A CLASS="sdfootnoteanc"
NAME="sdfootnote3anc" HREF="#sdfootnote3sym"><SUP>3</SUP></A></P>
+ </TD>
+ <TD WIDTH=20%>
+ <P><B>same as PCP Stream</B></P>
+ <P>plus ucb::<B>XContentCreator</B></P>
+ </TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<P><BR><BR>
+</P>
+<DIV ID="sdfootnote1">
+ <P STYLE="font-weight: medium"><A CLASS="sdfootnotesym"
NAME="sdfootnote1sym" HREF="#sdfootnote1anc">1</A>The
+ property "Compressed" is introduced by package streams. It
+ allows you to explecitly state whether you want a stream to be
+ compressed or not. The default value of this property will be
+ determined according to the value suggested by the underlying
+ packager implementation.</P>
+</DIV>
+<DIV ID="sdfootnote2">
+ <P STYLE="font-weight: medium"><A CLASS="sdfootnotesym"
NAME="sdfootnote2sym" HREF="#sdfootnote2anc">2</A>The
+ „transfer“ command only transfers PCP-folders/-streams to
+ other PCP folders. It does not handle contents with a URL scheme
+ other then the PCP-URL-scheme.</P>
+</DIV>
+<DIV ID="sdfootnote3">
+ <P STYLE="font-weight: medium"><A CLASS="sdfootnotesym"
NAME="sdfootnote3sym" HREF="#sdfootnote3anc">3</A>"flush"
+ is a command introduced by the PCP Folder. It takes a void-argument
+ and returns void. This command is used to write unsaved changes to
+ the underlying package file. Note that the current implementation of
+ PCP <B>contents never flush automatically</B>! Operations, which
+ require a flush to get persistent, are: "setPropertyValues(
+ Title | MediaType ) ", "delete", "insert".</P>
+</DIV>
+</BODY>
+</HTML>
\ No newline at end of file
Propchange:
incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/package-ucp.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/tdoc-contents.gif
URL:
http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/tdoc-contents.gif?rev=1206884&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/tdoc-contents.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/tdoc-ucp.html
URL:
http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/tdoc-ucp.html?rev=1206884&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/tdoc-ucp.html (added)
+++ incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/tdoc-ucp.html Sun Nov
27 22:36:56 2011
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html;
charset=windows-1252">
+ <TITLE></TITLE>
+ <META NAME="GENERATOR" CONTENT="StarOffice 7 (Win32)">
+ <META NAME="AUTHOR" CONTENT="Kai Sommerfeld">
+ <META NAME="CREATED" CONTENT="20000714;12280500">
+ <META NAME="CHANGED" CONTENT="20040219;9184776">
+ <STYLE>
+ <!--
+ @page { size: 21cm 29.7cm; margin: 2cm }
+ P { margin-bottom: 0.21cm }
+ H1 { margin-bottom: 0.21cm }
+ H1.western { font-family: "Arial", sans-serif; font-size: 16pt }
+ H1.cjk { font-family: "Andale Sans UI"; font-size: 12pt;
font-weight: medium }
+ H1.ctl { font-family: "Tahoma"; font-size: 12pt; font-weight:
medium }
+ H2 { margin-bottom: 0.21cm }
+ H2.western { font-family: "Arial", sans-serif; font-size: 14pt;
font-style: italic }
+ H2.cjk { font-family: "Andale Sans UI"; font-size: 12pt;
font-weight: medium }
+ H2.ctl { font-family: "Tahoma"; font-size: 12pt; font-weight:
medium }
+ TD P { margin-bottom: 0.21cm }
+ TH P { margin-bottom: 0.21cm }
+ TH P.western { font-style: italic }
+ TH P.cjk { font-weight: medium }
+ TH P.ctl { font-weight: medium }
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="de-DE" DIR="LTR">
+<H1 LANG="en-US" CLASS="western">The Transient Document Content
+Provider</H1>
+<P LANG="en-US"><BR><BR>
+</P>
+<H2 LANG="en-US" CLASS="western">Preface</H2>
+<P LANG="en-US">The Transient Document Content Provider (TDCP)
+implements a Content Provider for the Universal Content Broker (UCB).
+It provides access to the hierachical structure of the documents that
+are active in a running OpenOffice.org process. As long as a document
+was not closed, the TDCP can access it. All documents that have been
+loaded – regardless of their persistent document format--- or
+that have been created but not yet saved to any storage medium, are
+supported. The TDCP is not able to load any documents itself. This is
+exclusively done by the OpenOffice.org document handling framework.
+The document contents provided by the TDCP represent live data, which
+may differ from any persistent representation of the document, for
+instance, because the user modified the document after loading, but
+did not yet save it.</P>
+<H2 LANG="en-US" CLASS="western">TDCP Contents</H2>
+<P LANG="en-US">The TDCP provides four different types of contents:
+<B>Stream</B>, <B>Folder, Document </B>and <B>Root</B>.</P>
+<OL>
+ <LI><P LANG="en-US">A TDCP Stream is a content which represents a
+ data stream of an Office document. It is contained in a TDCP Folder
+ or TDCP Document. A TDCP Stream has no children.</P>
+ <LI><P LANG="en-US">A TDCP Folder is a container for other TDCP
+ Folders and TDCP Streams. It may be contained in another TDCP Folder
+ or in a TDCP Document.</P>
+ <LI><P LANG="en-US">A TDCP Document represents the root folder of a
+ transient document. It is a container for other TDCP Folders and
+ TDCP Streams. It is always a child of the TDCP Root.</P>
+ <LI><P LANG="en-US">There is at most one instance of a TDCP Root at
+ a time. All other TDCP contents are children of this folder. The
+ TDCP Root Folder can contain only TDCP Documents. It has the fixed
+ URL „<B>vnd.sun.star.tdoc:/</B><SPAN STYLE="font-weight:
medium">“.</SPAN></P>
+</OL>
+<P LANG="en-US"><BR><BR>
+</P>
+<P LANG="en-US"><IMG SRC="tdoc-contents.gif" NAME="DrawObject"
ALT="DrawObject" ALIGN=LEFT><BR><BR>
+</P>
+<P LANG="en-US"><BR><BR>
+</P>
+<P LANG="en-US"><BR><BR>
+</P>
+<P LANG="en-US"><BR><BR>
+</P>
+<H2 LANG="en-US" CLASS="western"><BR><BR>
+</H2>
+<H2 LANG="en-US" CLASS="western"><BR><BR>
+</H2>
+<H2 LANG="en-US" CLASS="western"><BR><BR>
+</H2>
+<H2 LANG="en-US" CLASS="western"><BR><BR>
+</H2>
+<H2 LANG="en-US" CLASS="western"><BR><BR>
+</H2>
+<H2 LANG="en-US" CLASS="western"><BR><BR>
+</H2>
+<H2 LANG="en-US" CLASS="western">Creation Of New TDCP Contents</H2>
+<P LANG="en-US">TDCP Folders and TDCP Documents implement the
+interface XContentCreator. TDCP Streams and TDCP Folders support the
+command „insert“; the TDCP Root and TDCP Documents do
+not. TDCP Folders and TDCP Documents can create new TDCP Folders and
+TDCP Streams. To create a new child of a TDCP Folder or TDCP
+Document:</P>
+<OL>
+ <LI><P LANG="en-US">Let the parent folder create a new content by
+ calling its createNewContent-method. The content type to use for new
+ folders is <B>application/vnd.sun.star.tdoc-folder</B><SPAN
STYLE="font-weight: medium">.
+ To create a new stream, use the type string
+ </SPAN><B>application/vnd.sun.star.tdoc-stream</B><SPAN
STYLE="font-weight: medium">.</SPAN></P>
+ <LI><P LANG="en-US" STYLE="font-weight: medium">Set a title at the
+ new folder/stream. ( Let the new child execute a setPropertyValues
–
+ command, which sets at least the property „Title“ to a
+ non-empty value ).
+ </P>
+ <LI><P LANG="en-US" STYLE="font-weight: medium">Let the new child (
+ not the parent! ) execute the command „insert“. This
+ will commit the creation process. For streams, you need to supply
+ the implementation of an XInputStream with the command's parameters,
+ that provides access to the stream data.</P>
+</OL>
+<P LANG="en-US"><BR><BR>
+</P>
+<P LANG="en-US" STYLE="font-weight: medium">Another, <B>more
+convenient way for creating streams</B> is simply to assemble the URL
+for the new content ( last part of the path will become the title of
+the new stream ) and to obtain a Content object for that URL from the
+UCB. Then let the content execute the command "insert". The
+command will fail, if you set the command's parameter
+"ReplaceExisting" to false and there is already a stream
+with the title given by the content's URL.</P>
+<P LANG="en-US" STYLE="font-weight: medium"><BR><BR>
+</P>
+<H2 LANG="en-US" CLASS="western">URL Scheme for TDCP Contents</H2>
+<P LANG="en-US">Each TDCP content has an identifier corresponding to
+the following scheme:</P>
+<P LANG="en-US"><FONT FACE="Courier New, monospace">tdcp-URL =
+"vnd.sun.star.tdoc:" abs-path</FONT></P>
+<P LANG="en-US"><FONT FACE="Courier New, monospace">abs-path =
++( "/" segment )</FONT></P>
+<P LANG="en-US"><FONT FACE="Courier New, monospace">segment =
+*( pchar )</FONT></P>
+<P LANG="en-US"><FONT FACE="Courier New, monospace">pchar =
+unreserved | escaped | ":" | "@" | "&"
+| "=" </FONT>
+</P>
+<P LANG="en-US"> <FONT FACE="Courier New, monospace">|
+"+" | "$" | ","</FONT></P>
+<P LANG="en-US"><FONT FACE="Courier New, monospace">unreserved =
+alphanum | mark</FONT></P>
+<P LANG="en-US"><FONT FACE="Courier New, monospace">mark =
+"-" | "_" | "." | "!" | "~"
+| "*" | "'" | "("</FONT></P>
+<P LANG="en-US"> <FONT FACE="Courier New, monospace">|
+")"</FONT></P>
+<P LANG="en-US"><FONT FACE="Courier New, monospace">escaped =
+"%" hex hex</FONT></P>
+<P LANG="en-US"><BR><BR>
+</P>
+<P LANG="en-US" STYLE="font-weight: medium">Examples:</P>
+<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+ <COL WIDTH=159*>
+ <COL WIDTH=97*>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH=62%>
+ <P CLASS="western">URL</P>
+ </TH>
+ <TH WIDTH=38%>
+ <P CLASS="western">Comment</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH=62%>
+ <P LANG="en-US" STYLE="font-weight:
medium"><FONT FACE="Courier New, sans-serif">vnd.sun.star.tdoc:/</FONT></P>
+ </TD>
+ <TD WIDTH=38%>
+ <P LANG="en-US" STYLE="font-weight: medium">The
TDCP Root
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=62%>
+ <P LANG="en-US" STYLE="font-weight:
medium"><FONT FACE="Courier New, sans-serif">vnd.sun.star.tdoc:/22</FONT></P>
+ </TD>
+ <TD WIDTH=38%>
+ <P LANG="en-US" STYLE="font-weight: medium">The
document with the
+ id 22</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=62%>
+ <P LANG="en-US" STYLE="font-weight:
medium"><FONT FACE="Courier New, sans-serif">vnd.sun.star.tdoc:/22/</FONT></P>
+ </TD>
+ <TD WIDTH=38%>
+ <P LANG="en-US" STYLE="font-weight: medium">The
document with the
+ id 22</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=62%>
+ <P LANG="en-US" STYLE="font-weight:
medium"><FONT FACE="Courier New,
sans-serif">vnd.sun.star.tdoc:/42/folder/subfolder</FONT></P>
+ </TD>
+ <TD WIDTH=38%>
+ <P LANG="en-US" STYLE="font-weight: medium">The
folder/stream
+ named subfolder contained in folder named
folder, which is
+ contained in the document with the id 42</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=62%>
+ <P LANG="en-US" STYLE="font-weight:
medium"><FONT FACE="Courier New,
sans-serif">vnd.sun.star.tdoc:/42/folder/subfolder/</FONT></P>
+ </TD>
+ <TD WIDTH=38%>
+ <P LANG="en-US" STYLE="font-weight: medium">The
folder named
+ subfolder contained in folder named folder,
which is contained in
+ the document with the id 42 (final slash
identifies that resource
+ is a folder)</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=62%>
+ <P LANG="en-US" STYLE="font-weight:
medium"><FONT FACE="Courier New,
sans-serif">vnd.sun.star.tdoc:/1/content.xml</FONT></P>
+ </TD>
+ <TD WIDTH=38%>
+ <P LANG="en-US" STYLE="font-weight: medium">The
stream/folder
+ named content.xml contained in the document
with the id 1</P>
+ </TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<P LANG="en-US" STYLE="font-weight: medium"><BR><BR>
+</P>
+<H2 CLASS="western">Appendix</H2>
+<P LANG="en-US">The following table gives an overview of the
+different TDCP contents.</P>
+<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+ <COL WIDTH=35*>
+ <COL WIDTH=54*>
+ <COL WIDTH=64*>
+ <COL WIDTH=51*>
+ <COL WIDTH=51*>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH=14%>
+ <P LANG="en-US" CLASS="western"><BR>
+ </P>
+ </TH>
+ <TH WIDTH=21%>
+ <P LANG="en-US" CLASS="western">UCB Type</P>
+ <P LANG="en-US" CLASS="western">(returned by
+ XContent::getContentType )</P>
+ </TH>
+ <TH WIDTH=25%>
+ <P LANG="en-US" CLASS="western">Properties</P>
+ </TH>
+ <TH WIDTH=20%>
+ <P LANG="en-US" CLASS="western">Commands</P>
+ </TH>
+ <TH WIDTH=20%>
+ <P LANG="en-US" CLASS="western">Interfaces</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH=14%>
+ <P LANG="en-US">Stream
+ </P>
+ </TD>
+ <TD WIDTH=21%>
+ <P
LANG="en-US">application/vnd.sun.star.tdoc-stream</P>
+ </TD>
+ <TD WIDTH=25%>
+ <P LANG="en-US">[readonly] string
ContentType</P>
+ <P LANG="en-US">[readonly] boolean
IsDocument</P>
+ <P LANG="en-US">[readonly] boolean IsFolder</P>
+ <P LANG="en-US">string Title</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P LANG="en-US">getCommandInfo</P>
+ <P LANG="en-US">getPropertySetInfo</P>
+ <P LANG="en-US">getPropertyValues</P>
+ <P LANG="en-US">setPropertyValues</P>
+ <P LANG="en-US">insert</P>
+ <P LANG="en-US">delete</P>
+ <P LANG="en-US">open
+ </P>
+ <P LANG="en-US"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=20%>
+ <P LANG="en-US">lang::<B>XTypeProvider</B>,</P>
+ <P LANG="en-US">lang::<B>XServiceInfo</B>,</P>
+ <P LANG="en-US">lang::<B>XComponent</B>,</P>
+ <P LANG="en-US">ucb::<B>XContent</B>,</P>
+ <P
LANG="en-US">ucb::<B>XCommandProcessor</B>,</P>
+ <P
LANG="en-US">beans::<B>XPropertiesChangeNotifier</B>,</P>
+ <P
LANG="en-US">beans::<B>XPropertyContainer</B>,</P>
+ <P
LANG="en-US">beans::<B>XPropertySetInfoChangeNotifier</B>,</P>
+ <P
LANG="en-US">ucb::<B>XCommandInfoChangeNotifier</B>,</P>
+ <P LANG="en-US">container::<B>XChild</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=14%>
+ <P LANG="en-US">Folder</P>
+ </TD>
+ <TD WIDTH=21%>
+ <P
LANG="en-US">application/vnd.sun.star.tdoc-folder</P>
+ </TD>
+ <TD WIDTH=25%>
+ <P LANG="en-US">[readonly] string
ContentType</P>
+ <P LANG="en-US">[readonly] boolean
IsDocument</P>
+ <P LANG="en-US">[readonly] boolean IsFolder</P>
+ <P LANG="en-US">string Title</P>
+ <P LANG="en-US">[readonly] embed::XStorage Storage**</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P LANG="en-US">getCommandInfo</P>
+ <P LANG="en-US">getPropertySetInfo</P>
+ <P LANG="en-US">getPropertyValues</P>
+ <P LANG="en-US">setPropertyValues</P>
+ <P LANG="en-US">insert</P>
+ <P LANG="en-US">delete</P>
+ <P LANG="en-US">open</P>
+ <P LANG="en-US">transfer*</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P LANG="en-US"><B>same as TDCP Stream </B>
+ </P>
+ <P LANG="en-US">plus
ucb::<B>XContentCreator</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=14%>
+ <P LANG="en-US">Document</P>
+ </TD>
+ <TD WIDTH=21%>
+ <P
LANG="en-US">application/vnd.sun.star.tdoc-document</P>
+ </TD>
+ <TD WIDTH=25%>
+ <P LANG="en-US">[readonly] string
ContentType</P>
+ <P LANG="en-US">[readonly] boolean
IsDocument</P>
+ <P LANG="en-US">[readonly] boolean IsFolder</P>
+ <P LANG="en-US">[readonly] string Title</P>
+ <P LANG="en-US">[readonly] frame::XModel DocumentModel</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P LANG="en-US">getCommandInfo</P>
+ <P LANG="en-US">getPropertySetInfo</P>
+ <P LANG="en-US">getPropertyValues</P>
+ <P LANG="en-US">setPropertyValues</P>
+ <P LANG="en-US">open</P>
+ <P LANG="en-US">transfer*</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P LANG="en-US"><B>same as TDCP Stream </B>
+ </P>
+ <P LANG="en-US">plus
ucb::<B>XContentCreator</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=14%>
+ <P LANG="en-US">Root</P>
+ </TD>
+ <TD WIDTH=21%>
+ <P
LANG="en-US">application/vnd.sun.star.tdoc-root</P>
+ </TD>
+ <TD WIDTH=25%>
+ <P LANG="en-US">[readonly] string
ContentType</P>
+ <P LANG="en-US">[readonly] boolean
IsDocument</P>
+ <P LANG="en-US">[readonly] boolean IsFolder</P>
+ <P LANG="en-US">[readonly] string Title (value:
always an empty
+ string)</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P LANG="en-US">getCommandInfo</P>
+ <P LANG="en-US">getPropertySetInfo</P>
+ <P LANG="en-US">getPropertyValues</P>
+ <P LANG="en-US">setPropertyValues</P>
+ <P LANG="en-US">open</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P LANG="en-US"><B>same as TDCP Stream (not
Folder!)</B></P>
+ </TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<P LANG="en-US" STYLE="font-weight: medium">*) The „transfer“
+command only transfers TDCP documents, TDCP folders and TDCP streams
+to TDCP folders or TDCP documents. It does not handle contents with a
+URL scheme other than the TDOC URL scheme.</P>
+<P LANG="en-US" STYLE="font-weight: medium">**) always a reference to
+a storage opened in read-only mode. No write operations are possible.
+UCB content must be used for operations that modify the storage (if
+equivalent functionality is available) or a writable storage must be
+obtained from somewhere else.</P>
+</BODY>
+</HTML>
Propchange: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/tdoc-ucp.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/webdav-contents.gif
URL:
http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/webdav-contents.gif?rev=1206884&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/webdav-contents.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/webdav-ucp.html
URL:
http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/webdav-ucp.html?rev=1206884&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/webdav-ucp.html
(added)
+++ incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/webdav-ucp.html Sun
Nov 27 22:36:56 2011
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+ <TITLE></TITLE>
+ <META NAME="GENERATOR" CONTENT="StarOffice/5.2 (Win32)">
+ <META NAME="AUTHOR" CONTENT="Kai Sommerfeld">
+ <META NAME="CREATED" CONTENT="20000714;12280562">
+ <META NAME="CHANGEDBY" CONTENT="Kai Sommerfeld">
+ <META NAME="CHANGED" CONTENT="20010516;12043631">
+ <STYLE>
+ <!--
+ @page { size: 21cm 29.7cm; margin: 2cm }
+ H1 { margin-bottom: 0.21cm; font-family: "Arial", sans-serif;
font-size: 16pt }
+ TH P { margin-bottom: 0.21cm; font-style: italic }
+ TD P { margin-bottom: 0.21cm }
+ H2 { margin-bottom: 0.21cm; font-family: "Arial", sans-serif;
font-size: 14pt; font-style: italic }
+ P { margin-bottom: 0.21cm }
+ P.sdfootnote { margin-left: 0.5cm; text-indent: -0.5cm;
margin-bottom: 0cm; font-size: 10pt }
+ A.sdfootnoteanc { font-size: 57% }
+ -->
+ </STYLE>
+</HEAD>
+<BODY>
+<H1>The WebDAV Provider</H1>
+<H2>Preface</H2>
+<P>The WebDAV<A CLASS="sdfootnoteanc" NAME="sdfootnote1anc"
HREF="#sdfootnote1sym"><SUP>1</SUP></A>
+Content Provider (DCP) implements a Content Provider for the
+Universal Content Broker (UCB). It provides access to WebDAV and
+standard HTTP servers. The DCP communicates with the server using the
+WebDAV protocol which is an extention to the HTTP protocol or using
+the plain HTTP protocol in case the server is not WebDAV enabled.
+</P>
+<H2>DCP Contents</H2>
+<P>The DCP provides two types of content: a <B>Folder</B> or <B>Document</B>
+which corresponds to a collection or non-collection (nodes and leafs)
+in WebDAV respectively.</P>
+<OL>
+ <LI><P>A DCP Folder is a container for other DCP Folders or
+ Documents.</P>
+ <LI><P>A DCP Document is a container for Document data/content<SPAN
STYLE="font-weight: medium">.
+ The data/content may be anything, a WebDAV server, like an HTTP
+ server, does not necessarily mandate what type of data/content may
+ be contained within Documents. The type of data/content is defined
+ by the <I><FONT FACE="Courier, monospace">MediaType</FONT></I>
+ property which is different from the content type returned from the
+ <FONT FACE="Courier, monospace">getContentType</FONT> method.</SPAN>
+ The <I><FONT FACE="Courier, monospace">MediaType</FONT></I> property
+ is mapped to the equivalent WebDAV property and the WebDAV server
+ calculates the value.</P>
+</OL>
+<P><IMG SRC="webdav-contents.gif" NAME="Graphic1" ALIGN=LEFT WIDTH=446
HEIGHT=199 BORDER=0><BR><BR>
+</P>
+<P><BR><BR>
+</P>
+<H2><BR><BR>
+</H2>
+<H2><BR><BR>
+</H2>
+<H2><BR><BR>
+</H2>
+<H2><BR><BR>
+</H2>
+<H2>Creation Of New DCP Contents</H2>
+<P>DCP Folders implement the interface <FONT FACE="Courier,
monospace">XContentCreator</FONT>.
+DCP Documents and DCP Folders support the command„<I><FONT FACE="Courier,
monospace">insert</FONT></I>.
+To create a new child of a DCP Folder:</P>
+<OL>
+ <LI><P>Let the parent folder create a new content by calling its
+ <FONT FACE="Courier, monospace">createNewContent</FONT> method. The
+ content type to use for new folders is
+ <B>application/vnd.sun.star.webdav-collection</B><SPAN
STYLE="font-weight: medium">.
+ To create a new document, use the type string
+ </SPAN><B>application/http-content</B><SPAN STYLE="font-weight:
medium">.</SPAN></P>
+ <LI><P STYLE="font-weight: medium">Set a title at the new
+ folder/document. ( Let the new child execute a <FONT FACE="Courier,
monospace">setPropertyValues</FONT>
+ – command, which sets at least the property„<I><FONT
FACE="Courier, monospace">Title</FONT></I>
+ to a non-empty value ).</P>
+ <LI><P><SPAN STYLE="font-weight: medium">Let the new child ( not the
+ parent! ) execute the command „<I><FONT FACE="Courier,
monospace">insert</FONT></I>“.
+ This will commit the creation process and persist the newly created
+ content on the WebDAV server</SPAN></P>
+</OL>
+<H2>Authentication</H2>
+<P>DAV resources that require authentication can be accessed using
+the interaction handler mechanism of the UCB. This means, the DAV
+content will call an interaction handler supplied by the client in
+order to let it handle an authentication request. The implementation
+of the interaction handler should be able to collect the user name /
+password from somewhere (i.e. Login Dialog ) and can supply this data
+as an interaction response.</P>
+<H2>Property Handling</H2>
+<P>In addition to the manadatory UCB properties, the DCP supports
+reading and writing all DAV "live" and "dead"
+properties. Some DAV "live" properties are mapped
+additionally to UCB properties and vice versa (i.e. <I>DAV:creationdate</I>
+is mapped to <I>DateCreated</I><SPAN STYLE="font-style: normal">)</SPAN>.
+Adding and removing dead properties is also supported by the
+implementation of the XPropertyContainer interface of a DCP
+Content.</P>
+<P><B>Property Values:</B></P>
+<P STYLE="font-weight: medium">The DCP cannot determine the semantics
+of unknown properties. Thus the values of such properties will always
+be presented as plain text ( as they were returned from the server).</P>
+<P><B>Namespaces:</B></P>
+<P>The following namespaces are well-known to the DCP:</P>
+<UL>
+ <LI><P>DAV:</P>
+ <LI><P><A
HREF="http://apache.org/dav/props/">http://apache.org/dav/props/</A></P>
+</UL>
+<P>Properties with these namespaces can be addresssed using a UCB
+property name which is the concatenation of namespace and name (i.e.
+DAV:getcontentlength)</P>
+<P>Dead proprties with namespaces that are not well-known to the DCP
+can be addressed using a special UCB property name string, that
+contains both the namespace and the property name. Such a special
+property name string must look as follows:</P>
+<P><B><prop:the_propname xmlns:prop="the_namespace"> </B>
+</P>
+<P STYLE="font-weight: medium">The DCP internally applies the
+namespace "<A
HREF="http://ucb.openoffice.org/dav/props/">http://ucb.openoffice.org/dav/props/</A>"
+to all UCB property names:</P>
+<UL>
+ <LI><P STYLE="font-weight: medium">that are not predefined by the
+ UCB API.</P>
+ <LI><P STYLE="font-weight: medium">that do not start with a
+ well-known namespace.</P>
+ <LI><P STYLE="font-weight: medium">that do not use the special
+ property name string to encode namespace and name.</P>
+</UL>
+<P>For example, a client can do an addProperty( ....
+"MyAdditionalProperty" ... ). The resulting DAV property
+will have the name "MyAdditionalProperty", its namespace
+will be "<A
HREF="http://ucb.openoffice.org/dav/props/">http://ucb.openoffice.org/dav/props/</A>".
+However, the DCP client will never see that namespace. He can always
+use the "simple" name "MyAdditionalProperty".</P>
+<P STYLE="font-weight: medium"><BR><BR>
+</P>
+<P><B>DAV / UCB Property Mapping:</B></P>
+<TABLE WIDTH=350 BORDER=1 CELLPADDING=4 CELLSPACING=3>
+ <COL WIDTH=164>
+ <COL WIDTH=159>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TD WIDTH=164>
+ <P STYLE="font-weight:
medium">DAV:creationdate</P>
+ </TD>
+ <TD WIDTH=159>
+ <P STYLE="font-weight: medium">DateCreated</P>
+ </TD>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH=164>
+ <P STYLE="font-weight:
medium">DAV:getlastmodified</P>
+ </TD>
+ <TD WIDTH=159>
+ <P STYLE="font-weight: medium">DateModified</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=164>
+ <P STYLE="font-weight:
medium">DAV:getcontenttype</P>
+ </TD>
+ <TD WIDTH=159>
+ <P STYLE="font-weight: medium">MediaType</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=164>
+ <P STYLE="font-weight:
medium">DAV:getcontentlength</P>
+ </TD>
+ <TD WIDTH=159>
+ <P STYLE="font-weight: medium">Size</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=164>
+ <P STYLE="font-weight:
medium">DAV:resourcetype</P>
+ </TD>
+ <TD WIDTH=159>
+ <P STYLE="font-weight: medium">(used to set
IsFolder, IsDocument,
+ ContentType)</P>
+ </TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<P STYLE="font-weight: medium">
+</P>
+<H2>URL Scheme for DCP Contents</H2>
+<P>Each DCP content has an identifier corresponding to the following
+scheme:</P>
+<P>vnd.sun.star.webdav://host:port/<path></P>
+<P>where <path> is a hierarchical path of the form</P>
+<P><name>/<name>/.../<name></P>
+<P>where <name> is a string encoded according to the URL
+conventions.</P>
+<P><B>It is also possible to use standard HTTP-URLs. </B><SPAN
STYLE="font-weight: medium">In
+this case the implementation will determine by itself, if the
+requested resource is DAV enabled.</SPAN></P>
+<P><BR><BR>
+</P>
+<P><B>Examples:</B></P>
+<P><B>vnd.sun.star.webdav://localhost/davhome/</B></P>
+<P><B>vnd.sun.star.webdav://davserver.com/Documents/report.sdw</B></P>
+<P><B>http://davserver.com/Documents/report.sdw</B></P>
+<P><BR><BR>
+</P>
+<P STYLE="font-weight: medium">Note the that WebDAV URL namespace
+model is the same as the HTTP URL namespace model.</P>
+<P><BR><BR>
+</P>
+<H2 STYLE="page-break-before: always">Appendix</H2>
+<P>The following table gives an overview of the different DCP
+contents.</P>
+<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+ <COL WIDTH=35*>
+ <COL WIDTH=48*>
+ <COL WIDTH=71*>
+ <COL WIDTH=51*>
+ <COL WIDTH=51*>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH=14%>
+ <P><BR>
+ </P>
+ </TH>
+ <TH WIDTH=19%>
+ <P>UCB Type</P>
+ <P>(returned by XContent::getContentType )</P>
+ </TH>
+ <TH WIDTH=28%>
+ <P>Properties</P>
+ </TH>
+ <TH WIDTH=20%>
+ <P>Commands</P>
+ </TH>
+ <TH WIDTH=20%>
+ <P>Interfaces</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH=14%>
+ <P>Document</P>
+ </TD>
+ <TD WIDTH=19%>
+ <P>application/http-content</P>
+ </TD>
+ <TD WIDTH=28%>
+ <P>[readonly] ContentType</P>
+ <P>[readonly] DateCreated</P>
+ <P>[readonly] DateModified</P>
+ <P>[readonly] IsDocument</P>
+ <P>[readonly] IsFolder</P>
+ <P>[readonly] MediaType</P>
+ <P>[readonly] Size</P>
+ <P>Title</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P>getCommandInfo</P>
+ <P>getPropertySetInfo</P>
+ <P>getPropertyValues</P>
+ <P>setPropertyValues</P>
+ <P>insert</P>
+ <P>delete</P>
+ <P>open</P>
+ <P><BR><BR>
+ </P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=20%>
+ <P>lang::<B>XTypeProvider</B>,</P>
+ <P>lang::<B>XServiceInfo</B></P>
+ <P>lang::<B>XComponent</B></P>
+ <P>ucb::<B>XContent</B></P>
+ <P>ucb::<B>XCommandProcessor</B></P>
+ <P>beans::<B>XPropertiesChangeNotifier</B></P>
+ <P>beans::<B>XPropertyContainer</B></P>
+
<P>beans::<B>XPropertySetInfoChangeNotifier</B></P>
+ <P>ucb::<B>XCommandInfoChangeNotifier</B></P>
+ <P>container::<B>XChild</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=14%>
+ <P>Folder</P>
+ </TD>
+ <TD WIDTH=19%>
+
<P>application/vnd.sun.star.webdav-collection</P>
+ </TD>
+ <TD WIDTH=28%>
+ <P>[readonly] ContentType</P>
+ <P>[readonly] DateCreated</P>
+ <P>[readonly] DateModified</P>
+ <P>[readonly] IsDocument</P>
+ <P>[readonly] IsFolder</P>
+ <P>[readonly] MediaType</P>
+ <P>[readonly] Size</P>
+ <P>Title
+ </P>
+ </TD>
+ <TD WIDTH=20%>
+ <P>getCommandInfo</P>
+ <P>getPropertySetInfo</P>
+ <P>getPropertyValues</P>
+ <P>setPropertyValues</P>
+ <P>insert</P>
+ <P>delete</P>
+ <P>open</P>
+ <P>transfer</P>
+ </TD>
+ <TD WIDTH=20%>
+ <P><B>same as DCP Folder</B>, plus
+ </P>
+ <P>ucb::<B>XContentCreator</B></P>
+ </TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<P><BR><BR>
+</P>
+<P><BR><BR>
+</P>
+<DIV ID="sdfootnote1">
+ <P CLASS="sdfootnote" STYLE="margin-bottom: 0.5cm"><A
CLASS="sdfootnotesym" NAME="sdfootnote1sym" HREF="#sdfootnote1anc">1</A>Refer
+ to <A HREF="http://www.webdav.org/">http://www.webdav.org</A> and
+ <A
HREF="http://www.fileangel.org/docs/DAV_2min.htm">http://www.fileangel.org/docs/DAV_2min.html</A>
+ for an overview.</P>
+</DIV>
+</BODY>
+</HTML>
\ No newline at end of file
Propchange:
incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/webdav-ucp.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/wfs.gif
URL:
http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/wfs.gif?rev=1206884&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/ooo/ooo-site/trunk/content/ucb/docs/ucp-ref/wfs.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif