<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://enderio.com/recipes" elementFormDefault="unqualified" attributeFormDefault="unqualified"
  xmlns="http://www.w3.org/2001/XMLSchema" xmlns:enderio="http://enderio.com/recipes">
    <element name="recipes">
    <complexType>
      <sequence maxOccurs="unbounded" minOccurs="0">
        <choice maxOccurs="1" minOccurs="1">
          <element name="alias">
            <annotation>
              <documentation>
                Adds an alias into the system. The alias can be used in following elements just like the value itself. Aliases can
                be replaced.
              </documentation>
            </annotation>
            <complexType>
              <sequence>
                <element minOccurs="0" maxOccurs="unbounded" name="config" type="enderio:configComplexType">
                  <annotation>
                    <documentation>
                      Restricts this alias to only be used if the given config value has the given value.
                    </documentation>
                  </annotation>
                </element>
                <element minOccurs="0" maxOccurs="unbounded" name="dependency" type="enderio:dependencyComplexType">
                  <annotation>
                    <documentation>
                      Restricts this alias to only be used if the given elements descriptor can (not) be found in the game. Use this
                      to prevent replacing good aliases with bad ones.
                    </documentation>
                  </annotation>
                </element>
              </sequence>
              <attribute name="name" type="string" use="required">
                <annotation>
                  <documentation>
                    The name of the alias. You can use anything here, but be aware that you share the namespace with all other game
                    elements.
                  </documentation>
                </annotation>
              </attribute>
              <attribute name="item" type="enderio:ThingsString" use="required">
                <annotation>
                  <documentation>A descriptor naming an item, block, ordict or another alias.</documentation>
                </annotation>
              </attribute>
            </complexType>
          </element>
          <element name="recipe">
            <annotation>
              <documentation>
                A single recipe. It can have any number of crafting or any number of smelting variants (no mixing), but at any time
                only one of them may be active.
              </documentation>
            </annotation>
            <complexType>
            	<sequence minOccurs="1" maxOccurs="1">
            		<element minOccurs="0" maxOccurs="unbounded"
            			name="config" type="enderio:configComplexType">
            			<annotation>
            				<documentation>
            					Restricts this recipe to only be used if
            					the given config value has the given
            					value.
            				</documentation>
            			</annotation>
            		</element>
            		<element minOccurs="0" maxOccurs="unbounded"
            			name="dependency" type="enderio:dependencyComplexType">
            			<annotation>
            				<documentation>
            					Restricts this recipe to only be used if
            					the given game element can (not) be
            					found in the game.
            				</documentation>
            			</annotation>
            		</element>
            		<choice minOccurs="1" maxOccurs="unbounded">
            			<element minOccurs="1" maxOccurs="1"
            				name="crafting">
            				<annotation>
            					<documentation>
            						Crafting variants are crafted in a
            						crafting table.
            					</documentation>
            				</annotation>
            				<complexType>
            					<sequence>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="config"
            							type="enderio:configComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given config value has
            									the given value.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="dependency"
            							type="enderio:dependencyComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given game element can
            									(not) be found in the
            									game.
            								</documentation>
            							</annotation>
            						</element>
            						<choice minOccurs="1"
            							maxOccurs="1">
            							<element minOccurs="1"
            								maxOccurs="1" name="grid">
            								<annotation>
            									<documentation>
            										A grid represents a
            										shaped recipe. All
            										items must be in the
            										exact position they
            										are given here. If
            										the recipe is
            										smaller than 3x3, it
            										may be moved in the
            										grid.
            									</documentation>
            								</annotation>
            								<complexType>
            									<sequence>
            										<element
            											minOccurs="1" maxOccurs="9" name="item"
            											type="enderio:itemType">
            											<annotation>
            												<documentation>
            													An item
            													to be
            													used for
            													crafting.
            												</documentation>
            											</annotation>
            										</element>
            									</sequence>
            									<attribute
            										use="optional" name="size">
            										<annotation>
            											<documentation>
            												The size of
            												the grid in
            												the form
            												"width 'x'
            												height".
            												Default is
            												"3x3".
            											</documentation>
            										</annotation>
            										<simpleType>
            											<restriction
            												base="string">
            												<length
            													value="3" />
            											</restriction>
            										</simpleType>
            									</attribute>
            								</complexType>
            							</element>
            							<element minOccurs="1"
            								maxOccurs="1" name="shapeless">
            								<annotation>
            									<documentation>
            										A shapeless recipe
            										only required the
            										given items to be in
            										the grid, regardless
            										of their position.
            									</documentation>
            								</annotation>
            								<complexType>
            									<sequence>
            										<element
            											minOccurs="1" maxOccurs="9" name="item"
            											type="enderio:itemType">
            											<annotation>
            												<documentation>
            													An item
            													to be
            													used for
            													crafting.
            												</documentation>
            											</annotation>
            										</element>
            									</sequence>
            								</complexType>
            							</element>
            						</choice>
            						<element minOccurs="1"
            							maxOccurs="unbounded" name="output">
            							<annotation>
            								<documentation>
            									The result of the
            									crafting.
            								</documentation>
            							</annotation>
            							<complexType>
            								<sequence>
            									<element minOccurs="0"
            										maxOccurs="unbounded" name="config">
            										<annotation>
            											<documentation>
            												Restricts
            												this output
            												to only be
            												used if the
            												given config
            												value has
            												the given
            												value.
            											</documentation>
            										</annotation>
            										<complexType>
            											<attribute
            												use="required" name="section" type="string" />
            											<attribute
            												use="required" name="name" type="string" />
            											<attribute
            												use="optional" name="value" type="boolean" />
            										</complexType>
            									</element>
            									<element minOccurs="0"
            										maxOccurs="unbounded" name="dependency"
            										type="enderio:dependencyComplexType">
            										<annotation>
            											<documentation>
            												Restricts
            												this output
            												to only be
            												used if the
            												given game
            												element can
            												(not) be
            												found in the
            												game.
            											</documentation>
            										</annotation>
            									</element>
            								</sequence>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            								<attribute use="optional"
            									name="amount">
            									<simpleType>
            										<restriction
            											base="int">
            											<minInclusive
            												value="1" />
            											<maxInclusive
            												value="64" />
            										</restriction>
            									</simpleType>
            								</attribute>
            								<attribute name="nbt"
            									type="string" use="optional">
            								</attribute>
            							</complexType>
            						</element>
            					</sequence>
            					<attribute use="optional" name="upgrade"
            						type="boolean">
            						<annotation>
            							<documentation>
            								If true, a special recipe
            								class will be used that will
            								copy over all nbt from the
            								first input item of the same
            								type.
            							</documentation>
            						</annotation>
            					</attribute>
            				</complexType>
            			</element>
            			<element minOccurs="1" maxOccurs="1"
            				name="smelting">
            				<annotation>
            					<documentation>
            						Smelting variants are crafted in a
            						furnace (or alloy smelter in furnace
            						mode).
            					</documentation>
            				</annotation>
            				<complexType>
            					<sequence>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="config"
            							type="enderio:configComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given config value has
            									the given value.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="dependency"
            							type="enderio:dependencyComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given game element can
            									(not) be found in the
            									game.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="1" maxOccurs="1"
            							name="input">
            							<complexType>
            								<attribute use="required"
            									name="name" type="string" />
            								<attribute name="amount"
            									use="optional">
            									<simpleType>
            										<restriction
            											base="float">
            											<minExclusive
            												value="0" />
            										</restriction>
            									</simpleType>
            								</attribute>
            							</complexType>
            						</element>
            						<element minOccurs="1"
            							maxOccurs="unbounded" name="output">
            							<annotation>
            								<documentation>
            									The result of the
            									smelting.
            								</documentation>
            							</annotation>
            							<complexType>
            								<sequence>
            									<element minOccurs="0"
            										maxOccurs="unbounded" name="config">
            										<annotation>
            											<documentation>
            												Restricts
            												this output
            												to only be
            												used if the
            												given config
            												value has
            												the given
            												value.
            											</documentation>
            										</annotation>
            										<complexType>
            											<attribute
            												use="required" name="section" type="string" />
            											<attribute
            												use="required" name="name" type="string" />
            											<attribute
            												use="optional" name="value" type="boolean" />
            										</complexType>
            									</element>
            									<element minOccurs="0"
            										maxOccurs="unbounded" name="dependency"
            										type="enderio:dependencyComplexType">
            										<annotation>
            											<documentation>
            												Restricts
            												this output
            												to only be
            												used if the
            												given game
            												element can
            												(not) be
            												found in the
            												game.
            											</documentation>
            										</annotation>
            									</element>
            								</sequence>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            								<attribute use="optional"
            									name="amount">
            									<simpleType>
            										<annotation>
            											<documentation>
            												The number
            												of items to
            												smelt into.
            											</documentation>
            										</annotation>
            										<restriction
            											base="int">
            											<maxInclusive
            												value="64" />
            											<minInclusive
            												value="1" />
            										</restriction>
            									</simpleType>
            								</attribute>
            							</complexType>
            						</element>
            					</sequence>
            					<attribute use="optional" name="exp">
            						<annotation>
            							<documentation>
            								The chance to get 1 EXP from
            								the smelting one output
            								item. Note that this is
            								always for one item,
            								regardless of the recipe
            								size. The number must be
            								between 0.0 (for no EXP) and
            								1.0 for a 100% chance. If
            								this attribute is missing
            								it's value will be taken
            								from already existing
            								smelting recipes that
            								produce this item (really
            								recommended for stuff that
            								already has vanilla smelting
            								recipes). If there's no
            								existing smelting, it will
            								be 0. Please note that items
            								have the possibility to
            								override this value.
            							</documentation>
            						</annotation>
            						<simpleType>
            							<restriction base="float">
            								<minInclusive value="0" />
            								<maxInclusive value="1" />
            							</restriction>
            						</simpleType>
            					</attribute>
            					<attribute name="tinkers" type="boolean"
            						use="optional">
            						<annotation>
            							<documentation>
            								If set to true, the recipe
            								will be registered for the
            								Tinkers' Smeltery. For this
            								to work, the output item
            								must already be registered
            								with Tinkers to smelt into a
            								fluid.
            							</documentation>
            						</annotation>
            					</attribute>
            					<attribute name="vanilla" type="boolean"
            						use="optional">
            						<annotation>
            							<documentation>
            								If set to true, the recipe
            								will be registered for the
            								Vanilla Furnace.
            							</documentation>
            						</annotation>
            					</attribute>
            				</complexType>
            			</element>
            			<element name="casting" minOccurs="1"
            				maxOccurs="1">
            				<annotation>
            					<documentation>
            						Smelting variants are crafted in
            						Tinkers' casting table.
            					</documentation>
            				</annotation>
            				<complexType>
            					<sequence>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="config"
            							type="enderio:configComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given config value has
            									the given value.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="dependency"
            							type="enderio:dependencyComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given game element can
            									(not) be found in the
            									game.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="1" maxOccurs="1"
            							name="input">
            							<annotation>
            								<documentation>
            									Items that represent the
            									fluid (type and amount)
            									that needs to be put
            									into the cast.
            								</documentation>
            							</annotation>
            							<complexType>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            								<attribute name="amount"
            									use="optional">
            									<annotation>
            										<documentation>
            											Only valid for
            											Tinkers recipe.
            											Number of input
            											items needed for
            											the output. Note
            											that this is
            											applied to the
            											amount of fluid,
            											not the number
            											of items to
            											smelt.
            										</documentation>
            									</annotation>
            									<simpleType>
            										<restriction
            											base="float">
            											<minExclusive
            												value="0" />
            										</restriction>
            									</simpleType>
            								</attribute>
            							</complexType>
            						</element>
            						<element minOccurs="0" maxOccurs="1"
            							name="cast">
            							<annotation>
            								<documentation>
            									The Tinkers cast to use.
            								</documentation>
            							</annotation>
            							<complexType>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            								<attribute name="consumed"
            									type="boolean" use="optional" default="false">
            									<annotation>
            										<documentation>
            											Should the cast
            											be consumed?
            										</documentation>
            									</annotation>
            								</attribute>
            							</complexType>
            						</element>
            						<element minOccurs="1"
            							maxOccurs="unbounded" name="output">
            							<annotation>
            								<documentation>
            									The result of the
            									casting process.
            								</documentation>
            							</annotation>
            							<complexType>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            							</complexType>
            						</element>
            					</sequence>
            				</complexType>
            			</element>
            			<element name="enchanting" minOccurs="1"
            				maxOccurs="1">
            				<annotation>
            					<documentation>
            						Enchantment recipes used in the
            						Enchanter.
            					</documentation>
            				</annotation>
            				<complexType>
            					<sequence>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="config"
            							type="enderio:configComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given config value has
            									the given value.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="dependency"
            							type="enderio:dependencyComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given game element can
            									(not) be found in the
            									game.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="1" maxOccurs="1"
            							name="input">
            							<annotation>
            								<documentation>
            									When this item is used
            									in the Enchanter it will
            									give this recipe.
            								</documentation>
            							</annotation>
            							<complexType>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            								<attribute name="amount"
            									use="optional">
            									<annotation>
            										<documentation>
            											Only valid for
            											Enchanter
            											recipe. Number
            											of input items
            											needed for one
            											level of the
            											enchantment.
            										</documentation>
            									</annotation>
            									<simpleType>
            										<restriction
            											base="int">
            											<maxInclusive
            												value="64" />
            											<minInclusive
            												value="1" />
            										</restriction>
            									</simpleType>
            								</attribute>
            								<attribute name="nbt"
            									type="string" use="optional">
            									<annotation>
            										<documentation>
            											An NBT tag in
            											the same syntax
            											Minecraft uses
            											for recipes, the
            											give command,
            											etc.
            										</documentation>
            									</annotation>
            								</attribute>
            							</complexType>
            						</element>
            						<element minOccurs="1" maxOccurs="1"
            							name="enchantment">
            							<annotation>
            								<documentation>
            									Enchantment to produce.
            								</documentation>
            							</annotation>
            							<complexType>
            								<attribute use="required"
            									name="name" type="string" />
            								<attribute
            									name="costMultiplier" default="1">
            									<annotation>
            										<documentation>
            											The XP cost of
            											the recipe will
            											be multiplied
            											with this value.
            											Defaults to 1.
            										</documentation>
            									</annotation>
            									<simpleType>
            										<restriction
            											base="double">
            											<minExclusive
            												value="0" />
            										</restriction>
            									</simpleType>
            								</attribute>
            							</complexType>
            						</element>
            					</sequence>
            				</complexType>
            			</element>
            			<element name="spawning" maxOccurs="1"
            				minOccurs="1">
            				<complexType>
            					<annotation>
            						<documentation>
            							Spawn recipes to be used in the
            							powered spawner.
            						</documentation>
            					</annotation>
            					<sequence>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="config"
            							type="enderio:configComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given config value has
            									the given value.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="dependency"
            							type="enderio:dependencyComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given game element can
            									(not) be found in the
            									game.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="1"
            							maxOccurs="unbounded" name="entity">
            							<annotation>
            								<documentation>
            									The settings for one
            									type of entity.
            								</documentation>
            							</annotation>
            							<complexType>
            								<attribute use="required"
            									name="name" type="string">
            									<annotation>
            										<documentation>
            											The
            											ResourceLocation
            											of the entity
            											this entry is
            											for. Aside from
            											a literal
            											ResourceLocation,
            											a number of
            											special values
            											can be used. "*"
            											denotes the
            											default entry,
            											its values are
            											used when there
            											is no matching
            											configuration.
            											"*boss*" matches
            											all modded boss
            											mobs; it can
            											only be used for
            											soul vial
            											configuration.
            											Additionally,
            											both the modid
            											and the mobid
            											(the part before
            											and after the
            											colon) can
            											contain a single
            											asterisk as
            											wildcard ("*:*"
            											is an alias for
            											"*"). If
            											multiple entries
            											match the same
            											mob (only
            											possible when
            											using
            											wildcards), the
            											configurations
            											combine. On
            											entry disabling
            											spawning or
            											soulvialing is
            											enough to
            											disable that and
            											the highest cost
            											multipier is
            											used.
            										</documentation>
            									</annotation>
            								</attribute>
            								<attribute
            									name="costMultiplier" default="1">
            									<annotation>
            										<documentation>
            											The cost of the
            											recipe will be
            											multiplied with
            											this value.
            											Defaults to 1.
            										</documentation>
            									</annotation>
            									<simpleType>
            										<restriction
            											base="double">
            											<minExclusive
            												value="0" />
            										</restriction>
            									</simpleType>
            								</attribute>
            								<attribute name="disabled"
            									type="boolean" use="optional" default="false">
            									<annotation>
            										<documentation>
            											Entities that
            											are disabled
            											cannot be
            											spawned by
            											powered
            											spawners.
            										</documentation>
            									</annotation>
            								</attribute>
            								<attribute name="clone"
            									type="boolean" use="optional" default="false">
            									<annotation>
            										<documentation>
            											When set to
            											true, the entity
            											cannot be
            											spawned and must
            											be cloned from a
            											captured entity
            											instead
            											(Attention:
            											Possibility of
            											item duping!)
            										</documentation>
            									</annotation>
            								</attribute>
            								<attribute name="soulvial"
            									type="boolean" use="optional" default="true">
            									<annotation>
            										<documentation>
            											Specifies if
            											this mob can be
            											captured with a
            											soul vial
            											(default is
            											yes). If an
            											entity cannot be
            											captured, it
            											also cannot be
            											spawning by
            											powered
            											spawners.
            										</documentation>
            									</annotation>
            								</attribute>
            							</complexType>
            						</element>
            					</sequence>
            				</complexType>
            			</element>
            			<element minOccurs="1" maxOccurs="1"
            				name="alloying">
            				<annotation>
            					<documentation>
            						Alloying variants are crafted in an
            						alloy smelter.
            					</documentation>
            				</annotation>
            				<complexType>
            					<sequence>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="config"
            							type="enderio:configComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given config value has
            									the given value.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="0"
            							maxOccurs="unbounded" name="dependency"
            							type="enderio:dependencyComplexType">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given game element can
            									(not) be found in the
            									game.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="1" maxOccurs="3"
            							name="input">
            							<complexType>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            								<attribute name="amount"
            									use="optional">
            									<annotation>
            										<documentation>
            											Number of input
            											items needed.
            										</documentation>
            									</annotation>
            									<simpleType>
            										<restriction
            											base="int">
            											<maxInclusive
            												value="64" />
            											<minInclusive
            												value="1" />
            										</restriction>
            									</simpleType>
            								</attribute>
            								<attribute name="nbt"
            									type="string" use="optional">
            									<annotation>
            										<documentation>
            											An NBT tag in
            											the same syntax
            											Minecraft uses
            											for recipes, the
            											give command,
            											etc.
            										</documentation>
            									</annotation>
            								</attribute>
            							</complexType>
            						</element>
            						<element minOccurs="1"
            							maxOccurs="unbounded" name="output">
            							<annotation>
            								<documentation>
            									The result of the
            									alloying.
            								</documentation>
            							</annotation>
            							<complexType>
            								<sequence>
            									<element minOccurs="0"
            										maxOccurs="unbounded" name="config"
            										type="enderio:configComplexType">
            										<annotation>
            											<documentation>
            												Restricts
            												this output
            												to only be
            												used if the
            												given config
            												value has
            												the given
            												value.
            											</documentation>
            										</annotation>
            									</element>
            									<element minOccurs="0"
            										maxOccurs="unbounded" name="dependency"
            										type="enderio:dependencyComplexType">
            										<annotation>
            											<documentation>
            												Restricts
            												this output
            												to only be
            												used if the
            												given game
            												element can
            												(not) be
            												found in the
            												game.
            											</documentation>
            										</annotation>
            									</element>
            								</sequence>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            								<attribute use="optional"
            									name="amount">
            									<simpleType>
            										<annotation>
            											<documentation>
            												The number
            												of items to
            												smelt into.
            											</documentation>
            										</annotation>
            										<restriction
            											base="int">
            											<maxInclusive
            												value="64" />
            											<minInclusive
            												value="1" />
            										</restriction>
            									</simpleType>
            								</attribute>
            							</complexType>
            						</element>
            					</sequence>
            					<attribute use="optional" name="exp">
            						<annotation>
            							<documentation>
            								The chance to get 1 EXP from
            								the smelting one recipe. The
            								number must be between 0.0
            								(for no EXP) and 1.0 for a
            								100% chance.
            							</documentation>
            						</annotation>
            						<simpleType>
            							<restriction base="float">
            								<minInclusive value="0" />
            								<maxInclusive value="1" />
            							</restriction>
            						</simpleType>
            					</attribute>
            					<attribute name="energy"
            						use="required">
            						<annotation>
            							<documentation>
            								The amount of energy running
            								this recipe takes.
            							</documentation>
            						</annotation>
            						<simpleType>
            							<restriction base="float">
            								<minExclusive value="0" />
            							</restriction>
            						</simpleType>
            					</attribute>
            				</complexType>
            			</element>
            			<element name="sagmilling" maxOccurs="1"
            				minOccurs="1">
            				<annotation>
            					<documentation>
            						Sagmilling recipes are used in a Sag
            						Mill.
            					</documentation>
            				</annotation>
            				<complexType>
            					<sequence>
            						<element name="config"
            							type="enderio:configComplexType"
            							maxOccurs="unbounded" minOccurs="0">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given config value has
            									the given value.
            								</documentation>
            							</annotation>
            						</element>
            						<element name="dependency"
            							type="enderio:dependencyComplexType"
            							maxOccurs="unbounded" minOccurs="0">
            							<annotation>
            								<documentation>
            									Restricts this variant
            									to only be used if the
            									given game element can
            									(not) be found in the
            									game.
            								</documentation>
            							</annotation>
            						</element>
            						<element minOccurs="1" maxOccurs="1"
            							name="input">
            							<complexType>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            							</complexType>
            						</element>
            						<element minOccurs="1"
            							maxOccurs="unbounded" name="output">
            							<annotation>
            								<documentation>
            									The result of the
            									sagmilling.
            								</documentation>
            							</annotation>
            							<complexType>
            								<sequence>
            									<element minOccurs="0"
            										maxOccurs="unbounded" name="config"
            										type="enderio:configComplexType">
            										<annotation>
            											<documentation>
            												Restricts
            												this output
            												to only be
            												used if the
            												given config
            												value has
            												the given
            												value.
            											</documentation>
            										</annotation>
            									</element>
            									<element minOccurs="0"
            										maxOccurs="unbounded" name="dependency"
            										type="enderio:dependencyComplexType">
            										<annotation>
            											<documentation>
            												Restricts
            												this output
            												to only be
            												used if the
            												given game
            												element can
            												(not) be
            												found in the
            												game.
            											</documentation>
            										</annotation>
            									</element>
            								</sequence>
            								<attribute use="required"
            									name="name" type="enderio:ThingsString" />
            								<attribute use="optional"
            									name="amount">
            									<simpleType>
            										<annotation>
            											<documentation>
            												The number
            												of items to
            												sagmill
            												into.
            											</documentation>
            										</annotation>
            										<restriction
            											base="int">
            											<maxInclusive
            												value="64" />
            											<minInclusive
            												value="1" />
            										</restriction>
            									</simpleType>
            								</attribute>
            								<attribute name="chance"
            									use="optional" default="1">
            									<annotation>
            										<documentation>
            											The chance that
            											this item is
            											produced by one
            											run of the
            											recipe. The
            											chance is
            											increased by the
            											"chanceMultiplier"
            											of the used
            											grinding ball.
            										</documentation>
            									</annotation>
            									<simpleType>
            										<restriction
            											base="float">
            											<minExclusive
            												value="0">
            											</minExclusive>
            											<maxInclusive
            												value="1">
            											</maxInclusive>
            										</restriction>
            									</simpleType>
            								</attribute>
            								<attribute name="required"
            									type="boolean" use="optional" default="true">
            									<annotation>
            										<documentation>
            											If required is
            											false, an output
            											for something
            											that doesn't
            											exist in the
            											game is silently
            											skipped. Use
            											this for
            											optional
            											additional
            											outputs, as the
            											whole recipe
            											still needs at
            											least one output
            											(unless the
            											whole recipe is
            											optional).
            										</documentation>
            									</annotation>
            								</attribute>
            							</complexType>
            						</element>
            					</sequence>
            					<attribute name="bonus" use="optional"
            						default="multiply_output">
            						<annotation>
            							<documentation>
            								Use of grinding balls is
            								restricted by the bonus type
            								of the recipe. If it is set
            								to "none", it will not have
            								any grinding ball bonuses
            								applied and will not reduce
            								the durability of any balls
            								in the mill at the time it
            								is processed. If it is set
            								to "chance_only", the chance
            								and power multipliers of the
            								grinding balls are applied,
            								but not the grinding
            								multiplier. If it is set to
            								"multiply_output" (default),
            								all multipliers apply.
            							</documentation>
            						</annotation>
            						<simpleType>
            							<restriction base="string">
            								<enumeration
            									value="multiply_output">
            								</enumeration>
            								<enumeration
            									value="chance_only">
            								</enumeration>
            								<enumeration value="none"></enumeration>
            							</restriction>
            						</simpleType>
            					</attribute>
            					<attribute name="energy"
            						use="required">
            						<annotation>
            							<documentation>
            								The amount of energy running
            								this recipe takes.
            							</documentation>
            						</annotation>
            						<simpleType>
            							<restriction base="float">
            								<minExclusive value="0" />
            							</restriction>
            						</simpleType>
            					</attribute>
            				</complexType>
            			</element>
            			<element name="slicing"
            				type="enderio:slicingType" maxOccurs="1"
            				minOccurs="1">
            				<annotation>
            					<documentation>
            						Recipe for the Slice'n'Splice
            					</documentation>
            				</annotation>
            			</element>
            			<element name="fermenting"
            				type="enderio:fermentingType" maxOccurs="1"
            				minOccurs="1">
            				<annotation>
            					<documentation>
            						A recipe for the VAT.
            					</documentation>
            				</annotation>
            			</element>
            			<element name="soulbinding"
            				type="enderio:soulbindingType" minOccurs="1"
            				maxOccurs="1">
            				<annotation>
            					<documentation>
            						A recipe for the Soul Binder.
            					</documentation>
            				</annotation>
            			</element>
            			<element name="brewing"
            				type="enderio:brewingType" minOccurs="1"
            				maxOccurs="1">
            				<annotation>
            					<documentation>
            						A recipe for the vanilla brewing
            						stand.
            					</documentation>
            				</annotation>
            			</element>
            			<element name="tanking"
            				type="enderio:tankingType" minOccurs="1"
            				maxOccurs="1">
            				<annotation>
            					<documentation>
            						A recipe for the Tank.
            					</documentation>
            				</annotation>
            			</element>
            			<element name="hiding" type="enderio:hidingType"
            				maxOccurs="1" minOccurs="1">
            				<annotation>
            					<documentation>
            						A pseudo-recipe for hiding items and
            						fluids in the JEI list of
            						ingredients.
            					</documentation>
            				</annotation>
            			</element>
            			<element name="fuel" type="enderio:fuelType"
            				minOccurs="1" maxOccurs="1">
            			</element>
            			<element name="coolant"
            				type="enderio:coolantType" minOccurs="1"
            				maxOccurs="1">
            			</element>
            			<element name="disabled"
            				type="enderio:disabledType" minOccurs="1"
            				maxOccurs="1">
            			</element>
            		</choice>
            	</sequence>
            	<attribute use="optional" name="required"
            		type="boolean">
            		<annotation>
            			<documentation>
            				If a recipe is required, it is an error if
            				none of its variants is valid.
            			</documentation>
            		</annotation>
            	</attribute>
            	<attribute use="required" name="name" type="string">
            		<annotation>
            			<documentation>
            				A display name. Used for error messages
            				only.
            			</documentation>
            		</annotation>
            	</attribute>
            	<attribute name="disabled" type="boolean"
            		use="optional">
            		<annotation>
            			<documentation>
            				If a recipe is disabled it will not be
            				registered and it will not check the
            				validity of its content. Use this in the
            				user file to disable core recipes.
            			</documentation>
            		</annotation>
            	</attribute>
            	<attribute name="level" use="optional" default="IGNORE">
                                <annotation>
                                	<documentation>The minimum level a machine has to have to be able to produce this recipe.

