我正在使用 LDAP 请求根据要求获取 AD 数据。请求的结果是 xml 文档(缺少结果的模式。包含结果/XMLDoc 的消息名为 msg_AD_xxx_response),其屏蔽值如下:
<ns0:AllBfnUsers xmlns:ns0="http://xxx_LDAPSearchResult">
<ResultEntry>
<AgressoID_extensionAttribute2>xxx000003</AgressoID_extensionAttribute2>
<Fornamn_givenName>Donald</Fornamn_givenName>
<Efternamn_sn>Duck</Efternamn_sn>
<EHandelsroll_extensionAttribute5>xxx</EHandelsroll_extensionAttribute5>
<Mail_mail>[email protected]</Mail_mail>
<Personnummer_extensionAttribute3>1234</Personnummer_extensionAttribute3>
</ResultEntry>
<ResultEntry>
<AgressoID_extensionAttribute2>xxx000002</AgressoID_extensionAttribute2>
<Fornamn_givenName>Daisy</Fornamn_givenName>
<Efternamn_sn>Duck</Efternamn_sn>
<EHandelsroll_extensionAttribute5>xxx</EHandelsroll_extensionAttribute5>
<Mail_mail>[email protected]</Mail_mail>
<Personnummer_extensionAttribute3>4321</Personnummer_extensionAttribute3>
</ResultEntry>
.
. (Lots of ResultEntries)
.
</ns0:AllBfnUsers>
最终结果应该是一个平面文件,第一行作为带有特定不可更改数据和属性的标题(但这将是另一个问题。此信息仅用于上下文,但如果解决方案很简单,请随意泄露它)和其余的条目其余的 LDAP 用户。
USER;xxx;1067;2023-05-02T13:40:01;[email protected];F;
070511234;Donald;Duck;[email protected];;;;;;;;1234;
070514321;Daisy;Duck;[email protected];;;;;;;;4321;
我确实意识到我需要源和目标的模式,但我不知道如何使数据从源到目标并到正确的节点(如“Efternamn_sn”到“姓氏”)。
我创建的目标 FF 模式如下所示。
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://xxx.xxx_HR_xxx_to_xxx.Schemas.xxx_LDAPSearchResult" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://xxx.xxx_HR_xxx_to_xxx.Schemas.xxx_LDAPSearchResult" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="AllBfnUsers">
<xs:annotation>
<xs:appinfo>
<b:recordInfo rootTypeName="AllBfnUsers" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="ResultEntry">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="xxx_extensionAttribute2" type="xs:string" />
<xs:element minOccurs="0" name="Fornamn_givenName" type="xs:string" />
<xs:element minOccurs="0" name="Efternamn_sn" type="xs:string" />
<xs:element minOccurs="0" name="xxx_extensionAttribute5" type="xs:string" />
<xs:element minOccurs="0" name="Mail_mail" type="xs:string" />
<xs:element minOccurs="0" name="xxx_extensionAttribute3" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
现在,我在谷歌上搜索了一下,发现了一个可以用作映射的源模式(未修改)的模式,但对此也不太确定。
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="LDAPSearchResults">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="ResultEntry">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="LDAPAttribute">
<xs:complexType>
<xs:attribute name="Type" type="xs:string" />
<xs:attribute name="Value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="DN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我希望有人能看到这个问题的简单解决方案,并希望能提供帮助。