<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2004 The Apache Software Foundation

     Licensed 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" elementFormDefault="qualified" attributeFormDefault="unqualified" version="V2R30_20040414">

	<xs:simpleType name="nni1">
		<xs:restriction base="xs:nonNegativeInteger">
			<xs:totalDigits value="1"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:element name="TransportUnitCharacteristics_test">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="dummy" type="xs:string" />
			</xs:sequence>
			<xs:attribute name="TransportUnitLevel_test" type="nni1" use="optional" default="1"/>
		</xs:complexType>
	</xs:element>
</xs:schema>