Note that not all machines have levels. Setting a level for those would either be ignored completele (e.g. crafting, casting) or make the recipe uncraftable (e.g. slicing).</documentation>
                                </annotation>
                                <simpleType>
            			<restriction base="string">
            				<enumeration value="SIMPLE"></enumeration>
            				<enumeration value="NORMAL"></enumeration>
            				<enumeration value="ADVANCED"></enumeration>
            				<enumeration value="IGNORE"></enumeration>
            			</restriction>
            		</simpleType>
            	</attribute>
            </complexType>
          </element>
          <element name="grindingball" type="enderio:GrindingType"></element>
          <element name="capacitor" type="enderio:CapacitorType"></element>
        </choice>
      </sequence>
    </complexType>
  </element>
  <complexType name="configComplexType">
    <attribute use="required" name="section" type="string"></attribute>
    <attribute use="required" name="name" type="string"></attribute>
    <attribute use="optional" name="value" type="boolean"></attribute>
  </complexType>
  <complexType name="dependencyComplexType">
        <annotation>
          <documentation>Either item or mod or upgrade must be given. A dependency is met (or not met if reverse is set) if the item (if given) exists and the upgrade (if given) exists and the mod (if given) is loaded.</documentation>
        </annotation>
        <attribute use="optional" name="item" type="enderio:ThingsString">
      <annotation>
        <documentation>The ID of an item that must exist in the game</documentation>
      </annotation></attribute>
    <attribute name="mod" type="string" use="optional">
      <annotation>
        <documentation>The ID of a mod that must be loaded</documentation>
      </annotation></attribute>
    <attribute name="upgrade" type="string" use="optional">
      <annotation>
        <documentation>The ID of a Dark Steel Upgrade that must be loaded</documentation>
      </annotation></attribute>
    <attribute use="optional" name="reverse" type="boolean">
      <annotation>
        <documentation>When set to true, the dependency is reversed, i.e. the item/mod/upgrade must not exist</documentation>
      </annotation></attribute>
  </complexType>
  <complexType name="slicingType">
    <sequence>
      <element name="config" type="enderio:configComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>

      <element name="input" minOccurs="6" maxOccurs="6">
        <complexType>
          <attribute use="required" name="name" type="enderio:ThingsString" />
          <attribute name="nbt" type="string" use="optional"></attribute>
        </complexType>
      </element>
      <element name="output" minOccurs="1" maxOccurs="1"><complexType>
        <sequence>
                              <element minOccurs="0" maxOccurs="unbounded" name="config" type="enderio:configComplexType">
                                <annotation>
                                  <documentation>
                                    Restricts this output to only be used if the given config value has the given value.
                                  </documentation>
                                </annotation>
                              </element>
                              <element minOccurs="0" maxOccurs="unbounded" name="dependency" type="enderio:dependencyComplexType">
                                <annotation>
                                  <documentation>
                                    Restricts this output to only be used if the given game element can (not) be found in the game.
                                  </documentation>
                                </annotation>
                              </element>

                            </sequence>
                            <attribute use="required" name="name" type="enderio:ThingsString" />
      </complexType></element>
    </sequence>
    <attribute name="energy" use="required">
      <annotation>
        <documentation>The amount of energy running this recipe takes.</documentation>
      </annotation>
      <simpleType>
        <restriction base="int">
          <minExclusive value="0"></minExclusive>
        </restriction>
      </simpleType>
    </attribute>
  </complexType>

  <complexType name="GrindingType">
        <annotation>
          <documentation>  Grinding balls provide bonus outputs and reduced power use. Using the user config new grinding balls may be added and
  existing ones removed.

  Use of the grinding ball is restricted by the bonusType of the recipe. If it is set to &quot;none&quot;, it will not have any grinding
  ball bonuses applied and will not reduce the durability of any balls in the mill at the time it is  processed. If it is set
  to &quot;chance_only&quot;, the chance and power multipliers of the grinding balls are applied, but not the grinding multiplier. If it
  is set to &quot;multiply_output&quot; (default), all multipliers apply.
