Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
top
top

Info

Beginning in version R28, XperienCentral no longer uses the Apache Jackrabbit JCR indexing solution by default. This topic is only relevant to users of XperienCentral versions R27 and lower or if you configure XperienCentral to use Apache Jackrabbit. See The XperienCentral JCR Index for more information.


The JCR browser is a tool for exploring the Java Content Repository (JCR) used by XperienCentral to store website data. It allows you to browse through the repository by expanding/collapsing sub trees in the same way as with File Explorer in Microsoft Windows. You can perform the following operations on JCR tree items:

...

Due to node type definitions, the JCR browser cannot perform all operations on every node. If you try to create an improper child node or property, the JCR browser will return an error. Additonally, you can perform queries on the JCR tree. With queries you can search for specific content. The JCR browser supports the XPath and SQL syntaxes.


Info

See also Xpath JCR Sample Queries.



Warning

Some of the actions you can perform in the JCR Browser, such as deleting nodes and/or their attributes or properties could have an adverse affect on your website. Be especially careful when performing such actions.



In This Topic

Table of Contents
maxLevel2

 


...

Introduction to JCR

 


Expand
titleClick here for an introduction to the Content Repository API for Java (JCR)

A Java Content Repository (JCR) is a database with a standardized Java Application Programming Interface (API). A JCR allows different applications to access one centralized database. Other technologies that are comparable to JCR are JDBC, Hibernate and WebDAV. Unlike relational databases, a JCR has a hierarchical tree structure. The tree consists of nodes and properties. The properties are the leaves of the tree and represent the actual pieces of database content. A property is of one of the following types: string, binary, date, a number type, boolean, name, path or reference.

 

 



 

In addition, a node contains attributes that are related to the node itself, for example the name of the node, its path in the tree, its depth in the tree and its type. Therefore, a node has attributes and it contains properties. The organization of the repository into a tree structure is done by the JCR Browser: Internally the content may be stored in a relational database.

Node Types

Every node has one primary node type. The primary node type defines the properties and child nodes that it is allowed or required to have. Every node has a special property called jcr:primaryType that records the name of its primary node type. In addition to its primary node type, a node may also have one or more mixin types. A mixin node type can mandate more child nodes and properties in addition to those enforced by its primary node type.

Multi-value Properties

In some cases, a property may have more than one value. A property that may have more than one value is referred to as a multi-value property. The property definition determines whether a particular property is a multi-value property.

Standardized by JCP

JCR has been standardized by the Java Community Process (JCP) in JSR 170 (API version 1.0) and JSR 283 (API version 2.0). Depending on the API version and compliance level, a JCR may support the following:

  • Read-only or read/write access
  • Different types of nodes and properties
  • Simple or full versioning and multiple languages
  • Query languages like XPath, SQL, SQL2, AQM, JQOM
  • Locking
  • Observation of content changes
  • Export and import of content via XML files
  • JTA (XA transactions)

 


See also: http://jcp.org

 



...

Using the XperienCentral JCR Browser

...

In the tree view, the name of each node is shown. However, in certain cases the actual node name may be irrelevant. For is different from what is shown in the tree view. In these cases, you can view a property need to look at the attributes to see the actual name of the node instead of its name. The property name is shown in the "Display tree property" field. By default it is set to wm:name. This means that for each node the tree viewer tries to find a wm:name property. If a property is present, the value of this property will be shown. If not, the actual node name will be shown.

...

Select "Sort by name" to view the nodes in the tree in alphabetical order.

Following a Tree Reference

If a property is a reference in the JCR tree, its value is shown as a link. Click on the link to navigate to the referenced node in the JCR tree.

...

Node Attributes

When you select a node, the following attributes are shown in the "Node Attributes" section:


