<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	    <xs:include schemaLocation="../query/query.xsd"/>
  <xs:element name="navigator">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="connection" minOccurs="0" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="objectType"/>
      </xs:sequence>
      <xs:attribute name="RESOURCE_FILE" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="connection">
    <xs:complexType>
      <xs:sequence minOccurs="0">
        <xs:element ref="icon"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:string"/>
	  <xs:attribute name="connectionPanelClass" use="required" type="xs:string"/>
	  <xs:attribute name="connectionTabName" use="required" type="xs:string"/>
      <xs:attribute name="supportsOtherSchemas" use="optional" type="xs:boolean"/>
      <xs:attribute name="supportsRowId" use="optional" type="xs:boolean"/>
      <xs:attribute name="showAllSchemas" type="xs:boolean"/>
      <xs:attribute name="supportsCatalog" type="xs:boolean" default="false"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="objectType">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="folder" minOccurs="0"/>
        <xs:element ref="node"/>
      </xs:sequence>
      <xs:attribute name="connType" use="required" type="xs:string"/>
      <xs:attribute name="id" use="required" type="xs:string"/>
      <xs:attribute name="weight" use="required" type="xs:decimal"/>
      <xs:attribute name="implementationClass" type="xs:string"/>
      <xs:attribute name="includesSyns" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="folder">
    <xs:complexType>
      <xs:sequence minOccurs="0">
        <xs:element ref="icon"/>
        <xs:element ref="label"/>
        <xs:element ref="queries"/>
      </xs:sequence>
      <xs:attribute name="currentSchemaOnly" type="xs:boolean"/>
      <xs:attribute name="relativeWeight" type="xs:decimal"/>
      <xs:attribute name="schemaOverride" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="label">
    <xs:complexType>
      <xs:attribute name="RSKEY" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="node">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="icon"/>
        <xs:element minOccurs="0" ref="childType" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="nodeClass" type="xs:string"/>
      <xs:attributeGroup ref="filterableObject"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="childType">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="icon"/>
        <xs:element ref="queries" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:string"/>
      <xs:attribute name="nodeType" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="icon">
    <xs:complexType>
      <xs:attribute name="RSKEY" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="filterableObject">
    <xs:attribute name="instanceClass" type="xs:string" use="optional"/>
    <xs:attribute name="itemClass" type="xs:string"/>
  </xs:attributeGroup>
</xs:schema>
