<doctrine-mapping
    xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:rdm="http://github.com/addiks/symfony_rdm/tree/master/Resources/mapping-schema.v1.xsd"
>

    <entity name="Addiks\RDMBundle\Tests\Hydration\EntityExample" table="entity_example">
        <id name="id" type="integer" column="id">
            <generator strategy="AUTO" />
        </id>

        <field type="string" nullable="false" name="baz" />

        <rdm:service field="foo" id="some_service" />
        <rdm:service field="bar" id="other_service" />

        <rdm:choice field="baz" column="baz_column">
            <rdm:option name="lorem">
                <rdm:service id="lorem_service" />
            </rdm:option>
            <rdm:option name="ipsum">
                <rdm:service id="ipsum_service" lax="true" />
            </rdm:option>
        </rdm:choice>

        <rdm:choice field="faz">
            <field type="string" name="faz_column" nullable="false" />
            <rdm:option name="lorem">
                <rdm:service id="lorem_service" />
            </rdm:option>
            <rdm:option name="ipsum">
                <rdm:service id="ipsum_service" />
            </rdm:option>
            <rdm:option name="dolor">
                <foo bar="baz" />
            </rdm:option>
        </rdm:choice>

        <rdm:choice field="far">
            <field type="string" name="far_column" nullable="true" />
            <rdm:option name="lorem">
                <rdm:service id="lorem_service" />
            </rdm:option>
            <rdm:option name="ipsum">
                <rdm:service id="ipsum_service" />
            </rdm:option>
            <rdm:option name="dolor">
                <rdm:object
                    class="Addiks\RDMBundle\Tests\ValueObjectExample"
                    factory="self::createFromJson"
                    serialize="serializeJson"
                />
            </rdm:option>
        </rdm:choice>

        <rdm:object field="boo" class="Addiks\RDMBundle\Tests\ValueObjectExample">
            <field type="string"  name="scalarValue" nullable="true" />
            <field type="string"  name="lorem" nullable="true" />
            <field type="integer" name="dolor" nullable="true" />
        </rdm:object>

        <rdm:object
            field="abc"
            class="Addiks\RDMBundle\Tests\ValueObjectExample"
            factory="self::createFromJson"
            serialize="serializeJson"
        />

        <rdm:object
            field="def"
            class="Addiks\RDMBundle\Tests\ValueObjectExample"
        >
            <rdm:factory object="@value_object.factory" method="createValueObject">
                <field type="integer" name="def" nullable="true" />
            </rdm:factory>
            <field type="string"  name="lorem" nullable="true" />
            <field type="integer" name="dolor" nullable="true" />
        </rdm:object>

        <rdm:object
            field="ghi"
            class="Addiks\RDMBundle\Tests\ValueObjectExample"
        >
            <rdm:factory object="@value_object.factory" method="createValueObject">
                <rdm:choice column="baz_column">
                    <rdm:option name="lorem">
                        <rdm:service id="lorem_service" />
                    </rdm:option>
                    <rdm:option name="ipsum">
                        <rdm:service id="ipsum_service" lax="true" />
                    </rdm:option>
                </rdm:choice>
            </rdm:factory>
        </rdm:object>

        <rdm:array field="jkl">
            <rdm:object class="Addiks\RDMBundle\Tests\ValueObjectExample" />
            <rdm:object class="Addiks\RDMBundle\Tests\ValueObjectExample">
                <rdm:array field="qwe" />
            </rdm:object>
            <rdm:object class="Addiks\RDMBundle\Tests\ValueObjectExample" />
        </rdm:array>

        <rdm:array field="mno">
            <rdm:entry key="foo">
                <rdm:service id="some_service" />
            </rdm:entry>
            <rdm:entry key="bar">
                <rdm:service id="other_service" />
                <rdm:service id="some_service" />
            </rdm:entry>
            <rdm:entry key="baz">
                <rdm:null />
            </rdm:entry>
            <rdm:entry key="maz">
                <rdm:list column="maz_column">
                    <rdm:object
                        class="Addiks\RDMBundle\Tests\ValueObjectExample"
                        column="maz_obj_column"
                        column-default="#DEFAULT#"
                    />
                </rdm:list>
            </rdm:entry>
        </rdm:array>

        <rdm:nullable field="pqr" column="pqr_column">
            <rdm:service id="some_service" />
        </rdm:nullable>

        <rdm:list field="stu" column="stu_column">
            <rdm:object class="Addiks\RDMBundle\Tests\ValueObjectExample" />
        </rdm:list>

        <rdm:import field="vwx" path="EntityExampleImport.orm.xml" />
        <rdm:import path="EntityExampleImportBroken.orm.xml" />

    </entity>

</doctrine-mapping>