</documentation></annotation>
        <sequence>
      <element name="config" type="enderio:configComplexType" minOccurs="0" maxOccurs="unbounded"></element>
      <element name="dependency" type="enderio:dependencyComplexType" minOccurs="0" maxOccurs="unbounded"></element>
      <element name="item" minOccurs="1" maxOccurs="1">
        <complexType>
          <attribute name="name" type="enderio:ThingsString" use="required"></attribute>
        </complexType>
      </element>
    </sequence>
    <attribute name="name" type="string" use="required"></attribute>
    <attribute name="required" type="boolean" use="optional" default="true"></attribute>
    <attribute name="disabled" type="boolean" use="optional" default="false"></attribute>
    <attribute name="grinding" use="optional" default="1.0">
            <annotation>
              <documentation>The recipe output will be produced this many times. e.g. &quot;3.14&quot; would produce 3 copies of the complete
                        output set and a 14% chance for a forth copy.</documentation></annotation>
            <simpleType>
              <restriction base="float">
                <minExclusive value="0"></minExclusive>
                <maxInclusive value="5"></maxInclusive>
              </restriction>
            </simpleType>
    </attribute>
    <attribute name="chance" use="optional" default="1.0">
            <annotation>
              <documentation>The chances for the different outputs of the recipe are multiplied with this. e.g. if a recipe specifies
                        &lt;output name=&quot;cobblestone&quot; chance=&quot;0.15&quot; /&gt; a chance multiplier of &quot;3.14&quot; would make it a 47.1% chance
                        of getting one cobblestone. Results of more than 100% do not give multiples.</documentation></annotation>
            <simpleType>
        <restriction base="float">
          <minExclusive value="0"></minExclusive>
          <maxInclusive value="5"></maxInclusive>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="power" use="optional" default="1.0">
            <annotation>
              <documentation>The &quot;energy cost&quot; of the recipe is multiplied with this.</documentation></annotation>
            <simpleType>
        <restriction base="float">
          <minExclusive value="0"></minExclusive>
          <maxInclusive value="5"></maxInclusive>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="durability" use="required">
            <annotation>
              <documentation>This specifies how long one grinding ball will last before it is used up. The unit is the amount of
                        power used by the SAG Mill.</documentation></annotation>
            <simpleType>
        <restriction base="int">
          <minExclusive value="0"></minExclusive>
        </restriction>
      </simpleType>
    </attribute>
  </complexType>

  <complexType name="fermentingType">
    <sequence>
      <element name="config" type="enderio:configComplexType" minOccurs="0" maxOccurs="unbounded"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="inputgroup" minOccurs="1" maxOccurs="2">
        <complexType>
          <sequence>
            <element name="input" minOccurs="1" maxOccurs="unbounded">
              <complexType>
                <attribute name="name" type="enderio:ThingsString" use="required"></attribute>
                <attribute name="multiplier" type="float" use="optional" default="1.0"></attribute>
              </complexType></element>
          </sequence>
        </complexType>
      </element>
      <element name="inputfluid" maxOccurs="1" minOccurs="1">
        <complexType>
          <attribute name="name" type="string" use="required"></attribute>
          <attribute name="multiplier" type="float" default="1.0"></attribute>
        </complexType>
      </element>
      <element name="outputfluid" maxOccurs="1" minOccurs="1">
        <complexType>
          <attribute name="name" type="string" use="required"></attribute>
        </complexType></element>
    </sequence>
    <attribute name="energy" use="required">
      <simpleType>
        <restriction base="int">
          <minExclusive value="0"></minExclusive>
        </restriction>
      </simpleType>
    </attribute>
  </complexType>

  <complexType name="CapacitorType">
    <annotation>
      <documentation>Capacitor Keys</documentation>
    </annotation>
    <sequence>
      <element name="config" type="enderio:configComplexType" minOccurs="0" maxOccurs="unbounded"></element>
      <element name="dependency" type="enderio:dependencyComplexType" minOccurs="0" maxOccurs="unbounded"></element>
      <choice minOccurs="0" maxOccurs="1">
        <element name="scaler" minOccurs="1" maxOccurs="1">
          <complexType>
            <attribute name="name" use="required">
              <simpleType>
                <restriction base="enderio:ScalerString" />
              </simpleType>
            </attribute>
          </complexType>
        </element>
        <element name="indexed" minOccurs="1" maxOccurs="1">
          <complexType>
            <sequence>
              <element name="data" minOccurs="1" maxOccurs="unbounded">
                <complexType>
                  <attribute name="value" type="float" use="required"></attribute>
                </complexType>
              </element>
            </sequence>
            <attribute name="step" type="float" use="optional" default="1"></attribute>
          </complexType>
        </element>
      </choice>
    </sequence>
    <attribute name="key" use="required">
      <simpleType>
        <restriction base="string">
          <pattern value="[a-z][a-z0-9]*:[^:]+"></pattern>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="required" type="boolean" use="optional" default="true"></attribute>
    <attribute name="disabled" type="boolean" use="optional" default="false"></attribute>
    <attribute name="base" type="int" use="required"></attribute>
    <attribute name="scaler" type="enderio:ScalerString" use="optional"></attribute>
  </complexType>
  <simpleType name="ScalerString">
    <restriction base="string">
                  <pattern value="IDENTITY"></pattern>
                  <pattern value="LINEAR_0_8"></pattern>
                  <pattern value="QUADRATIC"></pattern>
                  <pattern value="QUADRATIC_1_8"></pattern>
                  <pattern value="CUBIC"></pattern>
                  <pattern value="OCTADIC_1_8"></pattern>
                  <pattern value="POWER"></pattern>
                  <pattern value="CHARGE"></pattern>
                  <pattern value="SPEED"></pattern>
                  <pattern value="POWER10"></pattern>
                  <pattern value="RANGE"></pattern>
                  <pattern value="FIXED"></pattern>
                  <pattern value="SPAWNER"></pattern>
                  <pattern value="BURNTIME"></pattern>
                  <pattern value="CHEMICAL"></pattern>
                  <pattern value="DROPOFF"></pattern>
                  <pattern value="CENT"></pattern>
                  <pattern value="idx:([1-9]\d*(\.\d+)?|0\.\d+)(:([1-9]\d*|0)(\.\d+)?)+"></pattern>
                  <pattern value="idx\(([1-9]\d*(\.\d+)?|0\.\d+)\)(:?([1-9]\d*|0)(\.\d+)?)(:([1-9]\d*|0)(\.\d+)?)*"></pattern>
                </restriction>
  </simpleType>

  <complexType name="soulbindingType">
    <annotation>
      <documentation>A Soul Binder recipe.</documentation>
    </annotation>
    <sequence>
      <element name="config" type="enderio:configComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="input" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>The item that is the input.</documentation>
        </annotation>
        <complexType>
          <attribute use="required" name="name" type="enderio:ThingsString" />
          <attribute name="nbt" type="string" use="optional"></attribute>
        </complexType>
      </element>
      <element minOccurs="0" maxOccurs="unbounded" name="soul">
        <annotation>
          <documentation>
            The soul that is the input. All souls must be in Soul Vials, so you only specify the soul itself here.
          </documentation>
        </annotation>
        <complexType>
          <attribute use="required" name="name" type="string" />
        </complexType>
      </element>
      <element name="output" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>The item to produce.</documentation>
        </annotation>
        <complexType>
          <sequence>
            <element minOccurs="0" maxOccurs="unbounded" name="config" type="enderio:configComplexType">
              <annotation>
                <documentation>Restricts this output to only be used if the given config value has the given value.</documentation>
              </annotation>
            </element>
            <element minOccurs="0" maxOccurs="unbounded" name="dependency" type="enderio:dependencyComplexType">
              <annotation>
                <documentation>
                  Restricts this output to only be used if the given game element can (not) be found in the game.
                </documentation>
              </annotation>
            </element>
          </sequence>
          <attribute use="required" name="name" type="enderio:ThingsString" />
        </complexType>
      </element>
    </sequence>
    <attribute name="energy" use="required">
      <annotation>
        <documentation>The amount of energy running this recipe takes.</documentation>
      </annotation>
      <simpleType>
        <restriction base="int">
          <minExclusive value="0"></minExclusive>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="levels" use="required">
      <annotation>
        <documentation>The amount of XP levels running this recipe takes.</documentation>
      </annotation>
      <simpleType>
        <restriction base="int">
          <minInclusive value="1"></minInclusive>
          <maxInclusive value="21862"></maxInclusive>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="logic" use="optional" default="NONE">
      <simpleType>
        <restriction base="string">
          <enumeration value="NONE"></enumeration>
          <enumeration value="APPLY"></enumeration>
          <enumeration value="FILTER"></enumeration>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="souls" use="optional" default="LISTED">
            <annotation>
              <documentation>Which souls can be used with this recipe:

