THIẾT KẾ LƯỢC ĐỒ XML TỪ BIỂU ĐỒ LỚP UML Hoàng Quang 1, Phạm Minh Khoa 1, Võ Hoàng Liên Minh 1 1 Trường Đại học Khoa học, Đại học Huế hquang@hueuni.edu.vn, minhkhoaatv@gmail.com, minhvhl@gmail.com TÓM TẮT Hiện nay, XML chiếm vị trí rất quan trọng trong việc trao đổi dữ liệu giữa các ứng dụng. Việc phát triển cơ sở dữ liệu XML để lưu trữ thông tin lớn trở nên cần thiết. Mặt khác, biểu đồ lớp UML là mô hình dữ liệu mức khái niệm thường được sử dụng phổ biến cho việc thiết kế các hệ thống thông tin quản lý hiện nay, nhờ vào khả năng mô tả thế giới thực và được sự hỗ trợ mạnh mẽ từ các nhà phát triển (Rational Rose, Enterprise Architect ). Trong bài báo này, chúng tôi đề xuất một phương pháp thiết kế lược đồ XML từ biểu đồ lớp UML trên cơ sở kế thừa phương pháp chuyển đổi từ mô hình ER (mô hình thực thể - mối quan hệ) sang lược đồ XML. Từ khóa XML schema, UML class diagram, conceptual design 1. Giới thiệu Hiện nay, XML chiếm vị trí rất quan trọng trong việc chuyển tải, trao đổi dữ liệu và liên lạc giữa các ứng dụng. Cùng với việc XML ngày càng phổ biến, số lượng các ứng dụng sử dụng các tài liệu XML tăng lên nhanh chóng, các tài liệu XML tạo ra ngày càng nhiều. Các tài liệu XML thường được thiết kế theo cảm tính nên có thể dẫn đến những dư thừa và không nhất quán về mặt dữ liệu. Do đó các phương pháp để thiết kế một lược đồ XML tốt nhằm tránh được những dư thừa và không nhất quán về mặt dữ liệu là rất đáng được quan tâm nghiên cứu [1]. Phương pháp thiết kế các tài liệu XML không tồn tại dư thừa dữ liệu được sử dụng phổ biến hiện nay là phương pháp sử dụng các mô hình cơ sở dữ liệu dữ liệu ở mức khái niệm. Cụ thể, phương pháp này gồm hai giai đoạn: đầu tiên thực hiện việc khái niệm hóa dữ liệu XML dưới dạng một mô hình dữ liệu mức khái niệm (như mô hình ER hoặc các mô hình ER mở rộng) sao cho nó phản ảnh được thế giới thực, sau đó thực hiện việc chuyển đổi mô hình này thành một lược đồ XML. Liên quan đến việc xây dựng phương pháp chuyển đổi từ một mô hình dữ liệu mức khái niệm thành một lược đồ XML, đã có nhiều nghiên cứu được đề xuất [2-8]. Tuy nhiên, hầu hết các bài báo này đều tập trung vào việc thực hiện chuyển đổi cho các mô hình ER hoặc ER mở rộng. Nhưng trên thực tế, biểu đồ lớp UML là mô hình dữ liệu mức khái niệm thường được sử dụng phổ biến cho việc thiết kế các hệ 1
Hoàng Quang, Phạm Minh Khoa, Võ Hoàng Liên Minh thống thông tin quản lý hiện nay. Ưu điểm của thiết kế hệ thống bằng UML là khả năng mô tả và phản ảnh tốt thế giới thực của các hệ thống thông tin. Ngoài ra nó còn được sự hỗ trợ mạnh mẽ từ các nhà phát triển (Rational Rose, Enterprise Architect ) nên việc thiết kế UML đã trở nên phổ biến [9]. Trong bài báo này, chúng tôi đề xuất một phương pháp thiết kế lược đồ XML từ biểu đồ lớp UML trên cơ sở kế thừa phương pháp chuyển đổi từ mô hình ER (mô hình thực thể - mối quan hệ) sang lược đồ XML. Hình 1. Phương pháp chuyển đổi từ biểu đồ lớp UML sang lược đồ XML Nếu xem việc chuyển đổi từ một mô hình dữ liệu M sang một mô hình dữ liệu M như một ánh xạ chuyển đổi, thì việc xây dựng một phương pháp chuyển đổi trực tiếp từ biểu đồ lớp UML sang lược đồ XML có thể được xem là việc xác định một ánh xạ tích của hai ánh xạ f1 và f2 như trong Hình 1. Trong đó, ánh xạ f1 là ánh xạ chuyển đổi từ biểu đồ lớp UML sang mô hình ER [10] và ánh xạ f2 là ánh xạ chuyển đổi từ mô hình ER sang lược đồ XML [1, 7]. Trong bài báo này, chúng tôi tập trung vào việc xây dựng một phương pháp chuyển đổi trực tiếp từ biểu đồ lớp UML sang lược đồ XML dựa vào cách tiếp cận của việc xác định ánh xạ tích f = f2 f1. Theo đó, bài báo này được tổ chức như sau: trong mục tiếp theo, chúng tôi giới thiệu khái quát về biểu đồ lớp UML và lược đồ XML nhằm đề cập đến các thuật ngữ và ký hiệu sẽ được sử dụng trong mục sau. Tiếp đến là phần đề xuất các quy tắc chuyển đổi từ biểu đồ lớp UML sang lược đồ XML để làm cơ sở cho việc thực hiện thuật toán chuyển đổi. Mục cuối cùng là phần kết luận. 2. Giới thiệu biểu đồ lớp UML và lược đồ XML 2.1. Biểu đồ lớp UML Ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language) là một ngôn ngữ mô hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách có hiệu quả. Việc xây dựng các mô hình trong UML là phù hợp cho việc mô tả các hệ thống thông tin. Cách tiếp cận theo mô hình của UML cho phép người thiết kế và người sử dụng có một cái nhìn bao quát và đầy đủ về hệ thống thông tin mà ta quan tâm từ giai đoạn phân tích đến việc thiết 2
kế, thẩm định và kiểm tra sản phẩm ứng dụng công nghệ thông tin. Nó còn hỗ trợ cho việc ứng dụng các chương trình tự động sinh mã trong các ngôn ngữ lập trình hướng đối tượng (như C++, Java ) và các chương trình tự động sinh CSDL trong các hệ quản trị CSDL quan hệ (như My SQL, ACCESS ) hoặc các hệ quản trị CSDL hướng đối tượng (như ObjectStore, Objectivity ). Vì vậy phương pháp thiết kế này là thật sự hữu dụng trong lập trình hướng đối tượng [9]. UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các phần tử mô hình. Tập hợp các phần tử mô hình tạo thành các sơ đồ UML. Các loại sơ đồ UML chính yếu bao gồm: sơ đồ lớp (Class Diagram), sơ đồ đối tượng (Object Diagram), sơ đồ tình huống sử dụng (Use Cases Diagram), sơ đồ trình tự (Sequence Diagram), sơ đồ cộng tác (Collaboration Diagram hay là Composite Structure Diagram), sơ đồ trạng thái (State Machine Diagram), sơ đồ thành phần (Component Diagram), sơ đồ hoạt động (Activity Diagram), sơ đồ triển khai (Deployment Diagram), sơ đồ gói (Package Diagram), sơ đồ liên lạc (Communication Diagram), sơ đồ tương tác (Interaction Overview Diagram - UML 2.0), sơ đồ phối hợp thời gian (Timing Diagram - UML 2.0). Tương tự như mô hình ER, trong các loại sơ đồ của UML, sơ đồ lớp là liên quan đến phần thiết kế cơ sở dữ liệu ở mức khái niệm. Sơ đồ lớp trong UML chứa các biểu đồ lớp UML và mối quan hệ giữa các lược đồ này. Một biểu đồ lớp UML gồm ba thành phần: tên lớp, các thuộc tính của lớp và các phương thức của lớp. Hình 2. Ví dụ biểu đồ lớp UML 3
Hoàng Quang, Phạm Minh Khoa, Võ Hoàng Liên Minh 2.2. Lược đồ XML Lược đồ XML là ngôn ngữ mô tả cấu trúc của tài liệu XML, có thể thay thế cho XML DTD. Nó sử dụng quy tắc và cú pháp giống như tài liệu XML thông thường, vì vậy ta có thể sử dụng chung bộ xử lý với tài liệu XML. Để phân biệt hai loại tài liệu, chúng ta sẽ sử dụng thuật ngữ tài liệu XML để nói về tài liệu XML thông thường và thuật ngữ tài liệu XML Schema để nói đến lược đồ XML. XML. Ví dụ file XML Schema có tên là note.xsd để định nghĩa các phần tử của tài liệu <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com" elementformdefault="qualified"> <xs:element name="note"> <xs:complextype> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 3. Quy tắc chuyển đổi từ biểu đồ lớp UML sang lược đồ XML Trong quá trình chuyển đổi chúng ta có thể thực hiện theo hai cách là chuyển đổi phẳng (là chuyển đổi không lồng một thực thể vào một thực thể khác, và mối quan hệ R giữa hai thực thể được xem như là thuộc tính của thực thể chủ) và chuyển đổi lồng nhau (là chuyển đổi lồng một thực thể vào một thực thể khác, và mối quan hệ R giữa hai thực thể được xem như là thực thể có mối quan hệ thực thể chủ). Khác với cách chuyển đổi phẳng, chuyển đổi lồng nhau có một số trường hợp không thể thực hiện được hoặc nếu được thì có thể gây dư thừa hoặc mất dữ liệu. Tuy nhiên, để tránh việc khai báo các ràng buộc về tham chiếu, nên cách chuyển đổi lồng nhau được ưu tiên thực hiện trong các trường hợp cho phép. 3.1. Chuyển đổi lớp đối tượng Lớp UML và phần tử XML có điểm chung là đều có tên và các thuộc tính, nhưng các thao tác trong UML không có thành phần nào tương ứng trong XML, vì vậy khi chuyển đổi từ UML sang XML không xét đến các thao tác. Ta có quy tắc chuyển đổi như sau: Với mỗi lớp C được chuyển đổi thành phần tử C tương ứng trong XML. Nếu một lớp đối tượng không có khóa thì bổ sung thuộc tính khóa C_ID cho phần tử C. 4
3.2. Chuyển đổi thuộc tính Thuộc tính của biểu đồ lớp UML sẽ được ánh xạ thành phần tử có tên tương ứng khi chuyển thành lược đồ XML. Ngoài ra, đối với thuộc tính có cấu trúc khi ánh xạ thành phần tử trong lược đồ XML được biểu diễn theo cây phân cấp, nút gốc của cây phân cấp chính là tên lớp đối tượng, các nút còn lại tương ứng với các thuộc tính của lớp đối tượng. 3.3. Chuyển đổi mối quan hệ kết hợp giữa hai lớp Lớp đối tượng C1 có quan hệ kết hợp R với lớp đối tượng C2 khi chuyển thành lược đồ XML thì ràng buộc bản số được hoán đổi vị trí. Quan hệ kết hợp R được ánh xạ thành phần tử R tương ứng và quy tắc chuyển như sau: 3.3.1. Chuyển đổi mối quan hệ kết hợp giữa hai lớp có bản số 1-1 Hình 3. Mối quan hệ kết hợp giữa hai lớp có bản số 1-1 Trong trường hợp này, các giải pháp lồng nhau và phẳng là hoàn toàn tương tự. Trong trường hợp lồng nhau, thuộc tính của mối quan hệ R có thể được nhúng hoàn toàn trong lớp khác. Trong trường hợp chuyển đổi phẳng, bên cạnh những ràng buộc khóa cho các lớp C1 và C2, cần bổ sung thêm hai ràng buộc, ta có bảng quy tắc chuyển đổi sau: Bảng 1. Quy tắc chuyển đổi với bản số 1-1 Chuyển đổi R lồng vào C1 R lồng vào C2 C1(KC1, R) R(KC2) C2(KC2) KEY(C1.KC1), KEY(C2.KC2), KEY(R.KC2) KEYREF(R.KC2 C2.KC2) KEYREF (C2.KC2 R.KC2) C1(KC1, R) C2(KC2) KEY(C1.KC1), KEY(C2.KC2) C2(KC2, R) R(KC1) C1(KC1) KEY(C2.KC2), KEY(C1.KC1), KEY(R.KC1) KEYREF(R.KC1 C1.KC1) KEYREF(C1.KC1 R.KC1) C2(KC2, R) R(C1) C1(KC1) KEY(C2.KC2), KEY(C1.KC1) 5
Hoàng Quang, Phạm Minh Khoa, Võ Hoàng Liên Minh 3.3.2. Chuyển đổi mối quan hệ kết hợp giữa hai lớp có bản số 1-* Hình 4. Mối quan hệ kết hợp giữa hai lớp có bản số 1-* Khi lớp C2 nhúng vào lớp C1 gây ra sự dư thừa dữ liệu vì nếu tồn tại phần tử của C2 thì có thể tồn tại ít nhất một hoặc nhiều phần tử của C1. Bảng 2. Quy tắc chuyển đổi với bản số 1-* Chuyển đổi R lồng vào C1 R lồng vào C2 C2(KC2, R+) R(C1) C1(KC1) KEY(C2.KC2), KEY(C1.KC1) KEYREF(R.KC1 C1.KC1) CHECK(C1.KC1 R.KC1) C2(KC2, R+) R(C1) C1(KC1) KEY(C2.KC2), KEY(C1.KC1) C1(KC1, R+) C2(KC2) KEY(C1.KC1), KEY(C2.KC2), KEY(R.KC2) KEYREF(R.KC2 C2.KC2) KEYREF(C2.KC2 R.KC2) Gây dư thừa dữ liệu Chú thích gồm một mệnh đề có dạng CHECK(ràng buộc), trong đó quy định cụ thể ràng buộc được kiểm tra bên ngoài. Trong trường hợp đang xem xét, nó có dạng CHECK(C2.KC2 R.KC2). Chú ý rằng, để bắt buộc như một ràng buộc không có mặt, có thể thêm khóa ngoại KEYREF(C2.KC2 R.KC2). Tuy nhiên như đã chỉ ra, một khóa ngoại được cho phép trong lược đồ XML chỉ khi nó liên quan đến một khóa và R.KC2 không thể là một khóa: trường hợp C2 giống nhau có thể được kết hợp với nhiều trường hợp C1 và do đó có thể tồn tại trường hợp lặp đi lặp lại C2 theo C1, một tình huống rõ ràng vi phạm các ràng buộc khóa. 3.3.3. Chuyển đổi mối quan hệ kết hợp giữa hai lớp có bản số *-* Hình 5. Quan hệ kết hợp giữa hai lớp có bản số *-* Khi lớp C1 nhúng vào lớp C2 gây ra sự dư thừa dữ liệu vì nếu tồn tại một phần tử của C1 thì có thể tồn tại ít nhất một hoặc nhiều phần tử của C2. Tương tự việc nhúng C2 vào C1 cũng gây ra dư thừa dữ liệu tương tự. 6
Bảng 3. Quy tắc chuyển đổi với bản số *-* Chuyển đổi R lồng vào C1 R lồng vào C2 C1(KC1, R+) C2(KC2) KEY(C1.KC1), KEY(C2.KC2) KEYREF(R.KC2 C2.KC2) CHECK(C2.KC2 R.KC2) C2(KC2, R+) R(C1) C1(KC1) KEY(C2.KC2), KEY(C1.KC1) KEYREF(R.KC1 C1.KC1) CHECK(C1.KC1 R.KC1) Gây dư thừa dữ liệu Gây dư thừa dữ liệu 3.4. Chuyển đổi mối quan hệ kết hợp có lớp kết hợp Hình 6. Quan hệ kết hợp có lớp kết hợp Quan hệ kết hợp giữa hai lớp đối tượng C1 và C2 có lớp kết hợp là lớp C3. Khi chuyển thành lược đồ XML thì các ràng buộc bản số sẽ hoán đổi vị trí cho nhau. Lớp C3 được ánh xạ vào phần tử R giữa lớp C1 và C2. Các thuộc tính của lớp C3 được ánh xạ thành các phần tử con của phần tử R(C3), quy tắc chuyển bản số tương tự các trường hợp Mục 3.3. 3.5. Chuyển đổi mối quan hệ kết tập Hình 7. Quan hệ kết tập Lớp tổng thể C1 có mối quan hệ kết tập với lớp bộ phận C2 nên C2 luôn luôn tham gia trong mối quan hệ với bản số ràng buộc là 1..1. Khi chuyển thành lược đồ XML lớp C1 và C2 được ánh xạ thành phần tử tương ứng. Khi đó, tùy thuộc bản số ràng buộc còn lại của mối quan hệ R ta sẽ có quy tắc chuyển đổi như Bảng 4. Ta phải bổ sung thuộc tính khóa KC1 cho phần tử C2, bởi vì khóa của lớp C2 được tạo ra bằng cách kết hợp khóa bộ phận của nó là KC2 với khóa KC1 của lớp C1. Chính vì vậy ta có ràng buộc khóa KEY (C2.K C2, C2.KC1). 7
Hoàng Quang, Phạm Minh Khoa, Võ Hoàng Liên Minh Ngoài ra, ta phải sử dụng một thủ tục kiểm tra ràng buộc CHECK (C2.KC1 = C1.KC1) nhằm đảm bảo rằng: thuộc tính KC1 trong lớp C2 phải có giá trị bằng giá trị của khóa KC1 tương ứng trong lớp C1. Bảng 4. Quy tắc chuyển đổi quan hệ kết tập Bản số Chuyển đổi (1..1) (0..1) C1 R C2 (1..1) (1..1) C1 R C2 (1..1) (0..*) C1 R C2 C1(KC1, R?) R(KC2, KC1) KEY(C1.KC1), KEY(C2.KC2, C2.KC1), KEY(R.KC2, R.KC1) KEYREF(R.KC2 C2.KC2, R.KC1 C2.KC1) KEYREF(C2.KC1 C1.KC1) CHECK(R.KC1 C1.KC1) C1(KC1, R?) KEY(C1.KC1), KEY(C2.KC2, C2.KC1) CHECK(C2.KC1 C1.KC1) C1(KC1, R) R(KC2, KC1) KEY(C1.KC1), KEY(C2.KC2, C2.KC1),KEY(R.KC2,R.KCC1) KEYREF(R.KC2 C2.KC2, R.KC1 C2.KC1) KEYREF(C2.KC2 R.KC2, C2.KC1 R.KC1) KEYREF(C2.KC1 C1.KC1) CHECK(R.KC1 C1.KC1) C1(KC1,R) KEY(C1.KC1), KEY(C2.KC2, C2.KC1) CHECK(C2.KC1 C1.KC1) C1(KC1, R*) R(KC2, KC1) KEY(C1.KC1), KEY(C2.KC2, C2.KC1),KEY(R.KC2,R.KC1) KEYREF(R.KC2 C2.KC2, R.KC1 C2.KC1) KEYREF(C2.KC2 R.KC2, C2.KC1 R.KC1) KEYREF(C2.KC1 C1.KC1) CHECK(R.KC1 C1.KC1) 8
C1(KC1, R*) KEY(C1.KC1), KEY(C2.KC2, C2.KC1) CHECK(C2.KC1 C1.KC1) C1(KC1, R+) R(KC2, KC1) KEY(C1.KC1), KEY(C2.KC2, C2.KC1),KEY(R.KC2,R.KC1) KEYREF(R.KC2 C2.KC2, R.KC1 C2.KC1) (1..1) (1..*) C1 R C2 KEYREF(C2.KC2 R.KC2, C2.KC1 R.KC1) KEYREF(C2.KC1 C1.KC1) CHECK(R.KC1 C1.KC1) C1(KC1, R+) KEY(C2.KC2), KEY(C2.KC2, C2.KC1) CHECK(C2.KC1 C1.KC1) 3.6. Chuyển đổi mối quan hệ chuyên biệt hóa / tổng quát hóa Tổng quát hoá và chuyên biệt hoá là hai cách nhìn dưới/lên và trên/xuống về sự phân cấp các lớp, mô tả khả năng quản lý cấp độ phức tạp của hệ thống bằng cách trừu tượng hoá các lớp. Tổng quát hoá là đi từ các lớp dưới lên sau đó hình thành lớp tổng quát (lớp trên, lớp cha), tức là cây cấu trúc các lớp từ lá đến gốc. Chuyên biệt hoá là quá trình ngược lại của tổng quát hoá, nó cho phép tạo ra các lớp dưới (lớp con) khác nhau của lớp cha. Trong UML, tổng quát hoá chính là quan hệ kế thừa giữa hai lớp. Nó cho phép lớp con (lớp dưới, lớp kế thừa, hay lớp dẫn xuất) kế thừa trực tiếp các thuộc tính và các hàm thuộc loại công khai, hay được bảo vệ của lớp cha (lớp cơ sở, lớp trên). Hình 8. Quan hệ tổng quát hóa 9
Hoàng Quang, Phạm Minh Khoa, Võ Hoàng Liên Minh Ở lược đồ XML, việc thể hiện thứ bậc ở cây phân cấp biểu diễn tốt quan hệ tổng quát hóa. Lớp cha được biểu diễn ở nút gốc của cây phân cấp. Các lớp con được biểu diễn ở nút lá của cây phân cấp. Xét biểu đồ lớp UML với lớp cha C có quan hệ tổng quát với các lớp con Ci. Lớp cha C có các thuộc tính attc, lớp con Ci có các thuộc tính attci. Các lớp C, Ci được chuyển đổi thành các phần tử C, Ci tương ứng trong XML, và phần tử Ci là con của phần tử C. Các thuộc tính attc được chuyển thành phần tử con của phần tử C. Thuộc tính con attci được ánh xạ thành phần tử con của phần tử Ci có cùng kiểu với phần tử C. C(KC, attc, Ci) Ci(attCi) KEY(C.KC), KEY(Ci.KCi) 4. Kết luận Trong bài báo này, chúng tôi đã đề xuất một phương pháp chuyển đổi trực tiếp từ biểu đồ lớp UML sang lược đồ XML. Tuy nhiên, trong các quy tắc chuyển đổi, quy tắc chuyển đổi quan hệ đệ quy (quan hệ phản xạ) trên biểu đồ lớp UML chưa được đề cập đến. Thách thức này đang được chúng tôi quan tâm như một nghiên cứu tiếp theo nhằm hoàn thiện bộ quy tắc chuyển đổi một cách đầy đủ. 5. Tài liệu tham khảo [1] Hoàng Quang, Võ Hoàng Liên Minh, Võ Văn Hải, Thiết kế các lược đồ XML ở mức khái niệm, Tạp chí Khoa học, Đại học Huế, pp. 137-150, 2014. [2] Embley, D. and Mok, W.Y., Developing XML Documents with guaranteed "good" properties, in Preceedings of the 20th International Conference on Conceptual Modeling, 2001. [3] S. Kolahi, Dependency-preserving normalization of relational and XML data, Journal of Computer and system Sciences, 2007. [4] T. Ling, A normal form for entity-relationship diagram, in Proceeding 4th International Conference on Entity Relationship Approach, 1985. [5] Lv, T., Gu, N., Yan, P., Normal forms for XML documents, in Information and Software Technology, 2005. [6] Yu, C. and Jagadish, J.H., XML schema refinement through redundancy detection and normalization, in The VLDB Journal, 2008. 10
[7] Hoang, Q., Vo, H.L.M. and Vo, V.H., Mapping of Nested Multi-Valued Composite Attributes: An Addition to Conceptual Design for Xml Schemas, in Asian Conference on Information Systems 2014, Nha Trang, Viet Nam, 2014. [8] Hoàng Quang, Nguyễn Văn Toán, Võ Hoàng Liên Minh, Thiết kế lược đồ lớp UML có yếu tố thời gian từ mô hình TimeER, in Hội thảo Quốc gia lần thứ IX về nghiên cứu cơ bản và ứng dụng Công nghệ thông tin, Cần Thơ, Vietnam, 2016. [9] Y. Ou, On Mapping between UML and Entity Relationship Model, in Fakulat fur Mathematik und Iniomatik Universitak Konstanz, Germany, 1998. [10] Massimo Franceschet, Donatella Gubiani, Angelo Montanari and Carla Piazza, A Graph-Theoretic Approach to Map Conceptual Designs to XML Schemas, ACM Transactions on Database Systems, Vol. 38, No. 1, Article 6, 2013. 11