<?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.
-->
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
	<soap-env:header>
		<t:Transaction xmlns:t="http://example.org/2001/06/tx"
			soap-env:mustUnderstand="true">
			5 
	    </t:Transaction>
	    <t:header xmlns:t="http://example.org/2001/06/tx">
	    </t:header>
	</soap-env:header>
	<soap-env:Body>
		<dsml:batchRequest xmlns:dsml="urn:oasis:names:tc:DSML:2:0:core"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			<searchRequest dn="uid=admin,ou=system" scope="baseObject"
				derefAliases="neverDerefAliases" typesOnly="true">
				<filter>
					<approxMatch name="uid">
						<value>admin</value>
					</approxMatch>
				</filter>
			</searchRequest>
		</dsml:batchRequest>
	</soap-env:Body>
</soap-env:Envelope>