* LISTED: Souls will be given with the 'soul' tag
* ALL: All souls can be used
* SPAWNABLE: All souls that can be used with the Powered Spawner can be used.
* MONSTERS: All souls that are tagged as monster.
* ANIMALS: All souls that are tagged as animals.
</documentation>
            </annotation>
            <simpleType>
        <restriction base="string">
          <enumeration value="LISTED"></enumeration>
          <enumeration value="ALL"></enumeration>
          <enumeration value="SPAWNABLE"></enumeration>
          <enumeration value="MONSTERS"></enumeration>
          <enumeration value="ANIMALS"></enumeration>
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  
  <complexType name="brewingType">
    <annotation>
      <documentation>A Brewing recipe.</documentation>
    </annotation>
    <sequence>
      <element name="config" type="enderio:configComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="input" type="enderio:potionType" minOccurs="1" maxOccurs="1"></element>
      <element name="reagent" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>The item that is the input.</documentation>
        </annotation>
        <complexType>
          <attribute use="required" name="name" type="enderio:ThingsString" />
          <attribute name="nbt" type="string" use="optional"></attribute>
        </complexType>
      </element>
      <element name="output" type="enderio:potionType" minOccurs="1" maxOccurs="1"></element>
    </sequence>
  </complexType>

  <complexType name="tankingType">
    <annotation>
      <documentation>A filling or emptying recipe for the tank.</documentation>
    </annotation>
    <sequence>
      <element name="config" type="enderio:configComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="input" type="enderio:itemType" minOccurs="1" maxOccurs="1"></element>
      <element name="fluid" type="enderio:fluidType" minOccurs="1" maxOccurs="1"></element>
      <element name="output" type="enderio:itemType" minOccurs="0" maxOccurs="1"></element>
    </sequence>
    <attribute name="type" use="required">
      <simpleType>
        <restriction base="string">
          <enumeration value="FILL"></enumeration>
          <enumeration value="EMPTY"></enumeration>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="logic" use="optional" default="NONE">
      <simpleType>
        <restriction base="string">
          <enumeration value="NONE"></enumeration>
          <enumeration value="XPBOTTLE"></enumeration>
          <enumeration value="XP"></enumeration>
          <enumeration value="DSU"></enumeration>
          <enumeration value="LEVELS"></enumeration>
        </restriction>
      </simpleType>
    </attribute>
  </complexType>

  <complexType name="disabledType">
    <annotation>
      <documentation>A marker to disable a recipe. Can be used together or instead of the disabled attribute.</documentation>
    </annotation>
    <sequence>
      <element name="config" type="enderio:configComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>
    </sequence>
  </complexType>

  <complexType name="fuelType">
    <annotation>
      <documentation>A fuel for usage in the combustion generators.</documentation>
    </annotation>
    <sequence>
      <element name="config" type="enderio:configComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>
    </sequence>
    <attribute name="fluid" type="string" use="required"></attribute>
    <attribute name="pertick" use="required">
            <annotation>
              <documentation>Amount of energy the fuel generates per tick (base value)</documentation>
            </annotation>
            <simpleType>
        <restriction base="int">
          <minExclusive value="0"></minExclusive>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="ticks" use="required">
            <annotation>
              <documentation>Number of ticks the fuel lasts (base value)</documentation>
            </annotation>
            <simpleType>
        <restriction base="int">
          <minExclusive value="0"></minExclusive>
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  
  <complexType name="hidingType">
    <annotation>
      <documentation>Configure which items/fluids should be hidden in JEI.</documentation>
    </annotation>
    <sequence>
      <element name="config" type="enderio:configComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <choice maxOccurs="unbounded" minOccurs="1">
        <element name="item" type="enderio:itemHidingType" minOccurs="1" maxOccurs="1"></element>
        <element name="fluid" type="enderio:fluidHidingType" minOccurs="1" maxOccurs="1"></element>
      </choice>
    </sequence>
  </complexType>

  <complexType name="coolantType">
    <annotation>
      <documentation>A coolant for usage in the combustion generators.</documentation>
    </annotation>
    <sequence>
      <element name="config" type="enderio:configComplexType" maxOccurs="unbounded" minOccurs="0"></element>
      <element name="dependency" type="enderio:dependencyComplexType" maxOccurs="unbounded" minOccurs="0"></element>
    </sequence>
    <attribute name="fluid" type="string" use="required"></attribute>
    <attribute name="amount" use="required">
            <annotation>
              <documentation>degreesCoolingPerMB (base value)</documentation>
            </annotation>
            <simpleType>
              <restriction base="float">
                <minExclusive value="0"></minExclusive>
              </restriction>
            </simpleType>
    </attribute>
  </complexType>

  <complexType name="potionType">
    <attribute name="potion" type="string" use="required">
      <annotation>
        <documentation>The resource ID of a potion.</documentation>
      </annotation></attribute>
  </complexType>

  <complexType name="fluidHidingType">
    <attribute name="name" type="string" use="required">
      <annotation>
        <documentation>The ID of a fluid.</documentation>
      </annotation>
    </attribute>
    <attribute name="show" type="boolean" use="optional" default="false">
      <annotation>
        <documentation>An element will be hidden if:

