blob: 51151213b37621c050170a01a227272844e2c8b7 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!-- ====================== Root Element ======================= -->
<xs:element name="fieldtypemodel">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="field-type-def"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- ================= Children of fieldtypemodel =================== -->
<xs:element name="field-type-def">
<xs:complexType>
<xs:attributeGroup ref="attlist.field-type-def"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.field-type-def">
<xs:attribute type="xs:string" name="type" use="required"/>
<xs:attribute type="xs:string" name="sql-type" use="required"/>
<xs:attribute type="xs:string" name="sql-type-alias"/>
<xs:attribute name="java-type" use="required">
<xs:annotation><xs:documentation>
The java-type attribute must contain a Java data type
recognized by the JDBC driver (ResultSet getXxx methods
or PreparedStatement setXxx methods).
</xs:documentation></xs:annotation>
<!-- Developers Note: SQL type to Java type mapping taken from
http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/getstart/mapping.html -->
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="byte[]">
<xs:annotation><xs:documentation>
Use with BLOB, BINARY, VARBINARY, and LONGVARBINARY SQL types
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="Boolean">
<xs:annotation><xs:documentation>
Use with BIT and BOOLEAN SQL types
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="Double">
<xs:annotation><xs:documentation>
Use with DOUBLE and FLOAT SQL types
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="Float">
<xs:annotation><xs:documentation>
Use with REAL SQL type
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="Integer">
<xs:annotation><xs:documentation>
Use with INTEGER SQL type
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="Long">
<xs:annotation><xs:documentation>
Use with BIGINT SQL type
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="Object">
<xs:annotation><xs:documentation>
Use with BLOB and LONGVARBINARY SQL types
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="Short">
<xs:annotation><xs:documentation>
Use with SMALLINT and TINYINT SQL types
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="String">
<xs:annotation><xs:documentation>
Use with CLOB, CHAR, VARCHAR,
and LONGVARCHAR SQL types
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="java.math.BigDecimal">
<xs:annotation><xs:documentation>
Use with DECIMAL and NUMERIC SQL types
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="java.sql.Blob">
<xs:annotation><xs:documentation>
Use with BLOB SQL type
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="java.sql.Clob">
<xs:annotation><xs:documentation>
Use with CLOB SQL type
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="java.sql.Date">
<xs:annotation><xs:documentation>
Use with DATE SQL type
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="java.sql.Time">
<xs:annotation><xs:documentation>
Use with TIME SQL type
</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="java.sql.Timestamp">
<xs:annotation><xs:documentation>
Use with TIMESTAMP SQL type
</xs:documentation></xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
</xs:schema>