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

<?Siebel-Property-Set EscapeNames="false"?>
<SiebelMessage MessageId="1-N" IntObjectFormat="Siebel Hierarchical" MessageType="Integration Object" IntObjectName="Sample Account" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="F:\Adapters\siebel\Add_AcctSiebel7_1.xsd">
	<ListOfSampleAccount>
		<Account>
			<Culture/>
			<CurrencyCode>USD</CurrencyCode>
			<Description/>
			<Division/>
			<HomePage/>
			<IntegrationId/>
			<LineofBusiness/>
			<Location/>
			<Name>Bea Demo</Name>
			<ProjectName/>
			<Type>Commercial</Type>
			<ListOfAccount_Organization>
				<Account_Organization IsPrimaryMVG="Y">
					<IntegrationId/>
					<Organization>Default Organization</Organization>
				</Account_Organization>
			</ListOfAccount_Organization>
			<ListOfAccountAttachment/>
			<ListOfBusinessAddress>
				<BusinessAddress>
					<AddressName>NY</AddressName>
					<City>NY</City>
					<Country>USA</Country>
					<FaxNumber>9876543211</FaxNumber>
					<IntegrationId/>
					<PhoneNumber>1234567890</PhoneNumber>
					<PostalCode>07301</PostalCode>
					<Province/>
					<State>NY</State>
					<StreetAddress>2 Madision Square</StreetAddress>
				</BusinessAddress>
			</ListOfBusinessAddress>
			<ListOfContact/>
		</Account>
	</ListOfSampleAccount>
</SiebelMessage>