(1) there exists a configuration for it. Elements that are never configured will not be hidden.

(2) There is no configuration that sets "show" to true OR

(3) There is at least one configuration that sets "hide" to true.

Ender IO itself will never set "hide" to true and will only use "show" internally. Modpack makers (and players) are expected to only use "hide" to hide stuff and use "show" to unhide stuff that Ender IO has hidden.</documentation>
      </annotation></attribute>
    <attribute name="hide" type="boolean" use="optional" default="false">
      <annotation>
        <documentation>An element will be hidden if:

(1) there exists a configuration for it. Elements that are never configured will not be hidden.

(2) There is no configuration that sets "show" to true OR

(3) There is at least one configuration that sets "hide" to true.

Ender IO itself will never set "hide" to true and will only use "show" internally. Modpack makers (and players) are expected to only use "hide" to hide stuff and use "show" to unhide stuff that Ender IO has hidden.</documentation>
      </annotation></attribute>
  </complexType>
  <complexType name="itemHidingType">
    <attribute use="required" name="name" type="enderio:ThingsString" />
    <attribute name="show" type="boolean" use="optional" default="false">
      <annotation>
        <documentation>An element will be hidden if:

(1) there exists a configuration for it. Elements that are never configured will not be hidden.

(2) There is no configuration that sets "show" to true OR

