<?xml version="1.0" encoding="UTF-8"?>
<!-- WebRowSet XML Schema by Jonathan Bruce (Sun Microsystems Inc.) -->
<xs:schema targetNamespace="http://java.sun.com/xml/ns/jdbc" xmlns:wrs="http://java.sun.com/xml/ns/jdbc" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sqlxml="http://standards.iso.org/iso/9075/2002/12/sqlxml" elementFormDefault="qualified">
	<xs:import namespace="http://standards.iso.org/iso/9075/2002/12/sqlxml" schemaLocation="http://standards.iso.org/iso/9075/2002/12/sqlxml.xsd"/>
	<xs:simpleType name="fieldValueType">
		<xs:restriction base="sqlxml:typeKeyword">
			<xs:enumeration value="CHAR"/>
			<xs:enumeration value="VARCHAR"/>
			<xs:enumeration value="CLOB"/>
			<xs:enumeration value="BLOB"/>
			<xs:enumeration value="NUMERIC"/>
			<xs:enumeration value="DECIMAL"/>
			<xs:enumeration value="INTEGER"/>
			<xs:enumeration value="SMALLINT"/>
			<xs:enumeration value="BIGINT"/>
			<xs:enumeration value="FLOAT"/>
			<xs:enumeration value="REAL"/>
			<xs:enumeration value="DOUBLE PRECISION"/>
			<xs:enumeration value="BOOLEAN"/>
			<xs:enumeration value="DATE"/>
			<xs:enumeration value="TIME"/>
			<xs:enumeration value="TIME WITH TIME ZONE"/>
			<xs:enumeration value="TIMESTAMP"/>
			<xs:enumeration value="TIMESTAMP WITH TIME ZONE"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:element name="webRowSet">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="wrs:properties"/>
				<xs:element ref="wrs:metadata"/>
				<xs:element ref="wrs:data"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="columnValue" type="xs:anyType"/>
	<xs:element name="updateValue" type="xs:anyType"/>
	
	<xs:element name="properties">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="command" type="xs:string"/>
				<xs:element name="concurrency" type="xs:string"/>
				<xs:element name="datasource" type="xs:string"/>
				<xs:element name="escape-processing" type="xs:string"/>
				<xs:element name="fetch-direction" type="xs:string"/>
				<xs:element name="fetch-size" type="xs:string"/>
				<xs:element name="isolation-level" type="xs:string"/>
				<xs:element name="key-columns">
					<xs:complexType>
						<xs:sequence minOccurs="0" maxOccurs="unbounded">
							<xs:element name="column" type="xs:string"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="map">
					<xs:complexType>
						<xs:sequence minOccurs="0" maxOccurs="unbounded">
							<xs:element name="type" type="xs:string"/>
							<xs:element name="class" type="xs:string"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="max-field-size" type="xs:string"/>
				<xs:element name="max-rows" type="xs:string"/>
				<xs:element name="query-timeout" type="xs:string"/>
				<xs:element name="read-only" type="xs:string"/>
				<xs:element name="rowset-type" type="xs:string"/>
				<xs:element name="show-deleted" type="xs:string"/>
				<xs:element name="table-name" type="xs:string"/>
				<xs:element name="url" type="xs:string"/>
				<xs:element name="sync-provider">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="sync-provider-name" type="xs:string"/>
							<xs:element name="sync-provider-vendor" type="xs:string"/>
							<xs:element name="sync-provider-version" type="xs:string"/>
							<xs:element name="sync-provider-grade" type="xs:string"/>
							<xs:element name="data-source-lock" type="xs:string"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="metadata">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="column-count" type="xs:string"/>
				<xs:choice>
					<xs:element name="column-definition" minOccurs="0" maxOccurs="unbounded">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="column-index" type="xs:string"/>
								<xs:element name="auto-increment" type="xs:string"/>
								<xs:element name="case-sensitive" type="xs:string"/>
								<xs:element name="currency" type="xs:string"/>
								<xs:element name="nullable" type="xs:string"/>
								<xs:element name="signed" type="xs:string"/>
								<xs:element name="searchable" type="xs:string"/>
								<xs:element name="column-display-size" type="xs:string"/>
								<xs:element name="column-label" type="xs:string"/>
								<xs:element name="column-name" type="xs:string"/>
								<xs:element name="schema-name" type="xs:string"/>
								<xs:element name="column-precision" type="xs:string"/>
								<xs:element name="column-scale" type="xs:string"/>
								<xs:element name="table-name" type="xs:string"/>
								<xs:element name="catalog-name" type="xs:string"/>
								<xs:element name="column-type" type="xs:string"/>
								<xs:element name="column-type-name" type="xs:string"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:choice>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="data">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element name="currentRow" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence minOccurs="0" maxOccurs="unbounded">
							<xs:element ref="wrs:columnValue"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="insertRow" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:choice minOccurs="0" maxOccurs="unbounded">
							<xs:element ref="wrs:columnValue"/>
							<xs:element ref="wrs:updateValue"/>
						</xs:choice>
					</xs:complexType>
				</xs:element>
				<xs:element name="deleteRow" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence minOccurs="0" maxOccurs="unbounded">
							<xs:element ref="wrs:columnValue"/>
							<xs:element ref="wrs:updateValue"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="modifyRow" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence minOccurs="0" maxOccurs="unbounded">
							<xs:element ref="wrs:columnValue"/>
							<xs:element ref="wrs:updateValue"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
