0
Chuyên đề 1: TÌM HIỂU VỀ XML Chương 4 Lược đồ XML (XML Schema) Trường Đại học Nha Trang Khoa Công nghệ Thông tin
Nội dung <ul><li>XML Schema là gì? </li></ul><ul><li>Khai báo phần tử trong XML Schema </li></ul><ul><li>Tham chiếu đến mộ...
XML Schema Definition (XSD)
XML Schema <ul><li>XML Schema mô tả cấu trúc của tài liệu XML, thay thế cho DTD </li></ul><ul><li>XML Schema mô tả: </li><...
Lí do sử dụng XML Schema <ul><li>XML Schema là một sự thay thế cho DTD </li></ul><ul><ul><li>Hỗ trợ nhiều loại dữ liệu </l...
Ví dụ <ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li>< xs:schema   xmlns:xs=“http://www.w3.org/2001/XMLSchema” ...
Schema và namespace <ul><li><schema xmlns=http://www.w3.org/2001/XMLSchema </li></ul><ul><li>targetNamespace=“http://xyz.e...
Tham chiếu đến một XML Schema <ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li><note </li></ul><ul><li>xmlns=http...
Xây dựng lược đồ từ nhiều thành phần <ul><li><schema xmlns=http://www.w3.org/2001/XMLSchema </li></ul><ul><li>targetNamesp...
Khai báo phần tử trong XML Schema <ul><li>Phần tử <schema> là phần tử gốc trong các tài liệu XML Schema </li></ul><ul><li>...
Khai báo phần tử trong XSD <ul><li>xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;   </li></ul><ul><li>Phần tử và lo...
Khai báo phần tử trong XSD <ul><li>Các kiểu phần tử: </li></ul><ul><ul><li>Kiểu giản đơn (Simple element): là một phần tử ...
Khai báo phần tử kiểu giản đơn
Kiểu giản đơn <ul><li>Kiểu giản đơn (Simple element):  </li></ul><ul><ul><li>Là một phần tử XML chỉ có kiểu dữ liệu text, ...
Định nghĩa một phần tử giản đơn <ul><li>< xs:element   name =&quot;xxx&quot;   type =&quot;yyy&quot;/>   </li></ul><ul><li...
Ví dụ <ul><li>XML elements: </li></ul><ul><li>Simple element definition: </li></ul><lastname>Refsnes</lastname> <age>36</a...
Giá trị mặc định và cố định <ul><li>Giá trị mặc định (default value): </li></ul><ul><li><xs:element name=&quot;color&quot;...
Khai báo thuộc tính trong XSD
Thuộc tính trong XSD <ul><li>Thuộc tính được khai báo như một kiểu giản đơn </li></ul><ul><li>Các phần tử giản đơn không t...
Khai báo thuộc tính <ul><li>< xs:attribute   name =&quot;xxx&quot;  type =&quot;yyy&quot;/>   </li></ul><ul><ul><li>xxx : ...
Ví dụ <ul><li>Phần tử XML có thuộc tính: </li></ul><ul><li><lastname  lang=&quot;EN&quot; >Smith</lastname>   </li></ul><u...
Khai báo loại thuộc tính <ul><li>Khai báo default: </li></ul><ul><li><xs:attribute name=&quot;lang&quot; type=&quot;xs:str...
Các loại ràng buộc
Ràng buộc nội dung  <ul><li>Khi một phần tử hay thuộc tính đã định nghĩa kiểu dữ liệu, phần tử hay thuộc tính đó đã có ràn...
Ràng buộc giá trị < xs:element  name=&quot;age&quot;> < xs:simpleType > < xs:restriction  base=&quot;xs:integer&quot;> <xs...
Ràng buộc giá trị < xs:element   name=&quot;car&quot;> < xs:simpleType > < xs:restriction   base=&quot;xs:string&quot;> <x...
Ràng buộc giá trị < xs:element  name=&quot;letter&quot;> < xs:simpleType > < xs:restriction  base=&quot;xs:string&quot;> <...
Ràng buộc giá trị < xs:element   name=&quot;letter&quot;> < xs:simpleType > < xs:restriction   base=&quot;xs:string&quot;>...
Ràng buộc giá trị < xs:element  name=&quot;gender&quot;> < xs:simpleType > < xs:restriction  base=&quot;xs:string&quot;> <...
Ràng buộc về ký tự dấu cách <ul><li><xs:whiteSpace value=&quot;preserve&quot;/>:  XML parser sẽ không loại bỏ bất kỳ ký tự...
Ràng buộc về độ dài < xs:element  name=&quot;password&quot;> < xs:simpleType > < xs:restriction  base=&quot;xs:string&quot...
Bảng tóm lược Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled  whiteSpace   Specifie...
Khai báo phần tử kiểu phức hợp
Định nghĩa phần tử phức hợp <ul><li>Phần tử phức hợp là một phần tử XML chứa các phần tử khác hoặc có thuộc tính </li></ul...
Ví dụ <ul><li>< product  pid=&quot;1345&quot; / >   </li></ul><ul><li>< employee > </li></ul><ul><li><firstname>John</firs...
Định nghĩa một phần tử phức hợp trong XSD <ul><li>Trong tài liệu XML: </li></ul><ul><li>Có nhiều cách để định nghĩa phần t...
Định nghĩa một phần tử phức hợp trong XSD <ul><li>Cách 1: </li></ul>< xs:element  name=&quot;employee&quot;> < xs:complexT...
Định nghĩa một phần tử phức hợp trong XSD <ul><li>Cách 2: </li></ul>< xs:element  name=&quot;employee&quot; type=&quot;per...
Định nghĩa phần tử rỗng <ul><li><product prodid=&quot;1345&quot; />   </li></ul>< xs:element  name=&quot;product&quot; typ...
Định nghĩa phần tử chỉ chứa phần tử con  <ul><li><person> </li></ul><ul><li><firstname>John</firstname> </li></ul><ul><li>...
Upcoming SlideShare
Loading in...5
×

