Chào mừng đến thăm VovisoftWeb site
Đoạn lệnh HTML có chứa hai tag đánh dấuMỗi cặp Tag gói liệu đánh dấu tag mở tag đóng Hai tag đóng
Tất nằm bên cặp Tags gọi phần tử (Phần tử) Để nói thêm đặc tính Phần tử, ta có thuộc tính (Thuộc tính) align tag mở Phần tử dạng Thuộc tínhName="value", thí dụ align="center" Vì Tag HTML dùng để định dạng hiển thị tài liệu nên trình duyệt (browse) cần biết ý nghĩa Tag Một trình duyệt hay HTML parser thu thập thị sau từ câu HTML trên: Bắt đầu Paragraph đặt Text trang () Hiển thị câu Chào mừng đến thăm Hiển thị chữ Vovisoft cách mạnh mẽ (Vovisoft) Hiển thị câu Web site Gặp điểm cuối Paragraph (
) Để xử lý đoạn mã lệnh HTML trên, trình duyệt cần phải xác định vị trí Tags mà cịn phải hiểu ý nghĩa Tag Vì Tag có ý ngĩa riêng nó, thí dụ P cho Paragraph, STRONG để nhấn mạnh, thí dụ dùng chữ đậm (Bold) II Cơ XML Như đề cập trên, tài liệu HTML dùng tag để đánh dấu áp dụng SGML Giống HTML, XML đến từ SGML Nó dùng Tag để định nghĩa liệu Điểm khác biệt chánh HTML XML Tags HTML chứa ý nghĩa định dạng trình bày liệu, Tag XML chứa ý nghĩa cấu trúc liệu Thí dụ tài liệu đặt hàng (order) XML đây: 2002-3-27 Peter Collingwood 1 5 4 3 Tài liệu nầy chứa liệu, khơng nhắc nhở đến cách trình bày Điều nầy có nghĩa XML parser (chương trình ngắt khúc phân tích) khơng cần phải hiểu ý nghĩa cũa Tags Nó cần tìm Tags xác định tài liệu XML hợp lệ Trình duyệt khơng cần phải hiểu ý nghĩa Tags, nên ta dùng Tag Đó lý người ta dùng chữ eXtensible (mở rộng thêm được), dùng chữ để viết tắt lại chọn X thay e, có lẽ X nghe có vẽ kỳ bí, hấp dẫn Chúng ta quan sát kỹ cấu trúc XML Trước hết, phần tử Order có thuộc tính OrderNo với giá trị 1023 Bên phần tử Order có: Một phần tử OrderDate với giá trị 2002-3-27 Một phần tử Customer với giá trị Peter Collingwood Hai phần tử Item, phần tử Item lại chứa phần tử ProductID phần tử Quantity Đôi ta để phần tử với tên không chứa giá trị, lý ta muốn dùng phần tử tùy chọn, có được, khơng có khơng Cách tự nhiên gắn tag đóng sau tag mở Thí dụ phần tử rỗng MiddleInitial phần tử customer đây: Stephen King Có cách khác để biểu diễn phần tử rỗng bỏ tag đóng thêm dấu "/" cuối tag mở Ta viết lại thí dụ customer sau: Stephen King Dĩ nhiên phần tử rỗng có thuộc tính phần tử PhoneNumber thứ nhì đây: Stephen King 9847 2635 Một tài liệu XML phải well-formed (hợp khuôn dạng) hợp lệ Mặc dầu hai từ nầy nghe giống nhau, chúng có ý nghĩa khác Một XML well-formed XML thích hợp cho parser xử lý Tức XML tuân thủ luật lệ Tag, phần tử, thuộc tính , giá trị v.v chứa bên để parser nhận diện phân biệt thứ Cần ý XML well-formed chưa chứa đựng liệu hữu dụng công việc làm ăn Là well-formed có nghĩa XML có cấu trúc Để hữu dụng cho công việc làm ăn, XML well-formed mà cần phải hợp lệ Một tài liệu XML hợp lệ chứa liệu cần có loại tài liệu hay lớp Thí dụ XML đặt hàng bị địi hỏi phải có thuộc tính OrderNo phần tử Orderdate Parser validate xử lý tài liệu XML cách kiểm tra liệu XML xem có định nghĩa định loại tài liệu XML Chỉ định Document Type Definition (DTD) hay Schema (giản đồ) Vậy làm để tạo tài liệu XML well-formed? Để well-formed, tài liệu XML phải theo luật sau đây: - Phải có root (gốc) Phần tử nhất, gọi Document Phần tử, chứa tất Phần tử khác tài liệu - Mỗi tag mở phải có tag đong1 giống - Các Tag XML phân biệt chữ hoa chữ thường - Mỗi phần tử phải nằm trọn bên phần tử cha - Giá trị thuộc tính XML phải gói cặp nháy kép hay cặp dấu nháy đơn Luật thứ địi hỏi phải có phần tử gốc nhất, nên tài liệu khơng well-formed khơng có phần tử gốc: Chair Desk Một tài liệu XML phần tử gốc gọi tài liệu XML phân mảnh Để làm cho well-formed ta cần phải thêm phần tử gốc đây: Chair Desk Luật thứ hai nói tag mở phải có tag đóng giống Tức Tag mở phải đóng lại Phần tử rỗng viết cách gọn gọi có Tag tự đóng lại Các Tag khác phải có tag đóng Tài liệu XML khơng well-formed có chứa một Tag thiếu closing Tag : 2002-6-14 Helen Mooney 2 1 4 3 Để làm cho well-formed ta phải thêm tag đóng cho phần tử Item thứ nhất: 2002-6-14 Helen Mooney 2 1 4 3 Luật thứ ba nói tên Tag phân biệt chữ hoa chữ thường Như khác với , ta dùng Tag để đóng Tag Cái XML khơng well-formed tag mở tag đóng phần tử OrderDate không đánh vần giống nhau: 2001-01-01 Graeme Malcolm Muốn làm cho well formed, ta phải sửa chữ d thành chữ hoa D sau: 2001-01-01 Graeme Malcolm Luật thứ tư nói phần tử phải nằm trọn bên phần tử cha nó, tức khơng thể bắt đầu phần tử phần tử chưa chấm dứt Thí dụ tài liệu XML khơng well-formed tag đóng Category trước tag đóng Product Coca-Cola Muốn sửa cho well-formed ta cần phải đóng Tag Product trước đây: Coca-Cola Luật cuối tài liệu XML well-formed đòi hỏi giá trị thuộc tính phải gói cặp dấu nháy đơn hay cặp dấu nháy kép Tài liệu không well-form giá trị thuộc tính khơng ngoặc đàng hồng, số khơng có dấu ngoặc, số có nháy đơn nháy kép: Chair business 1389 19.99 5000 10 4095 An overview of available database systems with emphasis on common business applications Illustrated. 1991-06-11T16:00:00 BU1111 Cooking with Computers: Surreptitious Balance Sheets business 1389 11.95 5000 10 3876 Helpful hints on how to use your electronic resources to the best advantage. 1991-06-08T16:00:00 BU2075 You Can Combat Computer Stress! business 0736 2.99 10125 24 18722 The latest medical and psychological techniques for living with the electronic office Easy-to-understand explanations. 1991-06-29T16:00:00 Sau tập tin giản đồ sử dụng cho tập tin book.xml: 16-6 book.xsd: The XML schema for book.xml 244 IV Parsing tạo tài liệu XML XmlReader XmlWriter lớp trừu tượng mơ hình đối tượng XML NET Framework XmlReader cung cấp API để đọc tài liệu XML, XmlWriter cung cấp API bổ sung để sản xuất tài liệu XML tương thích W3C Trong việc thiết kế lớp này, Microsoft mượn khái niệm từ DOM lẫn SAX XmlReader Lớp trừu tượng XmlReader cung cấp trỏ nhanh, đọc, đọc tiến tài liệu XML Việc sử dụng XmlReader nhiều việc sử dụng DOM, bạn đọc làm việc với nút thời điểm Một phương thức C# sau mà ngang qua tài liệu XML trình bày tên tất phần tử tài liệu public void DisplayElements( XmlReader reader ) { /* read the next node in document order */ while ( reader.Read() ) { /* if this is an element node, display its name */ Console.WriteLine( reader.Name ); } } Phương thức C# sau hiển thị giá trị phần tử tại: public void DisplayNode( XmlReader node ) { switch ( node.NodeType ) { case XmlNodeType.Element: Console.Write( "" ); break; case XmlNodeType.Text: Console.Write( node.Value ); break; case XmlNodeType.CDATA: Console.Write( node.Value ); break; case XmlNodeType.ProcessingInstruction: Console.Write( "" ); break; case XmlNodeType.Comment: Console.Write( "" ); break; case XmlNodeType.Document: Console.Write( "" ); break; case XmlNodeType.Whitespace: 245 Console.Write( node.Value ); break; case XmlNodeType.SignificantWhitespace: Console.Write( node.Value ); break; case XmlNodeType.EndTag: Console.Write( "" ); break; } } Đoạn lệnh sau đọc giá trị thuộc tính: for ( int = 0; i < node.AttributeCount; i++ ) { Console.WriteLine( node.GetAttribute( i ) ); } while ( node.MoveToNextAttribute() ) { Console.Write( " " + node.Name + "=\"" + node.Value + "\"" ); } Một ví dụ đọc tài liệu XML: ReadXML.cs: A C# console using the discussed methods and properties using System; using System.IO; using System.Xml; public class ReadXML { public void DisplayNode( XmlReader node ) { switch ( node.NodeType ) { case XmlNodeType.Element: Console.Write( ""); break; case XmlNodeType.Text: Console.Write( node.Value ); break; case XmlNodeType.CDATA: Console.Write( node.Value ); break; case XmlNodeType.ProcessingInstruction: Console.Write( "" ); break; case XmlNodeType.Comment: Console.Write( "" ); break; case XmlNodeType.Document: Console.Write( "" ); break; case XmlNodeType.Whitespace: Console.Write( node.Value ); break; 246 case XmlNodeType.SignificantWhitespace: Console.Write( node.Value ); break; case XmlNodeType.EndTag: Console.Write( "" ); break; } } public void DisplayElements( XmlReader reader ) { /* read the next node in document order */ while ( reader.Read() ) { DisplayNode( reader ); } } public static void Main( String[] args ) { XmlTextReader reader = new XmlTextReader( "book.xml" ); ReadXML tr = new ReadXML(); tr.DisplayElements( reader ); } } Ví dụ việc sử dụng mã lệnh kiểm tra hợp lệ cách sử dụng giản đồ: Validation.cs: Code that validates an XML file using schema validation using System; using System.IO; using System.Xml; public class Validation { static bool gotError = false; public static void Main( String[] args ) { /* make sure we were passed with a filename */ if ( args.Length == ) { Console.WriteLine( "Usage: validation filename" ); return; } try { /* Instantiates an XmlReaderWriter using the filename passed in from the command line */ XmlTextReader reader = new XmlTextReader( args[ ] ); /* Specify the validation method */ reader.Validation = Validation.Schema; /* Register event handler for reporting validation errors */ reader.ValidationEventHandler += new ValidationEventHandler ( OnValidateError ); /* traverse the whole document */ while ( reader.Read() ); if ( !gotError ) { Console.WriteLine( "Document is valid" ); } } catch ( Exception e ) 247 { Console.WriteLine( "Error: " + e.Message ); } } public static void OnValidateError( Object sender, ValidationEventArgs args ) { gotError = true; Console.WriteLine( "Error: " + args.Message ); } } XmlWriter XmlWriter lớp trừu tượng cho phép xuất dịng liệu tương thích W3C XML Đoạn mã lệnh sau minh họa cho việc sử dụng lớp XmlWriter WriteXML.cs: Code that generates an XML document to the console using System; using System.IO; using System.Xml; public class WriteXML { public static void Main( String[] args ) { /* Instantiates an XmlTextWriter that writes to the console */ XmlTextWriter writer = new XmlTextWriter( Console.Out ); /* Use indenting for readability */ writer.Formatting = Formatting.Indented; writer.Indentation = 4; /* Now write out our XML document */ writer.WriteStartDocument(); writer.WriteStartElement( "Persons" ); writer.WriteStartElement( "Person" ); writer.WriteStartElement( "Name" ); writer.WriteStartAttribute( null, "firstName", null ); writer.WriteString( "Albert" ); writer.WriteEndAttribute(); writer.WriteStartAttribute( null, "lastName", null ); writer.WriteString( "Einstein" ); writer.WriteEndAttribute(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteStartElement( "Person" ); writer.WriteStartElement( "Name" ); writer.WriteStartAttribute( null, "firstName", null ); writer.WriteString( "Niels" ); writer.WriteEndAttribute(); writer.WriteStartAttribute( null, "lastName", null ); writer.WriteString( "Bohr" ); writer.WriteEndAttribute(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); /* Don't forget to close the writer */ writer.Close(); } } BÀI TẬP VỀ NHÀ 248 Hãy xây dựng ứng dụng thực tế cài đặt ứng dụng hướng e-Business Biztalk Server 249 CÁC THUẬT NGỮ CHUYÊN MÔN Markup Language: ngôn ngữ đánh dấu onload event : bắt đầu load Database Management Systems –DBMSs : hệ quản trị sở liệu Structured Query Language –SQL : ngôn ngữ truy vấn cấu trúc Binary Large Object –BLOB : đối tượng nhị phân lớn NULL : rỗng Validate: kiểm tra hợp lệ Schema: giản đồ cascading style sheet (CSS): loại style sheet dùng để định màu kiểu chữ DBMSs (Database Management Systems ): hệ quản trị sở liệu RDBMS (Relational DBMS): Hệ quản trị sở liệu quan hệ 250 TÀI LIỆU THAM KHẢO http://www.xml.com – Các báo tin tức XML http://www.w3c.org - World Wide Web Consortium http://www.microsoft com/xml - Web site XML Microsoft http://developer.netscape com/tech/metadata/index html http://www.software ibm.com/xml - Web site XML IBM http://www.xmlrepository com http://www.vovisoft.com/XML/XML01/XML01.htm http://vi.wikipedia.org/wiki/XML#L.E1.BB.8Bch_s.E1.BB.AD 251 ... trang web, giáo trình giúp cung cấp cho người học kiến thức lập trình web với XML kỹ lập trình web công cụ Microsoft Visual Studio NET Để học mơ đun người học cần có kiến thức thiết kế trang web. .. Quy định quy trình xây dựng, thẩm định ban hành chương trình; tổ chức biên soạn, lựa chọn, thẩm định giáo trình đào tạo trình độ trung cấp, trình độ cao đẳng Quá trình biên soạn: Giáo trình biên... GIỚI THIỆU VỀ MÔ ĐUN/MÔN HỌC SƠ ĐỒ QUAN HỆ THEO TRÌNH TỰ HỌC NGHỀ CÁC HÌNH THỨC HỌC TẬP CHÍNH TRONG MÔ ĐUN/MÔN HỌC YÊU CẦU VỀ ĐÁNH GIÁ HỒN THÀNH MƠ ĐUN/MƠN HỌC Bài 1:TỔNG QUAN