<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<model xmlns="https://codehaus-plexus.github.io/MODELLO/1.8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://codehaus-plexus.github.io/MODELLO/1.8.0 https://codehaus-plexus.github.io/modello/xsd/modello-1.8.0.xsd"
       xml.namespace="http://maven.apache.org/supplemental-model/${version}"
       xml.schemaLocation="https://maven.apache.org/xsd/supplemental-model-${version}.xsd">
  <id>supplemental-model</id>
  <name>SupplementalDataModel</name>
  <description>Provides access to supplemental POM data models.</description>
  <defaults>
    <default>
      <key>package</key>
      <value>org.apache.maven.plugin.resources.remote</value>
    </default>
  </defaults>
  <classes>
    <class rootElement="true" xml.tagName="supplementalDataModels" xsd.compositor="sequence">
      <name>SupplementalDataModel</name>
      <version>1.0.0</version>
      <description>Root element of the supplemental-models.xml file.</description>
      <fields>
        <field>
          <name>supplement</name>
          <version>1.0.0</version>
          <description>Snippets of POM xml files used to supplement the data model.</description>
          <association xml.itemsStyle="flat">
            <type>Supplement</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
      </fields>
    </class>
    <class>
      <name>Supplement</name>
      <version>1.0.0</version>
      <description>A single supplement</description>
      <fields>
        <field>
          <name>project</name>
          <version>1.0.0</version>
          <description>Snippets of POM xml files used to supplement the data model.</description>
          <type>DOM</type>
        </field>
      </fields>
    </class>
  </classes>
</model>