(3) There is at least one configuration that sets "hide" to true.

Ender IO itself will never set "hide" to true and will only use "show" internally. Modpack makers (and players) are expected to only use "hide" to hide stuff and use "show" to unhide stuff that Ender IO has hidden.</documentation>
      </annotation></attribute>
    <attribute name="hide" type="boolean" use="optional" default="false">
      <annotation>
        <documentation>An element will be hidden if:

(1) there exists a configuration for it. Elements that are never configured will not be hidden.

(2) There is no configuration that sets "show" to true OR

(3) There is at least one configuration that sets "hide" to true.

Ender IO itself will never set "hide" to true and will only use "show" internally. Modpack makers (and players) are expected to only use "hide" to hide stuff and use "show" to unhide stuff that Ender IO has hidden.</documentation>
      </annotation></attribute>
  </complexType>
  <complexType name="fluidType">
    <attribute name="name" type="string" use="required">
      <annotation>
        <documentation>The ID of a fluid.</documentation>
      </annotation>
    </attribute>
    <attribute name="nbt" type="string" use="optional">
      <annotation>
        <documentation>NBT for the fluid stack.</documentation>
      </annotation></attribute>
    <attribute name="amount" use="optional" default="1000">
      <annotation>
        <documentation>Amount of fluid in mB.</documentation>
      </annotation>
      <simpleType>
        <restriction base="int">
          <minInclusive value="0"></minInclusive>
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="itemType">
    <attribute use="optional" name="name" type="enderio:ThingsString" />
    <attribute name="nbt" type="string" use="optional" />
    <attribute name="potion" type="string" use="optional">
      <annotation>
        <documentation>The registry name of a potion effect. If this is given, a potion bottle with this effect is created. Cannot be used together with name or nbt.</documentation>
      </annotation></attribute>
  </complexType>
  <simpleType name="ThingsString">
        <annotation>
          <documentation>A string that specifies one or more items, consisting of a comma-separated list of item specifiers. Specifiers may be prefixed with a "+" or "-", the latter removes that item from the list.

