blob: 2c70cde2a233a4ff721b5f7c4410b5f3deb82e20 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xs:schema
targetNamespace="http://java.sun.com/xml/ns/jdo/jdoconfig"
xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jdoconfig="http://java.sun.com/xml/ns/jdo/jdoconfig"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="2.1">
<xs:annotation>
<xs:documentation>
This is the XML Schema for the JDO configuration file.
</xs:documentation>
</xs:annotation>
<xs:element name="jdoconfig">
<xs:complexType>
<xs:annotation>
<xs:documentation>
The root configuration element for JDO.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="persistence-manager-factory" minOccurs="1"
maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
Standard JDO PersistenceManagerFactory
configuration properties.
Vendor-specific properties are set using
additional vendor-specific attributes and/or
property elements.
</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="property" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
Vendor-specific properties.
</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="attlist.property"/>
</xs:complexType>
</xs:element>
<xs:element name="instance-lifecycle-listener"
minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
javax.jdo.listener.InstanceLifecycleListener
instance configuration.
There is one
instance-lifecycle-listener element
per listener instance.
Only one instance of the listener
class is supported in this
configuration file.
If multiple instances of the same
listener class is required, then the
API
PersistenceManagerFactory.addInstanceLifecycleListener(...)
must be used.
If attribute "classes" is missing,
all persistence-capable instances
are observed,
otherwise it is a comma- or
whitespace-delimited list of
persistence-capable
classes whose instances' will be
observed.
</xs:documentation>
</xs:annotation>
<xs:attributeGroup
ref="attlist.instance-lifecycle-listener"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup
ref="attlist.persistence-manager-factory"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="attlist.jdoconfig"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.jdoconfig"/>
<xs:attributeGroup name="attlist.persistence-manager-factory">
<xs:annotation>
<xs:documentation>
These are attributes corresponding to the standard properties
defined in JDO 2.1.
Any other attributes present, if unrecognized by a JDO
implementation, may be silently ignored.
</xs:documentation>
</xs:annotation>
<!-- Corresponds to standard JDO property javax.jdo.PersistenceManagerFactoryClass. -->
<xs:attribute name="class" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.Name. The absence of this attribute implies the anonymous PMF. -->
<xs:attribute name="name" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.PersistenceUnitName. -->
<xs:attribute name="persistence-unit-name" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.Optimistic. -->
<xs:attribute name="optimistic" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.RetainValues. -->
<xs:attribute name="retain-values" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.RestoreValues. -->
<xs:attribute name="restore-values" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.IgnoreCache. -->
<xs:attribute name="ignore-cache" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.NontransactionalRead. -->
<xs:attribute name="nontransactional-read" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.NontransactionalWrite. -->
<xs:attribute name="nontransactional-write" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.Multithreaded. -->
<xs:attribute name="multithreaded" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.ConnectionDriverName. -->
<xs:attribute name="connection-driver-name" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.ConnectionUserName. -->
<xs:attribute name="connection-user-name" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.ConnectionPassword. -->
<xs:attribute name="connection-password" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.ConnectionURL. -->
<xs:attribute name="connection-url" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.ConnectionFactoryName. -->
<xs:attribute name="connection-factory-name" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.ConnectionFactory2Name. -->
<xs:attribute name="connection-factory2-name" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.Mapping. -->
<xs:attribute name="mapping" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.DetachAllOnCommit. -->
<xs:attribute name="detach-all-on-commit" use="optional"/>
<!-- Corresponds to standard JDO property javax.jdo.option.ServerTimeZoneID. -->
<xs:attribute name="server-time-zone-id" use="optional"/>
<!-- Any other vendor-specific attributes are allowed and passed literally to the underlying implementation. -->
<xs:anyAttribute processContents="lax"/>
</xs:attributeGroup>
<xs:attributeGroup name="attlist.property">
<!-- The name of the vendor-specific property. -->
<xs:attribute name="name" use="required"/>
<!-- The value of the vendor-specific property. -->
<xs:attribute name="value" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="attlist.instance-lifecycle-listener">
<!-- The name of the listener class to instantiate. -->
<xs:attribute name="listener" use="required"/>
<!-- Comma- or whitespace-delimited list of persistence-capable classes whose instances to observe. The absence of this attribute means to observe all. -->
<xs:attribute name="classes" use="optional"/>
</xs:attributeGroup>
</xs:schema>