| <?xml version="1.0" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
  <namespace prefix="custom">Symfony\Component\Validator\Tests\Fixtures\</namespace>
  <class name="Symfony\Component\Validator\Tests\Fixtures\Entity">
    <group-sequence>
       <value>Foo</value>
       <value>Entity</value>
    </group-sequence>
    <!-- CLASS CONSTRAINTS -->
    <!-- Custom constraint -->
    <constraint name="Symfony\Component\Validator\Tests\Fixtures\ConstraintA" />
    <!-- Custom constraint with namespace abbreviation-->
    <constraint name="custom:ConstraintB" />
    <!-- Callbacks -->
    <constraint name="Callback">validateMe</constraint>
    <constraint name="Callback">validateMeStatic</constraint>
    <constraint name="Callback">
        <value>Symfony\Component\Validator\Tests\Fixtures\CallbackClass</value>
        <value>callback</value>
    </constraint>
    <!-- PROPERTY CONSTRAINTS -->
    <property name="firstName">
      <!-- Constraint without value -->
      <constraint name="NotNull" />
      <!-- Constraint with single value -->
      <constraint name="Range">
         <option name="min">3</option>
      </constraint>
      <!-- Constraint with multiple values -->
      <constraint name="Choice">
        <value>A</value>
        <value>B</value>
      </constraint>
      <!-- Constraint with child constraints -->
      <constraint name="All">
        <constraint name="NotNull" />
        <constraint name="Range">
           <option name="min">3</option>
        </constraint>
      </constraint>
      <!-- Option with child constraints -->
      <constraint name="All">
        <option name="constraints">
          <constraint name="NotNull" />
          <constraint name="Range">
             <option name="min">3</option>
          </constraint>
        </option>
      </constraint>
      <!-- Value with child constraints -->
      <constraint name="Collection">
        <option name="fields">
          <value key="foo">
            <constraint name="NotNull" />
            <constraint name="Range">
               <option name="min">3</option>
            </constraint>
          </value>
          <value key="bar">
            <constraint name="Range">
               <option name="min">5</option>
            </constraint>
          </value>
        </option>
      </constraint>
      <!-- Constraint with options -->
      <constraint name="Choice">
        <!-- Option with single value -->
        <option name="message"> Must be one of %choices% </option>
        <!-- Option with multiple values -->
        <option name="choices">
          <value>A</value>
          <value>B</value>
        </option>
      </constraint>
    </property>
    <!-- GETTER CONSTRAINTS -->
    <getter property="lastName">
      <constraint name="NotNull" />
    </getter>
    <getter property="valid">
      <constraint name="IsTrue" />
    </getter>
    <getter property="permissions">
      <constraint name="IsTrue" />
    </getter>
  </class>
  <class name="Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity">
    <!-- GROUP SEQUENCE PROVIDER -->
    <group-sequence-provider />
  </class>
</constraint-mapping>
 |