3MFConsortium / spec_core

3MF's Core specification
BSD 2-Clause "Simplified" License
55 stars 16 forks source link

Element "any" causes extendeability issues #70

Closed jordig100 closed 1 year ago

jordig100 commented 1 year ago

The following clause causes extendeabity issues:

For example in the Alternatives spec:

<xs:complexType name="CT_Object">
    <xs:sequence>
        <xs:element ref="metadatagroup" minOccurs="0"/>
        <xs:choice>
            <xs:element ref="mesh"/>
            <xs:element ref="components"/>
        </xs:choice>
        <xs:element ref="pa:alternatives" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>

Produces the following validation error:

"http://schemas.microsoft.com/3dmanufacturing/production/alternatives/2021/04":alternatives and WC[##other:"http://schemas.microsoft.com/3dmanufacturing/core/2015/02",""] (or elements from their substitution group) violate "Unique Particle Attribution". During validation against this schema, ambiguity would be created for those two particles.

The solution is to remove the min and max occurs as:

        <xs:any namespace="##other" processContents="lax"/>