目录

Search

  1. 前言
  2. 转换简介
  3. 转换端口
  4. 转换缓存
  5. 地址验证器转换
  6. 汇总器转换
  7. 关联转换
  8. 离散记录异常转换
  9. 大小写转换器转换
  10. 分类器转换
  11. 比较转换
  12. 合并转换
  13. 数据屏蔽转换
  14. 数据处理器转换
  15. 判定转换
  16. 重复记录异常转换
  17. 表达式转换
  18. 筛选器转换
  19. 层次结构到关系转换
  20. Java 转换
  21. Java 转换 API 引用
  22. Java 表达式
  23. 联接器转换
  24. 键生成器转换
  25. 标签创建器转换
  26. 查找转换
  27. 查找缓存
  28. 动态查找缓存
  29. 匹配转换
  30. 字段分析中的匹配转换
  31. 标识分析中的匹配转换
  32. 规范器转换
  33. 合并转换
  34. 解析器转换
  35. Python 转换
  36. 等级转换
  37. 读取转换
  38. 关系到层次结构转换
  39. REST Web 服务使用者转换
  40. 路由器转换
  41. 序列生成器转换
  42. 排序器转换
  43. SQL 转换
  44. 标准创建器转换
  45. 联合转换
  46. 更新策略转换
  47. Web 服务使用者转换
  48. 解析 Web 服务 SOAP 消息
  49. 生成 Web 服务 SOAP 消息
  50. 加权平均值转换
  51. 窗口转换
  52. 写入转换
  53. 转换分隔符

Developer 转换指南

Developer 转换指南

示例 - 关系到层次结构转换

示例 - 关系到层次结构转换

Electronics Superstore 公司的财务部门必须处理公司员工的工资。他们需要将存储在关系数据库中的员工数据转换为其支付系统能够处理的层次结构格式。
映射需要使用关系到层次结构转换,该转换输入员工详细信息(如员工姓名、员工 ID、员工地址和员工银行帐户数据),并采用某种可用的层次结构格式输出这些详细信息。
在关系输入中,Bank_ID 元素是 Employee 表的主键,Bank 表的外键:
Employee_ID
Last_Name
First_Name
Address
Bank_ID
Bank_Account
9173327437
Sandrine
Jacques
74 Mobile Avenue
74845
8723487234
9174562342
Race
Tom
266 Crouse St.
9234734
45324734
8484526471
Jones
Charles
3815 LaValle Boulevard
389236
234638437
7023847265
Smith
Delilah
193 Short Drive
74845
8723463432
9174596725
Frederick
George
17 Serenity Road
9234734
6342636699
Bank_ID
Bank_Name
SWIFT_Code
74845
National Bank
9173327
9234734
International Bank
9174562
389236
Star National Bank
8484526
在采用层次结构格式的 Payment 输出中,这些表中的元素被组合在一起:
<banks> <bank name="National Bank" SWIFT="9173327"> <account id="8723487234"> <employee_id>9173327437</employee_id> <fname>Sandrine</fname> <lname>Jacques</lname> <address>74 Mobile Avenue</address> </account> <account id="8723463432"> <employee_id>9082745558</employee_id> <fname>Delilah</fname> <lname>Smith</lname> <address>193 Short Drive</address> </account> </bank> <bank name="International Bank" SWIFT="9174562"> <accounts> <account id="45324734"> <employee_id>5534398889</employee_id> <fname>Race</fname> <lname>Tom</lname> <address>266 Crouse St.</address> </account> <account id="6342636699"> <employee_id>9174596725</employee_id> <fname>Frederick</fname> <lname>George</lname> <address>17 Serenity Road</address> </account> </accounts> </bank> <bank name="Star National Bank" SWIFT="8484526"> <accounts> <account id="234638437"> <employee_id>8484526471</employee_id> <fname>Jones</fname> <lname>Charles</lname> <address>3815 LaValle Boulevard</address> </account> </accounts> </bank> </banks>
下图显示了本示例中的映射:
通过关系输入、层次结构输出和关系到层次结构转换来创建映射。
该映射包含以下对象:
Read_BankAccounts
包含银行数据的源。
Read_Employees
包含员工数据的源。
BankAccountsAndEmployees_To_PaymentsSystemXML
关系到层次结构转换,该转换将包含员工和银行帐户信息的关系输入,转换为支付系统能够处理的一种 XML 格式。
Write_BanksXML
每次运行映射时用来存储转换后数据的文件的目标路径。
该映射使用 Read_BankAccount 和 Read_Employees 文件来提供关系输入。该映射通过 BankAccountsAndEmployees_To_PaymentsSystemXML 转换来处理和转换数据,然后将输出存储在 Write_BanksXML 平面文件中列出的目标路径下。