<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->
<Content xmlns="http://xml.netbeans.org/schema/xamgen"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xml.netbeans.org/schema/xamgen ../com/sun/tools/xam/resources/xamgen.xsd">

    <Element name="profilesXml" root="true" anyElement="true" anyAttribute="false">
        <ChildElement name="profile" multiplicity="n"/>
        <ChildElement name="activeProfile" multiplicity="n"/>
    </Element>

  <!--xs:complexType name="ProfilesRoot">
      <xs:element name="profiles" minOccurs="0">
            <xs:element name="profile" minOccurs="0" maxOccurs="unbounded" type="Profile"/>
      <xs:element name="activeProfiles" minOccurs="0">
            <xs:element name="activeProfile" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  -->


  <xs:complexType name="Profile">
      <xs:element name="id" minOccurs="0" type="xs:string" default="default">
      <xs:element name="activation" minOccurs="0" type="Activation">
      <xs:element name="properties" minOccurs="0">
      <xs:element name="repositories" minOccurs="0">
            <xs:element name="repository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
      <xs:element name="pluginRepositories" minOccurs="0">
            <xs:element name="pluginRepository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>



  <xs:complexType name="Repository">
      <xs:element name="releases" minOccurs="0" type="RepositoryPolicy">
      <xs:element name="snapshots" minOccurs="0" type="RepositoryPolicy">
      <xs:element name="id" minOccurs="0" type="xs:string">
      <xs:element name="name" minOccurs="0" type="xs:string">
      <xs:element name="url" minOccurs="0" type="xs:string">
      <xs:element name="layout" minOccurs="0" type="xs:string" default="default">



  <xs:complexType name="RepositoryPolicy">
      <xs:element name="enabled" minOccurs="0" type="xs:boolean" default="true">
      <xs:element name="updatePolicy" minOccurs="0" type="xs:string">
      <xs:element name="checksumPolicy" minOccurs="0" type="xs:string">


  <xs:complexType name="Activation">
      <xs:element name="activeByDefault" minOccurs="0" type="xs:boolean" default="false">
      <xs:element name="jdk" minOccurs="0" type="xs:string">
      <xs:element name="os" minOccurs="0" type="ActivationOS">
      <xs:element name="property" minOccurs="0" type="ActivationProperty">
      <xs:element name="file" minOccurs="0" type="ActivationFile">




  <xs:complexType name="ActivationOS">
      <xs:element name="name" minOccurs="0" type="xs:string">
      <xs:element name="family" minOccurs="0" type="xs:string">
      <xs:element name="arch" minOccurs="0" type="xs:string">
      <xs:element name="version" minOccurs="0" type="xs:string">



  <xs:complexType name="ActivationProperty">
      <xs:element name="name" minOccurs="0" type="xs:string">
      <xs:element name="value" minOccurs="0" type="xs:string">



  <xs:complexType name="ActivationFile">
      <xs:element name="missing" minOccurs="0" type="xs:string">
      <xs:element name="exists" minOccurs="0" type="xs:string">


</Content>
