<?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: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>

			<searchRequest dn="ou=schema" scope="baseObject"
				derefAliases="neverDerefAliases" typesOnly="false">
				<filter>
					<approxMatch name="cn">
						<value>inetOrgPerson</value>
					</approxMatch>
				</filter>
			</searchRequest>
		</dsml:batchRequest>
	</soap-env:Body>
</soap-env:Envelope>