AttributeDescription
NameThe name of the node.
Value (primary item)This attribute is not used in XperienCentral. It is "undefined" for all nodes.
PathThe path the node belongs to. This is relative to the depth 1 parent mode of the current node. The root node is not shown in the path.
UUIDThe hexadecimal identifier of the node, 1b8c88d37f0000020084433d3af4941f, for example.
DepthThe depth of the node relative to the root node. The first depth is 1. The depth of the root node is 0 and is the only node with this value.
Primary node typeThe node's type. See http://jackrabbit.apache.org/jcr/node-types.html for an explanation of the possible node types.

Node Properties

When you select a node, the following attributes are shown in the "Node AttributesProperties" section:

 


AttributePropertyDescription
NameThe name of the node.
Value (primary item)TypeThis attribute is not used in XperienCentral. It is "undefined" for all nodes.
PathValueThe path the node belongs to. This is relative to the depth 1 parent mode of the current node. The root node is not shown in the path.
UUIDDeleteUUIDThe hexadecimal identifier of the node, 1b8c88d37f0000020084433d3af4941f, for example.
DepthThe depth of the node relative to the root node. The first depth is 1. The depth of the root node is 0 and is the only node with this value.
Primary node typeThe node's type. See http://jackrabbit.apache.org/jcr/node-types.html for an explanation of the possible node types.

...

Following a Tree Reference

If a property is a reference in the JCR tree, its value is shown as a link. Click on the link to navigate to the referenced node in the JCR tree. For example:


Image Added


Back to top

 


...

Operations with Nodes

Creating a Node

To create a new node, follow these steps:

  1. Select the node in for which the new (sub) node is to will be created.
  2. Press the [Add node] button. The "Create node" section appears:



  3. Select the node type to create from the "Node type" drop-down list.
  4. Enter the node name.
  5. Click [Create node]. The node is added as a child to the currently selected node in the JCR tree.

Moving a Node

To move a node, follow these steps:

  1. Select the node to be moved.
  2. Click [Cut] in the "Actions" section.
  3. Select the destination node.
  4. Click [Paste] in the "Actions" section. The node, including its properties and subtrees, are moved to the destination.

Deleting a Node

To delete a node, follow these steps:

  1. Select the node to be deleted.
  2. Click [Delete] in the "Actions" section. You are prompted to confirm the action.
  3. Click [OK]. The node, including its properties and subtrees, are deleted.



Back to top 


...

Operations with Node Properties

Creating a Property

To create a new property for a node, follow these steps:

  1. Select the node in for which the property is to be created.
  2. Press the [Add property] button. The ‘Add property’ dialog is added to the screen"Add property" section appears.
  3. From the pull-down menu, select the definition of the property to be created.
  4. Enter the name of the property.
  5. From the pull-down menu, select the type of the property to be created.
  6. To define a multi-value property, check ‘Multiple’ (see also: Multi-value properties)select "Multiple". The [Add value] button will be addedappears.
  7. Enter the (first) value of the property.
  8. Press the [Add] button. The property is added.
  9. In the case of a For multi-value property: to add an other value (instance)properties, enter the other next value and press then click [Add value]. The other value is added.

Editing a Property

...

To edit a node property, follow these steps:

  1. Click [Edit] next to the property you want to edit. The "Edit property" section appears.
  2. Make the desired changes.
  3. Press [Set]. The property is changed.

By pressing clicking [Add value] instead of [Set] you create a new instance of the property.

Deleting a Property

...

To delete a node property, follow these steps:

  1. Select the "Delete" checkbox next to the property to be deleted.
  2. Press theClick [Delete]button. You are prompted to confirm.
  3. Press Click [OK]. The property is deleted.



Back to top

 

...


...

Executing JCR Queries

By way of example, the JCR browser is provided with a list of preprogrammed pre-programmed XPath and SQL queries. To this list, you can add your own queries. Your queries are saved and you can edit them afterwardsat a later time. To execute a query, you just select one from the list, make some adaptations if you like modify it and then execute it.

