exo-jcr SVN: r2872 - in jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules: jcr and 1 other directories.
by do-not-reply@jboss.org
Author: dkatayev
Date: 2010-08-04 08:10:15 -0400 (Wed, 04 Aug 2010)
New Revision: 2872
Removed:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/architecture.xml
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-advantages.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-compatibility-levels.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-extensions.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-usage.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/why-jcr.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/intro.xml
Log:
EXOJCR-869 documentation updated
Deleted: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/architecture.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/architecture.xml 2010-08-04 10:49:39 UTC (rev 2871)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/architecture.xml 2010-08-04 12:10:15 UTC (rev 2872)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="architecture" xreflabel="architectural">
- <?dbhtml filename="ch-architecture.html"?>
- <chapterinfo>
- <keywordset>
- <keyword>JCR</keyword>
- <keyword>eXoJCR</keyword>
- <keyword>etc</keyword>
- </keywordset>
- </chapterinfo>
- <title>Basic concepts of eXoJCR</title>
-</chapter>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-advantages.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-advantages.xml 2010-08-04 10:49:39 UTC (rev 2871)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-advantages.xml 2010-08-04 12:10:15 UTC (rev 2872)
@@ -3,26 +3,35 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.AdvantagesOfeXoJCR">
<?dbhtml filename="ch-jcr-advantages.html"?>
+
<title>Advantages of eXo JCR</title>
<section>
<title>Advantages for application developers:</title>
- <para>* Data repository and application are isolated from each other so an
- application developer should not learn the details of particular data
- storage's interfaces and can concentrate on business logic of a particular
- application built on top of JCR</para>
+ <itemizedlist>
+ <listitem>
+ <para>Data repository and application are isolated from each other so
+ an application developer should not learn the details of particular
+ data storage's interfaces and can concentrate on business logic of a
+ particular application built on top of JCR.</para>
+ </listitem>
- <para>* Repositories can be simply exchanged between different
- applications without changing the applications themselves. This is the
- matter of the repository configuration</para>
+ <listitem>
+ <para>Repositories can be simply exchanged between different
+ applications without changing the applications themselves. This is the
+ matter of the repository configuration.</para>
+ </listitem>
- <para>* Data storage types/versions can be changed and moreover different
- types of data storages can be combined in one repository data model (of
- course the complexity and work of building interfaces between the
- repository and its data storage don't disappear but these changes are
- isolated in the repository and thus manageable from the point of view of
- the customer)</para>
+ <listitem>
+ <para>Data storage types/versions can be changed and moreover
+ different types of data storages can be combined in one repository
+ data model (of course the complexity and work of building interfaces
+ between the repository and its data storage don't disappear but these
+ changes are isolated in the repository and thus manageable from the
+ point of view of the customer).</para>
+ </listitem>
+ </itemizedlist>
<mediaobject>
<imageobject>
@@ -34,19 +43,31 @@
<section>
<title>Advantages for managers</title>
- <para>* Using a standardized repository for content management reduces the
- risk of being dependent on a particular software vendor and proprietary
- API.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Using a standardized repository for content management reduces
+ the risk of being dependent on a particular software vendor and
+ proprietary API.</para>
+ </listitem>
+ </itemizedlist>
- <para>* Costs for maintaining and developing a content repository based
- custom application is significantly lower than developing and supporting
- your own interfaces and maintaining your own data repository applications
- (staff can be trained once, it is possible to take help from community and
- third party consulters).</para>
+ <itemizedlist>
+ <listitem>
+ <para>Costs for maintaining and developing a content repository based
+ custom application is significantly lower than developing and
+ supporting your own interfaces and maintaining your own data
+ repository applications (staff can be trained once, it is possible to
+ take help from community and third party consulters).</para>
+ </listitem>
+ </itemizedlist>
- <para>* Thanks to flexible layered JCR API (see below) it is possible to
- fit the legacy storage subsystem into new interfaces and again decrease
- the costs and risk of losing data.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Thanks to flexible layered JCR API (see below) it is possible to
+ fit the legacy storage subsystem into new interfaces and again
+ decrease the costs and risk of losing data.</para>
+ </listitem>
+ </itemizedlist>
<para>An extension to the API exists as we can see in the following layer
schema.</para>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-compatibility-levels.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-compatibility-levels.xml 2010-08-04 10:49:39 UTC (rev 2871)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-compatibility-levels.xml 2010-08-04 12:10:15 UTC (rev 2872)
@@ -3,6 +3,7 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.CompatibilityLevels">
<?dbhtml filename="ch-jcr-compatibility-levels.html"?>
+
<title>Compatibility Levels</title>
<section>
@@ -28,49 +29,66 @@
<para>Level 1 features:</para>
- <para>* Initiating a session calling login method with the name of desired
- workspace and client credentials. Involves some security mechanisms (JAAS)
- to authenticate the client and in case the client is authorized to use the
- data from a particular workspace, he retrieves the session with a
- workspace tied to it.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Initiating a session calling login method with the name of
+ desired workspace and client credentials. Involves some security
+ mechanisms (JAAS) to authenticate the client and in case the client is
+ authorized to use the data from a particular workspace, he retrieves
+ the session with a workspace tied to it.</para>
+ </listitem>
- <para>* Using the obtained session the client can retrieve data (items)
- using: traversing the tree, directly accessing a particular item
- (requesting path or UUID) or traversing the query result. So an
- application developer can choose the "best" form depending on the content
- structure and desired operation.</para>
+ <listitem>
+ <para>Using the obtained session the client can retrieve data (items)
+ using: traversing the tree, directly accessing a particular item
+ (requesting path or UUID) or traversing the query result. So an
+ application developer can choose the "best" form depending on the
+ content structure and desired operation.</para>
+ </listitem>
- <para>* Reading property values. All content of a repository is ultimately
- accessed through properties and stored in property values of predefined
- types (Boolean, Binary Data, Double, Long, String) and special types Name,
- Reference, and Path. It is possible to read property value without knowing
- its real name as a primary item.</para>
+ <listitem>
+ <para>Reading property values. All content of a repository is
+ ultimately accessed through properties and stored in property values
+ of predefined types (Boolean, Binary Data, Double, Long, String) and
+ special types Name, Reference, and Path. It is possible to read
+ property value without knowing its real name as a primary item.</para>
+ </listitem>
- <para>* Export to XML. Repository supports two XML/JCR data model
- mappings: system and doc view. The ~~system view~~ provides complete XML
- serialization without loss of information and is somewhat difficult for a
- human to read. In contrast, the ~~document view~~ is well readable but
- does not completely reflect the state of repository, it is used for Xpath
- queries.</para>
+ <listitem>
+ <para>Export to XML. Repository supports two XML/JCR data model
+ mappings: system and doc view. The system view provides complete XML
+ serialization without loss of information and is somewhat difficult
+ for a human to read. In contrast, the document view is well readable
+ but does not completely reflect the state of repository, it is used
+ for Xpath queries.</para>
+ </listitem>
- <para>* Query facility with Xpath syntax. Xpath, originally developed for
- XML, suits the JCR data model as well because the JCR data model is very
- close to XML's one. It is applied to JCR as it would be applied to the
- document view of the serialized repository content, returning a table of
- property names and content matching the query.</para>
+ <listitem>
+ <para>Query facility with Xpath syntax. Xpath, originally developed
+ for XML, suits the JCR data model as well because the JCR data model
+ is very close to XML's one. It is applied to JCR as it would be
+ applied to the document view of the serialized repository content,
+ returning a table of property names and content matching the
+ query.</para>
+ </listitem>
- <para>* Discovery of available node types. Every node should have only one
- ~~primary node~~ type that defines names, types and other characteristics
- of child nodes and properties. It also can have one or more mixin data
- types that defines additional characteristics. Level 1 provides methods
- for discovering available in repository node types and node types of a
- concrete node.</para>
+ <listitem>
+ <para>Discovery of available node types. Every node should have only
+ one primary node type that defines names, types and other
+ characteristics of child nodes and properties. It also can have one or
+ more mixin data types that defines additional characteristics. Level 1
+ provides methods for discovering available in repository node types
+ and node types of a concrete node.</para>
+ </listitem>
- <para>* Transient namespace remapping. Item name can have prefix delimited
- by a single colon ":" character indicating the namespace of this name. It
- is patterned after XML namespaces, prefix is mapped to URI to minimize
- names collisions. In Level 1 a prefix can be temporary overridden by
- another prefix in the scope of a session.</para>
+ <listitem>
+ <para>ransient namespace remapping. Item name can have prefix
+ delimited by a single colon ":" character indicating the namespace of
+ this name. It is patterned after XML namespaces, prefix is mapped to
+ URI to minimize names collisions. In Level 1 a prefix can be temporary
+ overridden by another prefix in the scope of a session.</para>
+ </listitem>
+ </itemizedlist>
<mediaobject>
<imageobject>
@@ -89,28 +107,40 @@
<para>In addition to the Level 1 it must support the following major
features:</para>
- <para>* Adding, moving, copying and removing items inside workspace and
- moving, copying and cloning items between workspaces. The client can also
- compare the persisted state of an item with its unsaved states and either
- save the new state or discard it.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Adding, moving, copying and removing items inside workspace and
+ moving, copying and cloning items between workspaces. The client can
+ also compare the persisted state of an item with its unsaved states
+ and either save the new state or discard it.</para>
+ </listitem>
- <para>* Modifying and writing value of properties. Property types are
- checked and can be converted to the defined format.</para>
+ <listitem>
+ <para>Modifying and writing value of properties. Property types are
+ checked and can be converted to the defined format.</para>
+ </listitem>
- <para>* Import from XML document into the repository as a tree of nodes
- and properties. If the XML document is an export of JCR system view the
- content of repository can be completely restored. If this is not the case,
- the document is interpreted as a document view and the import procedure
- builds a tree of JCR nodes and properties that matches the tree structure
- of the XML document.</para>
+ <listitem>
+ <para>Import from XML document into the repository as a tree of nodes
+ and properties. If the XML document is an export of JCR system view
+ the content of repository can be completely restored. If this is not
+ the case, the document is interpreted as a document view and the
+ import procedure builds a tree of JCR nodes and properties that
+ matches the tree structure of the XML document.</para>
+ </listitem>
- <para>* Assigning node types to nodes. The primary node type is assigned
- when adding a node. This can be done automatically based on the parent
- node type definition and mixin node types.</para>
+ <listitem>
+ <para>Assigning node types to nodes. The primary node type is assigned
+ when adding a node. This can be done automatically based on the parent
+ node type definition and mixin node types.</para>
+ </listitem>
- <para>* Persistent namespaces changes. Add, change and remove namespaces
- stored in the namespace registry, excluding built-in namespaces required
- by JCR.</para>
+ <listitem>
+ <para>Persistent namespaces changes. Add, change and remove namespaces
+ stored in the namespace registry, excluding built-in namespaces
+ required by JCR.</para>
+ </listitem>
+ </itemizedlist>
<mediaobject>
<imageobject>
@@ -120,7 +150,7 @@
</section>
<section>
- <title>1 Optional features</title>
+ <title>Optional features</title>
<para>On top of Level 1 or Level 2 a number of optional features are
defined for a more advanced repository functionality. This includes
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-extensions.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-extensions.xml 2010-08-04 10:49:39 UTC (rev 2871)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-extensions.xml 2010-08-04 12:10:15 UTC (rev 2872)
@@ -3,6 +3,7 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.Extensions">
<?dbhtml filename="ch-jcr-extensions.html"?>
+
<title>JCR Extensions</title>
<section>
@@ -158,18 +159,15 @@
<section>
<title>Related Pages</title>
- <para>Access Control extension</para>
+ <para><link linkend="JCR.AccessControlExtension">Access Control
+ extension</link></para>
- <para>Auditing Backup service CIFS(SMB)</para>
+ <para><link linkend="JCR.Organizationservice">Organization
+ Service</link></para>
- <para>Clustering Groovy REST Services </para>
+ <para><link linkend="JCR.RegistryService">Registry Service</link></para>
- <para>Metadata Extensions </para>
-
- <para>Organization Service </para>
-
- <para>Registry Service </para>
-
- <para>REST Groovy services</para>
+ <para><link linkend="JCR.RESTServicesOnGroovy">REST Groovy
+ services</link></para>
</section>
</chapter>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-usage.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-usage.xml 2010-08-04 10:49:39 UTC (rev 2871)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-usage.xml 2010-08-04 12:10:15 UTC (rev 2872)
@@ -3,6 +3,7 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.UsingJCR">
<?dbhtml filename="ch-jcr-usage.html"?>
+
<title>Using JCR</title>
<section>
@@ -31,9 +32,8 @@
Repository repository = repositoryService.getCurrentRepository();</programlisting>
<para>* Using JNDI as specified in JSR-170. This way you have to
- configure the reference (see eXo <ulink
- url="JNDI Naming configuration>Core.JNDI Naming">JNDI Naming
- configuration>Core.JNDI Naming</ulink> )</para>
+ configure the reference (see eXo <link linkend="Kernel.JNDINaming"> JNDI
+ Naming configuration </link> )</para>
<programlisting> Context ctx = new InitialContext();
Repository repository =(Repository) ctx.lookup("repositoryName");</programlisting>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/why-jcr.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/why-jcr.xml 2010-08-04 10:49:39 UTC (rev 2871)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/why-jcr.xml 2010-08-04 12:10:15 UTC (rev 2872)
@@ -3,6 +3,7 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.WhyuseJCR">
<?dbhtml filename="ch-why-jcr.html"?>
+
<title>Why use JCR?</title>
<section>
@@ -79,23 +80,21 @@
<para>In order to understand the theory of JCR and the API please read
some external documents about this standard:</para>
- <para>* Tom Wheeler, <ulink
- url="http://www.tomwheeler.com/java_content_repository_tomwheeler_20071007.pdf">The
- Java Content Repository</ulink> (2007)</para>
+ <itemizedlist>
+ <listitem>
+ <para>Roy T. Fielding, <ulink
+ url="http://www.day.com/content/dam/day/whitepapers/JSR_170_White_Paper.pdf">JSR
+ 170 Overview: Standardizing the Content Repository Interface</ulink>
+ (March 13, 2005)</para>
+ </listitem>
- <para>* Roy T. Fielding, <ulink
- url="http://www.day.com/content/dam/day/whitepapers/JSR_170_White_Paper.pdf">JSR
- 170 Overview: Standardizing the Content Repository Interface</ulink>
- (March 13, 2005)</para>
-
- <para>* David Nuescheler and Janus Boye, <ulink
- url="http://www.cmswatch.com/Feature/123">JSR-170 What's in it for
- me?</ulink> (April 20, 2005)</para>
-
- <para>* Benjamin Mestrallet, Tuan Nguyen, Gennady Azarenkov, Francois
- Moron and Brice Revenant <ulink
- url="http://www.theserverside.com/tt/articles/article.tss?l=eXoPlatform2">eXo
- Platform v2, Portal, JCR, ECM, Groupware and Business
- Intelligence.</ulink> (January 2006)</para>
+ <listitem>
+ <para>Benjamin Mestrallet, Tuan Nguyen, Gennady Azarenkov, Francois
+ Moron and Brice Revenant <ulink
+ url="http://www.theserverside.com/tt/articles/article.tss?l=eXoPlatform2">eXo
+ Platform v2, Portal, JCR, ECM, Groupware and Business
+ Intelligence.</ulink> (January 2006)</para>
+ </listitem>
+ </itemizedlist>
</section>
</chapter>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/intro.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/intro.xml 2010-08-04 10:49:39 UTC (rev 2871)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/intro.xml 2010-08-04 12:10:15 UTC (rev 2872)
@@ -1,70 +1,71 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id = "JCR.Introduction">
- <?dbhtml filename="ch-intro.html"?>
-
- <title>Introduction in eXoJCR</title>
-
- <section>
- <title>JCR (JSR-170) API main concepts</title>
-
- <para>Java Content Repository API as well as other Java language related
- standards is created within the Java Community Process http://jcp.org/ as
- a result of collaboration of an expert group and the Java community and
- known as JSR-170 (Java Specification Request)
- http://www.jcp.org/en/jsr/detail?id=170.</para>
-
- <section>
- <title>Data model</title>
-
- <para>As the main purpose of content repository is to maintain the data
- - the heart of CR is the data model:</para>
-
- <para><itemizedlist>
- <listitem>
- <para>The main data storage abstraction of JCR's data model is a
- workspace</para>
- </listitem>
-
- <listitem>
- <para>Each repository should have one or more workspaces</para>
- </listitem>
-
- <listitem>
- <para>The content is stored in a workspace as a hierarchy of
- items</para>
- </listitem>
-
- <listitem>
- <para>Each workspace has its own hierarchy of items</para>
- </listitem>
- </itemizedlist></para>
-
- <figure>
- <title>Item hierarchy</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/item-hierarchy.gif" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Node is intended to support the data hierarchy. They are typed
- using namespaced names which allows the content to be structured
- according to standardized constraints. A node may be versioned through
- an associated version graph (optional feature)</para>
-
- <para>Property stored data are values of predefined types (String,
- Binary, Long, Boolean, Double, Date, Reference, Path).</para>
-
- <para>It is important to note that the data model for the interface (the
- repository model) is rarely the same as the data models used by the
- repository's underlying storage subsystems. The repository knows how to
- make the client's changes persistent because that is part of the
- repository configuration, rather than part of the application
- programming task.</para>
- </section>
- </section>
-</chapter>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="JCR.Introduction">
+ <?dbhtml filename="ch-intro.html"?>
+
+ <title>Introduction in eXoJCR</title>
+
+ <section>
+ <title>JCR (JSR-170) API main concepts</title>
+
+ <para>Java Content Repository API as well as other Java language related
+ standards is created within the Java Community Process http://jcp.org/ as
+ a result of collaboration of an expert group and the Java community and
+ known as <ulink
+ url="http://www.jcp.org/en/jsr/detail?id=170">JSR-170</ulink> (Java
+ Specification Request).</para>
+
+ <section>
+ <title>Data model</title>
+
+ <para>As the main purpose of content repository is to maintain the data
+ - the heart of CR is the data model:</para>
+
+ <para><itemizedlist>
+ <listitem>
+ <para>The main data storage abstraction of JCR's data model is a
+ workspace</para>
+ </listitem>
+
+ <listitem>
+ <para>Each repository should have one or more workspaces</para>
+ </listitem>
+
+ <listitem>
+ <para>The content is stored in a workspace as a hierarchy of
+ items</para>
+ </listitem>
+
+ <listitem>
+ <para>Each workspace has its own hierarchy of items</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <figure>
+ <title>Item hierarchy</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/item-hierarchy.gif" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Node is intended to support the data hierarchy. They are typed
+ using namespaced names which allows the content to be structured
+ according to standardized constraints. A node may be versioned through
+ an associated version graph (optional feature)</para>
+
+ <para>Property stored data are values of predefined types (String,
+ Binary, Long, Boolean, Double, Date, Reference, Path).</para>
+
+ <para>It is important to note that the data model for the interface (the
+ repository model) is rarely the same as the data models used by the
+ repository's underlying storage subsystems. The repository knows how to
+ make the client's changes persistent because that is part of the
+ repository configuration, rather than part of the application
+ programming task.</para>
+ </section>
+ </section>
+</chapter>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml 2010-08-04 10:49:39 UTC (rev 2871)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml 2010-08-04 12:10:15 UTC (rev 2872)
@@ -9,9 +9,6 @@
<xi:include href="jcr/intro.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="jcr/architecture.xml"
- xmlns:xi="http://www.w3.org/2001/XInclude" />
-
<!-- concepts -->
<xi:include href="jcr/concepts/why-jcr.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
14 years, 2 months
exo-jcr SVN: r2871 - jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2010-08-04 06:49:39 -0400 (Wed, 04 Aug 2010)
New Revision: 2871
Added:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/aggregation-rule.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/ignore-accent-symbols.xml
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-and-settings.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
Log:
EXOJCR-869: jcr-query-usecases : fulltext search ported
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/aggregation-rule.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/aggregation-rule.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/aggregation-rule.xml 2010-08-04 10:49:39 UTC (rev 2871)
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.AggregationRule">
+ <title>Find nt:file node by content of child jcr:content node</title>
+
+ <para>The node type nt:file represents a file. It requires a single child
+ node, called jcr:content. This node type represents images and other binary
+ content in a JCRWiki entry. The node type of jcr:conent is nt:resource which
+ represents the actual content of a file.</para>
+
+ <para>Find node with the primary type is 'nt:file' and which whose
+ 'jcr:content' child node contains "cats".</para>
+
+ <para>Normally, we can't find nodes (in our case) using just JCR SQL or
+ XPath queries. But we can configure indexing so that nt:file aggregates
+ jcr:content child node.</para>
+
+ <para>So, change indexing-configuration.xml:</para>
+
+ <programlisting><?xml version="1.0"?>
+<!DOCTYPE configuration SYSTEM "http://www.exoplatform.org/dtd/indexing-configuration-1.2.dtd">
+<configuration xmlns:jcr="http://www.jcp.org/jcr/1.0"
+ xmlns:nt="http://www.jcp.org/jcr/nt/1.0">
+ <aggregate primaryType="nt:file">
+ <include>jcr:content</include>
+ <include>jcr:content/*</include>
+ <include-property>jcr:content/jcr:lastModified</include-property>
+ </aggregate>
+</configuration></programlisting>
+
+ <para>Now the content of 'nt:file' and 'jcr:content' ('nt:resource') nodes
+ are concatenated in a single Lucene document. Then, we can make a fulltext
+ search query by content of 'nt:file'; this search includes the content of
+ child 'jcr:content' node.</para>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <para>Repository contains different nt:file nodes.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (nt:file)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>jcr:content (nt:resource) jcr:data = "The quick brown
+ fox jumps over the lazy dog."</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>document2 (nt:file)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>jcr:content (nt:resource) jcr:data = "Dogs do not like
+ cats."</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>document3 (nt:file)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>jcr:content (nt:resource) jcr:data = "Cats jumping
+ high."</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:file WHERE CONTAINS(*,'cats')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:file)[jcr:contains(.,'cats')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document2" and "document3".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is:</para>
+
+ <table>
+ <title>Table content</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>/document2</entry>
+
+ <entry>1030</entry>
+ </row>
+
+ <row>
+ <entry>/document3</entry>
+
+ <entry>1030</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-and-settings.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-and-settings.xml 2010-08-04 09:10:59 UTC (rev 2870)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-and-settings.xml 2010-08-04 10:49:39 UTC (rev 2871)
@@ -151,7 +151,7 @@
can it be searched like fulltext by property or not.</para>
<para>Only two property types are indexed as fulltext searcheable: STRING
- and BINARY. </para>
+ and BINARY.</para>
<table>
<title>Fulltext search by different properties</title>
@@ -206,23 +206,23 @@
<itemizedlist>
<listitem>
- <para><link linkend="???">JCR.Fulltext Search by
- Property</link></para>
+ <para><link linkend="JCR.FulltextSearchByProperty">JCR.Fulltext Search
+ by Property</link></para>
</listitem>
<listitem>
- <para><link linkend="???">JCR.Fulltext Search by All
- Properties</link></para>
+ <para><link linkend="JCR.FulltextSearchByAllProperties">JCR.Fulltext
+ Search by All Properties</link></para>
</listitem>
<listitem>
- <para><link linkend="???">Find nt:file document by content of its
- child jcr:content node>Aggregation rule</link></para>
+ <para><link linkend="JCR.AggregationRule">Find nt:file document by
+ content of its child jcr:content node</link></para>
</listitem>
<listitem>
- <para><link linkend="???">How to set a new analyzer. Accent symbols
- ignoring>JCR.Ignore Accent Symbols</link></para>
+ <para><link linkend="JCR.IgnoreAccentSymbols">How to set a new
+ analyzer. Accent symbols ignoring</link></para>
</listitem>
</itemizedlist>
</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/ignore-accent-symbols.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/ignore-accent-symbols.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/ignore-accent-symbols.xml 2010-08-04 10:49:39 UTC (rev 2871)
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.IgnoreAccentSymbols">
+ <title>Ignore Accent Symbols. New Analyzer Setting.</title>
+
+ <para>In this example we will create new Analyzer, set it in QueryHandler
+ configuration, and make query for check it.</para>
+
+ <para>Standard analyzer do not normalize accents like é,è,à. So word like
+ 'tréma' will be stored to index as 'tréma'. But what if we want normalize
+ such symbols? Wa want store 'tréma' word as 'trema'.</para>
+
+ <para>There is two ways of setting up new Analyzer (no matter standarts or
+ our):</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>first is creating descendant class of SearchIndex with new
+ Analyzer (see <link linkend="JCR.SearchConfiguration">Search
+ Configuration</link>);</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>There is only one way - create new Analyzer (if there is no previously
+ created and accepted for our needs) and set it in Search index.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Second is - register new Analyzer in QueryHandler configuration
+ (this one eccepted since 1.12 version);</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>We will use last one:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Create new MyAnalyzer</para>
+ </listitem>
+ </itemizedlist>
+
+ <programlisting>public class MyAnalyzer extends Analyzer
+{
+ @Override
+ public TokenStream tokenStream(String fieldName, Reader reader)
+ {
+ StandardTokenizer tokenStream = new StandardTokenizer(reader);
+ // process all text with standard filter
+ // removes 's (as 's in "Peter's") from the end of words and removes dots from acronyms.
+ TokenStream result = new StandardFilter(tokenStream);
+ // this filter normalizes token text to lower case
+ result = new LowerCaseFilter(result);
+ // this one replaces accented characters in the ISO Latin 1 character set (ISO-8859-1) by their unaccented equivalents
+ result = new ISOLatin1AccentFilter(result);
+ // and finally return token stream
+ return result;
+ }
+}</programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>then, register new MyAnalyzer in configuration</para>
+ </listitem>
+ </itemizedlist>
+
+ <programlisting><workspace name="ws">
+ ...
+ <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="analyzer" value="org.exoplatform.services.jcr.impl.core.MyAnalyzer"/>
+ ...
+ </properties>
+ </query-handler>
+ ...
+</workspace></programlisting>
+
+ <para>Now is time to check it with query:</para>
+
+ <para>Find node with mixin type 'mix:title' where 'jcr:title' contains
+ "tréma" and "naïve" strings.</para>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <para>Repository filled by nodes with mixin type 'mix:title' and different
+ values of 'jcr:title' property.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>node1 (mix:title) jcr:title = "tréma blabla naïve"</para>
+ </listitem>
+
+ <listitem>
+ <para>node2 (mix:title) jcr:description = "trema come text
+ naive"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(jcr:title, 'tr\u00E8ma na\u00EFve')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:contains(@jcr:title, 'tr\u00E8ma na\u00EFve')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetch result</title>
+
+ <para>Lets get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "node1" and "node2". How is it possible?
+ Remember that our MyAnalyzer transforms 'tréma' word to 'trema'. So node2
+ accept our constraints to.</para>
+
+ <para>Also we can get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table contant is</para>
+
+ <table>
+ <title>Table content</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>cr:title</entry>
+
+ <entry>...</entry>
+
+ <entry>cr:path</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>trèma blabla naïve</entry>
+
+ <entry>...</entry>
+
+ <entry>/node1</entry>
+ </row>
+
+ <row>
+ <entry>trema come text naive</entry>
+
+ <entry>...</entry>
+
+ <entry>/node2</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-04 09:10:59 UTC (rev 2870)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-04 10:49:39 UTC (rev 2871)
@@ -239,17 +239,13 @@
</listitem>
<listitem>
- <para><ulink
- url="Find nt:file document by content of child jcr:content node>Aggregation rule">Find
- nt:file document by content of child jcr:content node>Aggregation
- rule</ulink></para>
+ <para><link linkend="JCR.AggregationRule">Find nt:file document by
+ content of child jcr:content node</link></para>
</listitem>
<listitem>
- <para><ulink
- url="How to set new Analyzer. Accent symblos ignoring>JCR.Ignore Accent Symbols">How
- to set new Analyzer. Accent symblos ignoring>JCR.Ignore Accent
- Symbols</ulink></para>
+ <para><link linkend="JCR.IgnoreAccentSymbols">How to set new
+ Analyzer. Accent symblos ignoring</link></para>
</listitem>
</itemizedlist>
</section>
14 years, 2 months
exo-jcr SVN: r2870 - in jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules: jcr/searching and 1 other directory.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2010-08-04 05:10:59 -0400 (Wed, 04 Aug 2010)
New Revision: 2870
Added:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-and-settings.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-by-all-properties.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-by-property.xml
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-path-or-name.xml
Log:
EXOJCR-869: jcr-query-usecases : fulltext search ported
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-and-settings.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-and-settings.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-and-settings.xml 2010-08-04 09:10:59 UTC (rev 2870)
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="JCR.FulltextSearchAndSettings">
+ <title>Fulltext Search And Affecting Settings</title>
+
+ <section>
+ <title>Property content indexing</title>
+
+ <para>Each property of a node (if it is indexable) is processed with
+ Lucene analyzer and stored in Lucene index. That's called indexing of a
+ property. After that we can perform a fulltext search among these indexed
+ properties.</para>
+ </section>
+
+ <section>
+ <title>Lucene Analyzers</title>
+
+ <para>The sense of analyzers is to transform all strings stored in the
+ index in a well-defined condition. The same analyzer(s) is/are used when
+ searching in order to adapt the query string to the index reality.</para>
+
+ <para>Therefore, performing the same query using different analyzers can
+ return different results.</para>
+
+ <para>Now, let's see how the same string is transformed by different
+ analyzers.</para>
+
+ <table>
+ <title>"The quick brown fox jumped over the lazy dogs"</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Analyzer</entry>
+
+ <entry>Parsed</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>org.apache.lucene.analysis.WhitespaceAnalyzer</entry>
+
+ <entry>[The] [quick] [brown] [fox] [jumped] [over] [the] [lazy]
+ [dogs]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.SimpleAnalyzer</entry>
+
+ <entry>[the] [quick] [brown] [fox] [jumped] [over] [the] [lazy]
+ [dogs]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.StopAnalyzer</entry>
+
+ <entry>[quick] [brown] [fox] [jumped] [over] [lazy] [dogs]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.standard.StandardAnalyzer</entry>
+
+ <entry>[quick] [brown] [fox] [jumped] [over] [lazy] [dogs]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.snowball.SnowballAnalyzer</entry>
+
+ <entry>[quick] [brown] [fox] [jump] [over] [lazi] [dog]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.standard.StandardAnalyzer
+ (configured without stop word - jcr default analyzer)</entry>
+
+ <entry>[the] [quick] [brown] [fox] [jumped] [over] [the] [lazy]
+ [dogs]</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <table>
+ <title>"XY&Z Corporation - xyz(a)example.com"</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Analyzer</entry>
+
+ <entry>Parsed</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>org.apache.lucene.analysis.WhitespaceAnalyzer</entry>
+
+ <entry>[XY&Z] [Corporation] [-] [xyz(a)example.com]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.SimpleAnalyzer</entry>
+
+ <entry>[xy] [z] [corporation] [xyz] [example] [com]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.StopAnalyzer</entry>
+
+ <entry>[xy] [z] [corporation] [xyz] [example] [com]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.standard.StandardAnalyzer</entry>
+
+ <entry>[xy&z] [corporation] [xyz@example] [com]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.snowball.SnowballAnalyzer</entry>
+
+ <entry>[xy&z] [corpor] [xyz@exampl] [com]</entry>
+ </row>
+
+ <row>
+ <entry>org.apache.lucene.analysis.standard.StandardAnalyzer
+ (configured without stop word - jcr default analyzer)</entry>
+
+ <entry>[xy&z] [corporation] [xyz@example] [com]</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <note>
+ <para>StandardAnalyzer is the default analyzer in exo's jcr search
+ engine. But we do not use stop words.</para>
+ </note>
+
+ <para>You can assign your analyzer as described in <link
+ linkend="JCR.SearchConfiguration">Search Configuration</link></para>
+ </section>
+
+ <section>
+ <title>How are different properties indexed?</title>
+
+ <para>Different properties are indexed in different ways, this affect to
+ can it be searched like fulltext by property or not.</para>
+
+ <para>Only two property types are indexed as fulltext searcheable: STRING
+ and BINARY. </para>
+
+ <table>
+ <title>Fulltext search by different properties</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Property Type</entry>
+
+ <entry>Fulltext search by all properties</entry>
+
+ <entry>Fulltext search by exact property</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>STRING</entry>
+
+ <entry>YES</entry>
+
+ <entry>YES</entry>
+ </row>
+
+ <row>
+ <entry>BINARY</entry>
+
+ <entry>YES</entry>
+
+ <entry>NO</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>For example. We have property jcr:data (it' BINARY). Its stored
+ well. But you will newer find any string with query like:</para>
+
+ <programlisting>SELECT * FROM nt:resource WHERE CONTAINS(jcr:data, 'some string')</programlisting>
+
+ <para>Because, BINARY is not searchable by fulltext search on exact
+ property.</para>
+
+ <para>But, next query will return result (off course if node has searched
+ data):</para>
+
+ <programlisting>SELECT * FROM nt:resource WHERE CONTAINS( * , 'some string')</programlisting>
+ </section>
+
+ <section>
+ <title>Fulltext search query examples</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><link linkend="???">JCR.Fulltext Search by
+ Property</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="???">JCR.Fulltext Search by All
+ Properties</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="???">Find nt:file document by content of its
+ child jcr:content node>Aggregation rule</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="???">How to set a new analyzer. Accent symbols
+ ignoring>JCR.Ignore Accent Symbols</link></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Different analyzers in action</title>
+
+ <para>First of all, we will fill repository by nodes with mixin type
+ 'mix:title' and different values of 'jcr:description' property.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:description = "The quick brown fox
+ jumped over the lazy dogs"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:description = "Brown fox live in
+ forest."</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:description = "Fox is a nice
+ animal."</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+
+ <para>Lets see analyzers effect closer. In first case we use base jcr
+ settings, so, as mentioned above, string "The quick brown fox jumped over
+ the lazy dogs" will be transformed to set {[the] [quick] [brown] [fox]
+ [jumped] [over] [the] [lazy] [dogs] }</para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(jcr:description, 'the')";
+// create query
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para>NodeIterator will return "document1".</para>
+
+ <para>Now change default analyzer to
+ org.apache.lucene.analysis.StopAnalyzer. Fill repository again (new
+ Analyzer must process nodes properties) and run same query again. It will
+ return nothing, because stop words like "the" will be excluded from parsed
+ string set.</para>
+ </section>
+</chapter>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-by-all-properties.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-by-all-properties.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-by-all-properties.xml 2010-08-04 09:10:59 UTC (rev 2870)
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.FulltextSearchByAllProperties">
+ <title>Fulltext Search by All Properties in Node</title>
+
+ <para>Find nodes with mixin type 'mix:title' where any property contains
+ 'break' string.</para>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <para>Repository filled with different nodes with mixin type 'mix:title'
+ and different values of 'jcr:title' and 'jcr:description'
+ properties.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title ='Star Wars' jcr:description
+ = 'Dart rules!!'</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title ='Prison
+ <emphasis>break</emphasis>' jcr:description = 'Run, Forest, run
+ ))'</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title ='Titanic' jcr:description =
+ 'An iceberg <emphasis>break</emphasis>s a ship.'</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(*,'break')";
+// create query
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want find 'document1'
+String xpathStatement = "//element(*,mix:title)[jcr:contains(.,'break')]";
+// create query
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetch result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+while(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document1" and "document2".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is:</para>
+
+ <table>
+ <title>Table content</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>jcr:description</entry>
+
+ <entry>...</entry>
+
+ <entry>jcr:path</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Prison break.</entry>
+
+ <entry>Run, Forest, run ))</entry>
+
+ <entry>...</entry>
+
+ <entry>/document2</entry>
+ </row>
+
+ <row>
+ <entry>Titanic</entry>
+
+ <entry>An iceberg breaks a ship.</entry>
+
+ <entry>...</entry>
+
+ <entry>/document3</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-by-property.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-by-property.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/fulltext-search-by-property.xml 2010-08-04 09:10:59 UTC (rev 2870)
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.FulltextSearchByProperty">
+ <title>Fulltext Search by Property</title>
+
+ <para>Find all nodes containing a mixin type 'mix:title' and whose
+ 'jcr:description' contains "forest" string.</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository is filled with nodes of the mixin type 'mix:title'
+ and different values of the 'jcr:description' property.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:description = "The quick brown fox
+ jumps over the lazy dog."</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:description = "The brown fox lives
+ in a <emphasis role="underscore">forest</emphasis>." // This is
+ the node we want to find</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:description = "The fox is a nice
+ animal."</para>
+ </listitem>
+
+ <listitem>
+ <para>document4 (nt:unstructured) jcr:description = "There is the
+ word forest, too."</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want find document which contains "forest" word
+String sqlStatement = "SELECT \* FROM mix:title WHERE CONTAINS(jcr:description, 'forest')";
+// create query
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want find document which contains "forest" word
+String xpathStatement = "//element(*,mix:title)[jcr:contains(@jcr:description, 'forest')]";
+// create query
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document2".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is:</para>
+
+ <table>
+ <title>Table content</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>jcr:description</entry>
+
+ <entry>...</entry>
+
+ <entry>jcr:path</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>The brown fox lives in forest.</entry>
+
+ <entry>...</entry>
+
+ <entry>/document2</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-04 07:59:52 UTC (rev 2869)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-04 09:10:59 UTC (rev 2870)
@@ -224,17 +224,18 @@
</section>
<section>
- <title><link linkend="???">Fulltext Search</link></title>
+ <title><link linkend="JCR.FulltextSearchAndSettings">Fulltext
+ Search</link></title>
<itemizedlist>
<listitem>
- <para><link linkend="???">JCR.Fulltext Search by
- Property</link></para>
+ <para><link linkend="JCR.FulltextSearchByProperty">Fulltext Search
+ by Property</link></para>
</listitem>
<listitem>
- <para><link linkend="???">JCR.Fulltext Search by All
- Properties</link></para>
+ <para><link linkend="JCR.FulltextSearchByAllProperties">Fulltext
+ Search by All Properties</link></para>
</listitem>
<listitem>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-path-or-name.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-path-or-name.xml 2010-08-04 07:59:52 UTC (rev 2869)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-path-or-name.xml 2010-08-04 09:10:59 UTC (rev 2870)
@@ -24,8 +24,8 @@
</itemizedlist>
<para>If no order specification is supplied in the query statement,
- implementations may support document order on the result nodes (see 6.6.4.2
- Document Order). And its sorted by order number.</para>
+ implementations may support document order on the result nodes (see jsr-170
+ / 6.6.4.2 Document Order). And its sorted by order number.</para>
<para>By default (if query do not contains any ordering statements) result
nodes is sorted by document order.</para>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml 2010-08-04 07:59:52 UTC (rev 2869)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml 2010-08-04 09:10:59 UTC (rev 2870)
@@ -95,8 +95,13 @@
<xi:include href="jcr/searching/jcr-query-usecases.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<xi:include href="jcr/searching/searching-repository-content.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="jcr/searching/fulltext-search-and-settings.xml"
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- protocols -->
@@ -118,27 +123,27 @@
<!-- other -->
<xi:include href="jcr/statistics.xml"
- xmlns:xi="http://www.w3.org/2001/XInclude" />
-
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<xi:include href="jcr/other/acl.xml"
- xmlns:xi="http://www.w3.org/2001/XInclude" />
-
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<xi:include href="jcr/other/acl-ext.xml"
- xmlns:xi="http://www.w3.org/2001/XInclude" />
-
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<xi:include href="jcr/other/link-producer.xml"
- xmlns:xi="http://www.w3.org/2001/XInclude" />
-
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<xi:include href="jcr/other/binary-values-processing.xml"
- xmlns:xi="http://www.w3.org/2001/XInclude" />
-
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<xi:include href="jcr/other/jcr-organization-service.xml"
- xmlns:xi="http://www.w3.org/2001/XInclude" />
-
-
-
-
-
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+
+
+
<xi:include href="jcr/other/jcr-resources.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
14 years, 2 months
exo-jcr SVN: r2869 - jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2010-08-04 03:59:52 -0400 (Wed, 04 Aug 2010)
New Revision: 2869
Added:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-descendant.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-path-or-name.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-property.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-score.xml
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
Log:
EXOJCR-869: jcr-query-usecases : order by ported
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-03 15:08:05 UTC (rev 2868)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-04 07:59:52 UTC (rev 2869)
@@ -203,20 +203,22 @@
<itemizedlist>
<listitem>
- <para><link linkend="???">JCR.Order by Property</link></para>
+ <para><link linkend="JCR.OrderByProperty">Order by
+ Property</link></para>
</listitem>
<listitem>
- <para><link linkend="???">JCR.Order by Descendant Node
+ <para><link linkend="JCR.OrderByDescendant">Order by Descendant Node
Property</link></para>
</listitem>
<listitem>
- <para><link linkend="???">JCR.Order by Score</link></para>
+ <para><link linkend="JCR.OrderByScore">Order by Score</link></para>
</listitem>
<listitem>
- <para><link linkend="???">JCR.Order by Path or Name</link></para>
+ <para><link linkend="JCR.OrderByPathOrName">Order by Path or
+ Name</link></para>
</listitem>
</itemizedlist>
</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-descendant.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-descendant.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-descendant.xml 2010-08-04 07:59:52 UTC (rev 2869)
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.OrderByDescendant">
+ <title>Order by Descendant Nodes Property (XPath only)</title>
+
+ <para>Find all nodes with the primary type 'nt:unstructured' and sort them
+ by the property value of descendant nodes with the relative path
+ '/a/b'.</para>
+
+ <note>
+ <para>This ORDER BY construction only works in XPath!</para>
+ </note>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>node1 (nt:unstructured)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>a (nt:unstructured)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>b (nt:unstructured)</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>node2 (nt:unstructured)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>a (nt:unstructured)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>b (nt:unstructured)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>c (nt:unstructured) prop = "a"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>node3 (nt:unstructured)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>a (nt:unstructured)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>b (nt:unstructured)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>c (nt:unstructured) prop = "b"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "/jcr:root/* order by a/b/c/@prop descending;
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return nodes in the following order -
+ "node3","node2" and "node1".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is:</para>
+
+ <table>
+ <title>Table content</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>jcr:primaryType</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>nt:unstructured</entry>
+
+ <entry>/testroot/node3</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>nt:unstructured</entry>
+
+ <entry>/testroot/node2</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>nt:unstructured</entry>
+
+ <entry>/testroot/node1</entry>
+
+ <entry>1000</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-path-or-name.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-path-or-name.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-path-or-name.xml 2010-08-04 07:59:52 UTC (rev 2869)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.OrderByPathOrName">
+ <title>Order by Path or Name</title>
+
+ <warning>
+ <para>Order by jcr:path or jcr:name does not supported.</para>
+ </warning>
+
+ <para>There is two ways to ordering results, when path may be used as
+ criteria:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>order by property with value type NAME or PATH (jcr supports
+ it)</para>
+ </listitem>
+
+ <listitem>
+ <para>order by jcr:path or jcr:name - sort by exact path or name of node
+ (jcr do not supports it)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>If no order specification is supplied in the query statement,
+ implementations may support document order on the result nodes (see 6.6.4.2
+ Document Order). And its sorted by order number.</para>
+
+ <para>By default (if query do not contains any ordering statements) result
+ nodes is sorted by document order.</para>
+
+ <programlisting>SELECT * FROM nt:unstructured WHERE jcr:path LIKE 'testRoot/%'</programlisting>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-property.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-property.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-property.xml 2010-08-04 07:59:52 UTC (rev 2869)
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.OrderByProperty">
+ <title>Sort Nodes by Property</title>
+
+ <para>Select all nodes with the mixin type ''mix:title' and order them by
+ the 'prop_pagecount' property.</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains several mix:title nodes, where
+ prop_pagecount has different values.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="War and peace"
+ jcr:description="roman" prop_pagecount=4</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="Cinderella"
+ jcr:description="fairytale" prop_pagecount=7</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="Puss in Boots"
+ jcr:description="fairytale" prop_pagecount=1</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title ORDER BY prop_pagecount ASC";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title) order by prop_pagecount ascending";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>The NodeIterator will return nodes in the following order
+ "document3", "document1", "document2".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is:</para>
+
+ <table>
+ <title>Table content</title>
+
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>jcr:description</entry>
+
+ <entry>prop_pagecount</entry>
+
+ <entry> jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Puss in Boots</entry>
+
+ <entry>fairytale</entry>
+
+ <entry>1</entry>
+
+ <entry>/document3</entry>
+
+ <entry>1405</entry>
+ </row>
+
+ <row>
+ <entry>War and peace</entry>
+
+ <entry>roman</entry>
+
+ <entry>4</entry>
+
+ <entry>/document1</entry>
+
+ <entry>1405</entry>
+ </row>
+
+ <row>
+ <entry>Cinderella</entry>
+
+ <entry>fairytale</entry>
+
+ <entry>7</entry>
+
+ <entry>/document2</entry>
+
+ <entry>1405</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-score.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-score.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/order-by-score.xml 2010-08-04 07:59:52 UTC (rev 2869)
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.OrderByScore">
+ <title>Order by Score</title>
+
+ <para>Select all nodes with the mixin type 'mix:title' containing any word
+ from the set {'brown','fox','jumps'}. Then sort result by the score in
+ ascending node. This way nodes that matches better the query statement are
+ ordered at the last positions in the result list.</para>
+
+ <section>
+ <title>Info</title>
+
+ <para>SQL and XPath queries support both score constructions jcr:score and
+ jcr:score()</para>
+
+ <programlisting>SELECT * FROM nt:base ORDER BY jcr:score [ASC|DESC]
+SELECT * FROM nt:base ORDER BY jcr:score()[ASC|DESC]
+
+//element(*,nt:base) order by jcr:score() [descending]
+//element(*,nt:base) order by @jcr:score [descending]</programlisting>
+
+ <para>Do not use "ascending" combined with jcr:score in XPath. The
+ following XPath statement may throw an exception:</para>
+
+ <programlisting>... order by jcr:score() ascending</programlisting>
+
+ <para>Do not set any ordering specifier - ascending is default:</para>
+
+ <programlisting>... order by jcr:score()</programlisting>
+ </section>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains mix:title nodes, where the jcr:description
+ has different values.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:description="The quick brown fox
+ jumps over the lazy dog."</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:description="The brown fox lives
+ in the forest."</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:description="The fox is a nice
+ animal."</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(*, 'brown OR fox OR jumps') ORDER BY jcr:score() ASC";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:contains(., 'brown OR fox OR jumps')] order by jcr:score()";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return nodes in the following order: "document3",
+ "document2", "document1".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is:</para>
+
+ <table>
+ <title>Table content</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry> jcr:description</entry>
+
+ <entry>...</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>The fox is a nice animal.</entry>
+
+ <entry>...</entry>
+
+ <entry>/document3</entry>
+
+ <entry>2512</entry>
+ </row>
+
+ <row>
+ <entry>The brown fox lives in the forest.</entry>
+
+ <entry>...</entry>
+
+ <entry>/document2</entry>
+
+ <entry>3595</entry>
+ </row>
+
+ <row>
+ <entry>The quick brown fox jumps over the lazy dog.</entry>
+
+ <entry>...</entry>
+
+ <entry>/document1</entry>
+
+ <entry>5017</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
14 years, 2 months
exo-jcr SVN: r2868 - jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2010-08-03 11:08:05 -0400 (Tue, 03 Aug 2010)
New Revision: 2868
Added:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/child-node-constraint.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/exaxt-path-constraint.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-all-descendant-nodes.xml
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
Log:
EXOJCR-869: jcr-query-usecases ported
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/child-node-constraint.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/child-node-constraint.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/child-node-constraint.xml 2010-08-03 15:08:05 UTC (rev 2868)
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.ChildNodeConstraint">
+ <title>Child Node Constraint</title>
+
+ <para>Find all nodes with the primary type 'nt:folder' that are children of
+ node by path "/root1/root2". Only find children, do not find further
+ descendants.</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository is filled by "nt:folder" nodes. The nodes are placed
+ in a multilayer tree.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder1 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder2 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder3 (nt:folder) // This node we want to
+ find</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder4 (nt:folder) // This node is not child
+ but a descendant of '/folder1/folder2/'.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>folder5 (nt:folder) // This node we want to
+ find</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <para>The use of "%" in the LIKE statement includes any string, therefore
+ there is a second LIKE statement that excludes that the string contains
+ "/". This way child nodes are included but descendant nodes are
+ excluded.</para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:folder WHERE jcr:path LIKE '/folder1/folder2/%' AND NOT jcr:path LIKE '/folder1/folder2/%/%'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "/jcr:root/folder1[1]/folder2[1]/element(*,nt:folder)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>The NodeIterator will return "folder3" and "folder5".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>The table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>/folder1/folder2/folder3</entry>
+
+ <entry>1707</entry>
+ </row>
+
+ <row>
+ <entry>/folder1/folder2/folder5</entry>
+
+ <entry>1707</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/exaxt-path-constraint.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/exaxt-path-constraint.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/exaxt-path-constraint.xml 2010-08-03 15:08:05 UTC (rev 2868)
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.ExactPathConstraint">
+ <title>Exact Path Constraint</title>
+
+ <para>Find a node with the primary type 'nt:file' that is located on the
+ exact path "/folder1/folder2/document1".</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>Repository filled by different nodes. There are several folders
+ which contain other folders and files.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder1 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder2 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (nt:file) // This document we want to
+ find</para>
+ </listitem>
+
+ <listitem>
+ <para>folder3 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (nt:file)</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want find 'document1'
+String sqlStatement = "SELECT * FROM nt:file WHERE jcr:path = '/folder1/folder2/document1'";
+// create query
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want to find 'document1'
+String xpathStatement = "/jcr:root/folder1[1]/folder2[1]/element(document1,nt:file)[1]";
+// create query
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para>Remark: The indexes [1] are used in order to get the same result as
+ the SQL statement. SQL by default only returns the first node, whereas
+ XPath fetches by default all nodes.</para>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return expected "document1".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>/folder1/folder2/document1</entry>
+
+ <entry>1030</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-all-descendant-nodes.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-all-descendant-nodes.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-all-descendant-nodes.xml 2010-08-03 15:08:05 UTC (rev 2868)
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.FindAllDescendantNodes">
+ <title>Find All Descendant Nodes</title>
+
+ <para>Find all nodes with the primary type 'nt:folder' that are descendants
+ of the node "/folder1/folder2".</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains "nt:folder" nodes. The nodes are placed in a
+ multilayer tree.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder1 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder2 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder3 (nt:folder) // This node we want to
+ find</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder4 (nt:folder) // This node we want to
+ find</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>folder5 (nt:folder) // This node we want to
+ find</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:folder WHERE jcr:path LIKE '/folder1/folder2/%'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "/jcr:root/folder1[1]/folder2[1]//element(*,nt:folder)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>The NodeIterator will return "folder3", "folder4" and "folder5"
+ nodes.</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>jcr:path</entry>
+
+ <entry> jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>/folder1/folder2/folder3</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>/folder1/folder2/folder3/folder4</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>/folder1/folder2/folder5</entry>
+
+ <entry>1000</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-03 14:40:37 UTC (rev 2867)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-03 15:08:05 UTC (rev 2868)
@@ -182,18 +182,18 @@
<itemizedlist>
<listitem>
- <para><ulink url="JCR.Exact Path Constraint">JCR.Exact Path
- Constraint</ulink></para>
+ <para><link linkend="JCR.ExactPathConstraint">Exact Path
+ Constraint</link></para>
</listitem>
<listitem>
- <para><ulink url="JCR.Child Node Constraint">JCR.Child Node
- Constraint</ulink></para>
+ <para><link linkend="JCR.ChildNodeConstraint">Child Node
+ Constraint</link></para>
</listitem>
<listitem>
- <para><ulink url="JCR.Find All Descendant Nodes">JCR.Find All
- Descendant Nodes</ulink></para>
+ <para><link linkend="JCR.FindAllDescendantNodes">Find All Descendant
+ Nodes</link></para>
</listitem>
</itemizedlist>
</section>
@@ -203,40 +203,36 @@
<itemizedlist>
<listitem>
- <para><ulink url="JCR.Order by Property">JCR.Order by
- Property</ulink></para>
+ <para><link linkend="???">JCR.Order by Property</link></para>
</listitem>
<listitem>
- <para><ulink url="JCR.Order by Descendant Node Property">JCR.Order
- by Descendant Node Property</ulink></para>
+ <para><link linkend="???">JCR.Order by Descendant Node
+ Property</link></para>
</listitem>
<listitem>
- <para><ulink url="JCR.Order by Score">JCR.Order by
- Score</ulink></para>
+ <para><link linkend="???">JCR.Order by Score</link></para>
</listitem>
<listitem>
- <para><ulink url="JCR.Order by Path or Name">JCR.Order by Path or
- Name</ulink></para>
+ <para><link linkend="???">JCR.Order by Path or Name</link></para>
</listitem>
</itemizedlist>
</section>
<section>
- <title><ulink url="Fulltext Search">Fulltext Search</ulink></title>
+ <title><link linkend="???">Fulltext Search</link></title>
<itemizedlist>
<listitem>
- <para><ulink url="JCR.Fulltext Search by Property">JCR.Fulltext
- Search by Property</ulink></para>
+ <para><link linkend="???">JCR.Fulltext Search by
+ Property</link></para>
</listitem>
<listitem>
- <para><ulink
- url="JCR.Fulltext Search by All Properties">JCR.Fulltext Search by
- All Properties</ulink></para>
+ <para><link linkend="???">JCR.Fulltext Search by All
+ Properties</link></para>
</listitem>
<listitem>
14 years, 2 months
exo-jcr SVN: r2867 - jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2010-08-03 10:40:37 -0400 (Tue, 03 Aug 2010)
New Revision: 2867
Added:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/date-property-comparison.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/multivalue-property-comparison.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/node-name-constraint.xml
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
Log:
EXOJCR-869: jcr-query-usecases ported
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/date-property-comparison.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/date-property-comparison.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/date-property-comparison.xml 2010-08-03 14:40:37 UTC (rev 2867)
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.DatePropertyComparison">
+ <title>Date Property Comparison</title>
+
+ <para>Find all nodes of primary type "nt:resource" whose jcr:lastModified
+ property value is greater than 2006-06-04 and less than 2008-06-04.</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>Repository contains nt:resource nodes with different values of
+ jcr:lastModified property</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (nt:file)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>jcr:content (nt:resource)
+ jcr:lastModified="2006-01-19T15:34:15.917+02:00"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>document2 (nt:file)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>jcr:content (nt:resource)
+ jcr:lastModified="2005-01-19T15:34:15.917+02:00"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>document3 (nt:file)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>jcr:content (nt:resource)
+ jcr:lastModified="2007-01-19T15:34:15.917+02:00"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <para>In SQL you have to use the keyword <emphasis
+ role="bold">TIMESTAMP</emphasis> for date comparisons. Otherwise the date
+ would be interpreted as a string. The date has to be surrounded by single
+ quotes (TIMESTAMP 'datetime') and in the ISO standard format:
+ YYYY-MM-DDThh:mm:ss.sTZD ( <ulink
+ url="http://en.wikipedia.org/wiki/ISO_8601">http://en.wikipedia.org/wiki/ISO_8601</ulink>
+ and well explained in a W3C note <ulink
+ url="http://www.w3.org/TR/NOTE-datetime">http://www.w3.org/TR/NOTE-datetime</ulink>).</para>
+
+ <para>You see it can be a date only (YYYY-MM-DD) but also a complete date
+ and time with a timezone designator (TZD).</para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+StringBuffer sb = new StringBuffer();
+sb.append("select * from nt:resource where ");
+sb.append("( jcr:lastModified >= TIMESTAMP '");
+sb.append("2006-06-04T15:34:15.917+02:00");
+sb.append("' )");
+sb.append(" and ");
+sb.append("( jcr:lastModified <= TIMESTAMP '");
+sb.append("2008-06-04T15:34:15.917+02:00");
+sb.append("' )");
+String sqlStatement = sb.toString();
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <para>Compared to the SQL format you have to use the keyword <emphasis
+ role="bold">xs:dateTime</emphasis> and surround the datetime by extra
+ brackets: xs:dateTime('datetime'). The actual format of the datetime also
+ conforms with the ISO date standard.</para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+StringBuffer sb = new StringBuffer();
+sb.append("//element(*,nt:resource)");
+sb.append("[");
+sb.append("@jcr:lastModified >= xs:dateTime('2006-08-19T10:11:38.281+02:00')");
+sb.append(" and ");
+sb.append("@jcr:lastModified <= xs:dateTime('2008-06-04T15:34:15.917+02:00')");
+sb.append("]");
+String xpathStatement = sb.toString();
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node foundNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "/document3/jcr:content".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>The table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>jcr:lastModified</entry>
+
+ <entry>...</entry>
+
+ <entry>jcr:path</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>2007-01-19T15:34:15.917+02:00</entry>
+
+ <entry>...</entry>
+
+ <entry>/document3/jcr:content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-03 14:35:40 UTC (rev 2866)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-03 14:40:37 UTC (rev 2867)
@@ -161,18 +161,18 @@
</listitem>
<listitem>
- <para><ulink url="JCR.Date Property Comparison">JCR.Date Property
- Comparison</ulink></para>
+ <para><link linkend="JCR.DatePropertyComparison">Date Property
+ Comparison</link></para>
</listitem>
<listitem>
- <para><ulink url="JCR.Node Name Constraint">JCR.Node Name
- Constraint</ulink></para>
+ <para><link linkend="JCR.NodeNameConstraint">Node Name
+ Constraint</link></para>
</listitem>
<listitem>
- <para><ulink url="JCR.Multivalue Property Comparison">JCR.Multivalue
- Property Comparison</ulink></para>
+ <para><link linkend="JCR.MultivaluePropertyComparison">Multivalue
+ Property Comparison</link></para>
</listitem>
</itemizedlist>
</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/multivalue-property-comparison.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/multivalue-property-comparison.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/multivalue-property-comparison.xml 2010-08-03 14:40:37 UTC (rev 2867)
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.MultivaluePropertyComparison">
+ <title>Multivalue Property Comparison</title>
+
+ <para>Find all nodes with the primary type 'nt:unstructured' whose property
+ 'multiprop' contains both values "one" and "two".</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains nt:unstructured nodes with different
+ 'multiprop' properties.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>node1 (nt:unstructured) multiprop = [ "one","two" ]</para>
+ </listitem>
+
+ <listitem>
+ <para>node1 (nt:unstructured) multiprop = [ "one","two","three"
+ ]</para>
+ </listitem>
+
+ <listitem>
+ <para>node1 (nt:unstructured) multiprop = [ "one","five" ]</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:unstructured WHERE multiprop = 'one' AND multiprop = 'two'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:unstructured)[@multiprop = 'one' and @multiprop = 'two']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>The NodeIterator will return "node1" and "node2".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>jcr:primarytyp</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>nt:unstructured</entry>
+
+ <entry>/node1</entry>
+
+ <entry> 3806</entry>
+ </row>
+
+ <row>
+ <entry>nt:unstructured</entry>
+
+ <entry>/node2 </entry>
+
+ <entry> 3806</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/node-name-constraint.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/node-name-constraint.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/node-name-constraint.xml 2010-08-03 14:40:37 UTC (rev 2867)
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.NodeNameConstraint">
+ <title>Node Name Constraint</title>
+
+ <para>Find all nodes with primary type 'nt:file' whose node name is
+ 'document'. The node name is accessible by a function called
+ "fn:name()".</para>
+
+ <note>
+ <para>fn:name() can be used ONLY with an equal('=') comparison.</para>
+ </note>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains nt:file nodes with different names.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (nt:file)</para>
+ </listitem>
+
+ <listitem>
+ <para>file (nt:file)</para>
+ </listitem>
+
+ <listitem>
+ <para>somename (nt:file)</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:file WHERE fn:name() = 'document'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:file)[fn:name() = 'document']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>The NodeIterator will return the node whose fn:name equals
+ "document".</para>
+
+ <para>Also we can get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>/document1</entry>
+
+ <entry>3575</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
14 years, 2 months
exo-jcr SVN: r2866 - in jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr: concepts and 3 other directories.
by do-not-reply@jboss.org
Author: dkatayev
Date: 2010-08-03 10:35:40 -0400 (Tue, 03 Aug 2010)
New Revision: 2866
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-advantages.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-applications.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-compatibility-levels.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-extensions.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-namespace-altering.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-registry-service.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-usage.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/nodetype-registration.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/nodetypes-and-namespaces.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/why-jcr.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/configuration-persister.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/external-value-storages.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/multilanguage-support.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/rest-services-on-groovy.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/search-configuration.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/workspace-persistence-storage.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/data-container-howto.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/data-container.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/intro.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/jbossts-transaction-service.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/acl-ext.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/acl.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/binary-values-processing.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/jcr-organization-service.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/jcr-resources.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/link-producer.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/protocols/ftp.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/protocols/webdav.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/statistics.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/transaction-manager-lookup.xml
Log:
EXOJCR-869 target filenames and id's updated
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-advantages.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-advantages.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-advantages.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="JCR.AdvantagesofeXoJCR">
+<chapter id="JCR.AdvantagesOfeXoJCR">
+ <?dbhtml filename="ch-jcr-advantages.html"?>
<title>Advantages of eXo JCR</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-applications.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-applications.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-applications.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.eXoJCRApplicationModel">
+ <?dbhtml filename="ch-jcr-applications.html"?>
<title>eXo JCR Application Model</title>
<para>A large picture of interaction between Applications and JCR looks as
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-compatibility-levels.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-compatibility-levels.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-compatibility-levels.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.CompatibilityLevels">
+ <?dbhtml filename="ch-jcr-compatibility-levels.html"?>
<title>Compatibility Levels</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-extensions.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-extensions.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-extensions.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.Extensions">
+ <?dbhtml filename="ch-jcr-extensions.html"?>
<title>JCR Extensions</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-namespace-altering.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-namespace-altering.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-namespace-altering.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.Namespacealtering">
+ <?dbhtml filename="ch-jcr-namespace-altering.html"?>
<title>Namespace altering</title>
<para>eXo JCR implementation since 1.11 version have support of altering
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-registry-service.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-registry-service.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-registry-service.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.RegistryService">
+ <?dbhtml filename="ch-jcr-registry-service.html"?>
<title>Registry Service</title>
<section id="Concept">
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-usage.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-usage.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-usage.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.UsingJCR">
+ <?dbhtml filename="ch-jcr-usage.html"?>
<title>Using JCR</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/nodetype-registration.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/nodetype-registration.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/nodetype-registration.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.NodeTypeRegistration">
+ <?dbhtml filename="ch-nodetype-registration.html"?>
<title>NodeType Registration</title>
<para>eXo JCR implementation supports two ways of Nodetypes
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/nodetypes-and-namespaces.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/nodetypes-and-namespaces.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/nodetypes-and-namespaces.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.NodeTypesandNamespaces">
+ <?dbhtml filename="ch-nodetypes-and-namespaces.html"?>
<title>Node Types and Namespaces</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/why-jcr.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/why-jcr.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/why-jcr.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.WhyuseJCR">
+ <?dbhtml filename="ch-why-jcr.html"?>
<title>Why use JCR?</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/configuration-persister.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/configuration-persister.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/configuration-persister.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.ConfigurationPersister">
- <?dbhtml filename="ch-jcr-configuration-persister.html"?>
+ <?dbhtml filename="ch-external-value-storages.html"?>
<title>JCR Configuration persister</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,7 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.eXoJCRconfiguration">
- <?dbhtml filename="ch-jcr-configuration.html"?>
+ <?dbhtml filename="ch-exo-jcr-configuration.html"?>
<title>eXo JCR configuration</title>
<section>
<title>Related documents</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/external-value-storages.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/external-value-storages.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/external-value-storages.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,7 +2,7 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.ExternalValueStorages">
- <?dbhtml filename="ch-jcr-external-value-storages.html"?>
+ <?dbhtml filename="ch-external-value-storages.html"?>
<title>External Value Storages</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="ch_jdbc_data_container">
+<chapter id="JCR.JDBCDataContainerConfig">
<?dbhtml filename="ch-jdbc-data-container-config.html"?>
<title>JDBC Data Container Config</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/multilanguage-support.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/multilanguage-support.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/multilanguage-support.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="ch_multilanguage_support">
+<chapter id="JCRMultilanguageSupport">
<?dbhtml filename="ch-multilanguage-support.html"?>
<title>Multilanguage support in eXo JCR RDB backend</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/rest-services-on-groovy.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/rest-services-on-groovy.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/rest-services-on-groovy.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,7 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.RESTServicesOnGroovy">
- <?dbhtml filename="ch-jcr-rest-services-on-groovy.html"?>
+ <?dbhtml filename="ch-rest-services-on-groovy.html"?>
<title>REST Services on Groovy</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/search-configuration.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/search-configuration.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/search-configuration.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.SearchConfiguration">
- <?dbhtml filename="ch-jcr-search-configuration.html"?>
+ <?dbhtml filename="ch-search-configuration.html"?>
<title>Search Configuration</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/workspace-persistence-storage.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/workspace-persistence-storage.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/workspace-persistence-storage.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,7 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.WorkspaceDataContainer">
- <?dbhtml filename="ch-jcr-workspace-data-container.html"?>
+ <?dbhtml filename="ch-workspace-data-container.html"?>
<title>Workspace Data Container</title>
<para>Each Workspace of JCR has its own persistent storage to hold
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/data-container-howto.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/data-container-howto.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/data-container-howto.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,6 +1,7 @@
<?xml version='1.0' ?><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
- <chapter id="HowtoimplementWorkspaceDataContainer">
+ <chapter id="JCR.HowtoimplementWorkspaceDataContainer">
<title>How-to implement Workspace Data Container</title>
+ <?dbhtml filename="ch-data-container-howto.html"?>
<section id="ShortintrointoWorkspacedatacontainerimplementationpractices">
<title>Short intro into Workspace data container implementation practices:</title>
<orderedlist>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/data-container.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/data-container.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/data-container.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,5 +1,6 @@
<?xml version='1.0' ?><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="JCRWorkspaceDataContainerarchitecturecontract">
+<chapter id="JCR.WorkspaceDataContainerarchitecturecontract">
+ <?dbhtml filename="ch-data-container.html"?>
<title>JCR Workspace Data Container (architecture contract)</title>
<section id="Goals">
<title>Goals</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/intro.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/intro.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/intro.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
+<chapter id = "JCR.Introduction">
<?dbhtml filename="ch-intro.html"?>
<title>Introduction in eXoJCR</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="ch_jbosscache_config_templates">
+<chapter id="JCR.JBossCacheConfiguration">
<?dbhtml filename="ch-jbosscache-configuration-templates.html"?>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/jbossts-transaction-service.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/jbossts-transaction-service.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/jbossts-transaction-service.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter if="ch_jbossts_transaction_service">
+<chapter id="JCR.JBossTransactionsService">
<?dbhtml filename="ch-jbossts-tranasction-service.html"?>
<title>JBossTransactionsService</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="ch_lock_manager_config">
+<chapter id="JCR.LockManagerConfiguration">
<?dbhtml filename="ch-lock-manager-config.html"?>
<title>LockManager configuration</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/acl-ext.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/acl-ext.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/acl-ext.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.AccessControlExtension">
+ <?dbhtml filename="ch-acl-ext.html"?>
<title>Access Control Extension</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/acl.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/acl.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/acl.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.AccessControl">
+ <?dbhtml filename="ch-acl.html"?>
<title>Access Control</title>
<para>eXo JCR is a complete implementation of the standard JSR 170: <ulink
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/binary-values-processing.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/binary-values-processing.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/binary-values-processing.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.BinaryValuesProcessing">
+ <?dbhtml filename="ch-binary-values-processing.html"?>
<title>Binary Values Processing</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/jcr-organization-service.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/jcr-organization-service.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/jcr-organization-service.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.Organizationservice">
+ <?dbhtml filename="ch-jcr-organization-service.html"?>
<title>JCR Organization service</title>
<para>This is an implementation of the exo.core.component.organization.api
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/jcr-resources.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/jcr-resources.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/jcr-resources.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.Resources">
+ <?dbhtml filename="ch-jcr-resources.html"?>
<title>JCR Resources:</title>
<para>* Java Community Process: <ulink
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/link-producer.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/link-producer.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/other/link-producer.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.LinkProducerService">
+ <?dbhtml filename="ch-link-producer.html"?>
<title>Link Producer Service</title>
<para>Link Producer Service - a simple service, which generates an .lnk
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/protocols/ftp.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/protocols/ftp.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/protocols/ftp.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.FTP">
+ <?dbhtml filename="ch-ftp.html"?>
<title>FTP</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/protocols/webdav.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/protocols/webdav.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/protocols/webdav.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -2,6 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="JCR.WebDAV">
+ <?dbhtml filename="ch-webdav.html"?>
<title>WebDAV</title>
<section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="ch_query_handler_config">
+<chapter id="JCR.QueryHandlerConfiguration">
<?dbhtml filename="ch-query-handler-config.html"?>
<title>QueryHandler configuration</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/statistics.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/statistics.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/statistics.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="ch_statistics">
+<chapter id="JCR.Statistics">
<?dbhtml filename="ch-statistics"?>
<title>eXo JCR statistics</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/transaction-manager-lookup.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/transaction-manager-lookup.xml 2010-08-03 14:10:08 UTC (rev 2865)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/transaction-manager-lookup.xml 2010-08-03 14:35:40 UTC (rev 2866)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-transaction-manager.html"?>
+<chapter id = "JCR.TransactionManagerLookup">
+ <?dbhtml filename="ch-transaction-manager-lookup.html"?>
<title>TransactionManagerLookup</title>
14 years, 2 months
exo-jcr SVN: r2865 - jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2010-08-03 10:10:08 -0400 (Tue, 03 Aug 2010)
New Revision: 2865
Added:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/and-constraint.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/escaping-like-statements.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-all-nodes.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-by-mixin-type.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-by-primary-type.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-case-insensitive.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/like-constraint.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/not-constraint.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/or-constraint.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/property-comparison.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/property-existance-constraint.xml
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
Log:
EXOJCR-869: jcr-query-usecases ported
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/and-constraint.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/and-constraint.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/and-constraint.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.ANDConstraint">
+ <title>AND Constraint</title>
+
+ <para>Find all fairytales with a page count more than 90 pages.</para>
+
+ <para>How does it sound in jcr terms - Find all nodes with mixin type
+ 'mix:title' where the property 'jcr:description' equals "fairytale" and
+ whose "prop_pagecount" property value is less than 90.</para>
+
+ <note>
+ <para>See also <link linkend="JCR.MultiValuePropertyComparison">Multivalue
+ Property Comparison</link>.</para>
+ </note>
+
+ <section>
+ <title>Repository Structure:</title>
+
+ <para>The repository contains mix:title nodes, where prop_pagecount has
+ different values.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="War and peace"
+ jcr:description="novel" prop_pagecount=1000</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="Cinderella"
+ jcr:description="fairytale" prop_pagecount=100</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="Puss in Boots"
+ jcr:description="fairytale" prop_pagecount=60</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:description = 'fairytale' AND prop_pagecount > 90";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[@jcr:description='fairytale' and @prop_pagecount > 90]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document2".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is:<table>
+ <title>Table content</title>
+
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>jcr:description</entry>
+
+ <entry>prop_pagecount</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Cinderella</entry>
+
+ <entry>fairytale</entry>
+
+ <entry>100</entry>
+
+ <entry>/document2</entry>
+
+ <entry>7086</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/escaping-like-statements.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/escaping-like-statements.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/escaping-like-statements.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.EscapinginLIKEStatements">
+ <title>Escaping in LIKE Statements</title>
+
+ <para>Find all nodes with a mixin type 'mix:title' and whose property
+ 'jcr:title' starts with 'P%ri'.</para>
+
+ <para>As you see "P%rison break" contains the symbol '%'. This symbol is
+ reserved for LIKE comparisons. So what we can do?</para>
+
+ <para>Within the LIKE pattern, literal instances of percent ("%") or
+ underscore ("_") must be escaped. The SQL ESCAPE clause allows the
+ definition of an arbitrary escape character within the context of a single
+ LIKE statement. The following example defines the backslash ' \' as escape
+ character:</para>
+
+ <programlisting>SELECT * FROM mytype WHERE a LIKE 'foo\%' ESCAPE '\'</programlisting>
+
+ <para>XPath does not have any specification for defining escape symbols, so
+ we must use the default escape character (' \').</para>
+
+ <section>
+ <title>Repository structure</title>
+
+ <para>The repository contains mix:title nodes, where jcr:title can have
+ different values.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="Star wars"
+ jcr:description="Dart rules!!"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="P%rison break"
+ jcr:description="Run, Forest, run ))"</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="Panopticum"
+ jcr:description="It's imagine film"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title LIKE 'P#%ri%' ESCAPE '#'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:like(@jcr:title, 'P\\%ri%')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetch result</title>
+
+ <para>Lets get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document2".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>The table content is <table>
+ <title>Table content</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>jcr:description</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>P%rison break</entry>
+
+ <entry>Run, Forest, run ))</entry>
+
+ <entry>/document2</entry>
+
+ <entry>7452</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-all-nodes.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-all-nodes.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-all-nodes.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.FindAllNodes">
+ <title>Find All Nodes</title>
+
+ <para>Find all nodes in the repository. Only those nodes are found to which
+ the session has READ permission. See also <ulink
+ url="JCR.AccessControl">Access Control</ulink>.</para>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <para>Repository contains many different nodes.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>folder1 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (nt:file)</para>
+ </listitem>
+
+ <listitem>
+ <para>folder2 (nt:folder)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document2 (nt:unstructured)</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (nt:folder)</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:base";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:base)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetch result</title>
+
+ <para>Lets get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "folder1",
+ "folder2","document1","document2","document3", and each other nodes in
+ workspace if they are here.</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is</para>
+
+ <table>
+ <title>Table content</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>/folder1</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>/folder1/document1</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>/folder1/folder2</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>/folder1/folder2/document2</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>/folder1/folder2/document3</entry>
+
+ <entry>1000</entry>
+ </row>
+
+ <row>
+ <entry>...</entry>
+
+ <entry>...</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-by-mixin-type.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-by-mixin-type.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-by-mixin-type.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.FindNodesByMixinType">
+ <title>Find Nodes by Mixin Type</title>
+
+ <para>Find all nodes in repository, that contain a mixin type
+ "mix:title".</para>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <para>The repository contains nodes with different primary types and mixin
+ types.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 primarytype = "nt:unstructured" mixintype =
+ "mix:title"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 primarytype = "nt:file" mixintype =
+ "mix:lockable"</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 primarytype = "nt:file" mixintype =
+ "mix:title"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetch result</title>
+
+ <para>Lets get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>The NodeIterator will return "document1" and "document3".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is <table>
+ <title>Table content</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>...</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>First document</entry>
+
+ <entry>...</entry>
+
+ <entry>/document1</entry>
+
+ <entry>2674</entry>
+ </row>
+
+ <row>
+ <entry>Second document</entry>
+
+ <entry>...</entry>
+
+ <entry>/document3</entry>
+
+ <entry>2674</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-by-primary-type.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-by-primary-type.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-by-primary-type.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.FindNodesByPrimaryType">
+ <title>Find Nodes by Primary Type</title>
+
+ <para>Find all nodes whose primary type is "nt:file".</para>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <para>The repository contains nodes with different primary types and mixin
+ types.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 primarytype = "nt:unstructured" mixintype =
+ "mix:title"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 primarytype = "nt:file" mixintype =
+ "mix:lockable"</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 primarytype = "nt:file" mixintype =
+ "mix:title"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:file";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:file)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetch result</title>
+
+ <para>Lets get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document2" and "document3".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>The table content is <table>
+ <title>Table content</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry> /document2</entry>
+
+ <entry>2674</entry>
+ </row>
+
+ <row>
+ <entry>/document3</entry>
+
+ <entry>2674</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-case-insensitive.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-case-insensitive.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/find-nodes-case-insensitive.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.FindNodesCaseInsensitive">
+ <title>Find Nodes in a Case-Insensitive Way</title>
+
+ <para>Find all nodes with a mixin type 'mix:title' and where the property
+ 'jcr:title' equals 'casesensitive' in lower or upper case.</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains mix:title nodes, whose jcr:title properties
+ have different values.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="CaseSensitive"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="casesensitive"</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="caseSENSITIVE"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>UPPER case</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE UPPER(jcr:title) = 'CASESENSITIVE'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[fn:upper-case(@jcr:title)='CASESENSITIVE']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>LOWER case</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE LOWER(jcr:title) = 'casesensitive'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[fn:lower-case(@jcr:title)='casesensitive']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document1", "document2" and "document3"
+ (in all examples).</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry> jcr:title</entry>
+
+ <entry>...</entry>
+
+ <entry>jcr:path</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>CaseSensitive</entry>
+
+ <entry>...</entry>
+
+ <entry>/document1</entry>
+ </row>
+
+ <row>
+ <entry>casesensitive</entry>
+
+ <entry>...</entry>
+
+ <entry>/document2</entry>
+ </row>
+
+ <row>
+ <entry>caseSENSITIVE</entry>
+
+ <entry>...</entry>
+
+ <entry>/document3</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-03 13:58:16 UTC (rev 2864)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/jcr-query-usecases.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -1,324 +1,322 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="JCR.QueryUsecases">
- <title>JCR Query Usecases</title>
-
- <section>
- <title>Intro</title>
-
- <para>JCR supports two query languages - JCR and XPath. A query, whether
- XPath or SQL, specifies a subset of nodes within a workspace, called the
- result set. The result set constitutes all the nodes in the workspace that
- meet the constraints stated in the query.</para>
- </section>
-
- <section>
- <title>Query Lifecycle</title>
-
- <section>
- <title>Query Creation and Execution</title>
-
- <para><emphasis role="bold">SQL</emphasis></para>
-
- <programlisting>// get QueryManager
-QueryManager queryManager = workspace.getQueryManager();
-// make SQL query
-Query query = queryManager.createQuery("SELECT * FROM nt:base ", Query.SQL);
-// execute query
-QueryResult result = query.execute();</programlisting>
-
- <para><emphasis role="bold">XPath</emphasis></para>
-
- <programlisting>// get QueryManager
-QueryManager queryManager = workspace.getQueryManager();
-// make XPath query
-Query query = queryManager.createQuery("//element(*,nt:base)", Query.XPATH);
-// execute query
-QueryResult result = query.execute();</programlisting>
- </section>
-
- <section>
- <title>Query Result Processing</title>
-
- <programlisting>// fetch query result
-QueryResult result = query.execute();</programlisting>
-
- <para>Now we can get result in an iterator of nodes:</para>
-
- <programlisting>NodeIterator it = result.getNodes();</programlisting>
-
- <para>or we get the result in a table:</para>
-
- <programlisting>// get column names
-String[] columnNames = result.getColumnNames();
-// get column rows
-RowIterator rowIterator = result.getRows();
-while(rowIterator.hasNext()){
- // get next row
- Row row = rowIterator.nextRow();
- // get all values of row
- Value[] values = row.getValues();
-}</programlisting>
- </section>
-
- <section>
- <title>Scoring</title>
-
- <para>The result returns a score for each row in the result set. The
- score contains a value that indicates a rating of how well the result
- node matches the query. A high value means a better matching than a low
- value. This score can be used for ordering the result.</para>
-
- <para>eXo JCR Scoring is a mapping of Lucene scoring. For a more
- in-depth understanding, please study <ulink
- url="http://lucene.apache.org/java/2_4_1/scoring.html">Lucene
- documentation</ulink>.</para>
-
- <para>jcr:score counted in next way - (lucene score)*1000f.</para>
-
- <para>Score may be increased for specified nodes, see <ulink
- url="Index Boost Value">Index Boost Value</ulink></para>
-
- <para>Also, see an example <ulink url="JCR.Order by Score">JCR.Order by
- Score</ulink></para>
- </section>
- </section>
-
- <section>
- <title>Query Examples</title>
-
- <section>
- <title>Query result settings</title>
-
- <itemizedlist>
- <listitem>
- <para><link linkend="JCR.SetOffsetandSetLimit">Set Offset And
- Limit</link></para>
- </listitem>
-
- <!--listitem>
- <xi:include href="offset-and-limit.xml"
- xmlns:xi="http://www.w3.org/2001/XInclude" />
- </listitem-->
- </itemizedlist>
- </section>
-
- <section>
- <title>Type Constraints</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="JCR.Find All Nodes">JCR.Find All
- Nodes</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Find Nodes by Primary Type">JCR.Find Nodes by
- Primary Type</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Find Nodes by Mixin Type">JCR.Find Nodes by
- Mixin Type</ulink></para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Property Constraints</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="JCR.Property Comparison">JCR.Property
- Comparison</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.LIKE Constraint">JCR.LIKE
- Constraint</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Escaping in LIKE Statements">JCR.Escaping in
- LIKE Statements</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.NOT Constraint">JCR.NOT
- Constraint</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.AND Constraint">JCR.AND
- Constraint</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.OR Constraint">JCR.OR
- Constraint</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Property Existence Constraint">JCR.Property
- Existence Constraint</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Upper and Lower Case Constraints">JCR.Upper
- and Lower Case Constraints</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Date Property Comparison">JCR.Date Property
- Comparison</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Node Name Constraint">JCR.Node Name
- Constraint</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Multivalue Property Comparison">JCR.Multivalue
- Property Comparison</ulink></para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Path Constraint</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="JCR.Exact Path Constraint">JCR.Exact Path
- Constraint</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Child Node Constraint">JCR.Child Node
- Constraint</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Find All Descendant Nodes">JCR.Find All
- Descendant Nodes</ulink></para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Ordering specifing</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="JCR.Order by Property">JCR.Order by
- Property</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Order by Descendant Node Property">JCR.Order
- by Descendant Node Property</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Order by Score">JCR.Order by
- Score</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Order by Path or Name">JCR.Order by Path or
- Name</ulink></para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title><ulink url="Fulltext Search">Fulltext Search</ulink></title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="JCR.Fulltext Search by Property">JCR.Fulltext
- Search by Property</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="JCR.Fulltext Search by All Properties">JCR.Fulltext Search by
- All Properties</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="Find nt:file document by content of child jcr:content node>Aggregation rule">Find
- nt:file document by content of child jcr:content node>Aggregation
- rule</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="How to set new Analyzer. Accent symblos ignoring>JCR.Ignore Accent Symbols">How
- to set new Analyzer. Accent symblos ignoring>JCR.Ignore Accent
- Symbols</ulink></para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Indexing rules and additional features</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="Aggregation rule">Aggregation rule</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="JCR.Search Result Highlighting">JCR.Search Result
- Highlighting</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="Index Boost Value">Index Boost
- Value</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="Exclusion from the Node Scope Index>JCR.Node Scope Index">Exclusion
- from the Node Scope Index>JCR.Node Scope Index</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="Regular expressions as property name in indexing rule > Regexp Indexing Rule">Regular
- expressions as property name in indexing rule > Regexp Indexing
- Rule</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="Synonim Provider">Synonim Provider</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="Spell Checking">Spell Checking</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="Find Similar Nodes">Find Similar
- Nodes</ulink></para>
- </listitem>
- </itemizedlist>
- </section>
- </section>
-
- <section>
- <title>Tips and tricks</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="Xpath and numbers in node names">Xpath and numbers
- in node names</ulink></para>
- </listitem>
- </itemizedlist>
- </section>
-</chapter>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="JCR.QueryUsecases">
+ <title>JCR Query Usecases</title>
+
+ <section>
+ <title>Intro</title>
+
+ <para>JCR supports two query languages - JCR and XPath. A query, whether
+ XPath or SQL, specifies a subset of nodes within a workspace, called the
+ result set. The result set constitutes all the nodes in the workspace that
+ meet the constraints stated in the query.</para>
+ </section>
+
+ <section>
+ <title>Query Lifecycle</title>
+
+ <section>
+ <title>Query Creation and Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// get QueryManager
+QueryManager queryManager = workspace.getQueryManager();
+// make SQL query
+Query query = queryManager.createQuery("SELECT * FROM nt:base ", Query.SQL);
+// execute query
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// get QueryManager
+QueryManager queryManager = workspace.getQueryManager();
+// make XPath query
+Query query = queryManager.createQuery("//element(*,nt:base)", Query.XPATH);
+// execute query
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Query Result Processing</title>
+
+ <programlisting>// fetch query result
+QueryResult result = query.execute();</programlisting>
+
+ <para>Now we can get result in an iterator of nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();</programlisting>
+
+ <para>or we get the result in a table:</para>
+
+ <programlisting>// get column names
+String[] columnNames = result.getColumnNames();
+// get column rows
+RowIterator rowIterator = result.getRows();
+while(rowIterator.hasNext()){
+ // get next row
+ Row row = rowIterator.nextRow();
+ // get all values of row
+ Value[] values = row.getValues();
+}</programlisting>
+ </section>
+
+ <section>
+ <title>Scoring</title>
+
+ <para>The result returns a score for each row in the result set. The
+ score contains a value that indicates a rating of how well the result
+ node matches the query. A high value means a better matching than a low
+ value. This score can be used for ordering the result.</para>
+
+ <para>eXo JCR Scoring is a mapping of Lucene scoring. For a more
+ in-depth understanding, please study <ulink
+ url="http://lucene.apache.org/java/2_4_1/scoring.html">Lucene
+ documentation</ulink>.</para>
+
+ <para>jcr:score counted in next way - (lucene score)*1000f.</para>
+
+ <para>Score may be increased for specified nodes, see <ulink
+ url="Index Boost Value">Index Boost Value</ulink></para>
+
+ <para>Also, see an example <link linkend="JCR.OrderByScore">Order by
+ Score</link></para>
+ </section>
+ </section>
+
+ <section>
+ <title>Query Examples</title>
+
+ <section>
+ <title>Query result settings</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><link linkend="JCR.SetOffsetandSetLimit">Set Offset And
+ Limit</link></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Type Constraints</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><link linkend="JCR.FindAllNodes">Find All Nodes</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.FindNodesByPrimaryType">Find Nodes by
+ Primary Type</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.FindNodesByMixinType">Find Nodes by Mixin
+ Type</link></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Property Constraints</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><link linkend="JCR.PropertyComparison">Property
+ Comparison</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.LIKEConstraint">LIKE
+ Constraint</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.EscapinginLIKEStatements">Escaping in LIKE
+ Statements</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.NOTConstraint">NOT Constraint</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.ANDConstraint">AND Constraint</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.ORConstraint">OR Constraint</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.PropertyExistenceConstraint">Property
+ Existence Constraint</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="JCR.FindNodesCaseInsensitive">Upper and Lower
+ Case Constraints</link></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Date Property Comparison">JCR.Date Property
+ Comparison</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Node Name Constraint">JCR.Node Name
+ Constraint</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Multivalue Property Comparison">JCR.Multivalue
+ Property Comparison</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Path Constraint</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="JCR.Exact Path Constraint">JCR.Exact Path
+ Constraint</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Child Node Constraint">JCR.Child Node
+ Constraint</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Find All Descendant Nodes">JCR.Find All
+ Descendant Nodes</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Ordering specifing</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="JCR.Order by Property">JCR.Order by
+ Property</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Order by Descendant Node Property">JCR.Order
+ by Descendant Node Property</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Order by Score">JCR.Order by
+ Score</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Order by Path or Name">JCR.Order by Path or
+ Name</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title><ulink url="Fulltext Search">Fulltext Search</ulink></title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="JCR.Fulltext Search by Property">JCR.Fulltext
+ Search by Property</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="JCR.Fulltext Search by All Properties">JCR.Fulltext Search by
+ All Properties</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="Find nt:file document by content of child jcr:content node>Aggregation rule">Find
+ nt:file document by content of child jcr:content node>Aggregation
+ rule</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="How to set new Analyzer. Accent symblos ignoring>JCR.Ignore Accent Symbols">How
+ to set new Analyzer. Accent symblos ignoring>JCR.Ignore Accent
+ Symbols</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Indexing rules and additional features</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="Aggregation rule">Aggregation rule</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="JCR.Search Result Highlighting">JCR.Search Result
+ Highlighting</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="Index Boost Value">Index Boost
+ Value</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="Exclusion from the Node Scope Index>JCR.Node Scope Index">Exclusion
+ from the Node Scope Index>JCR.Node Scope Index</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="Regular expressions as property name in indexing rule > Regexp Indexing Rule">Regular
+ expressions as property name in indexing rule > Regexp Indexing
+ Rule</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="Synonim Provider">Synonim Provider</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="Spell Checking">Spell Checking</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="Find Similar Nodes">Find Similar
+ Nodes</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>List of examples</title>
+
+ <xi:include href="offset-and-limit.xml"
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </section>
+ </section>
+
+ <section>
+ <title>Tips and tricks</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="Xpath and numbers in node names">Xpath and numbers
+ in node names</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+</chapter>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/like-constraint.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/like-constraint.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/like-constraint.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.LIKEConstraint">
+ <title>LIKE Constraint</title>
+
+ <para>Find all nodes with mixin type 'mix:title' and where the property
+ 'jcr:title' starts with 'P'.</para>
+
+ <note>
+ <para>See also the article about "<link linkend="JCR.NOTConstraint">Find
+ all mix:title nodes where jcr:title does NOT start with 'P'</link>"</para>
+ </note>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <para>The repository contains 3 mix:title nodes, where each jcr:title has
+ a different value.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="Star wars"
+ jcr:description="Dart rules!!"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="Prison break"
+ jcr:description="Run, Forest, run ))"</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="Panopticum"
+ jcr:description="It's imagine film"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title LIKE 'P%'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:like(@jcr:title, 'P%')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetch result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>The NodeIterator will return "document2" and "document3".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>The table content is <table>
+ <title>Table content</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>jcr:description</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Prison break</entry>
+
+ <entry>Run, Forest, run ))</entry>
+
+ <entry>/document2</entry>
+
+ <entry>4713</entry>
+ </row>
+
+ <row>
+ <entry>Panopticum</entry>
+
+ <entry>It's imagine film</entry>
+
+ <entry>/document3</entry>
+
+ <entry>5150 </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/not-constraint.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/not-constraint.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/not-constraint.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.NOTConstraint">
+ <title>NOT Constraint</title>
+
+ <para>Find all nodes with a mixin type 'mix:title' and where the property
+ 'jcr:title' does NOT start with a 'P' symbol</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains a mix:title nodes, where the jcr:title has
+ different values.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="Star wars"
+ jcr:description="Dart rules!!"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="Prison break"
+ jcr:description="Run, Forest, run ))"</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="Panopticum"
+ jcr:description="It's imagine film"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE NOT jcr:title LIKE 'P%'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[not(jcr:like(@jcr:title, 'P%'))]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the result</title>
+
+ <para>Let's get the nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document1".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is <table>
+ <title>Table content</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>jcr:description</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Star wars </entry>
+
+ <entry>Dart rules!!</entry>
+
+ <entry>/document1</entry>
+
+ <entry>4713</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/or-constraint.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/or-constraint.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/or-constraint.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.ORConstraint">
+ <title>OR Constraint</title>
+
+ <para>Find all documents whose title is 'Cinderella' or whose description is
+ 'novel'.</para>
+
+ <para>How does it sound in jcr terms? - Find all nodes with a mixin type
+ 'mix:title' whose property 'jcr:title' equals "Cinderella" or whose
+ "jcr:description" property value is "novel".</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains mix:title nodes, where jcr:title and
+ jcr:description have different values.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="War and peace"
+ jcr:description="novel"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="Cinderella"
+ jcr:description="fairytale"</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="Puss in Boots"
+ jcr:description="fairytale"</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title = 'Cinderella' OR jcr:description = 'novel'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[@jcr:title='Cinderella' or @jcr:description = 'novel']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document1" and "document2".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry> jcr:title</entry>
+
+ <entry>jcr:description</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>War and peace</entry>
+
+ <entry>novel</entry>
+
+ <entry>/document1</entry>
+
+ <entry>3806</entry>
+ </row>
+
+ <row>
+ <entry>Cinderella</entry>
+
+ <entry>fairytale</entry>
+
+ <entry>/document2</entry>
+
+ <entry>3806</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/property-comparison.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/property-comparison.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/property-comparison.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.PropertyComparison">
+ <title>Property Comparison</title>
+
+ <para>Find all nodes with mixin type 'mix:title' where the prop_pagecount
+ property contains a value less than 90. Only select the title of each
+ node.</para>
+
+ <section>
+ <title>Repository structure:</title>
+
+ <para>Repository contains several mix:title nodes, where each
+ prop_pagecount contains a different value.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="War and peace"
+ prop_pagecount=1000</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="Cinderella"
+ prop_pagecount=100</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="Puss in Boots"
+ prop_pagecount=60</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT jcr:title FROM mix:title WHERE prop_pagecount < 90";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[@prop_pagecount < 90]/@jcr:title";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetch result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>The NodeIterator will return "document3".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>The table content is <table>
+ <title>Table Content</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>jcr:path </entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Puss in Boots</entry>
+
+ <entry>/document3</entry>
+
+ <entry>1725 </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/property-existance-constraint.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/property-existance-constraint.xml (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/searching/property-existance-constraint.xml 2010-08-03 14:10:08 UTC (rev 2865)
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="JCR.PropertyExistenceConstraint">
+ <title>Property Existence Constraint</title>
+
+ <para>Find all nodes with a mixin type 'mix:title' where the property
+ 'jcr:description' does not exist (is null).</para>
+
+ <section>
+ <title>Repository Structure</title>
+
+ <para>The repository contains mix:title nodes, in one of these nodes the
+ jcr:description property is null.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>root</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>document1 (mix:title) jcr:title="Star wars"
+ jcr:description="Dart rules!!"</para>
+ </listitem>
+
+ <listitem>
+ <para>document2 (mix:title) jcr:title="Prison break"
+ jcr:description="Run, Forest, run ))"</para>
+ </listitem>
+
+ <listitem>
+ <para>document3 (mix:title) jcr:title="Titanic" // The description
+ property does not exist. This is the node we wish to find.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Query Execution</title>
+
+ <para><emphasis role="bold">SQL</emphasis></para>
+
+ <programlisting>// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:description IS NULL";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ <para><emphasis role="bold">XPath</emphasis></para>
+
+ <programlisting>// make XPath query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = ""//element(*,mix:title)[not(@jcr:description)]"";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </section>
+
+ <section>
+ <title>Fetching the Result</title>
+
+ <para>Let's get nodes:</para>
+
+ <programlisting>NodeIterator it = result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+
+ <para>NodeIterator will return "document3".</para>
+
+ <para>We can also get a table:</para>
+
+ <programlisting>String[] columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+
+ <para>Table content is: <table>
+ <title>Table content</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>jcr:title</entry>
+
+ <entry>jcr:description</entry>
+
+ <entry>jcr:path</entry>
+
+ <entry>jcr:score</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Titanic</entry>
+
+ <entry>null</entry>
+
+ <entry>/document3</entry>
+
+ <entry>1947</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table></para>
+ </section>
+</section>
14 years, 2 months
exo-jcr SVN: r2864 - jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws.
by do-not-reply@jboss.org
Author: dkatayev
Date: 2010-08-03 09:58:16 -0400 (Tue, 03 Aug 2010)
New Revision: 2864
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd-cluster-bench.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd-cluster.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/exo-ws-2-0-1.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/exo-ws-2-0.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/framework-for-cross-domain-ajax.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/groovy-scripts-as-rest-services.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/introduction-to-rest.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/javascript-webdav-library.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/kerberos-sso-on-active-directory.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/oauth.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-framework.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-migration-to-jsr311.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-service-tutorial.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/soap-service-tutorial.xml
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/ws.xml
Log:
EXOJCR-869 target filenames and id's updated
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd-cluster-bench.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd-cluster-bench.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd-cluster-bench.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.CometdClusterBench">
+ <?dbhtml filename="ch-cometd-cluster-bench.html"?>
<title>Cometd Cluster Bench</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd-cluster.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd-cluster.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd-cluster.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.Cometdcluster">
+ <?dbhtml filename="ch-cometd-cluster.html"?>
<title>Cometd cluster</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/cometd.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.Cometd">
+ <?dbhtml filename="ch-cometd.html"?>
<title>Cometd</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/exo-ws-2-0-1.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/exo-ws-2-0-1.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/exo-ws-2-0-1.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.2.0.1">
+ <?dbhtml filename="ch-exo-ws-2-0-1.html"?>
<title>eXo WS 2.0.1 Release Notes (released on 2009.04.16)</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/exo-ws-2-0.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/exo-ws-2-0.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/exo-ws-2-0.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.2.0">
+ <?dbhtml filename="ch-exo-ws-2-0.html"?>
<title>eXo WS 2.0 Release Notes (released on 2009.02.07)</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/framework-for-cross-domain-ajax.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/framework-for-cross-domain-ajax.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/framework-for-cross-domain-ajax.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.CrossDomainAJAX">
+ <?dbhtml filename="ch-framework-for-cross-domain-ajax.html"?>
<title>Framework for cross-domain AJAX</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/groovy-scripts-as-rest-services.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/groovy-scripts-as-rest-services.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/groovy-scripts-as-rest-services.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.GroovyScripts">
+ <?dbhtml filename="ch-groovy-scripts-as-rest-services.html"?>
<title>Groovy Scripts as REST Services</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/introduction-to-rest.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/introduction-to-rest.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/introduction-to-rest.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.Introduction">
+ <?dbhtml filename="ch-introduction-to-rest.html"?>
<title>Introduction to the Representational State Transfer (REST)</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/javascript-webdav-library.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/javascript-webdav-library.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/javascript-webdav-library.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.JavaScriptWebDAVLibrary">
+ <?dbhtml filename="ch-javascript-webdav-library.html"?>
<title>JavaScript WebDAV Library</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/kerberos-sso-on-active-directory.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/kerberos-sso-on-active-directory.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/kerberos-sso-on-active-directory.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.KerberosSSOOnActiveDirectory">
+ <?dbhtml filename="ch-kerberos-sso-on-active-directory.html"?>
<title>Kerberos SSO on Active Directory</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/oauth.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/oauth.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/oauth.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.oAuth">
+ <?dbhtml filename="ch-oauth.html"?>
<title>oAuth</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-framework.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-framework.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-framework.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="WS.RestFramework">
- <?dbhtml filename="ch-ws-rest-framework.html"?>
+ <?dbhtml filename="ch-rest-framework.html"?>
<title>REST Framework</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-migration-to-jsr311.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-migration-to-jsr311.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-migration-to-jsr311.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.RESTMigrationJSR311">
+ <?dbhtml filename="ch-rest-migration-to-jsr311.html"?>
<title>REST Migration to jsr311</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-service-tutorial.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-service-tutorial.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/rest-service-tutorial.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="WS.RestServiceTutorial">
- <?dbhtml filename="ch-ws-rest-service-tutorial.html"?>
+ <?dbhtml filename="ch-rest-service-tutorial.html"?>
<title>REST Service Tutorial</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/soap-service-tutorial.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/soap-service-tutorial.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/soap-service-tutorial.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id = "WS.SOAPTutorial">
+ <?dbhtml filename="ch-soap-service-tutorial.html"?>
<title>SOAP Service Tutorial</title>
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/ws.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/ws.xml 2010-08-03 13:39:11 UTC (rev 2863)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/ws.xml 2010-08-03 13:58:16 UTC (rev 2864)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
+<chapter id = "WS">
<?dbhtml filename="ch-ws.html"?>
<title>eXo Web Services</title>
14 years, 2 months
exo-jcr SVN: r2863 - jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws.
by do-not-reply@jboss.org
Author: dkatayev
Date: 2010-08-03 09:39:11 -0400 (Tue, 03 Aug 2010)
New Revision: 2863
Modified:
jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/central-authentication-service-configuration.xml
Log:
EXOJCR-869 target filenames and id's updated
Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/central-authentication-service-configuration.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/central-authentication-service-configuration.xml 2010-08-03 13:33:35 UTC (rev 2862)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/ws/central-authentication-service-configuration.xml 2010-08-03 13:39:11 UTC (rev 2863)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter>
- <?dbhtml filename="ch-ws.html"?>
+<chapter id="WS.CentralAuthenticationServiceConfiguration">
+ <?dbhtml filename="ch-central-authentication-service-configuration.html"?>
<title>Central Authentication Service Configuration</title>
14 years, 2 months