<?xml version="1.0" encoding="UTF-8"?>
<Content xmlns="http://xml.netbeans.org/schema/xamgen"
         targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
         xmlns:scd="http://www.sun.com/xmlns/sca/designer/1.0"
         xmlns:openesb="http://www.sun.com/xmlns/sca/runtime/openesb/1.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xml.netbeans.org/schema/xamgen 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="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/componentService"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        <Attribute name="scd:y" type="int"/>        
        
        <ChildElement name="interface" multiple="false"/>
        <ChildElement name="operation"/>
        <ChildElement name="binding"/>
        <ChildElement name="callback" multiple="false"/>
    </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/componentReference"/>
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>
        <Attribute name="scd:y" type="int"/>
        
        <ChildElement name="interface" multiple="false"/>
        <ChildElement name="operation"/>
        <ChildElement name="binding"/>
        <ChildElement name="callback" multiple="false"/>
    </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;"/>
        <Attribute name="scd:x" type="int"/>
        <Attribute name="scd:y" type="int"/>
        
        <ChildElement name="implementation" multiple="false"/>
        <ChildElement name="componentService"/>
        <ChildElement name="componentReference"/>
        <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/componentReference"/>
        <Attribute name="target" type="URI" reference="component/componentService"/>
    </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" abstract="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="openesb:openESBBinding" abstract="true" anyAttribute="true" anyElement="true" base="binding">
    </Element>
    
    <Element name="openesb:openESBExternalBinding" abstract="true" anyAttribute="true" anyElement="true" base="openesb:openESBBinding">
        <Attribute name="config" type="URI"/>
    </Element>
    
    <Element name="openesb:binding.soap" className="BindingSOAP" anyAttribute="true" anyElement="true" base="openesb:openESBExternalBinding">
    </Element>
    
    <Element name="openesb:binding.file" className="BindingFile" anyAttribute="true" anyElement="true" base="openesb:openESBExternalBinding">
    </Element>
    
    <Element name="openesb:binding.nmr" className="BindingNMR" anyAttribute="true" anyElement="true" base="openesb:openESBBinding">
        <Attribute name="service-name" type="QName"/>
        <Attribute name="endpoint-name" type="String"/>
        <Attribute name="endpoint-type" type="openesb:EndpointType"/>
    </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" abstract="true">
        <Attribute name="requires" type="List&lt;QName&gt;"/>
        <Attribute name="policySets" type="List&lt;QName&gt;"/>  
        <Attribute name="scd:typeLocation" type="URI"/>  
    </Element>
    
    <Element name="implementation.composite" className="ImplementationComposite" anyAttribute="true" anyElement="true" base="implementation">
        <Attribute name="name" type="QName"/>
    </Element>
    
    <Element name="openesb:openESBImplementation" abstract="true" anyAttribute="true" anyElement="true" base="implementation">
        <Attribute name="src" type="URI"/>
    </Element>
    
    <Element name="openesb:implementation.bpel" className="ImplementationBPEL" anyAttribute="true" anyElement="true" base="openesb:openESBImplementation">
    </Element>
    
    <Element name="openesb:implementation.su" className="ImplementationSU" anyAttribute="true" anyElement="true" base="openesb:openESBImplementation">
    </Element>
    
    <Element name="openesb:implementation.sa" className="ImplementationSA" anyAttribute="true" anyElement="true" base="openesb:openESBImplementation">
    </Element>
        
    <Element name="interface" abstract="true">
        <Attribute name="scd:wsdlLocation" type="URI"/>
    </Element>
    
    <Element name="interface.wsdl" className="InterfaceWSDL" anyAttribute="true" anyElement="true" base="interface">
        <Attribute name="interface" type="URI" foreignReferenceDomain="WSDL" foreignReferenceClass="org.netbeans.modules.xml.wsdl.model.PortType"/>
        <Attribute name="callbackInterface" type="URI" foreignReferenceDomain="WSDL" foreignReferenceClass="org.netbeans.modules.xml.wsdl.model.PortType"/>
    </Element>
    
    <Element name="componentType" root="true" anyAttribute="true" anyElement="true">
        <Attribute name="constrainingType" type="QName"/>
        
        <ChildElement name="implementation" multiple="false"/>
        <ChildElement name="componentService" />
        <ChildElement name="componentReference" />
        <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="componentService"/>
        <ChildElement name="componentReference"/>
        <ChildElement name="property"/>
    </Element>
        
    <Element name="componentService" base="service" elementName="service" 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" multiple="false"/>
        <ChildElement name="operation"/>
        <ChildElement name="binding"/>
        <ChildElement name="callback" multiple="false"/-->
    </Element>
        
    <Element name="componentReference" base="reference" elementName="reference" anyAttribute="true" anyElement="true">
        <Attribute name="autowire" type="boolean"/>
        <!--Attribute name="name" type="String"/>
        <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" multiple="false"/>
        <ChildElement name="operation"/>
        <ChildElement name="binding"/>
        <ChildElement name="callback" multiple="false"/-->
    </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"/>    
    
    <Element name="scd:regions">
        <ChildElement name="scd:region" multiple="true"/>
    </Element>
    
    <Element name="scd:region">
        <Attribute name="name" type="scd:RegionType"/>
        <Attribute name="width" type="int"/>
    </Element>
        
    <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>
    
    <EnumType name="openesb:EndpointType">
        <Enumeration value="provides"/>
        <Enumeration value="consumes"/>
    </EnumType>
    
    <EnumType name="scd:RegionType">
        <Enumeration value="services"/>
        <Enumeration value="components"/>
        <Enumeration value="references"/>
    </EnumType>
        
</Content>