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>