Difference between revisions of "User:Mineo/SearchWS"

From MusicBrainz Wiki
(How this works)
m
 
Line 17: Line 17:
 
* lines like http://bugs.musicbrainz.org/browser/search_server/trunk/servlet/src/main/resources/oxml.xml#L8 collapse the structure (see the third example on http://www.eclipse.org/eclipselink/api/2.2/org/eclipse/persistence/oxm/annotations/XmlPath.html)
 
* lines like http://bugs.musicbrainz.org/browser/search_server/trunk/servlet/src/main/resources/oxml.xml#L8 collapse the structure (see the third example on http://www.eclipse.org/eclipselink/api/2.2/org/eclipse/persistence/oxm/annotations/XmlPath.html)
  
=Renamings=
+
=Renaming=
    ack "element.*name" servlet/src/main/resources/oxml.xml -C2
 
  
 
             <java-type name="IpiList">
 
             <java-type name="IpiList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="ipi" name="ipis"/>
 
                     <xml-element java-attribute="ipi" name="ipis"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="LabelList">
 
             <java-type name="LabelList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="label" name="labels"/>
 
                     <xml-element java-attribute="label" name="labels"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
             <java-type name="TagList">
 
             <java-type name="TagList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="tag" name="tags"/>
 
                     <xml-element java-attribute="tag" name="tags"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="AliasList">
 
             <java-type name="AliasList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="alias" name="aliases"/>
 
                     <xml-element java-attribute="alias" name="aliases"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
             <java-type name="IswcList">
 
             <java-type name="IswcList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="iswc" name="iswcs"/>
 
                     <xml-element java-attribute="iswc" name="iswcs"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="UrlList">
 
             <java-type name="UrlList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="url" name="urls"/>
 
                     <xml-element java-attribute="url" name="urls"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
             <java-type name="PuidList">
 
             <java-type name="PuidList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="puid" name="puids"/>
 
                     <xml-element java-attribute="puid" name="puids"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="AreaList">
 
             <java-type name="AreaList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="area" name="areas"/>
 
                     <xml-element java-attribute="area" name="areas"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="PlaceList">
 
             <java-type name="PlaceList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="place" name="places"/>
 
                     <xml-element java-attribute="place" name="places"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="InstrumentList">
 
             <java-type name="InstrumentList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="instrument" name="instruments"/>
 
                     <xml-element java-attribute="instrument" name="instruments"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="EditorList">
 
             <java-type name="EditorList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="editor" name="editors"/>
 
                     <xml-element java-attribute="editor" name="editors"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="ReleaseList">
 
             <java-type name="ReleaseList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="release" name="releases"/>
 
                     <xml-element java-attribute="release" name="releases"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="ReleaseGroupList">
 
             <java-type name="ReleaseGroupList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="releaseGroup" name="release-groups"/>
 
                     <xml-element java-attribute="releaseGroup" name="release-groups"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="MediumList">
 
             <java-type name="MediumList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="medium" name="media"/>
 
                     <xml-element java-attribute="medium" name="media"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="IsrcList">
 
             <java-type name="IsrcList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="isrc" name="isrcs"/>
 
                     <xml-element java-attribute="isrc" name="isrcs"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="SecondaryTypeList">
 
             <java-type name="SecondaryTypeList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="secondaryType" name="secondary-types"/>
 
                     <xml-element java-attribute="secondaryType" name="secondary-types"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="IsrcList">
 
             <java-type name="IsrcList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="isrc" name="isrcs"/>
 
                     <xml-element java-attribute="isrc" name="isrcs"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="ArtistCredit">
 
             <java-type name="ArtistCredit">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="nameCredit" name="artist-credit"/>
 
                     <xml-element java-attribute="nameCredit" name="artist-credit"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
             <java-type name="FreedbDiscList">
 
             <java-type name="FreedbDiscList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="freedbDisc" name="freedb-discs"/>
 
                     <xml-element java-attribute="freedbDisc" name="freedb-discs"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
             <java-type name="LabelInfoList">
 
             <java-type name="LabelInfoList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="labelInfo" name="label-info"/>
 
                     <xml-element java-attribute="labelInfo" name="label-info"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
             <java-type name="AnnotationList">
 
             <java-type name="AnnotationList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="annotation" name="annotations"/>
 
                     <xml-element java-attribute="annotation" name="annotations"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="CdstubList">
 
             <java-type name="CdstubList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="cdstub" name="cdstubs"/>
 
                     <xml-element java-attribute="cdstub" name="cdstubs"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
             <java-type name="Medium$TrackList">
 
             <java-type name="Medium$TrackList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="count" name="track-count"/>
 
                     <xml-element java-attribute="count" name="track-count"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="Medium$TrackList">
 
             <java-type name="Medium$TrackList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="offset" name="track-offset"/>
 
                     <xml-element java-attribute="offset" name="track-offset"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="DiscList">
 
             <java-type name="DiscList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="count" name="disc-count"/>
 
                     <xml-element java-attribute="count" name="disc-count"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="DiscList">
 
             <java-type name="DiscList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="offset" name="disc-offset"/>
 
                     <xml-element java-attribute="offset" name="disc-offset"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
             <java-type name="Relation$AttributeList">
 
             <java-type name="Relation$AttributeList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="attribute" name="attributes"/>
 
                     <xml-element java-attribute="attribute" name="attributes"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-transient java-attribute="targetType"/>
 
                     <xml-transient java-attribute="targetType"/>
 
                     <xml-element java-attribute="relation" name="relations"/>
 
                     <xml-element java-attribute="relation" name="relations"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="ReleaseEventList">
 
             <java-type name="ReleaseEventList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="releaseEvent" name="release-events"/>
 
                     <xml-element java-attribute="releaseEvent" name="release-events"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="Iso31661CodeList">
 
             <java-type name="Iso31661CodeList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="iso31661Code" name="iso-3166-1-codes"/>
 
                     <xml-element java-attribute="iso31661Code" name="iso-3166-1-codes"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="Iso31662CodeList">
 
             <java-type name="Iso31662CodeList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="iso31662Code" name="iso-3166-2-codes"/>
 
                     <xml-element java-attribute="iso31662Code" name="iso-3166-2-codes"/>
                </java-attributes>
