B Java Server Configuration Schema File Version 2.0

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

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="TJSconfig">
    <xs:complexType>
      <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="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="2.0" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <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>
  <xs:element name="tux-config">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="server-clopt" />
      </xs:sequence>
    </xs:complexType>
  </xs: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">
        <xs:minLength value="2" />
        <xs:maxLength value="255" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="classpath-config">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="classpath">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation>511-chars string only</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:minLength value="0" />
        <xs:maxLength value="511" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <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="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>
  <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="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="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="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" use="optional" type="xs:boolean" 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>511-chars string only</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:minLength value="1" />
        <xs:maxLength value="511" />
      </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>
  <xs:element name="jdbc-connection-pool" type="xs:string" />
  <xs:element name="tux-server-config">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath" />
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="server-class" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="server-class">
    <xs:complexType mixed="true">
      <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: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>
</xs:schema>