A Java Server Configuration Schema File Version 2.1

The following code sample illustrates the Java Server configuration XML schema version 2.1.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<!-- TJSconfig Configuration Root Element -->
    <xs:element name="TJSconfig">
        <xs:complexType>
        <xs:annotation>
        <xs:documentation>Tuxedo Java Server Configuration Root
Element</xs:documentation>
        </xs:annotation>
        <xs:sequence>
           <xs:element minOccurs="0" maxOccurs="1" ref="java-config"/>
           <xs:element minOccurs="0" maxOccurs="1" ref="tux-config"/>
           <xs:element minOccurs="0" maxOccurs="1" ref="classpath-config"/>
           <xs:element minOccurs="0" maxOccurs="1" ref="tux-resources"/>
           <xs:element minOccurs="0" maxOccurs="1" ref="jdbc-resources"/>
         <xs:element minOccurs="0" maxOccurs="1" ref="jdbc-connection-pool"/>
           <xs:element minOccurs="1" maxOccurs="1" ref="tux-server-config"/>
         </xs:sequence>
         <xs:attribute name="version" use="required">
           <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="2.1"/>
            </xs:restriction>
           </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
</xs:element>
<!-- ********************************************************* -->
<!--                 java-config section                       -->
<!-- ********************************************************* -->
<xs:element name="java-config">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="jvm-options"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="jvm-options">
    <xs:simpleType>
        <xs:annotation>
            <xs:documentation>255-chars string only</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="2" />
            <xs:maxLength value="255"/>
       </xs:restriction>
    </xs:simpleType>
</xs:element>
<!-- ********************************************************* -->
<!--                 tux-config section                        -->
<!-- ********************************************************* -->
<xs:element name="tux-config">
    <xs:complexType>
     <xs:sequence>
     <xs:element minOccurs="0" maxOccurs="unbounded" ref="server-clopt"/>
      <xs:element minOccurs="0" maxOccurs="unbounded"
ref="server-propopt"/>
        </xs:sequence>
       </xs:complexType>
    </xs:element>
<!-- ********************************************************* -->
<!--              classpath-config section                     -->
<!-- ********************************************************* -->
<xs:element name="classpath-config">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
<!-- ********************************************************* -->
<!--                 tux-resources section                     -->
<!-- ********************************************************* -->
<xs:element name="tux-resources">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath"/>
                <xs:element minOccurs="0" maxOccurs="unbounded"
ref="fld-tbl16-class"/>
                <xs:element minOccurs="0" maxOccurs="unbounded"
ref="fld-tbl32-class"/>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="view16-class"/>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="view32-class"/>
                </xs:sequence>
          </xs:complexType>
      </xs:element>
      <xs:element name="fld-tbl16-class">
        <xs:simpleType>
           <xs:annotation>
            <xs:documentation>127-chars string only</xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:string">
             <xs:minLength value="1" />
             <xs:maxLength value="127"/>
           </xs:restriction>
         </xs:simpleType>
     </xs:element>
     <xs:element name="fld-tbl32-class">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation>127-chars string only</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="127"/>
            </xs:restriction>
          </xs:simpleType>
       </xs:element>
       <xs:element name="view16-class">
          <xs:simpleType>
            <xs:annotation>
                <xs:documentation>127-chars string only</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="127"/>
             </xs:restriction>
           </xs:simpleType>
        </xs:element>
        <xs:element name="view32-class">
          <xs:simpleType>
            <xs:annotation>
                <xs:documentation>127-chars string only</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="127"/>
            </xs:restriction>
        </xs:simpleType>
     </xs:element>
<!-- ********************************************************* -->
<!--                     jdbc-resources section                -->
<!-- ********************************************************* -->
<xs:element name="jdbc-resources">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" ref="data-source"/>
        </xs:sequence>
      </xs:complexType>
 </xs:element>
<xs:element name="data-source">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath" />
            <xs:element minOccurs="1" maxOccurs="1" ref="datasource-classname"/>
            <xs:element minOccurs="1" maxOccurs="1" ref="res-type"/>
            <xs:element minOccurs="1" maxOccurs="1" ref="driver-params"/>
        </xs:sequence>
        <xs:attribute name="vendor" use="required">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation>31-chars string only</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1" />
                    <xs:maxLength value="31"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="pool-name" use="optional">
           <xs:simpleType>
            <xs:annotation>
                <xs:documentation>63-chars string only</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="63"/>
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
<xs:attribute name="object-type" use="optional">
<xs:simpleType>
    <xs:restriction base="xs:string">
            <xs:enumeration value="usr"/>
            <xs:enumeration value="sys"/>
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
<xs:attribute name="jndi-name" use="optional">
    <xs:simpleType>
        <xs:annotation>
            <xs:documentation>63-chars string only</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="63"/>
         </xs:restriction>
     </xs:simpleType>
   </xs:attribute>
   <xs:attribute name="enabled" type="xs:boolean" use="optional"