+
    --
            </java-type>
 
 
             <java-type name="Iso31663CodeList">
 
             <java-type name="Iso31663CodeList">
 
                 <java-attributes>
 
                 <java-attributes>
 
                     <xml-element java-attribute="iso31663Code" name="iso-3166-3-codes"/>
 
                     <xml-element java-attribute="iso31663Code" name="iso-3166-3-codes"/>
                </java-attributes>
 
            </java-type>
 
 
     --
 
     --
 
                 <xml-type prop-order=""/>
 
                 <xml-type prop-order=""/>
Line 197: Line 154:
 
                     <xml-element java-attribute="locale" name="locale" nillable="true"/>
 
                     <xml-element java-attribute="locale" name="locale" nillable="true"/>
 
                     <xml-element java-attribute="type" name="type" nillable="true"/>
 
                     <xml-element java-attribute="type" name="type" nillable="true"/>
                     <xml-element java-attribute="primary" nillable="true">
+
 
                        <xml-java-type-adapter value="org.musicbrainz.search.servlet.moxy.BooleanStringAdapter"/>
+
=Collapsing=
 +
 
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="instrumentList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="seriesList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="editorList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="placeList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="areaList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="artistList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                     <xml-element java-attribute="releaseGroupList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="annotationList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="labelList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="recordingList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="urlList" xml-path="."/>
 +
    --
 +
            <java-type name="DefAreaElementInner">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="iso31661CodeList" xml-path="."/>
 +
    --
 +
            <java-type name="DefAreaElementInner">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="iso31662CodeList" xml-path="."/>
 +
    --
 +
            <java-type name="DefAreaElementInner">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="iso31663CodeList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="releaseList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="tagList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="workList" xml-path="."/>
 +
    --
 +
            <java-type name="Artist">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="ipiList" xml-path="."/>
 +
    --
 +
            <java-type name="Artist">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="tagList" xml-path="."/>
 +
    --
 +
            <java-type name="Release">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="artistCredit" xml-path="."/>
 +
    --
 +
            <java-type name="ReleaseGroup">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="artistCredit" xml-path="."/>
 +
    --
 +
            <java-type name="Recording">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="artistCredit" xml-path="."/>
 +
    --
 +
            <java-type name="Label">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="tagList" xml-path="."/>
 +
    --
 +
            <java-type name="Recording">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="tagList" xml-path="."/>
 +
    --
 +
            <java-type name="Release">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="tagList" xml-path="."/>
 +
    --
 +
            <java-type name="Work">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="aliasList" xml-path="."/>
 +
    --
 +
            <java-type name="Instrument">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="aliasList" xml-path="."/>
 +
    --
 +
            <java-type name="Series">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="aliasList" xml-path="."/>
 +
    --
 +
            <java-type name="Work">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="iswcList" xml-path="."/>
 +
    --
 +
            <java-type name="Recording">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="puidList" xml-path="."/>
 +
    --
 +
            <java-type name="Work">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="tagList" xml-path="."/>
 +
    --
 +
            <java-type name="Recording">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="releaseList" xml-path="."/>
 +
    --
 +
            <java-type name="Release">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="mediumList" xml-path="."/>
 +
    --
 +
            <java-type name="Release">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="releaseEventList" xml-path="."/>
 +
    --
 +
            <java-type name="Recording">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="isrcList" xml-path="."/>
 +
    --
 +
            <java-type name="ReleaseGroup">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="secondaryTypeList" xml-path="."/>
 +
    --
 +
            <java-type name="ReleaseGroup">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="releaseList" xml-path="."/>
 +
    --
 +
            <java-type name="Medium">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="trackList" xml-path="."/>
 +
    --
 +
            <java-type name="Label">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="ipiList" xml-path="."/>
 +
    --
 +
            <java-type name="Label">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="aliasList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="cdstubList" xml-path="."/>
 +
    --
 +
            <java-type name="Cdstub">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="trackList" xml-path="."/>
 +
    --
 +
            <java-type name="Metadata">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="freedbDiscList" xml-path="."/>
 +
    --
 +
            <java-type name="FreedbDisc">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="trackList" xml-path="."/>
 +
    --
 +
            <java-type name="Release">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="labelInfoList" xml-path="."/>
 +
    --
 +
            <java-type name="DefAreaElementInner">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="aliasList" xml-path="."/>
 +
    --
 +
            <java-type name="Place">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="aliasList" xml-path="."/>
 +
    --
 +
            <java-type name="Artist">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="aliasList" xml-path="."/>
 +
    --
 +
            <java-type name="ReleaseGroup">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="tagList" xml-path="."/>
 +
    --
 +
            <java-type name="Medium">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="discList" xml-path="."/>
 +
    --
 +
            <java-type name="Relation">
 +
                <java-attributes>
 +
                    <xml-element java-attribute="attributeList" xml-path="."/>

