XSD- V2

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="items">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="item">
        <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="assignments"/>
                <xs:element ref="attributes"  minOccurs="0" />
                <xs:element ref="completenesses"  minOccurs="0" />
                <xs:element ref="link_attributes"  minOccurs="0" />
                <xs:element ref="links" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="tags"  minOccurs="0" />
                <xs:element ref="variants" minOccurs="0" />
                <xs:element ref="workflows" minOccurs="0" />
                <xs:element ref="urls" minOccurs="0" />
            </xs:choice>
            <xs:attribute name="active" type="xs:boolean"/>
            <xs:attribute name="code" use="required"/>
            <xs:attribute name="document_type_code" type="xs:string"/>
            <xs:attribute name="attribute_set_code" type="xs:string"/>
            <xs:attribute name="entity_type" use="required" type="xs:string"/>
            <xs:attribute name="leaf" type="xs:boolean"/>
            <xs:attribute name="catalog_view_code" type="xs:string"/>
            <xs:attribute name="pim_url" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="assignments">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="attributes">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="attribute"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="attribute">
        <xs:complexType>
            <xs:choice>
                <xs:element ref="values"/>
            </xs:choice>
            <xs:attribute name="code" use="required" type="xs:string"/>
            <xs:attribute name="nature" type="xs:string"/>
            <xs:attribute name="type" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="values">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="value"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="urls">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="url"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="url">
        <xs:complexType  mixed="true">
            <xs:attribute name="type" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="completenesses">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="completeness"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="completeness">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" ref="value"/>
            </xs:sequence>
            <xs:attribute name="code" use="required" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="link_attributes">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="attribute"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="links">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
            </xs:sequence>
            <xs:attribute name="type" use="required" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="tags">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="tag"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="tag">
        <xs:complexType>
            <xs:attribute name="code" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="variants">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="workflows">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="workflow"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="workflow">
        <xs:complexType>
            <xs:attribute name="code" type="xs:string"/>
            <xs:attribute name="step" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="value">
        <xs:complexType mixed="true">
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="text"/>
            </xs:sequence>
            <xs:attribute name="code" type="xs:string"/>
            <xs:attribute name="locale" type="xs:string"/>
            <xs:attribute name="success" type="xs:boolean"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="text">
        <xs:complexType mixed="true">
            <xs:attribute name="locale" type="xs:string"/>
        </xs:complexType>
    </xs:element>
</xs:schema>