XML Schema "terracotta-4.xsd"
Target Namespace:
http://www.terracotta.org/config
Components:
global elements, 97 local elements, 42 complexTypes, 26 simpleTypes
Schema Location:
/export1/cruise/2.5.2/2.5/code/base/common/src.resources/com/tc/config/schema/terracotta-4.xsd, see XML source
All Element Summary
access-file (type path)
Type:
Content:
simple
Defined:
locally at 1 location
additional-boot-jar-classes (type additional-boot-jar-classes)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
application (type application) This section contains items that affect the core behavior of Terracotta as it relates to your application.
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
application-context (type spring-app-context)
Type:
Content:
complex, 5 elements
Defined:
locally at 1 location
application-contexts (type spring-app-contexts)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
authentication (type authentication) Turn on authentication for the Terracotta server.
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
auto-lock-details (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
autolock (type autolock)
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
bean (type non-distributed-fields)
Type:
Content:
complex, 1 attribute, 1 element
Defined:
locally at 1 location
beans (type spring-bean)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
caller (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
class (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
class-expression (type class-expression)
Type:
Content:
simple
Defined:
locally at 1 location
client-reconnect-window (type positive-int)
Type:
Content:
simple
Defined:
locally at 1 location
clients (type client) This section contains settings that affect all clients that connect to the system.
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
configuration-model (type configuration-model)
Type:
Content:
simple
Defined:
locally at 1 location
data (type path) Where should the server store its persistent data?
Type:
Content:
simple
Defined:
locally at 1 location
debugging (type dso-client-debugging)
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
distributed-event (type non-blank-token)
Type:
Content:
simple
Defined:
locally at 1 location
distributed-events (type spring-distributed-event)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
distributed-method-debug (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
distributed-methods (type distributed-methods)
Type:
Content:
complex, 1 attribute, 1 element
Defined:
locally at 1 location
distributed-methods (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
dso Terracotta Plug-in configuration element
Type:
Content:
complex, 8 elements
Used:
never
dso (type dso-application) This section controls how Terracotta DSO behaves in your application.
Type:
Content:
complex, 8 elements
Defined:
locally at 1 location
dso (type dso-client-data) This section contains data for Terracotta DSO that's specific to the DSO client only.
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
dso (type dso-server-data) Configuration data for DSO that's specific to the DSO server.
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
dso-port (type port) On what port should the DSO server listen for connections from DSO clients?
Type:
Content:
simple
Defined:
locally at 1 location
dso-reflection-enabled (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
election-time (type positive-int)
Type:
Content:
simple
Defined:
locally at 1 location
enable-location-info (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
enabled (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 2 locations
exclude (type class-expression)
Type:
Content:
simple
Defined:
locally at 1 location
execute (type xs:string)
Type:
xs:string
Content:
simple
Defined:
locally at 1 location
fast-proxy (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
fault-count (type non-negative-int)
Type:
Content:
simple
Defined:
locally at 1 location
field-change-debug (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
field-expression (type field-expression)
Type:
Content:
simple
Defined:
locally at 1 location
field-name (type qualified-field-name)
Type:
Content:
simple
Defined:
locally at 2 locations
full-stack (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
garbage-collection (type garbage-collection)
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
ha (type ha)
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
hierarchy (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
honor-transient (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
include (type include)
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
include (type qualified-class-name)
Type:
Content:
simple
Defined:
locally at 1 location
instrumentation-logging (type instrumentation-logging)
Type:
Content:
complex, 6 elements
Defined:
locally at 1 location
instrumented-classes (type instrumented-classes)
Type:
Content:
complex, 2 elements
Defined:
locally at 2 locations
interval (type positive-int)
Type:
Content:
simple
Defined:
locally at 1 location
jee-application (type spring-apps)
Type:
Content:
complex, 1 attribute, 6 elements
Defined:
locally at 1 location
jmx-port (type port) On what port should the server listen for connections from the Terracotta administration console?
Type:
Content:
simple
Defined:
locally at 1 location
l2-group-port (type port) Port for server to server communication which must be indicated when HA mode is networked-active-passive.
Type:
Content:
simple
Defined:
locally at 1 location
license (type license) The 'license' element requires a 'location' and 'type' to be specified.
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
location (type path) Where is the license file?
Type:
Content:
simple
Defined:
locally at 1 location
lock-debug (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
lock-level (type lock-level)
Type:
Content:
simple
Defined:
locally at 2 locations
lock-name (type java-identifier)
Type:
Content:
simple
Defined:
locally at 1 location
locks (type locks)
Type:
Content:
complex, 2 elements
Defined:
locally at 2 locations
locks (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
logs (type path) In which directory should the server store its log files?
Type:
Content:
simple
Defined:
locally at 2 locations
method (type method-name)
Type:
Content:
simple
Defined:
locally at 1 location
method-expression (type method-expression)
Type:
Content:
simple
Defined:
locally at 2 locations
method-expression (within distributed-methods)
Type:
Content:
simple, 1 attribute
Defined:
locally at 1 location
Includes:
definition of 1 attribute
mode (type ha-mode)
Type:
Content:
simple
Defined:
locally at 1 location
mode (type persistence-mode)
Type:
Content:
simple
Defined:
locally at 1 location
module (type module)
Type:
Content:
empty, 3 attributes
Defined:
locally at 1 location
modules (type modules) This section contains the list of modules to use in the client.
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
named-lock (type named-lock)
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
networked-active-passive (type networked-active-passive)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
new-object-debug (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
non-distributed-field (type java-identifier)
Type:
Content:
simple
Defined:
locally at 1 location
non-portable-dump (type xs:boolean) When an attempt is made to distribute a non-portable object, the object (and any objects to which it refers) will be logged in the terracotta log file.
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
on-load (type on-load)
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
password-file (type path)
Type:
Content:
simple
Defined:
locally at 1 location
path (type path)
Type:
Content:
simple
Defined:
locally at 1 location
paths (type spring-path)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
period-days (type positive-int)
Type:
Content:
simple
Defined:
locally at 1 location
persistence (type persistence)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
repository (type xs:anyURI)
Type:
xs:anyURI
Content:
simple
Defined:
locally at 1 location
root (type root)
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
root-name (type java-identifier)
Type:
Content:
simple
Defined:
locally at 2 locations
roots (type roots)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
roots (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
runtime-logging (type runtime-logging)
Type:
Content:
complex, 6 elements
Defined:
locally at 1 location
runtime-output-options (type runtime-output-options)
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
server (type server)
Type:
Content:
complex, 3 attributes, 7 elements
Defined:
locally at 1 location
servers (type servers) This section defines the servers present in your Terracotta system.
Type:
Content:
complex, 3 elements
Defined:
locally at 1 location
session-support (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
spring (type spring-application) This section is a self-contained configuration that controls how Terracotta for Spring behaves in your application.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
system (type system) The 'system' section contains configuration data that affects the entire Terracotta system as a whole; things like the configuration mode go here.
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
tc-config
Type:
embedded complexType
Content:
complex, 4 elements
Includes:
definitions of 4 elements
Used:
never
transient-fields (type transient-fields)
Type:
Content:
complex, 1 element
Defined:
locally at 2 locations
transient-root (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
type (type license-type) What type of license is in use?
Type:
Content:
simple
Defined:
locally at 1 location
update-check (type update-check)
Type:
Content:
complex, 2 elements
Defined:
locally at 1 location
verbose (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
wait-notify-debug (type xs:boolean)
Type:
xs:boolean
Content:
simple
Defined:
locally at 1 location
web-application (type web-application)
Type:
Content:
simple, 1 attribute
Defined:
locally at 1 location
web-applications (type web-applications)
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
Complex Type Summary
additional-boot-jar-classes
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
application This section contains items that affect the core behavior of Terracotta as it relates to your application.
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
authentication
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
autolock
Content:
complex, 1 attribute, 2 elements
Includes:
definitions of 1 attribute and 2 elements
Used:
client This section contains settings that affect all clients that connect to the system.
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
distributed-methods
Content:
complex, 1 attribute, 1 element
Includes:
definition of 1 element
Used:
dso-application
Content:
complex, 8 elements
Includes:
definitions of 8 elements
Used:
dso-client-data
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
dso-client-debugging
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
dso-server-data
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
garbage-collection
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
ha
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
include
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
instrumentation-logging
Content:
complex, 6 elements
Includes:
definitions of 6 elements
Used:
instrumented-classes
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
license
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
locks
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
module Identifies a module/version to use, this module must be located in either a) the default repository shipped with Terracotta or b) one of the repositories listed in the <module> section.
Content:
empty, 3 attributes
Includes:
definitions of 3 attributes
Used:
modules
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
named-lock
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
networked-active-passive
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
non-distributed-fields
Content:
complex, 1 attribute, 1 element
Includes:
definitions of 1 attribute and 1 element
Used:
on-load
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
persistence
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
root Declares a DSO root.
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
roots
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
runtime-logging
Content:
complex, 6 elements
Includes:
definitions of 6 elements
Used:
runtime-output-options
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
server Data specific to one of your servers.
Content:
complex, 3 attributes, 7 elements
Includes:
definitions of 3 attributes and 7 elements
Used:
servers This section defines the servers present in your Terracotta system.
Content:
complex, 3 elements
Includes:
definitions of 3 elements
Used:
spring-app-context
Content:
complex, 5 elements
Includes:
definitions of 5 elements
Used:
spring-app-contexts
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
spring-application
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
spring-apps
Content:
complex, 1 attribute, 6 elements
Includes:
definitions of 1 attribute and 6 elements
Used:
spring-bean
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
spring-distributed-event
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
spring-path
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
system The 'system' section contains configuration data that affects the entire Terracotta system as a whole; things like whether to activate DSO services go here.
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
transient-fields
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
update-check
Content:
complex, 2 elements
Includes:
definitions of 2 elements
Used:
web-application
Content:
simple, 1 attribute
Includes:
definition of 1 attribute
Used:
web-applications
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
Simple Type Summary
class-expression
Used:
class-name
Used:
never
configuration-model The configuration model: 'development' or 'production'.
Used:
field-expression
Used:
field-name
Used:
never
fixed-string-none
Used:
fixed-string-unlimited
Used:
never
ha-mode
Used:
host
Used:
java-identifier
Used:
license-type What type of license is in use?
Used:
lock-level
Used:
method-expression
Used:
method-name
Used:
non-blank-token
Used:
non-negative-int
Used:
optionally-qualified-method-name
Used:
never
path Several different predefined substitutions are available for your use: %h expands to the fully-qualified host name of the machine running your application %i expands to the IP adress of the machine running your application %H refers to the home directory of the user running running your application %n refers to the username of the user running running your application %o refers to the name of the operating system running running your application %a refers to the processor architecture of the machine running running your application %v refers to the version of the operating system running running your application %t refers to the temporary directory of the machine running your application(on Linux or Solaris, e.g., /tmp) %(property) refers to the java system property of the JVM running on the machine(e.g.
Used:
persistence-mode
Used:
port
Used:
positive-int
Used:
positive-int-or-none
Used:
never
qualified-class-name
Used:
qualified-field-name
Used:
qualified-method-name
Used:
never
web-application-name-expression
Used:
XML Source
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.terracotta.org/config" version="4" xmlns="http://www.terracotta.org/config" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="tc-config">
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" name="system" type="system">
<xs:annotation>
<xs:documentation>
The 'system' section contains configuration
data that affects the entire Terracotta
system as a whole; things like the configuration
mode go here.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="servers" type="servers">
<xs:annotation>
<xs:documentation>
This section defines the servers present
in your Terracotta system. You can omit
this section entirely, in which case it
behaves as if there's a single server
with all values set at their default.
You can include exactly one server entry
here (the common case), or, if you're
going to run multiple servers for
failover, you can include multiple
servers here.

If you include more than one server
here, note that each server will need to
know which configuration it should use
as it starts up. If you name your
servers according to the host that they
run on (and no host contains more than
one server), then they will find the
hostname themselves and work
automatically.

If you name your servers in any other
fashion (and, again, only if there is
more than one 'server' element present
here), then you will need to pass the
command-line option "-n
<![CDATA[
<name>
]]>
"
to the start-tc-server script, passing
it the name of a server configuration
from this file.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="clients" type="client">
<xs:annotation>
<xs:documentation>
This section contains settings that affect
all clients that connect to the system.

Note that while these settings are applied
uniformly across all clients, this does not
prevent you from applying different settings
to various clients. There are two ways of
doing this:

Certain parameters ('logs', below) undergo
parameter expansion before being used by the
client. This allows you to use various
predefined substitutions (like '%h' for
host), or a general one (%(myprop) to use
the value of Java system property 'myprop'),
for these values; expansions are carried out
in each client's JVM independently.

For each client to have its own
configuration you can set 'tc.config' to the
configuration file. If the configuration
model is production then the 'application'
section for all of the clients comes from
the application section of the server's
config file.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="application" type="application">
<xs:annotation>
<xs:documentation>
This section contains items that affect the
core behavior of Terracotta as it relates to
your application. This data must be kept
consistent across clients and servers in
order for Terracotta to function properly,
and so the system will enforce this.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:simpleType name="class-expression">
<xs:restriction base="xs:token">
<xs:pattern value="(@[A-Za-z_0-9$\*\.]+ )*[@A-Za-z_0-9$\*\.]+\+?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="method-expression">
<xs:restriction base="xs:token">
<xs:pattern value="(@[A-Za-z_0-9$\*\.]+ )*([A-Za-z_0-9$\*\.\[\] \+]+ )[A-Za-z_0-9$\*\.\+]+(\([A-Za-z_0-9$,\*\. \[\]]*\))"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="field-expression">
<xs:restriction base="xs:token">
<xs:pattern value="(@[A-Za-z_0-9$\*\.]+ ){0,1}([A-Za-z_0-9$\*\.\[\] \+]){2,}"/>
</xs:restriction>
</xs:simpleType>
<!--
<xs:simpleType name="method-name-expression">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_0-9$\. \[\]]+(\([A-Za-z_0-9$,\. \[\]]*\))" />
</xs:restriction>
</xs:simpleType>
-->
<xs:simpleType name="web-application-name-expression">
<xs:restriction base="xs:token">
<xs:pattern value="[^\*]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="lock-level">
<xs:restriction base="xs:token">
<xs:enumeration value="write"/>
<xs:enumeration value="read"/>
<xs:enumeration value="concurrent"/>
<xs:enumeration value="synchronous-write"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="named-lock">
<xs:all>
<xs:element name="lock-name" type="java-identifier"/>
<xs:element name="method-expression" type="method-expression"/>
<xs:element minOccurs="0" name="lock-level" type="lock-level"/>
</xs:all>
</xs:complexType>
<xs:complexType name="autolock">
<xs:all>
<xs:element name="method-expression" type="method-expression"/>
<xs:element minOccurs="0" name="lock-level" type="lock-level"/>
</xs:all>
<xs:attribute default="false" name="auto-synchronized" type="xs:boolean"/>
</xs:complexType>
<xs:complexType name="locks">
<xs:sequence maxOccurs="unbounded">
<xs:element minOccurs="0" name="autolock" type="autolock"/>
<xs:element minOccurs="0" name="named-lock" type="named-lock"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="root">
<xs:annotation>
<xs:documentation>
Declares a DSO root. A root can have a name that defaults to its fully
qualified field name.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="root-name" type="java-identifier"/>
<xs:element maxOccurs="1" minOccurs="0" name="field-name" type="qualified-field-name"/>
<xs:element maxOccurs="1" minOccurs="0" name="field-expression" type="field-expression"/>
</xs:all>
</xs:complexType>
<xs:complexType name="roots">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="root" type="root"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="include">
<xs:all>
<xs:element name="class-expression" type="class-expression"/>
<xs:element default="false" minOccurs="0" name="honor-transient" type="xs:boolean"/>
<xs:element minOccurs="0" name="on-load" type="on-load"/>
</xs:all>
</xs:complexType>
<xs:complexType name="on-load">
<xs:choice>
<xs:element name="execute" type="xs:string"/>
<xs:element name="method" type="method-name"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="instrumented-classes">
<xs:sequence maxOccurs="unbounded">
<xs:element minOccurs="0" name="include" type="include"/>
<xs:element minOccurs="0" name="exclude" type="class-expression"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="distributed-methods">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="method-expression">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="method-expression">
<xs:attribute default="true" name="run-on-all-nodes" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="web-applications">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="web-application" type="web-application"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="web-application">
<xs:simpleContent>
<xs:extension base="web-application-name-expression">
<xs:attribute default="false" name="synchronous-write" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="instrumentation-logging">
<xs:all>
<xs:element default="false" minOccurs="0" name="class" type="xs:boolean"/>
<xs:element default="true" minOccurs="0" name="hierarchy" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="locks" type="xs:boolean"/>
<xs:element default="true" minOccurs="0" name="transient-root" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="roots" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="distributed-methods" type="xs:boolean"/>
</xs:all>
</xs:complexType>
<xs:complexType name="runtime-logging">
<xs:all>
<xs:element default="true" minOccurs="0" name="non-portable-dump" type="xs:boolean">
<xs:annotation>
<xs:documentation xmlns="http://www.w3.org/1999/xhtml">
When an attempt is made to distribute a non-portable object, the object (and any objects
to which it refers) will be logged in the terracotta log file.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="false" minOccurs="0" name="lock-debug" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="field-change-debug" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="wait-notify-debug" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="distributed-method-debug" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="new-object-debug" type="xs:boolean"/>
</xs:all>
</xs:complexType>
<xs:complexType name="additional-boot-jar-classes">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="include" type="qualified-class-name"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="transient-fields">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="field-name" type="qualified-field-name"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="runtime-output-options">
<xs:all>
<xs:element default="false" minOccurs="0" name="auto-lock-details" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="caller" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="full-stack" type="xs:boolean"/>
</xs:all>
</xs:complexType>
<xs:complexType name="dso-client-debugging">
<xs:all>
<xs:element minOccurs="0" name="instrumentation-logging" type="instrumentation-logging"/>
<xs:element minOccurs="0" name="runtime-logging" type="runtime-logging"/>
<xs:element minOccurs="0" name="runtime-output-options" type="runtime-output-options"/>
</xs:all>
</xs:complexType>
<xs:complexType name="dso-client-data">
<xs:all>
<xs:element default="500" minOccurs="0" name="fault-count" type="non-negative-int"/>
<xs:element minOccurs="0" name="debugging" type="dso-client-debugging"/>
</xs:all>
</xs:complexType>
<xs:complexType name="garbage-collection">
<xs:all>
<xs:element default="true" minOccurs="0" name="enabled" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="verbose" type="xs:boolean"/>
<xs:element default="3600" minOccurs="0" name="interval" type="positive-int"/>
</xs:all>
</xs:complexType>
<xs:simpleType name="persistence-mode">
<xs:restriction base="xs:token">
<xs:enumeration value="temporary-swap-only"/>
<xs:enumeration value="permanent-store"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="persistence">
<xs:all>
<xs:element default="temporary-swap-only" minOccurs="0" name="mode" type="persistence-mode"/>
</xs:all>
</xs:complexType>
<xs:complexType name="dso-server-data">
<xs:all>
<xs:element default="120" minOccurs="0" name="client-reconnect-window" type="positive-int"/>
<xs:element minOccurs="0" name="persistence" type="persistence"/>
<xs:element minOccurs="0" name="garbage-collection" type="garbage-collection"/>
</xs:all>
</xs:complexType>
<xs:complexType name="module">
<xs:annotation>
<xs:documentation>
Identifies a module/version to use, this module must be located
in either a) the default repository shipped with Terracotta or
b) one of the repositories listed in the
<![CDATA[
<module>
]]>
section.
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="version" type="xs:string"/>
<xs:attribute default="org.terracotta.modules" name="group-id" type="xs:string"/>
</xs:complexType>
<xs:complexType name="modules">
<xs:sequence maxOccurs="unbounded">
<xs:element minOccurs="0" name="repository" type="xs:anyURI"/>
<xs:element minOccurs="0" name="module" type="module"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="dso-application">
<xs:all>
<xs:element minOccurs="0" name="instrumented-classes" type="instrumented-classes"/>
<xs:element minOccurs="0" name="transient-fields" type="transient-fields"/>
<xs:element minOccurs="0" name="locks" type="locks"/>
<xs:element minOccurs="0" name="roots" type="roots"/>
<xs:element minOccurs="0" name="distributed-methods" type="distributed-methods"/>
<xs:element minOccurs="0" name="additional-boot-jar-classes" type="additional-boot-jar-classes"/>
<xs:element minOccurs="0" name="web-applications" type="web-applications"/>
<xs:element default="true" minOccurs="0" name="dso-reflection-enabled" type="xs:boolean"/>
</xs:all>
</xs:complexType>
<xs:complexType name="spring-application">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="jee-application" type="spring-apps"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="spring-bean">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="bean" type="non-distributed-fields"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="non-distributed-fields">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="non-distributed-field" type="java-identifier"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="spring-app-contexts">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="application-context" type="spring-app-context"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="spring-distributed-event">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="distributed-event" type="non-blank-token"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="spring-app-context">
<xs:all>
<xs:element minOccurs="0" name="root-name" type="java-identifier"/>
<xs:element minOccurs="0" name="enable-location-info" type="xs:boolean"/>
<xs:element name="paths" type="spring-path"/>
<xs:element minOccurs="0" name="distributed-events" type="spring-distributed-event"/>
<xs:element minOccurs="0" name="beans" type="spring-bean"/>
</xs:all>
</xs:complexType>
<xs:complexType name="spring-path">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="path" type="path"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="spring-apps">
<xs:all>
<xs:element default="false" minOccurs="0" name="fast-proxy" type="xs:boolean"/>
<xs:element default="false" minOccurs="0" name="session-support" type="xs:boolean"/>
<xs:element minOccurs="0" name="locks" type="locks"/>
<xs:element minOccurs="0" name="instrumented-classes" type="instrumented-classes"/>
<xs:element minOccurs="0" name="application-contexts" type="spring-app-contexts"/>
<xs:element minOccurs="0" name="transient-fields" type="transient-fields"/>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="authentication">
<xs:all>
<xs:element default="%(java.home)/lib/management/jmxremote.password" minOccurs="0" name="password-file" type="path"/>
<xs:element default="%(java.home)/lib/management/jmxremote.access" minOccurs="0" name="access-file" type="path"/>
</xs:all>
</xs:complexType>
<xs:complexType name="ha">
<xs:all>
<xs:element default="disk-based-active-passive" minOccurs="0" name="mode" type="ha-mode"/>
<xs:element minOccurs="0" name="networked-active-passive" type="networked-active-passive"/>
</xs:all>
</xs:complexType>
<xs:complexType name="networked-active-passive">
<xs:all>
<xs:element default="5" minOccurs="0" name="election-time" type="positive-int"/>
</xs:all>
</xs:complexType>
<xs:complexType name="update-check">
<xs:all>
<xs:element default="false" minOccurs="0" name="enabled" type="xs:boolean"/>
<xs:element default="7" minOccurs="0" name="period-days" type="positive-int"/>
</xs:all>
</xs:complexType>
<xs:complexType name="server">
<xs:annotation>
<xs:documentation xmlns="http://www.w3.org/1999/xhtml">
Data specific to one of your servers.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="authentication" type="authentication">
<xs:annotation>
<xs:documentation xmlns="http://www.w3.org/1999/xhtml">
Turn on authentication for the Terracotta server. An
empty tag &lt;authentication/&gt; defaults to the standard Java JMX authentication mechanism referring
to password and access files in: $JAVA_HOME/jre/lib/management.
<ul>
<li>$JAVA_HOME/jre/lib/management/jmxremote.password</li>
<li>$JAVA_HOME/jre/lib/management/jmxremote.access</li>
</ul>
You must modify these files as such (if none exist create them):
<p>jmxremote.password</p>
add a line to the end of the file declaring your username and password followed by a caridge return:
<p>secretusername secretpassword</p>
<p>jmxremote.access</p>
add the following line (with a caridge return) to the end of your file:
<p>secretusername readwrite</p>
You must also:
<br/>
$ chmod 500 jmxremote.password
<br/>
$ chown &lt;user who will execute the tc-server&gt; jmxremote.password
<br/>
<br/>
NOTE: This will not work unless you're correctly running the Terracotta server with Java version &gt;= 1.5
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="data" minOccurs="0" name="data" type="path">
<xs:annotation>
<xs:documentation>
Where should the server store its persistent
data? (This includes stored object data for
DSO.) This value undergoes parameter
substitution before being used; this allows you
to use placeholders like '%h' (for the hostname)
or '%(com.mycompany.propname)' (to substitute in
the value of Java system property
'com.mycompany.propname'). Thus, a value of
'server-data-%h' would expand to
'server-data-artichoke' if running on host
'artichoke'.

If this is a relative path, then it is
interpreted relative to the current working
directory of the server (that is, the directory
you were in when you started the server). It is
thus recommended that you specify an absolute
path here.

Default: 'data'

This places the 'data' directory in the
directory you were in when you invoked
'start-tc-server'.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="logs" minOccurs="0" name="logs" type="path">
<xs:annotation>
<xs:documentation>
In which directory should the server store its
log files? Again, this value undergoes parameter
substitution before being used; thus, a value
like 'server-logs-%h' would expand to
'server-logs-artichoke' if running on host
'artichoke'.

If this is a relative path, then it is
interpreted relative to the current working
directory of the server (that is, the directory
you were in when you started server). It is thus
recommended that you specify an absolute path
here.

Default: 'logs'

This places the 'logs' directory in the
directory you were in when you invoked
'start-tc-server'.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="9510" minOccurs="0" name="dso-port" type="port">
<xs:annotation>
<xs:documentation>
On what port should the DSO server listen for
connections from DSO clients? This can be any
port you like, but note that ports below 1024
typically require 'root' privileges to use on
Unix-style systems (Linux, Solaris).

Default:9510
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="9520" minOccurs="0" name="jmx-port" type="port">
<xs:annotation>
<xs:documentation>
On what port should the server listen for
connections from the Terracotta administration
console? This can be any port you like, but note
that ports below 1024 typically require 'root'
privileges to use on Unix-style systems (Linux,
Solaris).

Default: 9520
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="9530" minOccurs="0" name="l2-group-port" type="port">
<xs:annotation>
<xs:documentation>
Port for server to server communication which must
be indicated when HA mode is networked-active-passive.
This can be any port you like, but note that ports
below 1024 typically require 'root' privileges to
use on Unix-style systems (Linux, Solaris).

Default: 9530
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="dso" type="dso-server-data">
<xs:annotation>
<xs:documentation>
Configuration data for DSO that's specific to
the DSO server.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="host" type="host" use="optional">
<xs:annotation>
<xs:documentation>
The host that the server runs on, expansion parameters
may be used in this attribute. Defaults to "%i" (the
machine IP address).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="non-blank-token" use="optional">
<xs:annotation>
<xs:documentation>
The symbolic name of the server, expansion parameters may
be used. Defaults to "host:dso-port".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute default="0.0.0.0" name="bind" type="non-blank-token" use="optional">
<xs:annotation>
<xs:documentation>
The address this server should bind its network listeners to. By default network listeners
will be available on all local addresses (ie. 0.0.0.0)
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="client">
<xs:annotation>
<xs:documentation>
This section contains settings that affect all clients
that connect to the system.

Note that while these settings are applied uniformly
across all clients, this does not prevent you from
applying different settings to various clients. There
are two ways of doing this:

- Certain parameters ('logs', below) undergo parameter
expansion before being used by the client. This allows
you to use various predefined substitutions (like '%h'
for host), or a general one (%(myprop) to use the value
of Java system property 'myprop'), for these values;
expansions are carried out in each client's JVM
independently.

- For each client to have its own configuration you can
set 'tc.config' to the configuration file. If the
configuration model is production then the 'application'
section for all of the clients comes from the
application section of the server's config file.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="modules" type="modules">
<xs:annotation>
<xs:documentation>
This section contains the list of modules to use in
the client.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="logs-%i" minOccurs="0" name="logs" type="path">
<xs:annotation>
<xs:documentation>
Where should the client write its log files?

This value undergoes parameter substitution
before being used; thus, a value like
'client-logs-%h' would expand to
'client-logs-banana' if running on host
'banana'.

If this is a relative path, then it is
interpreted relative to the current working
directory of the client (that is, the directory
you were in when you started the program that
uses Terracotta services). It is thus
recommended that you specify an absolute path
here.

Default: 'logs-%i';

this places the logs in a directory relative to
the directory you were in when you invoked the
program that uses Terracotta services (your
client), and calls that directory, for example,
'logs-10.0.0.57' if the machine that the client
is on has assigned IP address 10.0.0.57.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="dso" type="dso-client-data">
<xs:annotation>
<xs:documentation>
This section contains data for Terracotta DSO
that's specific to the DSO client only.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="application">
<xs:annotation>
<xs:documentation>
This section contains items that affect the core
behavior of Terracotta as it relates to your
application. This data must be kept consistent across
clients and servers in order for Terracotta to function
properly, and so the system will enforce this; see the
comments for the 'configuration-model' switch, above,
for more details.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="dso" type="dso-application">
<xs:annotation>
<xs:documentation>
This section controls how Terracotta DSO behaves
in your application.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="spring" type="spring-application">
<xs:annotation>
<xs:documentation>
This section is a self-contained configuration
that controls how Terracotta for Spring behaves in
your application.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="servers">
<xs:annotation>
<xs:documentation>
This section defines the servers present in your
Terracotta system. You can omit this section entirely, in
which case it behaves as if there's a single server with
all values set at their default. You can include exactly
one server entry here (the common case), or, if you're
going to run multiple servers for failover, you can
include multiple servers here.

If you include more than one server here, note that each
server will need to know which configuration it should use
as it starts up. If you name your servers according to the
host that they run on (and no host contains more than one
server), then they will find the hostname themselves and
work automatically.

If you name your servers in any other fashion (and, again,
only if there is more than one 'server' element present
here), then you will need to pass the command-line option
"-n
<![CDATA[
<name>
]]>
" to the start-tc-server script, passing it the name of a
server configuration from this file.
</xs:documentation>
</xs:annotation>
<xs:sequence maxOccurs="1">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="server" type="server"/>
</xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="ha" type="ha"/>
<xs:element maxOccurs="1" minOccurs="0" name="update-check" type="update-check"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="configuration-model">
<xs:annotation>
<xs:documentation>
The configuration model: 'development' or 'production'.

The clients can each have their own configuration
file or all use the server's configuration file.

The server's configuration file is located at
http://localhost:9515/config

If the configuration model is production then the
'application' section for all of the clients comes
from the application section of the server's config
file.

If the configuration model is development then each
of the clients's 'application' section is determined
by their own configuration file.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="development"/>
<xs:enumeration value="production"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="license-type">
<xs:annotation>
<xs:documentation>
What type of license is in use? This can be 'trial' or
'production', and does not affect the behavior of the
system other than ensuring that the license in use
matches this type. (This prevents you from accidentally
putting a trial license onto your production server and
then panicking thirty days later when that license
expires.)
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="none"/>
<xs:enumeration value="trial"/>
<xs:enumeration value="production"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="license">
<xs:all>
<xs:element name="location" type="path">
<xs:annotation>
<xs:documentation>
Where is the license file? Each server must have
access to this file (which may be a relative or
absolute path). This item can use parameter
substitution, which allows you to insert data
like '%h' and have it expand to the current
hostname; this allows flexibility in the case
where different servers have their license file
in different locations.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="none" name="type" type="license-type">
<xs:annotation>
<xs:documentation>
What type of license is in use? This can be
'trial' or 'production', and does not affect the
behavior of the system other than ensuring that
the license in use matches this type. (This
prevents you from accidentally putting a trial
license onto your production server and then
panicking thirty days later when that license
expires.)
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="system">
<xs:annotation>
<xs:documentation>
The 'system' section contains configuration data that
affects the entire Terracotta system as a whole; things
like whether to activate DSO services go here.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="license" type="license">
<xs:annotation>
<xs:documentation>
The 'license' element requires a 'location' and
'type' to be specified. If you omit the
'license' element, Terracotta will run in a
limited 'initial' mode, which limits server
runtime and limits the maximum number of
simultaneously-connected clients.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="development" minOccurs="0" name="configuration-model" type="configuration-model"/>
</xs:all>
</xs:complexType>
<xs:simpleType name="ha-mode">
<xs:restriction base="xs:token">
<xs:enumeration value="networked-active-passive"/>
<xs:enumeration value="disk-based-active-passive"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="non-blank-token">
<xs:restriction base="xs:token">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="path">
<xs:annotation>
<xs:documentation>
Several different predefined substitutions are available
for your use:

%h expands to the fully-qualified host name of the
machine running your application

%i expands to the IP adress of the machine running
your application

%H refers to the home directory of the user running
running your application

%n refers to the username of the user running
running your application

%o refers to the name of the operating system
running running your application

%a refers to the processor architecture of the
machine running running your application %v refers
to the version of the operating system running
running your application

%t refers to the temporary directory of the machine
running your application(on Linux or Solaris, e.g.,
/tmp)

%(property) refers to the java system property of
the JVM running on the machine(e.g. %(java.home) )
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fixed-string-unlimited">
<xs:restriction base="xs:token">
<xs:enumeration value="unlimited"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fixed-string-none">
<xs:restriction base="xs:token">
<xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="positive-int">
<xs:restriction base="xs:positiveInteger">
<xs:maxInclusive value="2147483647"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="non-negative-int">
<xs:restriction base="xs:nonNegativeInteger">
<xs:maxInclusive value="2147483647"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="positive-int-or-none">
<xs:union memberTypes="positive-int fixed-string-none"/>
</xs:simpleType>
<xs:simpleType name="port">
<xs:restriction base="xs:nonNegativeInteger">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="65535"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="host">
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:minLength value="1"/>
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="qualified-class-name">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_][A-Za-z_0-9$]*(\.[A-Za-z_][A-Za-z_0-9$]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="class-name">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_][A-Za-z_0-9$]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="qualified-field-name">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_][A-Za-z_0-9$]*(\.[A-Za-z_][A-Za-z_0-9$]*)+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="field-name">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_][A-Za-z_0-9$]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="method-name">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_][A-Za-z_0-9$]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="qualified-method-name">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_][A-Za-z_0-9$]*(\.[A-Za-z_][A-Za-z_0-9$]*)+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="optionally-qualified-method-name">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_][A-Za-z_0-9$]*(\.[A-Za-z_][A-Za-z_0-9$]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="java-identifier">
<xs:restriction base="xs:token">
<xs:pattern value="[A-Za-z_][A-Za-z_0-9$]*"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="dso" type="dso-application">
<xs:annotation>
<xs:documentation>
Terracotta Plug-in configuration element
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>

XML Schema documentation generated with DocFlex/XML (Kit) v1.6.2
DocFlex/XML is a powerful template-driven documentation and report generator from any data stored in XML files. Based on an innovative technology developed by FILIGRIS WORKS, this new tool offers virtuoso data querying and formatting capabilities not found in anything else!
Need to convert your XML data into a clear nice-looking documentation or reports? Web-ready hypertext HTML or printable MS Word / OpenOffice.org friendly RTF? DocFlex/XML may be a cheap, quick and effective solution exactly for this task!
Have questions? Not sure how to use it? Just send us e-mail to contact@filigris.com and we are always happy to help you! See also our services at www.filigris.com