<?xml version="1.0" encoding="UTF-8"?>
<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="composite" root="true" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="targetNamespace" type="URI"/>
        <Attribute name="local" type="boolean"/>
        <Attribute name="autowire" type="boolean"/>
        <Attribute name="constrainingType" type="QName"/>
        <Attribute name="requires" type="java.util.List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        
        <ChildElement name="include"/>
        <ChildElement name="service"/>
        <ChildElement name="property"/>
        <ChildElement name="component"/>
        <ChildElement name="reference"/>
        <ChildElement name="wire"/>
    </Element>
    
    <Element name="service" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="promote" type="URI" reference="component/service"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        
        <ChildElement name="interface" multiplicity="1"/>
        <ChildElement name="operation"/>
        <ChildElement name="binding"/>
        <ChildElement name="callback" multiplicity="1"/>
    </Element>
    
    <Element name="reference" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="target" type="List&lt;URI&gt;"/>
        <Attribute name="wiredByImpl" type="boolean"/>
        <Attribute name="multiplicity" type="Multiplicity"/>
        <Attribute name="promote" type="List&lt;URI&gt;" reference="component/reference"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        
        <ChildElement name="interface" multiplicity="1"/>
        <ChildElement name="operation"/>
        <ChildElement name="binding"/>
        <ChildElement name="callback" multiplicity="1"/>
    </Element>
    
    <Element name="component" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="autowire" type="boolean"/>
        <Attribute name="constrainingType" type="QName"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        
        <ChildElement name="implementation" multiplicity="1"/>
        <ChildElement name="service"/>
        <ChildElement name="reference"/>
        <ChildElement name="property"/>
    </Element>
    
    <Element name="property" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="type" type="QName"/>
        <Attribute name="element" type="QName"/>
        <Attribute name="many" type="boolean"/>
        <Attribute name="mustSupply" type="boolean"/>
    </Element>
    
    <Element name="wire" anyAttribute="true" anyElement="true">
        <Attribute name="source" type="URI" reference="component/reference"/>
        <Attribute name="target" type="URI" reference="component/service"/>
    </Element>
    
    <Element name="include" anyAttribute="true">
        <!--Attribute name="name" type="QName"/-->
        <Attribute name="name" type="QName"/>
    </Element>
    
    <Element name="operation" anyAttribute="true">
        <Attribute name="name" type="String"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
    </Element>
    
    <Element name="binding" virtual="true">
        <Attribute name="uri" type="URI"/>
        <Attribute name="name" type="String"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        
        <ChildElement name="operation"/>
    </Element>
    
    <Element name="binding.ws" className="BindingWS" anyAttribute="true" anyElement="true" base="binding">
        <Attribute name="wsdlElement" type="URI"/>
    </Element>
                
    <Element name="callback" anyAttribute="true" anyElement="true">
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>        
        
        <ChildElement name="binding"/>
    </Element>
                
    <Element name="implementation" virtual="true">
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>  
    </Element>
    
    <Element name="implementation.empty" className="ImplementationEmpty" anyAttribute="true" anyElement="true" base="implementation">
    </Element>
        
    <Element name="interface" virtual="true"/>
    
    <Element name="interface.wsdl" className="InterfaceWSDL" anyAttribute="true" anyElement="true" base="interface">
        <Attribute name="interface" type="URI"/>
        <Attribute name="callbackInterface" type="URI"/>
    </Element>
    
    <Element name="componentType" root="true" anyAttribute="true" anyElement="true">
        <Attribute name="constrainingType" type="QName"/>
        
        <ChildElement name="implementation" multiplicity="1"/>
        <ChildElement name="service" />
        <ChildElement name="reference" />
        <ChildElement name="property" />
    </Element>
    
    <Element name="bindingType" anyAttribute="true" anyElement="true">
        <Attribute name="type" type="QName"/>
        <Attribute name="alwaysProvides" type="List&lt;QName&gt;"/>
        <Attribute name="mayProvide" type="List&lt;QName&gt;"/>
    </Element>
    
    <Element name="implementationType" anyAttribute="true" anyElement="true">
        <Attribute name="type" type="QName"/>
        <Attribute name="alwaysProvides" type="List&lt;QName&gt;"/>
        <Attribute name="mayProvide" type="List&lt;QName&gt;"/>
    </Element>
        
    <Element name="constrainingType" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="targetNamespace" type="URI"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        
        <ChildElement name="service"/>
        <ChildElement name="reference"/>
        <ChildElement name="property"/>
    </Element>
        
    <Element name="componentService" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        
        <ChildElement name="interface" multiplicity="1"/>
        <ChildElement name="operation"/>
        <ChildElement name="binding"/>
        <ChildElement name="callback" multiplicity="1"/>
    </Element>
        
    <Element name="componentReference" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="autowire" type="boolean"/>
        <Attribute name="wiredByImpl" type="boolean"/>
        <Attribute name="target" type="List&lt;URI&gt;"/>
        <Attribute name="multiplicity" type="Multiplicity"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        
        <ChildElement name="interface" multiplicity="1"/>
        <ChildElement name="operation"/>
        <ChildElement name="binding"/>
        <ChildElement name="callback" multiplicity="1"/>
    </Element>
        
    <Element name="propertyValue" anyAttribute="true" anyElement="true">
        <Attribute name="name" type="String"/>
        <Attribute name="type" type="QName"/>
        <Attribute name="element" type="QName"/>
        <Attribute name="many" type="boolean"/>
        <Attribute name="source" type="String"/>
        <Attribute name="file" type="URI"/>
    </Element>
    
    <Element name="sCAPropertyBase" anyElement="true"/>
    
    <EnumType name="Multiplicity">
        <Enumeration value="0..1"/>
        <Enumeration value="1..1"/>
        <Enumeration value="0..n"/>
        <Enumeration value="1..n"/>
    </EnumType>
        
    <EnumType name="OverrideOptions">
        <Enumeration value="no"/>
        <Enumeration value="may"/>
        <Enumeration value="must"/>
    </EnumType>
        
</Content>