You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/04/12 19:43:28 UTC

[38/50] [abbrv] incubator-geode git commit: GEODE-386: Change xsd namespace to apache

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c1cf90eb/geode-core/src/main/resources/META-INF/schemas/geode.apache.org/schema/cache/cache-1.0.xsd
----------------------------------------------------------------------
diff --git a/geode-core/src/main/resources/META-INF/schemas/geode.apache.org/schema/cache/cache-1.0.xsd b/geode-core/src/main/resources/META-INF/schemas/geode.apache.org/schema/cache/cache-1.0.xsd
new file mode 100644
index 0000000..c9c4f91
--- /dev/null
+++ b/geode-core/src/main/resources/META-INF/schemas/geode.apache.org/schema/cache/cache-1.0.xsd
@@ -0,0 +1,1469 @@
+<?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.
+  -->
+<xsd:schema
+    targetNamespace="http://geode.apache.org/schema/cache"
+    xmlns:gf="http://geode.apache.org/schema/cache"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="1.0">
+  <xsd:annotation>
+    <xsd:documentation><![CDATA[
+This is the XML Schema for the Geode distributed cache declarative
+caching XML file. All declarative cache files must include a schema
+of the following form:
+
+  <cache
+    xmlns="http://geode.apache.org/schema/cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://geode.apache.org/schema/cache
+                        http://geode.apache.org/schema/cache/cache-1.0.xsd"
+    version="1.0">
+
+If you are declaring a client cache then use this schema:
+
+  <client-cache
+    xmlns="http://geode.apache.org/schema/cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://geode.apache.org/schema/cache
+                        http://geode.apache.org/schema/cache/cache-1.0.xsd"
+    version="1.0">
+
+The contents of a declarative XML file correspond to APIs found in the
+com.gemstone.gemfire.cache and com.gemstone.gemfire.cache.client
+packages. A declarative caching XML file is used to populate a Cache
+or a ClientCache when it is created.
+
+The top-level element in this syntax is "cache" or "client-cache".
+All elements are listed here in alphabetical order.
+
+The following conventions apply to all Geode distributed cache
+declarative caching XML file elements unless indicated otherwise.
+
+- In elements that contain PCDATA, leading and trailing whitespace in
+  the data may be ignored.
+
+- In elements whose value is an "enumerated type", the value is case
+  sensitive.
+  
+  ]]></xsd:documentation>
+  </xsd:annotation>
+
+    <!--
+-->
+  <xsd:element name="cache">
+    <xsd:annotation>
+      <xsd:documentation>
+        The "cache" element is the root element of the declarative cache file on a peer or server.
+        This element configures a Geode Cache and describes the root regions it contains, if any.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element maxOccurs="1" minOccurs="0" name="cache-transaction-manager" type="gf:cache-transaction-manager-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="dynamic-region-factory" type="gf:dynamic-region-factory-type" />
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="gateway-hub">
+          <xsd:annotation>
+            <xsd:documentation>
+              The "gateway-hub" element specifies a Gateway Hub that is
+              initialized when the Cache is declaratively initialized.
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:complexType>
+            <xsd:sequence>
+              <xsd:element maxOccurs="unbounded" minOccurs="0" name="gateway">
+                <xsd:annotation>
+                  <xsd:documentation>
+                    The "gateway" element specifies a Gateway that is
+                    initialized when a GatewayHub is declaratively initialized.
+                  </xsd:documentation>
+                </xsd:annotation>
+                <xsd:complexType>
+                  <xsd:sequence>
+                    <xsd:choice>
+                      <xsd:element maxOccurs="unbounded" minOccurs="1" name="gateway-endpoint">
+                        <xsd:annotation>
+                          <xsd:documentation>
+                            The "gateway-endpoint" element specifies an endpoint that is
+                            initialized when a Gateway is declaratively initialized.
+                          </xsd:documentation>
+                        </xsd:annotation>
+                        <xsd:complexType>
+                          <xsd:attribute name="host" type="xsd:string" use="required" />
+                          <xsd:attribute name="id" type="xsd:string" use="required" />
+                          <xsd:attribute name="port" type="xsd:string" use="required" />
+                        </xsd:complexType>
+                      </xsd:element>
+                      <xsd:element maxOccurs="unbounded" minOccurs="1" name="gateway-listener">
+                        <xsd:annotation>
+                          <xsd:documentation>
+                            The "gateway-listener" element specifies a listener that is
+                            initialized when a Gateway is declaratively initialized.
+                          </xsd:documentation>
+                        </xsd:annotation>
+                        <xsd:complexType>
+                          <xsd:sequence>
+                            <xsd:element name="class-name" type="gf:class-name-type" />
+                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+                          </xsd:sequence>
+                        </xsd:complexType>
+                      </xsd:element>
+                    </xsd:choice>
+                    <xsd:element maxOccurs="1" minOccurs="0" name="gateway-queue">
+                      <xsd:annotation>
+                        <xsd:documentation>
+                          The "gateway-queue" element specifies a queue that is initialized when a
+                          Gateway is declaratively initialized. As of 6.5 overflow-directory is
+                          deprecated. Use disk-store-name instead. As of 6.5 roll-oplogs is
+                          deprecated. Use disk-store-name instead.
+                        </xsd:documentation>
+                      </xsd:annotation>
+                      <xsd:complexType>
+                        <xsd:attribute name="alert-threshold" type="xsd:string" use="optional" />
+                        <xsd:attribute name="batch-conflation" type="xsd:boolean" use="optional" />
+                        <xsd:attribute name="batch-size" type="xsd:string" use="optional" />
+                        <xsd:attribute name="batch-time-interval" type="xsd:string" use="optional" />
+                        <xsd:attribute name="enable-persistence" type="xsd:boolean" use="optional" />
+                        <xsd:attribute name="disk-store-name" type="xsd:string" use="optional" />
+                        <xsd:attribute name="roll-oplogs" type="xsd:boolean" use="optional" />
+                        <xsd:attribute name="maximum-queue-memory" type="xsd:string" use="optional" />
+                        <xsd:attribute name="overflow-directory" type="xsd:string" use="optional" />
+                      </xsd:complexType>
+                    </xsd:element>
+                  </xsd:sequence>
+                  <xsd:attribute name="early-ack" type="xsd:boolean" use="optional" />
+                  <xsd:attribute name="id" type="xsd:string" use="required" />
+                  <xsd:attribute name="socket-buffer-size" type="xsd:string" use="optional" />
+                  <xsd:attribute name="socket-read-timeout" type="xsd:string" use="optional" />
+                  <xsd:attribute name="concurrency-level" type="xsd:string" use="optional" />
+                  <xsd:attribute name="order-policy" type="xsd:string" use="optional" />
+                </xsd:complexType>
+              </xsd:element>
+            </xsd:sequence>
+            <xsd:attribute name="id" type="xsd:string" use="required" />
+            <xsd:attribute name="bind-address" type="xsd:string" use="optional" />
+            <xsd:attribute name="maximum-time-between-pings" type="xsd:string" use="optional" />
+            <xsd:attribute name="port" type="xsd:string" use="optional" />
+            <xsd:attribute name="socket-buffer-size" type="xsd:string" use="optional" />
+            <xsd:attribute name="startup-policy" use="optional">
+              <xsd:simpleType>
+                <xsd:restriction base="xsd:string">
+                  <xsd:enumeration value="primary" />
+                  <xsd:enumeration value="secondary" />
+                  <xsd:enumeration value="none" />
+                </xsd:restriction>
+              </xsd:simpleType>
+            </xsd:attribute>
+            <xsd:attribute name="manual-start" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="max-connections" type="xsd:integer" use="optional" />
+          </xsd:complexType>
+        </xsd:element>
+
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="gateway-sender">
+          <xsd:complexType>
+            <xsd:sequence>
+              <xsd:element maxOccurs="unbounded" minOccurs="0" name="gateway-event-filter" type="gf:class-with-parameters-type" />
+              <xsd:element maxOccurs="1" minOccurs="0" name="gateway-event-substitution-filter" type="gf:class-with-parameters-type" />
+              <xsd:element maxOccurs="unbounded" minOccurs="0" name="gateway-transport-filter" type="gf:class-with-parameters-type" />
+            </xsd:sequence>
+            <xsd:attribute name="id" type="xsd:string" use="required" />
+            <xsd:attribute name="remote-distributed-system-id" type="xsd:string" use="required" />
+            <xsd:attribute name="parallel" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="manual-start" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="socket-buffer-size" type="xsd:string" use="optional" />
+            <xsd:attribute name="socket-read-timeout" type="xsd:string" use="optional" />
+            <xsd:attribute name="enable-batch-conflation" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="batch-size" type="xsd:string" use="optional" />
+            <xsd:attribute name="batch-time-interval" type="xsd:string" use="optional" />
+            <xsd:attribute name="enable-persistence" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="disk-store-name" type="xsd:string" use="optional" />
+            <xsd:attribute name="disk-synchronous" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="maximum-queue-memory" type="xsd:string" use="optional" />
+            <xsd:attribute name="alert-threshold" type="xsd:string" use="optional" />
+            <xsd:attribute name="dispatcher-threads" type="xsd:string" use="optional" />
+            <xsd:attribute name="order-policy" type="xsd:string" use="optional" />
+          </xsd:complexType>
+        </xsd:element>
+
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="gateway-receiver">
+          <xsd:complexType>
+            <xsd:sequence>
+              <xsd:element maxOccurs="unbounded" minOccurs="0" name="gateway-transport-filter" type="gf:class-with-parameters-type" />
+            </xsd:sequence>
+            <xsd:attribute name="start-port" type="xsd:string" use="optional" />
+            <xsd:attribute name="end-port" type="xsd:string" use="optional" />
+            <xsd:attribute name="bind-address" type="xsd:string" use="optional" />
+            <xsd:attribute name="maximum-time-between-pings" type="xsd:string" use="optional" />
+            <xsd:attribute name="socket-buffer-size" type="xsd:string" use="optional" />
+            <xsd:attribute name="hostname-for-senders" type="xsd:string" use="optional" />
+            <xsd:attribute name="manual-start" type="xsd:boolean" use="optional" />
+          </xsd:complexType>
+        </xsd:element>
+
+        <xsd:element maxOccurs="1" minOccurs="0" name="gateway-conflict-resolver">
+          <xsd:annotation>
+            <xsd:documentation>
+              A "gateway-conflict-resolver" element describes a region's GatewayConflictResolver.
+              It is used to resolve inter-system concurrency conflicts.
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:complexType>
+            <xsd:sequence>
+              <xsd:element name="class-name" type="gf:class-name-type" />
+              <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+            </xsd:sequence>
+          </xsd:complexType>
+        </xsd:element>
+
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="async-event-queue">
+          <xsd:complexType>
+            <xsd:sequence>
+              <xsd:element maxOccurs="unbounded" minOccurs="0" name="gateway-event-filter" type="gf:class-with-parameters-type" />
+              <xsd:element maxOccurs="1" minOccurs="0" name="gateway-event-substitution-filter" type="gf:class-with-parameters-type" />
+              <xsd:element name="async-event-listener" type="gf:class-with-parameters-type">
+                <xsd:annotation>
+                  <xsd:documentation>
+                    A "async-event-listener" element describes a region's AsyncEventListener.
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+            </xsd:sequence>
+            <xsd:attribute name="id" type="xsd:string" use="required" />
+            <xsd:attribute name="parallel" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="batch-size" type="xsd:string" use="optional" />
+            <xsd:attribute name="batch-time-interval" type="xsd:string" use="optional" />
+            <xsd:attribute name="enable-batch-conflation" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="maximum-queue-memory" type="xsd:string" use="optional" />
+            <xsd:attribute name="persistent" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="disk-store-name" type="xsd:string" use="optional" />
+            <xsd:attribute name="disk-synchronous" type="xsd:boolean" use="optional" />
+            <xsd:attribute name="dispatcher-threads" type="xsd:string" use="optional" />
+            <xsd:attribute name="order-policy" type="xsd:string" use="optional" />
+          </xsd:complexType>
+        </xsd:element>
+
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="cache-server">
+          <xsd:annotation>
+            <xsd:documentation>
+              The "cache-server" element specifies a Cache Server that will accept requests from
+              clients and that is started when the Cache is declaratively initialized.
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:complexType>
+            <xsd:complexContent>
+              <xsd:extension base="gf:server-type">
+                <xsd:attribute name="tcp-no-delay" type="xsd:boolean" use="optional" />
+              </xsd:extension>
+            </xsd:complexContent>
+          </xsd:complexType>
+        </xsd:element>
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="pool" type="gf:pool-type" />
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="disk-store" type="gf:disk-store-type" />
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="hdfs-store" type="gf:hdfs-store-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="pdx" type="gf:pdx-type" />
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="region-attributes" type="gf:region-attributes-type" />
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="jndi-bindings" type="gf:jndi-bindings-type" />
+          <xsd:element name="region" type="gf:region-type" />
+          <xsd:element name="vm-root-region" type="gf:region-type">
+            <xsd:annotation>
+              <xsd:appinfo>deprecated</xsd:appinfo>
+              <xsd:documentation>
+                A "vm-root-region" element is the same as "region". This element exists for
+                backwards compatiblity and should not be used in new xml files.
+              </xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+        </xsd:choice>
+        <xsd:element maxOccurs="1" minOccurs="0" name="function-service" type="gf:function-service-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="resource-manager" type="gf:resource-manager-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="serialization-registration" type="gf:serialization-registration-type" />
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="backup" type="xsd:string">
+          <xsd:annotation>
+            <xsd:documentation>
+              The backup element defines files or directories that should be backed up when the
+              system wide backup command is invoked. Disk stores with persistent data are
+              automatically backed up, they do not need to be listed with this element.
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element maxOccurs="1" minOccurs="0" name="initializer" type="gf:initializer-type" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="copy-on-read" type="xsd:boolean" use="optional" />
+      <xsd:attribute name="is-server" type="xsd:boolean" use="optional" />
+      <xsd:attribute name="lock-timeout" type="xsd:string" use="optional" />
+      <xsd:attribute name="lock-lease" type="xsd:string" use="optional" />
+      <xsd:attribute name="message-sync-interval" type="xsd:string" use="optional" />
+      <xsd:attribute name="search-timeout" type="xsd:string" use="optional" />
+      <xsd:attribute name="version" type="gf:versionType" use="required" fixed="1.0" />
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name="client-cache">
+    <xsd:annotation>
+      <xsd:documentation>
+        The "client-cache" element is the root element of the declarative cache file on a client.
+        This element configures a Geode ClientCache and describes the root regions it contains, if any.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element maxOccurs="1" minOccurs="0" name="cache-transaction-manager" type="gf:cache-transaction-manager-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="dynamic-region-factory" type="gf:dynamic-region-factory-type" />
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="pool" type="gf:pool-type" />
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="disk-store" type="gf:disk-store-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="pdx" type="gf:pdx-type" />
+        <xsd:element maxOccurs="unbounded" minOccurs="0" name="region-attributes" type="gf:region-attributes-type" />
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="jndi-bindings" type="gf:jndi-bindings-type" />
+          <xsd:element name="region" type="gf:region-type" />
+        </xsd:choice>
+        <xsd:element maxOccurs="1" minOccurs="0" name="function-service" type="gf:function-service-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="resource-manager" type="gf:resource-manager-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="serialization-registration" type="gf:serialization-registration-type" />
+        <xsd:element maxOccurs="1" minOccurs="0" name="initializer" type="gf:initializer-type" />
+      </xsd:sequence>
+      <xsd:attribute name="copy-on-read" type="xsd:boolean" use="optional" />
+      <xsd:attribute name="version" type="gf:versionType" use="required" fixed="1.0" />
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:complexType name="region-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "region" element describes a region (and its entries) in Geode distributed cache.
+        It may be used to create a new region or may be used to add new entries to an existing
+        region. Note that the "name" attribute specifies the simple name of the region; it
+        cannot contain a "/". If "refid" is set then it defines the default region attributes
+        to use for this region. A nested "region-attributes" element can override these defaults.
+        If the nested "region-attributes" element has its own "refid" then it will cause the
+        "refid" on the region to be ignored. "refid" can be set to the name of a RegionShortcut
+        or a ClientRegionShortcut (see the javadocs of those enum classes for their names).
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="region-attributes" type="gf:region-attributes-type" />
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="index">
+        <xsd:annotation>
+          <xsd:documentation>
+            An "index" element describes an index to be created on a region.
+            The index node, if any, should all come immediately after the
+            "region-attributes" node. There can be any number of functional types
+            of index on a Region, but only at max one index of type "primary-key". The
+            "name" attribute is a required field which identifies the name of the index.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:choice minOccurs="0">
+            <xsd:element name="functional">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A functional type of index needs a from-clause, expression which are mandatory.
+                  The import string is used for specifying the type of Object in the region or
+                  the type of Object which the indexed expression evaluates to.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:attribute name="expression" type="xsd:string" use="required" />
+                <xsd:attribute name="from-clause" type="xsd:string" use="required" />
+                <xsd:attribute name="imports" type="xsd:string" use="optional" />
+              </xsd:complexType>
+            </xsd:element>
+
+            <xsd:element name="primary-key">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A primary-key type of index needs a field attribute which is mandatory.
+                  There should be only one or zero primary-index defined for a region
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:attribute name="field" type="xsd:string" use="required" />
+              </xsd:complexType>
+            </xsd:element>
+          </xsd:choice>
+          <xsd:attribute name="name" type="xsd:string" use="required" />
+          <xsd:attribute name="expression" type="xsd:string" use="optional" />
+          <xsd:attribute name="from-clause" type="xsd:string" use="optional" />
+          <xsd:attribute name="imports" type="xsd:string" use="optional" />
+          <xsd:attribute name="key-index" type="xsd:boolean" use="optional" />
+          <xsd:attribute default="range" name="type" use="optional">
+            <xsd:simpleType>
+              <xsd:restriction base="xsd:string">
+                <xsd:enumeration value="range" />
+                <xsd:enumeration value="hash" />
+              </xsd:restriction>
+            </xsd:simpleType>
+          </xsd:attribute>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="entry">
+        <xsd:annotation>
+          <xsd:documentation>
+            An "entry" element desribes an entry to be added to a region. Note
+            that if an entry with the given key already exists in the region,
+            it will be replaced.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="key">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A "key" element describes the key in a Region entry.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:choice>
+                  <xsd:element name="string" type="gf:string-type" />
+                  <xsd:element name="declarable" type="gf:declarable-type" />
+                </xsd:choice>
+              </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="value">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A "value" element describes the value in a Region entry
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:choice>
+                  <xsd:element name="string" type="gf:string-type" />
+                  <xsd:element name="declarable" type="gf:declarable-type" />
+                </xsd:choice>
+              </xsd:complexType>
+            </xsd:element>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="region" type="gf:region-type" />
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required" />
+    <xsd:attribute name="refid" type="xsd:string" use="optional" />
+  </xsd:complexType>
+    <!-- ======================================================= -->
+    <!--
+A "region-attributes" element describes the attributes of a region to
+be created.
+As of 6.5 disk-dirs is deprecated on region-attributes. Use disk-store-name instead.
+-->
+  <xsd:complexType name="region-attributes-type">
+    <xsd:sequence>
+      <xsd:element maxOccurs="1" minOccurs="0" name="key-constraint">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "key-constraint" element specifies the name of a class to which the
+            keys of a region are constrained.
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element maxOccurs="1" minOccurs="0" name="value-constraint" type="xsd:string">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "value-constraint" element specifies the name of a class to which the
+            values of a region are constrained.
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element maxOccurs="1" minOccurs="0" name="region-time-to-live">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "region-time-to-live" element specifies a Region's time to live.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="expiration-attributes" type="gf:expiration-attributes-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="region-idle-time">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "region-idle-time" element specifies a Region's idle time.
+            Note that the APIs that correspond to this element add "out" to their
+            name. See getRegionIdleTimeout and setRegionIdleTimeout.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="expiration-attributes" type="gf:expiration-attributes-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="entry-time-to-live">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "entry-time-to-live" element specifies a Region's entries' time to
+            live.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="expiration-attributes" type="gf:expiration-attributes-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="entry-idle-time">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "entry-idle-time" element specifies a Region's entries' idle time.
+            Note that the APIs that correspond to this element add "out" to
+            their name. See getEntryIdleTimeout and setEntryIdleTimeout.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="expiration-attributes" type="gf:expiration-attributes-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="disk-write-attributes">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "disk-write-attributes" element describes how entry data is written
+            to disk. Deprecated as of 6.5 use disk-store instead.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:choice>
+            <xsd:element name="asynchronous-writes">
+              <xsd:annotation>
+                <xsd:documentation>
+                  An "asynchronous-writes" element specifies how entry data should be
+                  written to disk asynchronous. Deprecated as of 6.5 use disk-store instead.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:attribute name="bytes-threshold" type="xsd:string" use="required" />
+                <xsd:attribute name="time-interval" type="xsd:string" use="required" />
+              </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="synchronous-writes">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A "synchronous-writes" element specifies that entry data should be
+                  written to disk synchronously.
+                </xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+          </xsd:choice>
+          <xsd:attribute name="max-oplog-size" type="xsd:string" use="optional" />
+          <xsd:attribute name="roll-oplogs" type="xsd:string" use="optional" />
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="disk-dirs" type="gf:disk-dirs-type" />
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="partition-attributes">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "partition-attributes" element configures a region for partitioned
+            data storage.
+
+            local-max-memory attribute added to partition-attributes in release 5.1
+            total-max-memory attribute added to partition-attributes in release 5.1
+            total-num-buckets attribute added to partition-attributes in release 5.1
+            partition-resolver attribute added to partition-attributes in release 5.7
+            partition-listener attribute added to partition-attributes in release 6.1
+            colocated-with attribute added to partition-attributes in release 5.7
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element maxOccurs="1" minOccurs="0" name="partition-resolver">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A "partition-resolver" element describes a partitioned region's custom
+                  PartitionResolver.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:sequence>
+                  <xsd:element name="class-name" type="gf:class-name-type" />
+                  <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+                </xsd:sequence>
+                <xsd:attribute name="name" type="xsd:string" use="optional" />
+              </xsd:complexType>
+            </xsd:element>
+
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="partition-listener">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A "partition-listener" element describes a partitioned region's custom
+                  PartitionListener.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:sequence>
+                  <xsd:element name="class-name" type="gf:class-name-type" />
+                  <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+                </xsd:sequence>
+              </xsd:complexType>
+            </xsd:element>
+
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="fixed-partition-attributes">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A "fixed-partition-attributes" element describes characteristics of a
+                  partition in a Fixed Partitioned Region.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:attribute name="partition-name" type="xsd:string" use="required" />
+                <xsd:attribute name="is-primary" type="xsd:boolean" use="optional" />
+                <xsd:attribute name="num-buckets" type="xsd:string" use="optional" />
+              </xsd:complexType>
+            </xsd:element>
+
+          </xsd:sequence>
+          <xsd:attribute name="local-max-memory" type="xsd:string" use="optional" />
+          <xsd:attribute name="recovery-delay" type="xsd:string" use="optional" />
+          <xsd:attribute name="redundant-copies" type="xsd:string" use="optional" />
+          <xsd:attribute name="startup-recovery-delay" type="xsd:string" use="optional" />
+          <xsd:attribute name="total-max-memory" type="xsd:string" use="optional" />
+          <xsd:attribute name="total-num-buckets" type="xsd:string" use="optional" />
+          <xsd:attribute name="colocated-with" type="xsd:string" use="optional" />
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="membership-attributes">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "membership-attributes" element configures a region for membership
+            constraints based on required roles.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="required-role">
+              <xsd:annotation>
+                <xsd:documentation>
+                  A "required-role" element specifies a role that is required for reliable
+                  access to the region
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:attribute name="name" type="xsd:string" use="required" />
+              </xsd:complexType>
+            </xsd:element>
+
+          </xsd:sequence>
+          <xsd:attribute name="loss-action" use="optional">
+            <xsd:simpleType>
+              <xsd:restriction base="xsd:string">
+                <xsd:enumeration value="full-access" />
+                <xsd:enumeration value="limited-access" />
+                <xsd:enumeration value="no-access" />
+                <xsd:enumeration value="reconnect" />
+              </xsd:restriction>
+            </xsd:simpleType>
+          </xsd:attribute>
+          <xsd:attribute name="resumption-action" use="optional">
+            <xsd:simpleType>
+              <xsd:restriction base="xsd:string">
+                <xsd:enumeration value="none" />
+                <xsd:enumeration value="reinitialize" />
+              </xsd:restriction>
+            </xsd:simpleType>
+          </xsd:attribute>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="subscription-attributes">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "subscription-attributes" element configures how a region subscribes
+            to remote distributed regions.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:attribute name="interest-policy" use="optional">
+            <xsd:simpleType>
+              <xsd:restriction base="xsd:string">
+                <xsd:enumeration value="all" />
+                <xsd:enumeration value="cache-content" />
+              </xsd:restriction>
+            </xsd:simpleType>
+          </xsd:attribute>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="cache-loader" type="gf:cache-loader-type" />
+      <xsd:element maxOccurs="1" minOccurs="0" name="cache-writer" type="gf:cache-writer-type" />
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="cache-listener">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "cache-listener" element describes a region's CacheListener.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="compressor">
+        <xsd:annotation>
+          <xsd:documentation>
+            A compressor registers a custom class which extends Compressor to support compression on a region.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="1" minOccurs="0" name="eviction-attributes">
+        <xsd:annotation>
+          <xsd:documentation>
+            Create eviction attributes that monitor and control the size of the Region.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:choice>
+            <xsd:element name="lru-entry-count">
+              <xsd:annotation>
+                <xsd:documentation>
+                  Create an LRU eviction controller which performs the action if the
+                  Region has more than the maximum number of Entries in the Region.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:attribute name="action" type="gf:enum-action-destroy-overflow" use="optional" />
+                <xsd:attribute name="maximum" type="xsd:string" use="optional" />
+              </xsd:complexType>
+            </xsd:element>
+
+            <xsd:element name="lru-heap-percentage">
+              <xsd:annotation>
+                <xsd:documentation>
+                  Create an LRU which evicts entries using the specified action
+                  when the heap is over the resource manager critical heap/off-heap percentage.
+                  When the threshold has been exceeded each create or put operation
+                  is required to evict the same size of data which was added. The
+                  optional class-name and parameters allow for the declaration
+                  of an ObjectSizer, which will be used to determine data size.
+                  The class must implement the ObjectSizer interface.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:sequence minOccurs="0">
+                  <xsd:element name="class-name" type="gf:class-name-type" />
+                  <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+                </xsd:sequence>
+                <xsd:attribute name="action" type="gf:enum-action-destroy-overflow" use="optional" />
+              </xsd:complexType>
+            </xsd:element>
+
+            <xsd:element name="lru-memory-size">
+              <xsd:annotation>
+                <xsd:documentation>
+                  Create an LRU that performs the action when the memory size of the Region is
+                  over the maximum. The optional class-name and parameters allow for the
+                  declaration an ObjectSizer, which is used to measure the size of each Object
+                  in the Region. The class must implement the ObjectSizer interface.
+                </xsd:documentation>
+              </xsd:annotation>
+              <xsd:complexType>
+                <xsd:sequence minOccurs="0">
+                  <xsd:element name="class-name" type="gf:class-name-type" />
+                  <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+                </xsd:sequence>
+                <xsd:attribute name="action" type="gf:enum-action-destroy-overflow" use="optional" />
+                <xsd:attribute name="maximum" type="xsd:string" use="optional" />
+              </xsd:complexType>
+            </xsd:element>
+          </xsd:choice>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="concurrency-level" type="xsd:string" use="optional" />
+    <xsd:attribute name="data-policy" type="gf:region-attributesData-policy" use="optional" />
+    <xsd:attribute name="early-ack" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="enable-async-conflation" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="enable-gateway" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="enable-subscription-conflation" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="gateway-sender-ids" type="xsd:string" use="optional" />
+    <xsd:attribute name="async-event-queue-ids" type="xsd:string" use="optional" />
+    <xsd:attribute name="hub-id" type="xsd:string" use="optional" />
+    <xsd:attribute name="id" type="xsd:string" use="optional" />
+    <xsd:attribute name="ignore-jta" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="index-update-type" type="gf:region-attributesIndex-update-type" use="optional" />
+    <xsd:attribute name="initial-capacity" type="xsd:string" use="optional" />
+    <xsd:attribute name="is-lock-grantor" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="load-factor" type="xsd:string" use="optional" />
+    <xsd:attribute name="mirror-type" type="gf:region-attributesMirror-type" use="optional" />
+    <xsd:attribute name="multicast-enabled" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="persist-backup" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="pool-name" type="xsd:string" use="optional" />
+    <xsd:attribute name="disk-store-name" type="xsd:string" use="optional" />
+    <xsd:attribute name="disk-synchronous" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="hdfs-store-name" type="xsd:string" use="optional" />
+    <xsd:attribute name="hdfs-write-only" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="publisher" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="refid" type="xsd:string" use="optional" />
+    <xsd:attribute name="scope" type="gf:region-attributesScope" use="optional" />
+    <xsd:attribute name="statistics-enabled" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="cloning-enabled" type="xsd:boolean" use="optional" />
+    <xsd:attribute default="true" name="concurrency-checks-enabled" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="off-heap" type="xsd:boolean" use="optional" />
+  </xsd:complexType>
+  <xsd:simpleType name="region-attributesData-policy">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="empty" />
+      <xsd:enumeration value="normal" />
+      <xsd:enumeration value="partition" />
+      <xsd:enumeration value="persistent-replicate" />
+      <xsd:enumeration value="preloaded" />
+      <xsd:enumeration value="replicate" />
+      <xsd:enumeration value="persistent-partition" />
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="region-attributesIndex-update-type">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="asynchronous" />
+      <xsd:enumeration value="synchronous" />
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="region-attributesMirror-type">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="keys" />
+      <xsd:enumeration value="keys-values" />
+      <xsd:enumeration value="none" />
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="region-attributesScope">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="distributed-ack" />
+      <xsd:enumeration value="distributed-no-ack" />
+      <xsd:enumeration value="global" />
+      <xsd:enumeration value="local" />
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="enum-readable-writable">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="readable" />
+      <xsd:enumeration value="writable" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+    <!-- ======================================================= -->
+    <!--
+-->
+    <!-- ======================================================= -->
+    <!--
+-->
+    <!-- ======================================================= -->
+    <!--
+-->
+    <!-- ======================================================= -->
+    <!--
+-->
+    <!-- ======================================================= -->
+    <!--
+-->
+    <!-- ======================================================= -->
+    <!--
+-->
+    <!-- ======================================================= -->
+    <!-- ======================================================= -->
+
+  <xsd:complexType name="server-type">
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="group" type="xsd:string">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "group" element specifies a single server group.
+            Deprecated as of 7.0 use the groups Geode property instead.
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element maxOccurs="1" minOccurs="0" name="client-subscription">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "client-subscription" element describes the eviction policy, capacity and
+            overflow-directory for client subscription config. The overflow-directory attribute
+            is deprecated as of 6.5 use disk-store-name instead.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:attribute name="eviction-policy" use="required">
+            <xsd:simpleType>
+              <xsd:restriction base="xsd:string">
+                <xsd:enumeration value="entry" />
+                <xsd:enumeration value="mem" />
+              </xsd:restriction>
+            </xsd:simpleType>
+          </xsd:attribute>
+          <xsd:attribute name="capacity" type="xsd:string" use="required" />
+          <xsd:attribute name="disk-store-name" type="xsd:string" use="optional" />
+          <xsd:attribute name="overflow-directory" type="xsd:string" use="optional" />
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element maxOccurs="1" minOccurs="0" name="custom-load-probe">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "custom-load-probe" element describes a callback that reports the load on a cache-server.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="bind-address" type="xsd:string" use="optional" />
+    <xsd:attribute name="hostname-for-clients" type="xsd:string" use="optional" />
+    <xsd:attribute name="max-connections" type="xsd:string" use="optional" />
+    <xsd:attribute name="maximum-message-count" type="xsd:string" use="optional" />
+    <xsd:attribute name="maximum-time-between-pings" type="xsd:string" use="optional" />
+    <xsd:attribute name="max-threads" type="xsd:string" use="optional" />
+    <xsd:attribute name="message-time-to-live" type="xsd:string" use="optional" />
+    <xsd:attribute name="notify-by-subscription" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="port" type="xsd:string" use="optional" />
+    <xsd:attribute name="socket-buffer-size" type="xsd:string" use="optional" />
+    <xsd:attribute name="load-poll-interval" type="xsd:string" use="optional" />
+  </xsd:complexType>
+
+  <xsd:complexType name="resource-manager-type">
+    <xsd:annotation>
+      <xsd:appinfo>deprecated</xsd:appinfo>
+      <xsd:documentation>
+        The "resource manager" element configures the behavior of the resource manager.
+        The resource manager provides support for resource management of its associated Cache.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="critical-heap-percentage" type="xsd:string" use="optional" />
+    <xsd:attribute name="eviction-heap-percentage" type="xsd:string" use="optional" />
+    <xsd:attribute name="critical-off-heap-percentage" type="xsd:string" use="optional" />
+    <xsd:attribute name="eviction-off-heap-percentage" type="xsd:string" use="optional" />
+  </xsd:complexType>
+
+  <xsd:complexType name="function-service-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        The "function service" element configures the behavior of the function service.
+        The function service allows users to execute functions on data stored in Geode.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="function">
+        <xsd:annotation>
+          <xsd:documentation>
+            The "function" element defines a function for registration in the function service.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="cache-loader-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "cache-loader" element describes a region's CacheLoader.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class-name" type="gf:class-name-type" />
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="cache-transaction-manager-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "cache-transaction-manager" element allows insertion of cache-level transaction listeners.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="transaction-listener">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "transaction-listener" describes a TransactionListener.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element maxOccurs="1" minOccurs="0" name="transaction-writer">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "transaction-writer" describes a TransactionWriter.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="cache-writer-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "cache-writer" element describes a region's CacheWriter.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class-name" type="gf:class-name-type" />
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="serialization-registration-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A serialization-registration contains a set of serializer or instantiator tags to
+        register customer DataSerializer extensions or DataSerializable implementations respectively.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="serializer">
+        <xsd:annotation>
+          <xsd:documentation>
+            A serializer registers a custom class which extends DataSerializer to support custom
+            serialization of non-modifiable object types inside Geode. The class must have a
+            public zero-arg constructor.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="instantiator">
+        <xsd:annotation>
+          <xsd:documentation>
+            An instantiator registers a custom class which implements the DataSerializable interface
+            to support custom object serialization inside Geode. The class must have a public
+            zero-arg constructor.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+          </xsd:sequence>
+          <xsd:attribute name="id" type="xsd:string" use="required">
+            <xsd:annotation>
+              <xsd:documentation>
+                The id that the instantiator should associate with the DataSerializable type.
+              </xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:simpleType name="class-name-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "class-name" element specifies the name of a class, an instance of which is created
+        when a declarative cache XML file is read.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:complexType name="disk-store-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "disk-store" element specifies a DiskStore for persistence.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="1" minOccurs="0" name="disk-dirs" type="gf:disk-dirs-type" />
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required" />
+    <xsd:attribute name="auto-compact" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="compaction-threshold" type="xsd:string" use="optional" />
+    <xsd:attribute name="allow-force-compaction" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="max-oplog-size" type="xsd:string" use="optional" />
+    <xsd:attribute name="time-interval" type="xsd:string" use="optional" />
+    <xsd:attribute name="write-buffer-size" type="xsd:string" use="optional" />
+    <xsd:attribute name="queue-size" type="xsd:string" use="optional" />
+    <xsd:attribute name="disk-usage-warning-percentage" type="xsd:string" use="optional" />
+    <xsd:attribute name="disk-usage-critical-percentage" type="xsd:string" use="optional" />
+  </xsd:complexType>
+
+  <xsd:complexType mixed="true" name="hdfs-store-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "hdfs-store" element specifies a HdfsStore for persistence.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required" />
+    <xsd:attribute name="namenode-url" type="xsd:string" use="optional" />
+    <xsd:attribute name="home-dir" type="xsd:string" use="optional" />
+    <xsd:attribute name="max-memory" type="xsd:string" use="optional" />
+    <xsd:attribute name="read-cache-size" type="xsd:string" use="optional" />
+    <xsd:attribute name="batch-size" type="xsd:string" use="optional" />
+    <xsd:attribute name="batch-interval" type="xsd:string" use="optional" />
+    <xsd:attribute name="dispatcher-threads" type="xsd:string" use="optional" />
+    <xsd:attribute name="buffer-persistent" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="disk-store" type="xsd:string" use="optional" />
+    <xsd:attribute name="synchronous-disk-write" type="xsd:string" use="optional" />
+    <xsd:attribute name="hdfs-client-config-file" type="xsd:string" use="optional" />
+    <xsd:attribute name="purge-interval" type="xsd:string" use="optional" />
+    <xsd:attribute name="major-compaction" type="xsd:string" use="optional" />
+    <xsd:attribute name="major-compaction-interval" type="xsd:string" use="optional" />
+    <xsd:attribute name="major-compaction-threads" type="xsd:integer" use="optional" />
+    <xsd:attribute name="minor-compaction" type="xsd:string" use="optional" />
+    <xsd:attribute name="minor-compaction-threads" type="xsd:integer" use="optional" />
+    <xsd:attribute name="max-write-only-file-size" type="xsd:integer" use="optional" />
+    <xsd:attribute name="write-only-file-rollover-interval" type="xsd:string" use="optional" />    
+  </xsd:complexType>
+
+  <xsd:complexType name="pdx-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "pdx" element specifies the configuration for the portable data exchange (PDX) method of
+        serialization. The "read-serialized" attribute is "early access".
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="1" minOccurs="0" name="pdx-serializer">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "pdx-serializer" element describes a serializer used to serialize objects in the
+            portable data exchange format.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="read-serialized" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="ignore-unread-fields" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="persistent" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="disk-store-name" type="xsd:string" use="optional" />
+  </xsd:complexType>
+
+  <xsd:complexType name="pool-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "pool" element specifies a client to server connection pool.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice>
+      <xsd:element maxOccurs="unbounded" minOccurs="1" name="locator">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "locator" element specifies the host and port that a server locator is listening on
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:attribute name="host" type="xsd:string" use="required" />
+          <xsd:attribute name="port" type="xsd:string" use="required" />
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element maxOccurs="unbounded" minOccurs="1" name="server">
+        <xsd:annotation>
+          <xsd:documentation>
+            A "server" element specifies the host and port that a cache server is listening on
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:attribute name="host" type="xsd:string" use="required" />
+          <xsd:attribute name="port" type="xsd:string" use="required" />
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:choice>
+    <xsd:attribute name="free-connection-timeout" type="xsd:string" use="optional" />
+    <xsd:attribute name="load-conditioning-interval" type="xsd:string" use="optional" />
+    <xsd:attribute name="min-connections" type="xsd:string" use="optional" />
+    <xsd:attribute name="max-connections" type="xsd:string" use="optional" />
+    <xsd:attribute name="retry-attempts" type="xsd:string" use="optional" />
+    <xsd:attribute name="idle-timeout" type="xsd:string" use="optional" />
+    <xsd:attribute name="ping-interval" type="xsd:string" use="optional" />
+    <xsd:attribute name="name" type="xsd:string" use="required" />
+    <xsd:attribute name="read-timeout" type="xsd:string" use="optional" />
+    <xsd:attribute name="server-group" type="xsd:string" use="optional" />
+    <xsd:attribute name="socket-buffer-size" type="xsd:string" use="optional" />
+    <xsd:attribute name="subscription-enabled" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="subscription-message-tracking-timeout" type="xsd:string" use="optional" />
+    <xsd:attribute name="subscription-ack-interval" type="xsd:string" use="optional" />
+    <xsd:attribute name="subscription-redundancy" type="xsd:string" use="optional" />
+    <xsd:attribute name="statistic-interval" type="xsd:string" use="optional" />
+    <xsd:attribute name="thread-local-connections" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="pr-single-hop-enabled" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="multiuser-authentication" type="xsd:boolean" use="optional" />
+  </xsd:complexType>
+
+  <xsd:complexType name="declarable-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "declarable" element specifies a Declarable object to be placed in a Region entry.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class-name" type="gf:class-name-type" />
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="disk-dir-type" mixed="true">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "disk-dir" element specifies one of a region or diskstore's disk directories.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="dir-size" type="xsd:string" use="optional" />
+  </xsd:complexType>
+
+  <xsd:complexType name="disk-dirs-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "disk-dirs" element specifies the region's disk directories.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="1" name="disk-dir" type="gf:disk-dir-type" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="dynamic-region-factory-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "dynamic-region-factory" element configures a dynamic region factory for
+        this cache. If this optional element is missing then the cache does not
+        support dynamic regions.
+
+        The optional "disk-dir" sub-element can be used to specify the directory to
+        store the persistent files that are used for dynamic region bookkeeping.
+        It defaults to the current directory.
+
+        The pool-name attribute can be used to set the name of the connection pool used
+        by client applications in a client/server cache configuration. It should not be
+        specified in servers or peers.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="1" minOccurs="0" name="disk-dir" type="gf:disk-dir-type" />
+    </xsd:sequence>
+    <xsd:attribute name="disable-persist-backup" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="disable-register-interest" type="xsd:boolean" use="optional" />
+    <xsd:attribute name="pool-name" type="xsd:string" use="optional" />
+  </xsd:complexType>
+
+  <xsd:complexType name="expiration-attributes-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        An "expiration-attributes" element describes expiration.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="1" minOccurs="0" name="custom-expiry">
+        <xsd:annotation>
+          <xsd:documentation>
+            The "custom-expiry" element specifies a callback that specifies
+            custom expiration attributes. See the CustomExpiry class.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="class-name" type="gf:class-name-type" />
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:sequence>
+
+    <xsd:attribute name="action" use="optional">
+      <xsd:simpleType>
+        <xsd:restriction base="xsd:string">
+          <xsd:enumeration value="destroy" />
+          <xsd:enumeration value="invalidate" />
+          <xsd:enumeration value="local-destroy" />
+          <xsd:enumeration value="local-invalidate" />
+        </xsd:restriction>
+      </xsd:simpleType>
+    </xsd:attribute>
+    <xsd:attribute name="timeout" type="xsd:string" use="required" />
+  </xsd:complexType>
+
+  <xsd:complexType name="initializer-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "initializer" element specifies a Declarable object whose init method
+        will be called after all other cache.xml initialization is
+        complete.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class-name" type="gf:class-name-type" />
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="class-with-parameters-type">
+    <xsd:sequence>
+      <xsd:element name="class-name" type="gf:class-name-type" />
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="gf:parameter-type" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="jndi-bindings-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A jndi-bindings element will contain the jndi-binding for each of the
+        datasources which are to be bound with the JNDI Context.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="jndi-binding">
+        <xsd:annotation>
+          <xsd:documentation>
+            For every datasource which is bound to the JNDI tree, there will exist one
+            jndi-binding tag. This tag will describe the property and configuration of the
+            datasource. The attributes of jndi-binding are used for configuration by
+            Geode, while the property element is used to configure the custom property
+            for the datasource.
+
+            The "xa-datasource-class" must be set when type is XAPooledDataSource,
+            "conn-pooled-datasource-class" must be set when type is PooledDataSource,
+            and "jdbc-driver-class" msut be set when the type is SimpleDataSource. It is
+            advisable to set the user-name and password as attributes rather than as a
+            property element. Alternatively, they may both be set as attributes of the
+            jndi-binding tag as well as an attribute of the property tag.
+          </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="config-property">
+              <xsd:complexType>
+                <xsd:sequence>
+                  <xsd:element name="config-property-name" type="xsd:string" />
+                  <xsd:element name="config-property-type" type="xsd:string" />
+                  <xsd:element name="config-property-value" type="xsd:string" />
+                </xsd:sequence>
+              </xsd:complexType>
+            </xsd:element>
+
+          </xsd:sequence>
+          <xsd:attribute name="blocking-timeout-seconds" type="xsd:string" use="optional" />
+          <xsd:attribute name="conn-pooled-datasource-class" type="xsd:string" use="optional" />
+          <xsd:attribute name="connection-url" type="xsd:string" use="optional" />
+          <xsd:attribute name="idle-timeout-seconds" type="xsd:string" use="optional" />
+          <xsd:attribute name="init-pool-size" type="xsd:string" use="optional" />
+          <xsd:attribute name="jdbc-driver-class" type="xsd:string" use="optional" />
+          <xsd:attribute name="jndi-name" type="xsd:string" use="required" />
+          <xsd:attribute name="login-timeout-seconds" type="xsd:string" use="optional" />
+          <xsd:attribute name="managed-conn-factory-class" type="xsd:string" use="optional" />
+          <xsd:attribute name="max-pool-size" type="xsd:string" use="optional" />
+          <xsd:attribute name="password" type="xsd:string" use="optional" />
+          <xsd:attribute name="transaction-type" type="xsd:string" use="optional" />
+          <xsd:attribute name="type" use="required">
+            <xsd:simpleType>
+              <xsd:restriction base="xsd:string">
+                <xsd:enumeration value="ManagedDataSource" />
+                <xsd:enumeration value="SimpleDataSource" />
+                <xsd:enumeration value="PooledDataSource" />
+                <xsd:enumeration value="XAPooledDataSource" />
+              </xsd:restriction>
+            </xsd:simpleType>
+          </xsd:attribute>
+          <xsd:attribute name="user-name" type="xsd:string" use="optional" />
+          <xsd:attribute name="xa-datasource-class" type="xsd:string" use="optional" />
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:simpleType name="enum-action-destroy-overflow">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="local-destroy" />
+      <xsd:enumeration value="overflow-to-disk" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:complexType name="parameter-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "parameter" element describes a parameter used to initialize a Declarable object.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice>
+      <xsd:element name="string" type="gf:string-type" />
+      <xsd:element name="declarable" type="gf:declarable-type" />
+    </xsd:choice>
+    <xsd:attribute name="name" type="xsd:string" use="required" />
+  </xsd:complexType>
+
+  <xsd:complexType name="string-type">
+    <xsd:annotation>
+      <xsd:documentation>
+        A "string" element specifies a String to be placed in a Region entry.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string"></xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:simpleType name="versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+        Decimal version type.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:pattern value="\.?[0-9]+(\.[0-9]+)*" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- TODO -->
+    <!-- Will put refid later.....refid   IDREF #IMPLIED -->
+
+</xsd:schema>