If this is used as an input, all items in the list will be used. If it is used as an output, only the first one is used. The list can contain non-existing items as long as there also is at least one existing one.

Each specifuer can be one of 4 things:

(1) An alias, e.g. "IRON"

(2) An oredict name, e.g. "ingotIron". Oredict names can be prefixed with "oredict:" to prevent confusion, e.g. "oredict:ingotIron"

(3) The resource location of a block, e.g. "minecraft:stone". Block resource locations may be prefixed with "block:" to prevent confusion, e.g. "block:minecraft:stone". In recipes these will only work if that block has a corresponding item that is internally linked to the block.

(4) The resource location of an item, e.g. "minecraft:iron_ingot". Item resource locations may be prefixed with "item:" to prevent confusion, e.g. "item:minecraft:iron_ingot". A number of items have blocks with the same name that are NOT linked, for them the "item:" prefix is required. Items can further be limited to specific meta values by postfixing with ":(number)", e.g. "item:minecraft:stone:3".

</documentation>
        </annotation>
        <restriction base="string">
      <pattern value="((\+|\-)?(([A-Z0-9_]+)|(((item:)?([a-z][a-z0-9_-]*:)?[a-z][a-z0-9_-]*(:(\*|\d+))?))|((block:)?([a-z][a-z0-9_-]*:)?[a-z][a-z0-9_-]*)|((oredict:)?[a-zA-Z][A-Za-z0-9_-]*)))(,\s*(\+|\-)?(([A-Z0-9_]+)|(((item:)?([a-z][a-z0-9_-]*:)?[a-z][a-z0-9_-]*(:(\*|\d+))?))|((block:)?([a-z][a-z0-9_-]*:)?[a-z][a-z0-9_-]*)|((oredict:)?[a-zA-Z][A-Za-z0-9_-]*)))*"></pattern>
      <whiteSpace value="collapse"></whiteSpace>
    </restriction>
  </simpleType>

</schema>