Ok, I've done several drivers using DirXMLScript & policy builder, but XSLT
& the SOAP driver are still somewhat foreign to me so forgive the questions.

I am working on a SOAP driver that calls into a web service to populate,
update, delete users & groups. I am using the SPML sample config as a base
and I have the WSDL from the application provider. The problem I've got is
I need to use their tags for the user attributes, however if I hard code the
attributes and the value is null when the document is submitted it will
error. Ideally, I'd like to use a FOR-EACH loop but I'd have to define
their tags somewhere. The second problem I've got is it wants to build a
"DEVICE" for each type of communication device. So email would be a device
and under that would be a loop for personal email & work email. Phone would
have a loop for work phone, cell phone, home phone, etc. What is the best
way to go about implementing this so it's as dynamic as possible but will
still function properly? I've copied the createUser function from the WSDL
below. Any help is VERY MUCH appreciated!!

<aler:createUser>
<aler:user>
<aler:businessHoursEnd>08:00</aler:businessHoursEnd>
<aler:businessHoursStart>17:00</aler:businessHoursStart>
<aler:defaultHotlinePhoneNumberLabel></aler:defaultHotlinePhoneNumberLabel>
<aler:description>User Account Description</aler:description>
<aler:devices>
<!--Zero or more repetitions:-->
<aler:item>
<aler:address>test.user@company.com</aler:address>
<aler:description>Work Email</aler:description>
<aler:enabled>1</aler:enabled>
<aler:name>Work Email</aler:name>
<alerroperties></alerroperties>
<aler:type>Emails</aler:type>
</aler:item>
</aler:devices>
<aler:displayName>Test User</aler:displayName>
<aler:emailAddress>test.user@company.com</aler:emailAddress>
<aler:enabled>1</aler:enabled>
<aler:escalations>
<!--Zero or more repetitions:-->
<aler:item>
<aler:name>Business Hours Escalation</aler:name>
<aler:steps>
<!--Zero or more repetitions:-->
<aler:item>
<aler:deviceName>Work Email</aler:deviceName>
<aler:timeout>0</aler:timeout>
</aler:item>
</aler:steps>
</aler:item>
</aler:escalations>
<aler:externalKey></aler:externalKey>
<aler:ivrLabel></aler:ivrLabel>
<alerassword>somepassword</alerassword>
<alerin>1234</alerin>
<aler:timezone>America/Chicago</aler:timezone>
<aler:usernames>
<!--Zero or more repetitions:-->
<aler:item>test.user@company.com</aler:item>
</aler:usernames>
<aler:weekendDays>17</aler:weekendDays>
</aler:user>
</aler:createUser>

Thanks in advance!!

Joey