TLDR: The cascade element is being placed below the join-column element which apparently is a validation error. Placing the cascade element before the join-column element passes successfully.
Just going through these one by one and so far the only thing that's come up is that the following skipper.module.xml:
<?xml version="1.0"?>
<skipper version="3.2.34.1746" mvc="Without MVC" orm="Doctrine2">
<module name="\Stratum\Gallery" local-name="Stratum\Gallery" namespace="\Stratum\Gallery\Entity" local-namespace="Stratum\Gallery\Entity" export-format="Doctrine2Xml" export-path="data/orm" uuid="a47f1d1a-8828-4679-b412-f84679e6accf">
<entity name="\Stratum\Gallery\Entity\AbstractMedia" local-name="AbstractMedia" namespace="\Stratum\Gallery\Entity" uuid="7cb2e31f-375c-42c0-a0c0-1f37c9c3f94c">
<field name="type" type="string" required="true" uuid="1997d89d-8737-46e8-8f65-f370bcc26212"/>
<field name="content_identity" type="guid" required="true" unique="true" uuid="c4320b50-9f42-48c1-92f5-e35a20e7a26a"/>
<field name="mimeType" type="string" required="true" uuid="86850bdf-5811-4bb9-b423-593aeb2168da"/>
<field name="path" type="string" required="true" uuid="d99a4f88-3cdb-4acf-8e07-401c537ea1df"/>
<field name="filename" type="string" required="true" uuid="96e9e3cb-b059-44ff-9b5b-a5e393e0b7e5"/>
<index name="UniqueFile" unique="true" uuid="170702bf-3894-476e-9037-fe970cf33cfc">
<index-field name="path" uuid="6990a44b-2581-494d-aa87-ba8772118b0e"/>
<index-field name="type" uuid="f46e6368-191d-42f5-86f9-82fff296d3df"/>
<index-field name="filename" uuid="b9f83bc9-442d-4b5c-9206-4735a47ee422"/>
</index>
<inheritance-parent discriminator-field="type" type="JOINED" uuid="add021fe-20ac-4244-b135-c48723cfef60"/>
<inheritance-child derived-from="\Stratum\Doctrine\Entity\AbstractAuditableEntity" uuid="03c520f3-7770-4b6d-b610-d63adaf3c8b0"/>
<orm-attributes>
<attribute name="options">
<attribute name="charset">utf8mb4</attribute>
<attribute name="collate">utf8mb4_unicode_ci</attribute>
</attribute>
<attribute name="table">gallery_media</attribute>
</orm-attributes>
</entity>
<association from="\Stratum\Gallery\Entity\AbstractMedia" to="\Stratum\Gallery\Entity\MediaContent" inverse-alias="content" many-owner="false" many-inverse="false" parent-required="true" uuid="1d6656ef-cc24-482c-9232-3a613465ee9d">
<association-field from="content_identity" to="identity" uuid="b6bac7b4-de05-4097-b499-eab4b52299ee"/>
<orm-attributes>
<attribute name="on-delete">CASCADE</attribute>
<attribute name="side-owning">
<attribute name="cascade">
<attribute name="cascade-all">true</attribute>
</attribute>
<attribute name="fetch">EXTRA_LAZY</attribute>
</attribute>
</orm-attributes>
</association>
<entity name="\Stratum\Gallery\Entity\Image" local-name="Image" namespace="\Stratum\Gallery\Entity" uuid="9ac048cd-1d6f-4ae9-a698-0eb6b98efad5">
<field name="width" type="integer" required="true" uuid="23618b11-e8ca-43fd-8f2f-4ab83714de0c"/>
<field name="height" type="integer" required="true" uuid="b1eacb2b-26d2-48ef-9afa-0c2bada9e05d"/>
<inheritance-child derived-from="\Stratum\Gallery\Entity\AbstractMedia" discriminator-value="image" uuid="2f39e4a1-c4f1-4fec-af4b-d41f048e2476"/>
<orm-attributes>
<attribute name="options">
<attribute name="charset">utf8mb4</attribute>
<attribute name="collate">utf8mb4_unicode_ci</attribute>
</attribute>
<attribute name="table">gallery_images</attribute>
</orm-attributes>
</entity>
<entity name="\Stratum\Gallery\Entity\Video" local-name="Video" namespace="\Stratum\Gallery\Entity" uuid="8113d535-2fd5-46c4-939c-df82ac0586cd">
<field name="autoplay" type="boolean" required="true" uuid="d9562fac-0b6b-4655-a209-78b352aeae1d"/>
<field name="loop" type="boolean" required="true" uuid="b884c74f-e87e-45a4-bd69-fe861804edbe"/>
<inheritance-child derived-from="\Stratum\Gallery\Entity\AbstractMedia" discriminator-value="video" uuid="5c418e06-00aa-49f5-9442-65dd97afa971"/>
<orm-attributes>
<attribute name="options">
<attribute name="charset">utf8mb4</attribute>
<attribute name="collate">utf8mb4_unicode_ci</attribute>
</attribute>
<attribute name="table">gallery_videos</attribute>
</orm-attributes>
</entity>
<entity name="\Stratum\Gallery\Entity\File" local-name="File" namespace="\Stratum\Gallery\Entity" uuid="8f295f0e-d7d3-40fe-8329-ed3d5fa38bcb">
<inheritance-child derived-from="\Stratum\Gallery\Entity\AbstractMedia" discriminator-value="file" uuid="2f083f91-8aca-40e2-b8fe-adffba9609a4"/>
<orm-attributes>
<attribute name="table">gallery_files</attribute>
</orm-attributes>
</entity>
<entity name="\Stratum\Gallery\Entity\MediaContent" local-name="MediaContent" namespace="\Stratum\Gallery\Entity" uuid="54d1ee78-67b7-4dfe-b867-1468ee72a8ca">
<field name="data" type="blob" required="true" uuid="cf56f305-772b-433b-be36-bffd8b083eb1"/>
<inheritance-child derived-from="\Stratum\Doctrine\Entity\AbstractGuidEntity" uuid="b5f4d2bb-e45c-44ab-9c01-6c04766c413d"/>
<orm-attributes>
<attribute name="table">gallery_media_content</attribute>
</orm-attributes>
</entity>
</module>
<visual-data>
<entity uuid="54d1ee78-67b7-4dfe-b867-1468ee72a8ca" bg-color="#FFFFFF" hdr-color="#D2D2D2" position-x="55" position-y="102" size-x="0" size-x2="82" size-y="0" size-y2="46"/>
<entity uuid="7cb2e31f-375c-42c0-a0c0-1f37c9c3f94c" bg-color="#FFFFFF" hdr-color="#D2D2D2" position-x="176" position-y="67" size-x="0" size-x2="158" size-y="0" size-y2="144"/>
<entity uuid="8113d535-2fd5-46c4-939c-df82ac0586cd" bg-color="#FFFFFF" hdr-color="#D2D2D2" position-x="-80" position-y="96" size-x="0" size-x2="118" size-y="0" size-y2="116"/>
<entity uuid="8f295f0e-d7d3-40fe-8329-ed3d5fa38bcb" bg-color="#FFFFFF" hdr-color="#D2D2D2" position-x="177" position-y="205" size-x="0" size-x2="101" size-y="0" size-y2="73"/>
<entity uuid="9ac048cd-1d6f-4ae9-a698-0eb6b98efad5" bg-color="#FFFFFF" hdr-color="#D2D2D2" position-x="327" position-y="67" size-x="0" size-x2="101" size-y="0" size-y2="102"/>
<inheritance-child uuid="03c520f3-7770-4b6d-b610-d63adaf3c8b0" caption1-position-x="0" caption1-position-y="0" center-position-x="0" center-position-y="0" color="#969696" split="1"/>
<inheritance-child uuid="2f083f91-8aca-40e2-b8fe-adffba9609a4" center-position-x="0" center-position-y="0" color="#969696"/>
<inheritance-child uuid="2f39e4a1-c4f1-4fec-af4b-d41f048e2476" caption1-position-x="0" caption1-position-y="0" center-position-x="0" center-position-y="0" color="#969696"/>
<inheritance-child uuid="5c418e06-00aa-49f5-9442-65dd97afa971" caption1-position-x="0" caption1-position-y="0" center-position-x="0" center-position-y="0" color="#969696"/>
<inheritance-child uuid="b5f4d2bb-e45c-44ab-9c01-6c04766c413d" caption1-position-x="0" caption1-position-y="0" center-position-x="0" center-position-y="0" color="#969696" split="1"/>
<module uuid="a47f1d1a-8828-4679-b412-f84679e6accf" bg-color="#E7F5FD" size-x="89" size-x2="461" size-y="-24" size-y2="453"/>
</visual-data>
</skipper>
Generates the following mapping for "Stratum.Gallery.Entity.AbstractMedia.dcm.xml":
<?xml version="1.0"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Stratum\Gallery\Entity\AbstractMedia" inheritance-type="JOINED" table="gallery_media">
<field name="mimeType" type="string" nullable="false"/>
<field name="path" type="string" nullable="false"/>
<field name="filename" type="string" nullable="false"/>
<unique-constraints>
<unique-constraint name="UniqueFile" columns="path,type,filename"/>
</unique-constraints>
<one-to-one field="content" target-entity="Stratum\Gallery\Entity\MediaContent" fetch="EXTRA_LAZY">
<join-columns>
<join-column name="content_identity" referenced-column-name="identity" nullable="false" unique="true" on-delete="CASCADE"/>
</join-columns>
<cascade>
<cascade-all/>
</cascade>
</one-to-one>
<discriminator-column name="type" type="string"/>
<discriminator-map>
<discriminator-mapping class="Stratum\Gallery\Entity\Image" value="image"/>
<discriminator-mapping class="Stratum\Gallery\Entity\Video" value="video"/>
<discriminator-mapping class="Stratum\Gallery\Entity\File" value="file"/>
</discriminator-map>
<options>
<option name="charset">utf8mb4</option>
<option name="collate">utf8mb4_unicode_ci</option>
</options>
</entity>
</doctrine-mapping>
Which gives the following error:
data/orm/Stratum.Gallery.Entity.Video.dcm.xml validates
data/orm/Stratum.Gallery.Entity.File.dcm.xml validates
data/orm/Stratum.Gallery.Entity.MediaContent.dcm.xml validates
data/orm/Stratum.Gallery.Entity.Image.dcm.xml validates
data/orm/Stratum.Gallery.Entity.AbstractMedia.dcm.xml:14: element
cascade: Schemas validity error : Element
'{http://doctrine-project.org/schemas/orm/doctrine-mappi ng}cascade':
This element is not expected. Expected is (##other{http://doctrine-project.org/schemas/orm/doctrine-mapping}* ).
data/orm/Stratum.Gallery.Entity.AbstractMedia.dcm.xml fails to
validate.
I took at look at the schema and I couldn't see any issues and its not exactly reporting that its completely wrong. So I tried sorting the elements alphabetically (specifically placing the element inside the before the element) and this appears to resolve this issue.
(i.e. this works)
<one-to-one field="content" target-entity="Stratum\Gallery\Entity\MediaContent" fetch="EXTRA_LAZY">
<cascade>
<cascade-all/>
</cascade>
<join-columns>
<join-column name="content_identity" referenced-column-name="identity" nullable="false" unique="true" on-delete="CASCADE"/>
</join-columns>
</one-to-one>