schema/shardingsphere/sharding/sharding.xsd (160 lines of code) (raw):
<?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.
-->
<xsd:schema xmlns="http://shardingsphere.apache.org/schema/shardingsphere/sharding"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:beans="http://www.springframework.org/schema/beans"
targetNamespace="http://shardingsphere.apache.org/schema/shardingsphere/sharding"
elementFormDefault="qualified">
<xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd" />
<xsd:element name="rule">
<xsd:complexType>
<xsd:all>
<xsd:element ref="table-rules" minOccurs="0" />
<xsd:element ref="auto-table-rules" minOccurs="0" />
<xsd:element ref="binding-table-rules" minOccurs="0" />
<xsd:element ref="broadcast-table-rules" minOccurs="0" />
</xsd:all>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="default-database-strategy-ref" type="xsd:string" />
<xsd:attribute name="default-table-strategy-ref" type="xsd:string" />
<xsd:attribute name="default-key-generate-strategy-ref" type="xsd:string" />
<xsd:attribute name="default-sharding-column" type="xsd:string" />
<xsd:attribute name="default-audit-strategy-ref" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="table-rules">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="table-rule" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="table-rule">
<xsd:complexType>
<xsd:attribute name="logic-table" type="xsd:string" use="required" />
<xsd:attribute name="actual-data-nodes" type="xsd:string" />
<xsd:attribute name="database-strategy-ref" type="xsd:string" />
<xsd:attribute name="table-strategy-ref" type="xsd:string" />
<xsd:attribute name="key-generate-strategy-ref" type="xsd:string" />
<xsd:attribute name="audit-strategy-ref" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="auto-table-rules">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="auto-table-rule" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="auto-table-rule">
<xsd:complexType>
<xsd:attribute name="logic-table" type="xsd:string" use="required" />
<xsd:attribute name="actual-data-sources" type="xsd:string" />
<xsd:attribute name="sharding-strategy-ref" type="xsd:string" />
<xsd:attribute name="key-generate-strategy-ref" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="binding-table-rules">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="binding-table-rule" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="binding-table-rule">
<xsd:complexType>
<xsd:attribute name="logic-tables" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="broadcast-table-rules">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="broadcast-table-rule" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="broadcast-table-rule">
<xsd:complexType>
<xsd:attribute name="table" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="standard-strategy">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="sharding-column" type="xsd:string" />
<xsd:attribute name="algorithm-ref" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="complex-strategy">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="sharding-columns" type="xsd:string" use="required" />
<xsd:attribute name="algorithm-ref" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="hint-strategy">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="algorithm-ref" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="none-strategy">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="sharding-algorithm">
<xsd:complexType>
<xsd:all>
<xsd:element ref="beans:props" minOccurs="0" />
</xsd:all>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="key-generate-strategy">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="column" type="xsd:string" use="required" />
<xsd:attribute name="algorithm-ref" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="key-generate-algorithm">
<xsd:complexType>
<xsd:all>
<xsd:element ref="beans:props" minOccurs="0" />
</xsd:all>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="audit-strategy">
<xsd:complexType>
<xsd:all>
<xsd:element ref="auditors" minOccurs="0" />
</xsd:all>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="allow-hint-disable" type="xsd:boolean" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="auditors">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="auditor" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="auditor">
<xsd:complexType>
<xsd:attribute name="algorithm-ref" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="audit-algorithm">
<xsd:complexType>
<xsd:all>
<xsd:element ref="beans:props" minOccurs="0" />
</xsd:all>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>