CHƯƠNG 7 WORKING WITH XML, QUEUES, AND WEB SERVICES.
7.2. Using tXMLMap to create an XML document.
Công thức này là sự đảo ngược của công thức trước đó, mà chúng ta sẽ đọc trong một định dạng phẳng và chuyển đổi nó vào một tài liệu XML cho đầu ra.
Ta có một file chapter07customer.csv có cấu trúc như sau:
Tạo mới một Job có chứa tFileInputDelimited có chứa đường dẫn đến file chapter07customer.csv.
Kéo thả component tXMLMap vào cửa sổ thiết kế và liên kết đến
tFileInputDelimited.
Chọn tXMLMap và tạo table output customerDocumentOut, sau đó tạo trường mới payload có kiểu dữ liệu Document.
Làm tương tự như công thức ở ví dụ trên, ta cấu hình tXMLMap như sau:
Thêm vào cửa sổ thiết kế tFileOutputXML và liên kết đến tXMLMap.
Mở tFileOutputXML và check chọn Incoming record is a document và thay đổi đường dẫn đến nơi lưu tập tin.
Run Job, bạn sẽ thấy outXML.xml được tạo ra.
Như đã đề cập trong công thức đầu tiên, xác định các loại đầu ra của tài liệu cho phép chúng ta xác định một định dạng XML trong component tXMLMap vào đó
bảo rằng các mối quan hệ thứ bậc giữa các dữ liệu không bị mất.
Creating order customer schema.
Chúng ta cùng thực hiện ví dụ sau:
Ta có cấu trúc file chapter07orderData.xml như sau:
<?xml version="1.0" encoding="ISO-8859-15"?> <customer>
<customerId>1</customerId> <name>Jo Ray Smith</name> <age>27</age> <orders> <order> <orderNumber>1</orderNumber> <orderDate>10/06/2013</orderDate> <items> <item> <itemNumber>1</itemNumber> <product>hammer</product> <number>1</number> <value>20.00</value> </item> <item> <itemNumber>2</itemNumber> <product>spanner</product> <number>2</number> <value>10.00</value> </item> </items> </order> <order> <orderNumber>2</orderNumber> <orderDate>14/06/2013</orderDate> <items> <item> <itemNumber>1</itemNumber> <product>hammer</product> <number>3</number> <value>60.00</value> </item> <item> <itemNumber>2</itemNumber> <product>spanner</product>
<number>4</number> <value>20.00</value> </item> </items> </order> </orders> </customer>
Tạo một Job mới có tên ch07createXML.
Trong metadata, right-click vào File xml chọn Create file xml. Đặt tên là
ch7DataCustomer.
Lựa chọn Input XML và nhấn Next.
Click Browser và lựa chọn đường dẫn đến file xml đó. Nhấn Next để sang bước tiếp theo.
Kéo trường customer từ Source Schema vào Xpath loop expression, trong khung Target Schema.
Kéo trường customerId,name và age từ SourceSchema vào Fields to extract.
Sau khi thiết lập xong, nhấn Next. Nhấn Finish để hoàn thành.
Creating order schema.
Thực hiện các bước như ví dụ trên cho File xml là ch7DataOrder. Chúng ta chỉnh sửa lại các thuộc tính như màn hình dưới đây:
Creating order item schema.
Thực hiện các bước như ví dụ trên cho File xml là ch7DataItem. Chúng ta chỉnh sửa lại các thuộc tính như màn hình dưới đây:
Sau khi tạo xong 3 file xml ta có cấu trúc như hình:
Chúng ta mở lại Job ch07createXML và kéo 3 schema File xml và 3 components tLogRow vào cửa sổ thiết kế sau đó RunJob như sau.
Các components XML schema cho phép chúng ta lập bản đồ dữ liệu từ cấu trúc
XML vào một sơ đồ Talend phẳng dễ dàng, sẵn sàng để sử dụng trong các
components phía sau.