Creating or Editing a Query

  1. Select the JCR Queries tab.
  2. From the Queries pull-down menu, select ‘New query’, or an existing query. Notice that you cannot edit preprogrammed queries.
  3. Enter or change the name of the query.
  4. Select the query syntax type ‘Xpath’ or ‘SQL’"Xpath" or "SQL".
  5. Enter or change the actual query. See also: Query examples: SQL versus XPath)Press
  6. Click [Apply] to save the query on the list.

Query Examples: SQL Versus XPath

 


SQLXPath
SELECT * FROM nt:base//*
SELECT * FROM my:type//element(*, my:type)
SELECT my:title FROM my:type//element(*, my:type)/@my:title
SELECT my:title, my:text FROM my:type//element(*, my:type)/ (@my:title | @my:text)
SELECT * FROM my:type WHERE jcr:path LIKE '/nodes[%]/%'/jcr:root/nodes// element(*, my:type)
SELECT * FROM my:type WHERE my:title='JSR 170'//element(*, my:type) [@my:title = 'JSR 170']
SELECT * FROM my:type WHERE my:title <> 'JSR 170'//element(*, my:type) [@my:title != 'JSR 170']
SELECT * FROM my:type WHERE my:title = 'JSR 170' AND my:author = 'David'//element(*, my:type) [@my:title = 'JSR 170' and @my:author = 'David']
SELECT * FROM my:type WHERE NOT (my:title = 'JSR 170')//element(*, my:type) [not(@my:title = 'JSR 170')]
SELECT * FROM my:type WHERE my:title IS NOT NULL//element(*, my:type) [@my:title]
SELECT * FROM my:type WHERE my:title IS NULL//element(*, my:type) [not(@my:title)]
SELECT * FROM my:type WHERE my:title LIKE 'JSR 170%'//element(*, my:type) [jcr:like(@my:title, 'JSR 170%')]
SELECT * FROM my:type WHERE CONTAINS(*, 'JSR 170')//element(*, my:type) [jcr:contains(., 'JSR 170')]
SELECT * FROM my:type WHERE jcr:path LIKE'/some[%]/nodes[%]'/jcr:root/some/ element(nodes, my:type)
SELECT * FROM my:type WHERE jcr:path = '/some/nodes'/jcr:root/some[1]/element(nodes, my:type)[1]
SELECT * FROM my:type WHERE jcr:path LIKE '/some[%]/nodes[%]/%' AND NOT jcr:path LIKE '/some[%]/nodes[%]/%/%'/jcr:root/some/nodes/ element(*, my:type)
SELECT * FROM my:type WHERE jcr:path LIKE '/some/nodes/%' AND NOT jcr:path LIKE '/some/nodes/%/%'/jcr:root/some[1]/nodes[1]/ element(*, my:type)
SELECT * FROM my:type WHERE jcr:path LIKE '/some[%]/nodes[%]/%'/jcr:root/some/nodes// element(*, my:type)
SELECT * FROM my:type WHERE jcr:path LIKE '/some/nodes/%'/jcr:root/some[1]/nodes[1]// element(*, my:type)
SELECT * FROM my:type WHERE jcr:path LIKE '/some[%]/nodes[%]' OR jcr:path LIKE '/some[%]/nodes[%]/%'/jcr:root/some/nodes// element(*, my:type)
SELECT * FROM my:type WHERE jcr:path = '/some/nodes' OR jcr:path LIKE '/some/nodes/%'/jcr:root/some[1]/nodes[1]// element(*, my:type)

Deleting a Query from the List

  1. Select the JCR Queries tab.
  2. From the Queries pull-down menu, select the query you want to delete. Notice that you cannot delete preprogrammed pre-programmed queries.
  3. Press Click [Delete query]. The query is removed from the list.

...

  1. Select the JCR Browser tab.
  2. Press the Click [More] button. The ‘Query execution’ dialog is added to the screen"Query execution" section appears.
  3. From the pull-down menu, select the Select the query, for instance ‘MyNodeTypes XPath’.If desired, adapt "MyNodeTypes XPath", from the drop-down list.
  4. Modify the query to your needs.
  5. Press the Click [Execute query] button. The results appear on the Query results tab.



Back to top