<binding direction="input" track-source="true"
    value-style="attribute" force-classes="true">
  
  <!-- Base class abstract mappings -->
  <format type="java.lang.String[]"
      deserializer="org.jibx.runtime.Utility.deserializeTokenList"/>
  <format type="org.jibx.runtime.QName[]"
      deserializer="org.jibx.runtime.QName.deserializeList"/>
  <mapping abstract="true" class="org.jibx.schema.codegen.custom.NestingCustomBase">
    <!-- Note that the values are accessed using reflection by the argument
      processing code, so attribute names need to correspond to method names -->
    <value name="enforced-facets" set-method="setEnforcedFacets" usage="optional"/>
    <value name="ignored-facets" set-method="setIgnoredFacets" usage="optional"/>
    <!-- No support for qualified names in command line arguments, so this can
      use different names. -->
    <value name="type-substitutions" field="m_substitutions" usage="optional"/>
  </mapping>
  
  <!-- Mapping complex for components, which can match most schema elements -->
  <mapping abstract="true" type-name="component-custom"
      class="org.jibx.schema.codegen.custom.ComponentCustom">
    <value name="class" field="m_className" usage="optional"/>
    <value name="name" field="m_componentName" usage="optional"/>
    <value name="property" field="m_baseName" usage="optional"/>
    <value name="type" field="m_type" usage="optional"/>
    <value name="ignore" field="m_ignore" usage="optional"/>
    <value name="generation" type="java.lang.String"
        set-method="setGenerationText" usage="optional"/>
    <value name="path" field="m_path" usage="optional"/>
    <value name="position" field="m_position" usage="optional"/>
    <structure map-as="org.jibx.schema.codegen.custom.NestingCustomBase"/>
    <structure type="org.jibx.schema.codegen.custom.NestingCustomBase">
      <collection field="m_children">
        <structure type="org.jibx.schema.codegen.custom.ComponentCustom"
            unmarshaller="org.jibx.schema.codegen.custom.ComponentCustomUnmarshaller"/>
      </collection>
    </structure>
  </mapping>
  
  <!-- Top-level schemaset and schema mappings -->
  <mapping abstract="true" class="org.jibx.schema.codegen.custom.SchemaRootBase">
    <value name="package" field="m_package" usage="optional"/>
    <value name="generate-unused" field="m_generateUnused" usage="optional"/>
    <value name="prefer-inline" field="m_preferInline" usage="optional"/>
    <value name="use-inner" field="m_useInner" usage="optional"/>
    <value name="strip-prefixes" field="m_stripPrefixes" usage="optional"/>
    <value name="strip-suffixes" field="m_stripSuffixes" usage="optional"/>
    <structure map-as="org.jibx.schema.codegen.custom.NestingCustomBase"/>
  </mapping>
  <mapping name="schema" pre-set="preSet"
      factory="org.jibx.schema.codegen.custom.SchemaCustom.factory"
      class="org.jibx.schema.codegen.custom.SchemaCustom">
    <value name="name" field="m_name" usage="optional"/>
    <value name="namespace" field="m_namespace" usage="optional"/>
    <value name="includes" field="m_includes" usage="optional"/>
    <value name="excludes" field="m_excludes" usage="optional"/>
    <structure map-as="org.jibx.schema.codegen.custom.SchemaRootBase"/>
    <structure type="org.jibx.schema.codegen.custom.NestingCustomBase">
      <collection field="m_children">
        <structure type="org.jibx.schema.codegen.custom.ComponentCustom"
            unmarshaller="org.jibx.schema.codegen.custom.ComponentCustomUnmarshaller"/>
      </collection>
    </structure>
  </mapping>
  <mapping name="schema-set" pre-set="preSet"
      factory="org.jibx.schema.codegen.custom.SchemasetCustom.factory"
      class="org.jibx.schema.codegen.custom.SchemasetCustom">
    <value name="names" field="m_names" usage="optional"/>
    <value name="namespaces" field="m_namespaces" usage="optional"/>
    <structure map-as="org.jibx.schema.codegen.custom.SchemaRootBase"/>
    <structure type="org.jibx.schema.codegen.custom.NestingCustomBase">
      <collection field="m_children">
        <structure type="org.jibx.schema.codegen.custom.SchemasetCustom"
            usage="optional"/>
        <structure type="org.jibx.schema.codegen.custom.SchemaCustom"
            usage="optional"/>
        <structure type="org.jibx.schema.codegen.custom.ComponentCustom"
            unmarshaller="org.jibx.schema.codegen.custom.ComponentCustomUnmarshaller"/>
      </collection>
    </structure>
  </mapping>
  
</binding>