default="true"/>
   <xs:attribute name="driver-type" use="required">
     <xs:simpleType>
        <xs:annotation>
            <xs:documentation>31-chars string only</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="31"/>
             </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:complexType>
  </xs:element>
   <xs:element name="datasource-classname">
     <xs:simpleType>
        <xs:annotation>
            <xs:documentation>255-chars string only</xs:documentation>
       </xs:annotation>
   <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="255"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="res-type">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation>255-chars string only</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="255"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="driver-params">
            <xs:complexType>
                <xs:sequence>
                    <xs:element minOccurs="1" maxOccurs="1" ref="connection-url"/>
                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
            </xs:sequence>
          </xs:complexType>
       </xs:element>
       <xs:element name="connection-url">
        <xs:simpleType>
        <xs:annotation>
            <xs:documentation>4095-chars string only</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="4095"/>
         </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="property">
        <xs:complexType>
            <xs:attribute name="name" use="optional">
                <xs:simpleType>
                    <xs:annotation>
                        <xs:documentation>63-chars string only</xs:documentation>
                    </xs:annotation>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1" />
                        <xs:maxLength value="31"/>
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="value" use="optional">
                    <xs:simpleType>
                      <xs:annotation>
                        <xs:documentation>127-chars string only</xs:documentation>
                      </xs:annotation>
                      <xs:restriction base="xs:string">
                        <xs:minLength value="1" />
                        <xs:maxLength value="127"/>
                     </xs:restriction>
                   </xs:simpleType>
                 </xs:attribute>
              </xs:complexType>
            </xs:element>
<!-- ********************************************************* -->
<!--                  jdbc-connection-pool section             -->
<!-- ********************************************************* -->
<xs:element name="jdbc-connection-pool" type="xs:string"/>
<!-- ********************************************************* -->
<!--                 tux-server-config section                 -->
<!-- ********************************************************* -->
<xs:element name="tux-server-config">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded"
ref="server-module"/>
        </xs:sequence>
        <xs:attribute name="maxmodules" use="optional">
           <xs:simpleType>
           <xs:annotation>
             <xs:documentation>Greater or equal 1 and less or equal
1024</xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:short">
             <xs:minInclusive value="1" />
             <xs:maxInclusive value="1024"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
 </xs:element>
 <xs:element name="server-module">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="server-clopt"/>
            <xs:element minOccurs="0" maxOccurs="unbounded"
ref="server-propopt"/>
            <xs:element minOccurs="1" maxOccurs="unbounded" ref="server-class"/>
            </xs:sequence>
            <xs:attribute name="name" use="required">
            <xs:simpleType>
              <xs:annotation>
                <xs:documentation>63-chars string only</xs:documentation>
              </xs:annotation>
              <xs:restriction base="xs:string">
                 <xs:minLength value="1" />
                 <xs:maxLength value="63"/>
              </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="maxsvrclasses" use="optional">
             <xs:simpleType>
                <xs:annotation>
                    <xs:documentation>Greater or equal 1 and less or equal
8192</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:short">
                    <xs:minInclusive value="1" />
                    <xs:maxInclusive value="8192"/>
                </xs:restriction>
             </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="maxadmclasses" use="optional">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation>Greater or equal 1 and less or equal
4096</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:short">
                        <xs:minInclusive value="1" />
                        <xs:maxInclusive value="4096"/>
                   </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="maxadmcmds" use="optional">
                <xs:simpleType>
                    <xs:annotation>
                        <xs:documentation>Greater or equal 1 and less or equal
4096</xs:documentation>
                    </xs:annotation>
                    <xs:restriction base="xs:short">
                        <xs:minInclusive value="1" />
                        <xs:maxInclusive value="4096"/>
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
             </xs:complexType>
        </xs:element>
        <xs:element name="server-class">
            <xs:complexType>
                <xs:sequence>
                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="services"/>
                </xs:sequence>
                <xs:attribute name="name" use="required">
                  <xs:simpleType>
                    <xs:annotation
                        <xs:documentation>255-chars string only</xs:documentation>
                    </xs:annotation>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1" />
                        <xs:maxLength value="255"/>
                    </xs:restriction>
                 </xs:simpleType>
              </xs:attribute>
              <xs:attribute name="autoadv" use="optional">
                <xs:simpleType>
                   <xs:restriction base="xs:string">
                      <xs:enumeration value="no"/>
                      <xs:enumeration value="yes"/>
                 </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element name="services">
            <xs:complexType>
              <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="service"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="service">
            <xs:complexType>
            <xs:attribute name="name" use="required">
                <xs:simpleType>
                   <xs:annotation>
                      <xs:documentation>127-chars string only</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1" />
                    <xs:maxLength value="127"/>
                 </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="target" use="required">
                <xs:simpleType>
                   <xs:annotation>
                    <xs:documentation>255-chars string only</xs:documentation>
                   </xs:annotation>
                   <xs:restriction base="xs:string">
                        <xs:minLength value="1" />
                        <xs:maxLength value="255"/>
                      </xs:restriction>
                   </xs:simpleType>
                </xs:attribute>
            </xs:complexType>
        </xs:element>
<!-- ********************************************************* -->
<!--                 common classpath element                  -->
<!-- ********************************************************* -->
<xs:element name="classpath">
    <xs:simpleType>
        <xs:annotation>
            <xs:documentation>10239-chars string only</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="10239"/>
        </xs:restriction>
     </xs:simpleType>
 </xs:element>
<!-- ********************************************************* -->
<!--                common server-clopt element                -->
<!-- ********************************************************* -->
<xs:element name="server-clopt">
<xs:simpleType>
    <xs:annotation>
        <xs:documentation>255-chars string only</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">