Latest revision as of 00:04, 16 July 2014

Examples

How this works

Renaming

           <java-type name="IpiList">
               <java-attributes>
                   <xml-element java-attribute="ipi" name="ipis"/>
   --
           <java-type name="LabelList">
               <java-attributes>
                   <xml-element java-attribute="label" name="labels"/>
   --
           <java-type name="TagList">
               <java-attributes>
                   <xml-element java-attribute="tag" name="tags"/>
   --
           <java-type name="AliasList">
               <java-attributes>
                   <xml-element java-attribute="alias" name="aliases"/>
   --
           <java-type name="IswcList">
               <java-attributes>
                   <xml-element java-attribute="iswc" name="iswcs"/>
   --
           <java-type name="UrlList">
               <java-attributes>
                   <xml-element java-attribute="url" name="urls"/>
   --
           <java-type name="PuidList">
               <java-attributes>
                   <xml-element java-attribute="puid" name="puids"/>
   --
           <java-type name="AreaList">
               <java-attributes>
                   <xml-element java-attribute="area" name="areas"/>
   --
           <java-type name="PlaceList">
               <java-attributes>
                   <xml-element java-attribute="place" name="places"/>
   --
           <java-type name="InstrumentList">
               <java-attributes>
                   <xml-element java-attribute="instrument" name="instruments"/>
   --
           <java-type name="EditorList">
               <java-attributes>
                   <xml-element java-attribute="editor" name="editors"/>
   --
           <java-type name="ReleaseList">
               <java-attributes>
                   <xml-element java-attribute="release" name="releases"/>
   --
           <java-type name="ReleaseGroupList">
               <java-attributes>
                   <xml-element java-attribute="releaseGroup" name="release-groups"/>
   --
           <java-type name="MediumList">
               <java-attributes>
                   <xml-element java-attribute="medium" name="media"/>
   --
           <java-type name="IsrcList">
               <java-attributes>
                   <xml-element java-attribute="isrc" name="isrcs"/>
   --
           <java-type name="SecondaryTypeList">
               <java-attributes>
                   <xml-element java-attribute="secondaryType" name="secondary-types"/>
   --
           <java-type name="IsrcList">
               <java-attributes>
                   <xml-element java-attribute="isrc" name="isrcs"/>
   --
           <java-type name="ArtistCredit">
               <java-attributes>
                   <xml-element java-attribute="nameCredit" name="artist-credit"/>
   --
           <java-type name="FreedbDiscList">
               <java-attributes>
                   <xml-element java-attribute="freedbDisc" name="freedb-discs"/>
   --
           <java-type name="LabelInfoList">
               <java-attributes>
                   <xml-element java-attribute="labelInfo" name="label-info"/>
   --
           <java-type name="AnnotationList">
               <java-attributes>
                   <xml-element java-attribute="annotation" name="annotations"/>
   --
           <java-type name="CdstubList">
               <java-attributes>
                   <xml-element java-attribute="cdstub" name="cdstubs"/>
   --
           <java-type name="Medium$TrackList">
               <java-attributes>
                   <xml-element java-attribute="count" name="track-count"/>
   --
           <java-type name="Medium$TrackList">
               <java-attributes>
                   <xml-element java-attribute="offset" name="track-offset"/>
   --
           <java-type name="DiscList">
               <java-attributes>
                   <xml-element java-attribute="count" name="disc-count"/>
   --
           <java-type name="DiscList">
               <java-attributes>
                   <xml-element java-attribute="offset" name="disc-offset"/>
   --
           <java-type name="Relation$AttributeList">
               <java-attributes>
                   <xml-element java-attribute="attribute" name="attributes"/>
   --
               <java-attributes>
                   <xml-transient java-attribute="targetType"/>
                   <xml-element java-attribute="relation" name="relations"/>
   --
           <java-type name="ReleaseEventList">
               <java-attributes>
                   <xml-element java-attribute="releaseEvent" name="release-events"/>
   --
           <java-type name="Iso31661CodeList">
               <java-attributes>
                   <xml-element java-attribute="iso31661Code" name="iso-3166-1-codes"/>
   --
           <java-type name="Iso31662CodeList">
               <java-attributes>
                   <xml-element java-attribute="iso31662Code" name="iso-3166-2-codes"/>
   --
           <java-type name="Iso31663CodeList">
               <java-attributes>
                   <xml-element java-attribute="iso31663Code" name="iso-3166-3-codes"/>
   --
               <xml-type prop-order=""/>
               <java-attributes>
                   <xml-element java-attribute="content" name="name"/>
                   <xml-element java-attribute="beginDate" name="begin-date" nillable="true"/>
                   <xml-element java-attribute="endDate" name="end-date" nillable="true"/>
                   <xml-element java-attribute="locale" name="locale" nillable="true"/>
                   <xml-element java-attribute="type" name="type" nillable="true"/>

