<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="ginxml">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="metadata" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="recipe" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="base_charge" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="botanicals" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="distillation_log" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="cuts" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="output_bottling" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="sensory" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="learning" type="GinXmlOpenBlock" minOccurs="0" />
        <xs:element name="review" type="GinXmlOpenBlock" minOccurs="0" />
      </xs:sequence>
      <xs:attribute name="format" type="xs:string" use="optional" />
      <xs:attribute name="version" type="xs:string" use="optional" />
      <xs:attribute name="record_type" type="xs:string" use="optional" />
    </xs:complexType>
  </xs:element>

  <xs:complexType name="GinXmlOpenBlock" mixed="true">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:anyAttribute processContents="lax" />
  </xs:complexType>
</xs:schema>
