blob: dbb6efc88c74b73d2ceed912393670083e3a4108 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="XercesMessagesBinding2_2.xsd"
xmlns:su="XercesMessagesBinding2_2.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:annotation>
<xs:documentation>
This is a schema for SQLUTils version 3.4
</xs:documentation>
</xs:annotation>
<xs:element name="database" type="su:Database">
<xs:key name="TableKeyColumn">
<xs:selector xpath="table"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:keyref name="TableKeyColumnRef" refer="su:TableKeyColumn">
<xs:selector xpath="col" />
<xs:field xpath="@ref" />
</xs:keyref>
<xs:key name="TableKeyColumns">
<xs:selector xpath="table"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:keyref name="TableKeyColumnsRef" refer="su:TableKeyColumns">
<xs:selector xpath="key" />
<xs:field xpath="@ref" />
</xs:keyref>
</xs:element>
<xs:complexType name="Database">
<xs:sequence>
<xs:element name="description" type="su:Description" minOccurs="0"/>
<xs:element name="table" type="su:Table" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="dsn" type="xs:string" use="optional"/>
<xs:attribute name="username" type="xs:string" use="optional"/>
<xs:attribute name="password" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="Table">
<xs:sequence>
<xs:element name="description" type="su:Description"/>
<xs:element name="col" type="su:Column" maxOccurs="unbounded"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="key" type="su:Key"/>
<xs:element name="index" type="su:Index"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="dataUri" type="xs:string"/>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:complexType name="Column">
<xs:sequence>
<xs:element name="description" type="su:Description"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="optional"/>
<xs:attribute name="null" type="xs:boolean" use="optional"/>
<xs:attribute name="size" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="constraint" type="xs:string" use="optional"/>
<xs:attribute name="pk" type="xs:boolean" use="optional"/>
<xs:attribute name="ref" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="Index">
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="unique" type="xs:boolean" use="required"/>
<xs:attribute name="cols" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="Key">
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="type" type="su:KeyType" use="required"/>
<xs:attribute name="ref" type="xs:string" use="optional"/>
<xs:attribute name="cols" type="xs:string" use="required"/>
</xs:complexType>
<xs:simpleType name="KeyType">
<xs:restriction base="xs:string">
<xs:enumeration value="foreign"/>
<xs:enumeration value="primary"/>
<xs:enumeration value="unique"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Description" mixed="true">
<xs:sequence>
<xs:element name="p">
<xs:complexType>
<xs:sequence>
<xs:any processContents="skip" namespace="##local" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>