Chapter 4 xml schema

5,308

Published on

Tổng quan về XSD

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
5,308
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
280
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Chapter 4 xml schema"

  1. 1. Chuyên đề 1: TÌM HIỂU VỀ XML Chương 4 Lược đồ XML (XML Schema) Trường Đại học Nha Trang Khoa Công nghệ Thông tin
  2. 2. Nội dung <ul><li>XML Schema là gì? </li></ul><ul><li>Khai báo phần tử trong XML Schema </li></ul><ul><li>Tham chiếu đến một XML Schema </li></ul>
  3. 3. XML Schema Definition (XSD)
  4. 4. XML Schema <ul><li>XML Schema mô tả cấu trúc của tài liệu XML, thay thế cho DTD </li></ul><ul><li>XML Schema mô tả: </li></ul><ul><ul><li>Các phần tử và thuộc tính trong tài liệu XML </li></ul></ul><ul><ul><li>Thứ tự và số lượng các phần tử con </li></ul></ul><ul><ul><li>Các kiểu dữ liệu của phần tử và thuộc tính </li></ul></ul>
  5. 5. Lí do sử dụng XML Schema <ul><li>XML Schema là một sự thay thế cho DTD </li></ul><ul><ul><li>Hỗ trợ nhiều loại dữ liệu </li></ul></ul><ul><ul><li>Sử dụng cú pháp XML </li></ul></ul><ul><ul><li>Bảo toàn sự giao tiếp dữ liệu </li></ul></ul><ul><ul><li>Ràng buộc khóa và tham chiếu mạnh hơn DTD </li></ul></ul><ul><ul><li>Tích hợp với namespace </li></ul></ul>
  6. 6. Ví dụ <ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li>< xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” </li></ul><ul><li>targetNamespace=“http://www.w3schools.com” </li></ul><ul><li>xmlns=“http://www.w3schools.com” </li></ul><ul><li>elementFormDefault=&quot;qualified&quot;> </li></ul><ul><li>< xs:element name=&quot;note&quot; > </li></ul><ul><li>< xs:complexType > </li></ul><ul><li>< xs:sequence > </li></ul><ul><li><xs:element name=&quot;to&quot; type=&quot;xs:string&quot;/> </li></ul><ul><li><xs:element name=&quot;from&quot; type=&quot;xs:string&quot;/> </li></ul><ul><li><xs:element name=&quot;heading&quot; type=&quot;xs:string&quot;/> </li></ul><ul><li><xs:element name=&quot;body&quot; type=&quot;xs:string&quot;/> </li></ul><ul><li>< /xs:sequence > </li></ul><ul><li>< /xs:complexType > </li></ul><ul><li>< /xs:element > </li></ul><ul><li>< /xs:schema > </li></ul>
  7. 7. Schema và namespace <ul><li><schema xmlns=http://www.w3.org/2001/XMLSchema </li></ul><ul><li>targetNamespace=“http://xyz.edu/Admin”> </li></ul><ul><li>… .. </li></ul><ul><li></schema> </li></ul><ul><li>http://www.w3.org/2001/XMLSchema: namespace của các từ khóa dùng trong sự xác định lược đồ XML, ví dụ: schema, targetNamespace,… </li></ul><ul><li>targetNamespace: định nghĩa namespace của lược đồ được xác định trong tài liệu <schema>…</schema> trên </li></ul>
  8. 8. Tham chiếu đến một XML Schema <ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li><note </li></ul><ul><li>xmlns=http://www.w3schools.com </li></ul><ul><li>xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance </li></ul><ul><li>xsi:schemaLocation=&quot;http://www.w3schools.com note.xsd&quot;> </li></ul><ul><li><to>Tove</to> </li></ul><ul><li><from>Jani</from> </li></ul><ul><li><heading>Reminder</heading> </li></ul><ul><li><body>Don't forget me this weekend!</body> </li></ul><ul><li></note> </li></ul><ul><li>xsi:schemaLocation nghĩa là lược đồ của namespace http://www.w3schools.com được tìm thấy ở http://www.w3schools.com note.xsd </li></ul>
  9. 9. Xây dựng lược đồ từ nhiều thành phần <ul><li><schema xmlns=http://www.w3.org/2001/XMLSchema </li></ul><ul><li>targetNamespace=“http://xyz.edu/Admin”> </li></ul><ul><li>< include schemaLocation=“http://xyz.edu/StudentTypes.xsd”> </li></ul><ul><li>< include schemaLocation=“http://xyz.edu/ClassTypes.xsd”> </li></ul><ul><li>< include schemaLocation=“http://xyz.edu/CourseTypes.xsd”> </li></ul><ul><li>… . </li></ul><ul><li></schema> </li></ul><ul><li><include>: giống như #include trong ngôn ngữ C </li></ul><ul><li>schemaLocation: cho biết nơi để lấy thông tin </li></ul>
  10. 10. Khai báo phần tử trong XML Schema <ul><li>Phần tử <schema> là phần tử gốc trong các tài liệu XML Schema </li></ul><ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li>< xs:schema xmlns:xs= http://www.w3.org/2001/XMLSchema </li></ul><ul><li>targetNamespace= http://www.w3schools.com </li></ul><ul><li>xmlns= http://www.w3schools.com </li></ul><ul><li>elementFormDefault=&quot;qualified&quot;> </li></ul><ul><li>...... </li></ul><ul><li></ xs:schema > </li></ul>
  11. 11. Khai báo phần tử trong XSD <ul><li>xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot; </li></ul><ul><li>Phần tử và loại dữ liệu trong lược đồ được khai báo trong namespace http://www.w3.org/2001/XMLSchema và có tiền tố là xs </li></ul><ul><li>targetNamespace=http://www.w3schools.com </li></ul><ul><li>Các p hần tử được định nghĩa trong lược đồ đến từ namespace http://www.w3schools.com </li></ul><ul><li>xmlns=&quot;http://www.w3schools.com&quot; </li></ul><ul><li>namespace mặc định là xmlns=&quot;http://www.w3schools.com&quot; </li></ul><ul><li>elementFormDefault=&quot;qualified“ </li></ul><ul><li>Bất kỳ phần tử nào được sử dụng trong tài liệu XML phải từ namespace đảm bảo chất lượng </li></ul>
  12. 12. Khai báo phần tử trong XSD <ul><li>Các kiểu phần tử: </li></ul><ul><ul><li>Kiểu giản đơn (Simple element): là một phần tử XML chỉ có kiểu dữ liệu text, mà không có thuộc tính hoặc không thể chứa các phần tử khác </li></ul></ul><ul><ul><ul><li>Kiểu text có thể có nhiều loại </li></ul></ul></ul><ul><ul><li>Kiểu phức hợp (Complex element): là một phần tử XML có thuộc tính, hoặc chứa các phần tử con khác </li></ul></ul>
  13. 13. Khai báo phần tử kiểu giản đơn
  14. 14. Kiểu giản đơn <ul><li>Kiểu giản đơn (Simple element): </li></ul><ul><ul><li>Là một phần tử XML chỉ có kiểu dữ liệu text, mà không có thuộc tính hoặc không thể chứa các phần tử khác </li></ul></ul><ul><ul><li>Kiểu text có thể có nhiều loại khác nhau: </li></ul></ul><ul><ul><ul><li>Built-in data type </li></ul></ul></ul><ul><ul><ul><li>User-defined data type </li></ul></ul></ul><ul><ul><li>Người dùng có thể thêm ràng buộc cho kiểu dữ liệu để giới hạn nội dung của nó, hoặc yêu cầu dữ liệu thỏa mãn một mẫu nào đó </li></ul></ul>
  15. 15. Định nghĩa một phần tử giản đơn <ul><li>< xs:element name =&quot;xxx&quot; type =&quot;yyy&quot;/> </li></ul><ul><li>xxx : tên của phần tử </li></ul><ul><li>yyy : kiểu dữ liệu của phần tử </li></ul><ul><li>Các kiểu dữ liệu thông dụng: </li></ul><ul><ul><li>xs:string </li></ul></ul><ul><ul><li>xs:decimal </li></ul></ul><ul><ul><li>xs:integer </li></ul></ul><ul><ul><li>xs:boolean </li></ul></ul><ul><ul><li>xs:date </li></ul></ul><ul><ul><li>xs:time </li></ul></ul>
  16. 16. Ví dụ <ul><li>XML elements: </li></ul><ul><li>Simple element definition: </li></ul><lastname>Refsnes</lastname> <age>36</age> <dateborn>1970-03-27</dateborn> < xs:element name =&quot;lastname&quot; type =&quot;xs:string&quot;/> < xs:element name =&quot;age&quot; type =&quot;xs:integer&quot;/> < xs:element name =&quot;dateborn&quot; type =&quot;xs:date&quot;/>
  17. 17. Giá trị mặc định và cố định <ul><li>Giá trị mặc định (default value): </li></ul><ul><li><xs:element name=&quot;color&quot; type=&quot;xs:string&quot; default=&quot;red&quot; /> </li></ul><ul><li>Giá trị cố định (fixed value): </li></ul><ul><li><xs:element name=&quot;color&quot; type=&quot;xs:string&quot; fixed=&quot;red&quot; /> </li></ul>
  18. 18. Khai báo thuộc tính trong XSD
  19. 19. Thuộc tính trong XSD <ul><li>Thuộc tính được khai báo như một kiểu giản đơn </li></ul><ul><li>Các phần tử giản đơn không thể có thuộc tính. Nếu một phần tử có thuộc tính, thì phần tử đó được xem là phần tử phức hợp </li></ul>
  20. 20. Khai báo thuộc tính <ul><li>< xs:attribute name =&quot;xxx&quot; type =&quot;yyy&quot;/> </li></ul><ul><ul><li>xxx : tên của thuộc tính </li></ul></ul><ul><ul><li>yyy : kiểu dữ liệu của thuộc tính. Các kiểu dữ liệu thông dụng: </li></ul></ul>xs:boolean xs:date xs:time xs:string xs:decimal xs:integer
  21. 21. Ví dụ <ul><li>Phần tử XML có thuộc tính: </li></ul><ul><li><lastname lang=&quot;EN&quot; >Smith</lastname> </li></ul><ul><li>Định nghĩa thuộc tính trong XSD: </li></ul><ul><li>< xs:attribute name =&quot;lang&quot; type =&quot;xs:string&quot;/> </li></ul>
  22. 22. Khai báo loại thuộc tính <ul><li>Khai báo default: </li></ul><ul><li><xs:attribute name=&quot;lang&quot; type=&quot;xs:string&quot; default =&quot;EN&quot;/> </li></ul><ul><li>Khai báo fixed: </li></ul><ul><li><xs:attribute name=&quot;lang&quot; type=&quot;xs:string&quot; fixed =&quot;EN&quot;/> </li></ul><ul><li>Khai báo required: </li></ul><ul><li><xs:attribute name=&quot;lang&quot; type=&quot;xs:string&quot; use =&quot;required&quot;/> </li></ul>
  23. 23. Các loại ràng buộc
  24. 24. Ràng buộc nội dung <ul><li>Khi một phần tử hay thuộc tính đã định nghĩa kiểu dữ liệu, phần tử hay thuộc tính đó đã có ràng buộc về nội dung </li></ul><ul><li>Người dùng có thể thêm các ràng buộc cho phần tử hay thuộc tính, gọi là (facet) </li></ul>
  25. 25. Ràng buộc giá trị < xs:element name=&quot;age&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:integer&quot;> <xs:minInclusive value=&quot;0&quot;/> <xs:maxInclusive value=&quot;120&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element > Kiểu miền con
  26. 26. Ràng buộc giá trị < xs:element name=&quot;car&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:enumeration value=&quot;Audi&quot;/> <xs:enumeration value=&quot;Golf&quot;/> <xs:enumeration value=&quot;BMW&quot;/> < /xs:restriction > < /xs:simpleType > </xs:element > Kiểu liệt kê
  27. 27. Ràng buộc giá trị < xs:element name=&quot;letter&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:pattern value=&quot;[a-z]&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element > < xs:element name=&quot;initials&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:pattern value=&quot;[a-zA-Z][a-zA-Z][a-zA-Z]&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element > Pattern constraint
  28. 28. Ràng buộc giá trị < xs:element name=&quot;letter&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:pattern value=&quot;([a-z])*&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element > < xs:element name=&quot;letter&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:pattern value=&quot;([a-z][A-Z])+&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element >
  29. 29. Ràng buộc giá trị < xs:element name=&quot;gender&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:pattern value=&quot;male|female&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element > < xs:element name=&quot;password&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:pattern value=&quot;[a-zA-Z0-9]{8}&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element >
  30. 30. Ràng buộc về ký tự dấu cách <ul><li><xs:whiteSpace value=&quot;preserve&quot;/>: XML parser sẽ không loại bỏ bất kỳ ký tự dấu cách nào </li></ul><ul><li><xs:whiteSpace value=“replace&quot;/>: XML parser sẽ thay thế tất cả ký tự dấu cách (line feed, tab, space, carriage return) bằng khoảng trắng </li></ul><ul><li><xs:whiteSpace value=“collapse&quot;/>: XML parser sẽ loại bỏ tất cả ký tự dấu cách dư (line feed, tab, space, carriage return) bằng khoảng trắng </li></ul>< xs:element name=&quot;address&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:whiteSpace value=&quot;preserve&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element >
  31. 31. Ràng buộc về độ dài < xs:element name=&quot;password&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:length value=&quot;8&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element > < xs:element name=&quot;password&quot;> < xs:simpleType > < xs:restriction base=&quot;xs:string&quot;> <xs:minLength value=&quot;5&quot;/> <xs:maxLength value=&quot;8&quot;/> < /xs:restriction > < /xs:simpleType > < /xs:element >
  32. 32. Bảng tóm lược Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled whiteSpace Specifies the exact number of digits allowed. Must be greater than zero totalDigits Defines the exact sequence of characters that are acceptable pattern Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero minLength Specifies the lower bounds for numeric values (the value must be greater than or equal to this value) minInclusive Specifies the lower bounds for numeric values (the value must be greater than this value) minExclusive Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero maxLength Specifies the upper bounds for numeric values (the value must be less than or equal to this value) maxInclusive Specifies the upper bounds for numeric values (the value must be less than this value) maxExclusive Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero length Specifies the maximum number of decimal places allowed. Must be equal to or greater than zero fractionDigits Defines a list of acceptable values enumeration Description Constraint
  33. 33. Khai báo phần tử kiểu phức hợp
  34. 34. Định nghĩa phần tử phức hợp <ul><li>Phần tử phức hợp là một phần tử XML chứa các phần tử khác hoặc có thuộc tính </li></ul><ul><li>Có 4 loại phần tử phức hợp: </li></ul><ul><ul><li>Phần tử rỗng </li></ul></ul><ul><ul><li>Phần tử chỉ chứa các phần tử khác </li></ul></ul><ul><ul><li>Phần tử chỉ chứa văn bản </li></ul></ul><ul><ul><li>Phần tử vừa chứa các phần tử khác, vừa chứa văn bản </li></ul></ul>
  35. 35. Ví dụ <ul><li>< product pid=&quot;1345&quot; / > </li></ul><ul><li>< employee > </li></ul><ul><li><firstname>John</firstname> </li></ul><ul><li><lastname>Smith</lastname> </li></ul><ul><li>< /employee > </li></ul><ul><li>< food type=&quot;dessert&quot;>Ice cream< /food > </li></ul><ul><li>< description > </li></ul><ul><li>It happened on <date lang=&quot;norwegian&quot;>03.03.99</date> </li></ul><ul><li> .... </li></ul><ul><li>< /description > </li></ul>
  36. 36. Định nghĩa một phần tử phức hợp trong XSD <ul><li>Trong tài liệu XML: </li></ul><ul><li>Có nhiều cách để định nghĩa phần tử employee… </li></ul><employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
  37. 37. Định nghĩa một phần tử phức hợp trong XSD <ul><li>Cách 1: </li></ul>< xs:element name=&quot;employee&quot;> < xs:complexType > < xs:sequence > <xs:element name=&quot;firstname&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;lastname&quot; type=&quot;xs:string&quot;/> < /xs:sequence > < /xs:complexType > < /xs:element >
  38. 38. Định nghĩa một phần tử phức hợp trong XSD <ul><li>Cách 2: </li></ul>< xs:element name=&quot;employee&quot; type=&quot;personinfo&quot;/> < xs:complexType name=&quot;personinfo&quot;> < xs:sequence > <xs:element name=&quot;firstname&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;lastname&quot; type=&quot;xs:string&quot;/> < /xs:sequence > < /xs:complexType >
  39. 39. Định nghĩa phần tử rỗng <ul><li><product prodid=&quot;1345&quot; /> </li></ul>< xs:element name=&quot;product&quot; type=&quot;prodtype&quot;/> < xs:complexType name=&quot;prodtype&quot;> < xs:attribute name=&quot;prodid&quot; type=&quot;xs:positiveInteger&quot;/> < /xs:complexType > < xs:element name=&quot;product&quot;> < xs:complexType > < xs:attribute name=&quot;prodid&quot; type=&quot;xs:positiveInteger&quot;/> < /xs:complexType > < /xs:element >
  40. 40. Định nghĩa phần tử chỉ chứa phần tử con <ul><li><person> </li></ul><ul><li><firstname>John</firstname> </li></ul><ul><li><lastname>Smith</lastname> </li></ul><ul><li></person> </li></ul>< xs:element name=&quot;person&quot;> < xs:complexType > < xs:sequence > <xs:element name=&quot;firstname&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;lastname&quot; type=&quot;xs:string&quot;/> < /xs:sequence > < /xs:complexType > < /xs:element >
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×