<?xml version="1.0" encoding="UTF-8" ?>
<!--The validate system for XML in Golang.-->
<Conifgure Name="main.test">
    <!--Unique 是一个列表, 其值来自 Fields.Field.Name, 当存在时该字段的值在表中必须唯一-->
    <Unique>
        <Name>testInt</Name>
        <Name>testStringEnum</Name>
    </Unique>
    <!--Required 是一个列表, 其值来自 Fields.Field.Name, 当存在时该字段的值不可为空-->
    <Required>
        <Name>testInt</Name>
        <Name>testStringEnum</Name>
    </Required>
    <!--Fields 包含一系列的字段和其校验方法, 当存在多个校验方式时, 仅使用其绑定的方式校验-->
    <Fields>
        <!--Type int,long,double example-->
        <!--Minimum 和 Maximum 用于 Number 类型-->
        <Field Name="testInt" Type="int">
            <Minimum>111</Minimum> <!--最小值-->
            <Maximum>222</Maximum> <!--最大值, 如果设置了最小值而未设置最大值, 则最大值为 Type 数据类型的最大值-->
        </Field>
        <!--Type string Example-->
        <Field Name="testStringEnum" Type="string">
            <Enums>  <!--Enum 的类型必须和 Field.Name 的 Type 相等-->
                <Enum>Apple</Enum>
                <Enum>Google</Enum>
                <Enum>Sina</Enum>
            </Enums>
            <MinLength>1</MinLength> <!--当指定长度时, 字符串长度必须满足要求-->
            <MaxLength>20</MaxLength>
            <Pattern/> <!--正则表达式, 字符串必须满足正则表达式规则-->
        </Field>
        <!--Type array Example-->
        <Field Name="testArray" Type="array">  <!--当 Type 为 array 时可指定 Items 为 array 或 object, 默认为 array-->
            <Items>array</Items> <!--未能理解其定义, 暂不实现 https://docs.mongodb.com/manual/reference/operator/query/jsonSchema/#available-keywords -->
            <Items>object</Items> <!--当 Items 为 object 时会查询数组内所有的数据类型是否为 JSON (map[string]interface{})-->
            <MinItems>1</MinItems> <!--数组最小大小-->
            <MaxItems>10</MaxItems> <!--数组最大大小-->
            <UniqueItems>true</UniqueItems> <!--要求数组内的值必须唯一-->
        </Field>
        <!--Type object Example-->
        <Field Name="testObject" Type="object">  <!--当 Type 为 array 时可指定 Items 为 array 或 object-->
            <MinProperties>1</MinProperties> <!--最小字段数量-->
            <MaxProperties>100</MaxProperties> <!--最大字段数量-->
            <Required>  <!--必填的字段, Required 中的值不可重复-->
                <Name>name</Name>
                <Name>sn</Name>
            </Required>
        </Field>
    </Fields>
</Conifgure>