<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:www.twigletsoftware.com:schemas:txtemplate:1:0" 
xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
  <xs:element name="Class" nillable="true" type="Class" />
  <xs:complexType name="Class">
    <xs:complexContent mixed="false">
      <xs:extension base="Interface">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Constructors" type="ArrayOfConstructorRepTemplate" />
          <xs:element minOccurs="0" maxOccurs="1" name="Fields" type="ArrayOfFieldRepTemplate1" />
          <xs:element minOccurs="0" maxOccurs="1" name="UnaryOps" type="ArrayOfMethodRepTemplate1" />
          <xs:element minOccurs="0" maxOccurs="1" name="BinaryOps" type="ArrayOfMethodRepTemplate2" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Interface">
    <xs:complexContent mixed="false">
      <xs:extension base="TypeRepTemplate">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Methods" type="ArrayOfMethodRepTemplate" />
          <xs:element minOccurs="0" maxOccurs="1" name="Properties" type="ArrayOfPropRepTemplate" />
          <xs:element minOccurs="0" maxOccurs="1" name="Events" type="ArrayOfFieldRepTemplate" />
          <xs:element minOccurs="0" maxOccurs="1" name="Indexers" type="ArrayOfIndexerRepTemplate" />
          <xs:element minOccurs="0" maxOccurs="1" name="Iterable" type="IterableRepTemplate" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TypeRepTemplate" abstract="true">
    <xs:complexContent mixed="false">
      <xs:extension base="TranslationBase">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="TypeParams" type="ArrayOfString1" />
          <xs:element minOccurs="0" maxOccurs="1" name="Uses" type="ArrayOfString2" />
          <xs:element minOccurs="0" maxOccurs="1" name="Aliases" type="ArrayOfAliasRepTemplate" />
          <xs:element minOccurs="0" maxOccurs="1" name="Casts" type="ArrayOfCastRepTemplate" />
          <xs:element minOccurs="0" maxOccurs="1" name="Inherits" type="ArrayOfString3" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TranslationBase" abstract="true">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Imports" type="ArrayOfString" />
      <xs:element minOccurs="0" maxOccurs="1" name="Java" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Warning" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfString">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Import" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="IterableRepTemplate">
    <xs:complexContent mixed="false">
      <xs:extension base="TranslationBase">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="ElementType" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="FieldRepTemplate">
    <xs:complexContent mixed="false">
      <xs:extension base="TranslationBase">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Type" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PropRepTemplate">
    <xs:complexContent mixed="false">
      <xs:extension base="FieldRepTemplate">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Get" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Set" type="xs:string" />
        </xs:sequence>
        <xs:attribute default="true" name="read" type="xs:boolean" />
        <xs:attribute default="true" name="write" type="xs:boolean" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="IndexerRepTemplate">
    <xs:complexContent mixed="false">
      <xs:extension base="PropRepTemplate">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Params" type="ArrayOfParamRepTemplate" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ArrayOfParamRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Param" nillable="true" type="ParamRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ParamRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Type" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
    </xs:sequence>
    <xs:attribute default="false" name="byref" type="xs:boolean" />
  </xs:complexType>
  <xs:complexType name="ConstructorRepTemplate">
    <xs:complexContent mixed="false">
      <xs:extension base="TranslationBase">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Params" type="ArrayOfParamRepTemplate" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="MethodRepTemplate">
    <xs:complexContent mixed="false">
      <xs:extension base="ConstructorRepTemplate">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="TypeParams" type="ArrayOfString1" />
          <xs:element minOccurs="0" maxOccurs="1" name="Return" type="xs:string" />
        </xs:sequence>
        <xs:attribute default="false" name="static" type="xs:boolean" />
        <xs:attribute default="false" name="partial" type="xs:boolean" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ArrayOfString1">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Name" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CastRepTemplate">
    <xs:complexContent mixed="false">
      <xs:extension base="TranslationBase">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="From" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="To" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ArrayOfString2">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Use" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfAliasRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Alias" nillable="true" type="AliasRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AliasRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Alias" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Namespace" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfCastRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Cast" nillable="true" type="CastRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfString3">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Type" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfMethodRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Method" nillable="true" type="MethodRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfPropRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Property" nillable="true" type="PropRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfFieldRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Event" nillable="true" type="FieldRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfIndexerRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Indexer" nillable="true" type="IndexerRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfConstructorRepTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Constructor" nillable="true" type="ConstructorRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfFieldRepTemplate1">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Field" nillable="true" type="FieldRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfMethodRepTemplate1">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="UnaryOp" nillable="true" type="MethodRepTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfMethodRepTemplate2">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="BinaryOp" nillable="true" type="MethodRepTemplate" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>