Collapsing

           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="instrumentList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="seriesList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="editorList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="placeList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="areaList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="artistList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="releaseGroupList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="annotationList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="labelList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="recordingList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="urlList" xml-path="."/>
   --
           <java-type name="DefAreaElementInner">
               <java-attributes>
                   <xml-element java-attribute="iso31661CodeList" xml-path="."/>
   --
           <java-type name="DefAreaElementInner">
               <java-attributes>
                   <xml-element java-attribute="iso31662CodeList" xml-path="."/>
   --
           <java-type name="DefAreaElementInner">
               <java-attributes>
                   <xml-element java-attribute="iso31663CodeList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="releaseList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="tagList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="workList" xml-path="."/>
   --
           <java-type name="Artist">
               <java-attributes>
                   <xml-element java-attribute="ipiList" xml-path="."/>
   --
           <java-type name="Artist">
               <java-attributes>
                   <xml-element java-attribute="tagList" xml-path="."/>
   --
           <java-type name="Release">
               <java-attributes>
                   <xml-element java-attribute="artistCredit" xml-path="."/>
   --
           <java-type name="ReleaseGroup">
               <java-attributes>
                   <xml-element java-attribute="artistCredit" xml-path="."/>
   --
           <java-type name="Recording">
               <java-attributes>
                   <xml-element java-attribute="artistCredit" xml-path="."/>
   --
           <java-type name="Label">
               <java-attributes>
                   <xml-element java-attribute="tagList" xml-path="."/>
   --
           <java-type name="Recording">
               <java-attributes>
                   <xml-element java-attribute="tagList" xml-path="."/>
   --
           <java-type name="Release">
               <java-attributes>
                   <xml-element java-attribute="tagList" xml-path="."/>
   --
           <java-type name="Work">
               <java-attributes>
                   <xml-element java-attribute="aliasList" xml-path="."/>
   --
           <java-type name="Instrument">
               <java-attributes>
                   <xml-element java-attribute="aliasList" xml-path="."/>
   --
           <java-type name="Series">
               <java-attributes>
                   <xml-element java-attribute="aliasList" xml-path="."/>
   --
           <java-type name="Work">
               <java-attributes>
                   <xml-element java-attribute="iswcList" xml-path="."/>
   --
           <java-type name="Recording">
               <java-attributes>
                   <xml-element java-attribute="puidList" xml-path="."/>
   --
           <java-type name="Work">
               <java-attributes>
                   <xml-element java-attribute="tagList" xml-path="."/>
   --
           <java-type name="Recording">
               <java-attributes>
                   <xml-element java-attribute="releaseList" xml-path="."/>
   --
           <java-type name="Release">
               <java-attributes>
                   <xml-element java-attribute="mediumList" xml-path="."/>
   --
           <java-type name="Release">
               <java-attributes>
                   <xml-element java-attribute="releaseEventList" xml-path="."/>
   --
           <java-type name="Recording">
               <java-attributes>
                   <xml-element java-attribute="isrcList" xml-path="."/>
   --
           <java-type name="ReleaseGroup">
               <java-attributes>
                   <xml-element java-attribute="secondaryTypeList" xml-path="."/>
   --
           <java-type name="ReleaseGroup">
               <java-attributes>
                   <xml-element java-attribute="releaseList" xml-path="."/>
   --
           <java-type name="Medium">
               <java-attributes>
                   <xml-element java-attribute="trackList" xml-path="."/>
   --
           <java-type name="Label">
               <java-attributes>
                   <xml-element java-attribute="ipiList" xml-path="."/>
   --
           <java-type name="Label">
               <java-attributes>
                   <xml-element java-attribute="aliasList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="cdstubList" xml-path="."/>
   --
           <java-type name="Cdstub">
               <java-attributes>
                   <xml-element java-attribute="trackList" xml-path="."/>
   --
           <java-type name="Metadata">
               <java-attributes>
                   <xml-element java-attribute="freedbDiscList" xml-path="."/>
   --
           <java-type name="FreedbDisc">
               <java-attributes>
                   <xml-element java-attribute="trackList" xml-path="."/>
   --
           <java-type name="Release">
               <java-attributes>
                   <xml-element java-attribute="labelInfoList" xml-path="."/>
   --
           <java-type name="DefAreaElementInner">
               <java-attributes>
                   <xml-element java-attribute="aliasList" xml-path="."/>
   --
           <java-type name="Place">
               <java-attributes>
                   <xml-element java-attribute="aliasList" xml-path="."/>
   --
           <java-type name="Artist">
               <java-attributes>
                   <xml-element java-attribute="aliasList" xml-path="."/>
   --
           <java-type name="ReleaseGroup">
               <java-attributes>
                   <xml-element java-attribute="tagList" xml-path="."/>
   --
           <java-type name="Medium">
               <java-attributes>
                   <xml-element java-attribute="discList" xml-path="."/>
   --
           <java-type name="Relation">
               <java-attributes>
                   <xml-element java-attribute="attributeList" xml-path="."/>