<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" elementFormDefault="qualified" attributeFormDefault="unqualified" >

  <!-- Test two fixed length boolean elements.  -->

  
    <xs:annotation>
		<xs:appinfo source="http://www.ogf.org/dfdl/">
			<dfdl:format initiator="" terminator="" leadingSkip="0" trailingSkip="0" truncateSpecifiedLengthString="no"  separator="" textBidi="no" floating="no"   ref="booleanBinary" escapeSchemeRef=""
				encodingErrorPolicy="error" encoding="utf-8" byteOrder="bigEndian" lengthUnits="bytes"
				textOutputMinLength="1" alignment="1" alignmentUnits="bytes"
				fillByte="f"  occursCountKind="implicit" ignoreCase="no"
				lengthKind="delimited" sequenceKind="ordered" initiatedContent="no"
        textPadKind="none" />

		</xs:appinfo>
	</xs:annotation>
	
	<xs:annotation>
		<xs:appinfo source="http://www.ogf.org/dfdl/">
			<dfdl:defineFormat name="booleanBinary">
   				<dfdl:format   representation="binary" binaryBooleanTrueRep="7" binaryBooleanFalseRep="0"/>
			</dfdl:defineFormat>
		</xs:appinfo>
	</xs:annotation>

	<xs:element name="boolean1"  dfdl:lengthKind="implicit">
		<xs:complexType>
		  <xs:sequence dfdl:sequenceKind="ordered" dfdl:initiatedContent="no">
                    <xs:element name="MyBoolean1"  type="xs:boolean" minOccurs="2" maxOccurs="2" 
                      dfdl:lengthUnits="bytes" 
                      dfdl:length="2" 
                      dfdl:lengthKind="explicit">
                    </xs:element>
		   </xs:sequence>
		</xs:complexType>
	</xs:element>
	
	

</xs:schema>