Bài 2: Đi lại trong XML bằng XPATH (phần I) pdf

50 585 4
Bài 2: Đi lại trong XML bằng XPATH (phần I) pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài Đi lại XML XPATH (phần I) Chúng ta thấy cấu trúc cú pháp XML tương đối đơn giãn XML cho ta cách chuẩn để trao đổi tin tức computers Bước tìm hiểu cách chương trình chế biến (process) tài liệu XML Dĩ nhiên để chế biến XML chương trình ứng dụng phải có cách lại bên tài liệu để lấy values Elements hay Attributes Do người ta thiết kế ngôn ngữ XML Path language, mà ta gọi tắt XPath XPath đóng vai trị quan trọng công tác trao đổi liệu computers hay chương trình ứng dụng cho phép ta lựa chọn hay sàng lọc tin tức muốn để trao đổi hay hiển thị Nếu làm việc với sở liệu ta dùng SQL statement Select from TableXYZ WHERE để trích số records từ table, làm việc với XML, table liệu nho nhỏ, XPath cho ta expressions criteria (điều kiện) giống giống clause WHERE SQL XPath chuẩn để process XML, giống SQL chuẩn để làm việc với sở liệu Tiên phuông việc triển khai chương trình áp dụng XPath công tác công ty phần mềm lớn Microsoft, Oracle, Sun, IBM, v.v Sở dĩ ta cần có chuẩn XPath áp dụng nhiều hồn cảnh, nên cần phải có lý thuyết rõ ràng, xác Lý thuyết XPath khơ khan áp dụng kỹ thuật gia đình XML Cho nên bạn kiên nhẫn nắm vững điều để gặp chỗ người ta dùng XPath nhận diện hiểu So với võ thuật, XPath XML giống Tấn pháp cách thở Tập luyện Tấn pháp mõi chân, tập thở nhàm chán, khơng có hai thứ chiêu khơng có cơng lực, chưa đánh thua Ta học thứ thường dùng XPath thơi, bạn muốn có đầy đủ chi tiết XPath tham khão Specification http://www.w3c.org/TR/xpath XML XPath XPath cho ta cú pháp để diễn tả cách lại XML Ta coi tài liệu XML đại diện tree (cây) có nhiều nodes Mỗi Element hay Attribute node Để minh họa ý niệm nầy, bạn quan sát tài liệu đặt hàng (order) XML sau: 2002-03-26 John Costello Chair 6 Desk 1 Ta biểu diễn XML Tree đây, node Element màu nâu, node Attribute màu xanh: Chỉ định Location Path Bạn dùng XPath expression để định Location Path (lối đến vị trí) đến node hay trích (trả về) hay nhiều nodes thỏa điều kiện yêu cầu XPath expression tuyệt đối, tức lấy node gốc làm chuẩn hay tương đối, tức khởi đầu từ node vừa chọn Node gọi context node (node vai tình huống) Có hai cách viết để diễn tả XPath Location, viết nguyên viết tắt Trong hai cách ta dùng dấu slash (/) để nói đến Document Element, tức node gốc Ta lại node Tree giống giống node Windows System Directory mà ta thấy Panel bên trái Window Explorer Ta dùng ký hiệu slash /, chấm hai chấm Windows System File Folder cho cách viết tắt XPath Location để xuống nodes con, cháu, định context node, hay ngược lên nodes tổ tiên Location Path tuyệt đối Chúng ta tìm vài location paths Tree tài liệu XML đặt hàng nói Muốn chọn node Element Order (nó Root Element) cú pháp nguyên, ta dùng XPath expression sau đây: /child::Order Dịch cú pháp tắt, expression nầy trở nên: /Order Đi nhánh Tree, ta tìm node Customer cách dùng XPath expression sau: /child::Order/child::Customer Sau XPath expression viết tắt tương đương: /Order/Customer Nếu bạn muốn lấy node Attribute, bạn phải nói rõ điều nầy cách dùng từ chìa khóa (keyword) attribute cách viết nguyên hay dùng character @ cú pháp tắt Do để lấy Attribute OrderNo Element Order, ta dùng XPath expression sau: /child::Order/attribute::OrderNo Cú pháp tắt cho Attribute OrderNo là: /Order/@OrderNo Để trích nodes cháu, tức nodes nhánh xa hơn, ta dùng keyword descendant cú pháp nguyên hay double slash (//) cú pháp tắt Thí dụ, để lấy nodes Product tài liệu, bạn dùng expression location path sau: /child::Order/descendant::Product Cú pháp tắt tương đương là: /Order//Product Bạn dùng wildcards (lá Joker) để nói đến nodes mà tên chúng khơng thành vấn đề Thí dụ, dấu asterisk (*) wildcard định node tên Location path sau chọn tất nodes Element Order: /child::Order/child::* Cú pháp tắt tương đương là: /Order/* Location Path tương đối Nhiều XPath location paths tương context node, trường hợp location path diễn tả cách lấy node hay số (set of) nodes tương context node Thí dụ như, Element Item thứ order context node, location path tương đối để trích Element Quantity là: child::Quantity Trong cú pháp tắt, location path tương đối là: Quantity Tương tự vậy, để lấy Attribute ProductID Element Product, location path tương đối là: child::Product/attribute::ProductID Expression dịch cú pháp tắt là: Product/@ProductID Để ngược lên phía Tree, ta dùng keyword parent (cha) Dạng tắt tương đương keyword nầy hai dấu chấm ( ) Thí dụ context node Element OrderDate, Attribute OrderNo lấy từ Element Order cách dùng location path tương đối sau: parent::Order/attribute::OrderNo Để ý cú pháp nầy trả trị số node cha tên Order Nếu muốn lấy Attribute OrderNo từ node cha khơng cần biết tên bạn phải dùng expression sau: parent::*/attribute::OrderNo o n ông ải p ode n Viết theo kiểu tắt đơn giản bạn khơ cần phả cung cấp tên no cha Bạn nói đ node ch cách dùng hai dấu chấm ( sau: đến ( ) /@Or rderNo a, hính contex node bằn cách dùng keyw xt ng g word self Ngoài bạn nói đến ch dấu chấm (.) Điều nầy tiện vài trường hợp, l bạn m Đ t muốn biết context nod node n de current c Dùng kiện tro Location Path iều ong Bạn có t giới hạn số nodes lấy cách gắn th điều ki sàng lọc vào locati thể n hêm iện c ion path Cá điều kiện giới hạn m hay nhiề nodes đư tháp vào expression bên một ều ược o n g cặp ngoặ vng ([ Thí dụ, đ lấy m Element Product có Attribute UnitPrice l ặc []) để ó lớn 70, bạn dùng XPath expression sau đây: h n /child::Order/child d::Item/chil ld::Product[ [attribute::U UnitPrice>7 70] ú n Trong cú pháp tắt, là: /Order/ /Item/Produ uct[@UnitP Price>70] xpression điều kiện bạn dùn Xpath tươ đối , ng ơng o Trong ex expression điều kiệ bạn có th dùng node nà thứ bậc Thí dụ sau lấ ện hể ứ ụ m ent oduct với At ttibute Prod ductID trị số 1: nodes Item có Eleme Pro /child::Order/child d::Item[chil ld::Product/ /attribute::P ProductID=1] Dịch cú pháp tắt, ta có: /Order/ /Item[Produ uct/@Produ uctID=1] p) (cịn tiếp Học H XML Vov visoft © 200 All righ reserved 00 hts Last Updated: Webmaster Bài Đi lại XML XPATH (phần II) Collections Cái (Set of) Nodes XPath trả gọi Collection Thơng thường lập trình, từ "Collection" dùng để nói đến tập hợp objects đồng loại Ta qua (iterate through) objects Collection không bảo đảm thứ tự chúng, tức gặp object trước hay object sau Trái lại, chuẩn XPath, Collection trả XPath Query (hỏi), giữ nguyên thứ tự Nodes cấp bậc chúng tài liệu XML Tức XPath trả cành nodes trừ nodes khơng thỏa điều kiện, node lại giữ vị trí cành Vì Attributes Element khơng có thứ tự, nên chúng nằm lộn xộn Collection Indexing Collection Một Collection Nodes xem Array Muốn nói trực tiếp đến Node Collection ta dùng index cặp ngoặc vng Node thứ có Index Cặp ngoặc vng ([]) có precedence cao (được tính trước) dấu slash(/) hay hai dấu slash (//) Dưới hai thí dụ: Expression Ý nghĩa author[1] Element author author[firstname][3] Element author thứ ba có Element firstname Mối liên hệ (Axes) Một location path dùng Axis để định mối liên hệ Nodes chọn context node Sau bảng liệt kê đầy đủ axes: Axes ancestor:: Ý nghĩa Tổ tiên context node Những tổ tiên context node gồm có cha, ơng n ancestor:: axis luôn kể root node trừ root node ancestor-or-self:: Chính context node tổ tiên Cái ancestor-or-self:: axis ln ln kể root nod attribute:: Các Attributes context node Nếu context node Element ch trống rỗng child:: Con context node Một node nằm context nhiên, Attribute hay Namespace nodes không context node descendant:: Con cháu context node Con cháu con, cháu, chít, v.v., descendan chứa Attribute hay Namespace nodes following:: Mọi nodes sau context node tree, khôn Attribute nodes, hay Namespace nodes following-sibling:: Mọi nodes em (nằm sau) context node following-sibling:: axis nói đến Nodes c Node cha, nằm tree sau context node Axis kh anh nằm trước context node Nếu context node Attribute hay Namespace f axis trống rỗng namespace:: Những Namespace nodes context node Mỗi namespace có namespace node scop động) context node Nếu context node Element A parent:: Node cha context node, có cha Node cha node nằm phía context node preceding:: Mọi nodes trước context node tree, khô tiên, Attribute nodes, hay Namespace nodes Một cách để nhận diện preceding:: axis nod toàn trước context node bắt đầu preceding-sibling:: Mọi nodes anh (nằm trước) context node preceding-sibling:: axis nói đến Nodes c Node cha, nằm tree trước context node Nếu context node Attribute hay Namespace p axis trống rỗng self:: Là context node Sàng lọc (Filters) Như ta thấy trên, để giới hạn lấy Nodes thỏa đáng điều kiện, ta gắn Filter (sàng lọc) vào Collection Filter Clause giống giống Clause WHERE ngôn ngữ SQL sở liệu Nếu Collection nằm filter, cho kết TRUE Collection trả Node FALSE Collection trống rỗng (empty) Thí dụ expression author/degree có nghĩa hàm biến đổi Collection trị số Boolean có giá trị TRUE hữa Element author có Element tên degree Filters ln ln tính theo context Nói cách khác, expression book[author] có nghĩa cho Element book tìm thấy, thử xem có chứa Element tên author không Tương tự vậy, book[author = 'Brown'] có nghĩa cho Element book tìm thấy, thử xem có chứa Element tên author với trị số Brown không Ta dùng dấu chấm (.) để khám current context node Thí dụ như, book[ = 'Dreams'] có nghĩa cho Element book tìm thấy current context, thử xem có trị số Dreams khơng Dưới thí dụ: Expression book[excerpt] Ý nghĩa Mọi Element book có chứa Element ex Bây muốn xem code HTML, bạn right click lên trang Web IE chọn command View XSLOutput từ PopUpMenu hình đây: Dùng code để transform với XSL Cách dùng ngôn ngữ lập trình để bảo XML parser chế biến tài liệu XML tùy thuộc vào hoàn cảnh Nếu bạn dùng Microsoft XML parser, component tên MSXML, lập trình tài liệu XML loaded vào Document Object Model (XMLDom) object Kế bạn gọi method transformNode để áp dụng XSL style sheet loaded trước vào XMLDom object khác để chế biến XML Như thí dụ đây, ta dúng hai DOM, để load file Order.xml, khác để load Order.xsl VBScript chạy Active Server Pages (ASP): Dim objXML ' DOM for XML Dim objXSL ' DOM for XSL Dim strResult ' Resultant document 'Load the XML document Set objXML = CreateObject("Microsoft.XMLDom") objXML.Async = False objXML.Load "c:\Order.xml" 'Load the XSL style sheet Set objXSL = CreateObject("Microsoft.XMLDom") objXSL.Async = False objXSL.Load "c:\Order.xsl" 'Apply the style sheet to XML strResult = objXML.transformNode(objXSL) Sau chạy đoạn code trên, strResult chứa hồ sơ kết Hình minh họa vai trị XSLT processor công tác transform hồ sơ XML dựa vào XSLT (từ trở ta dùng từ XSLT cho XSL được) file: Ta code JavaScript để chạy Browser, thay WebServer, cho thấy trang Web Nó cho kết dùng IE để hiển thị XML trực tiếp sample function init() { var srcDOM = new ActiveXObject("Msxml2.DOMDocument.4.0"); srcDOM.async=false; srcDOM.load("order.xml"); var xsltDOM= new ActiveXObject("Msxml2.DOMDOCUMENT.4.0"); xsltDOM.async = false; xsltDOM.load("order.xsl"); resDOM.innerHTML = srcDOM.transformNode(xsltDOM); } > Có lẽ bạ hỏi sa ta khơng dùng thẳng XML phía đ hiển thị t ạn ao g để trang Web Lưu ý ta dùng kỹ thuật nầ để Transf ó k ầy form X XML với XS hiển thị bên SL mộ DIV, tức vùn giới hạn bên t ột c ng trang Web, không chiếm tr rang Web Tạ tr ại rang Web b đầu load (onload ev bắt d vent), IE gọ function init() để ọi transform XML assign kết vào pr m i roperty inn nerHTML c DIV re esDOM method ta c thể dùng thay cho tr ác có ransformN Node Có m transfor rmNodeTo oObject Sự khác biệt c ự h method nầy là: hai ds • • transform mNode: Kế m ết method nầy tree dạng text e string, điể hình m hồ sơ H ển HTML Ta c thể cho n hiển thị t có brow hay lưu trữ vào mộ file wser u ột transform mNodeToO Object: Kết m t method nầy đ để vào o object object đư chế biế t ác, h ược ến thêm Khi ta dù tro hai met ùng ong thod nói thật ob n, bject nguồn (source ob n bject) không g cần phải hồ sơ đầy đủ N c N i Nó Node hồ sơ XML N Nếu Nod XSLT proce de essor xem tậ hợp Nod ấy, cá Nodes co cháu ập de ác on a hồ sơ đầy đủ Tương tự vậy, objec XSL có th file XSL đầy đủ, t ct hể y hay l Nod bên file X de g XSL thể rder.xml, or rder.xsl t trang Web c JavaScri có ipt Bạn có t tải or p) (cịn tiếp Học H XML Vov visoft © 200 All righ reserved 00 hts Last Upd dated: aster Webma Bài Tìm hiểu cấu trúc cú pháp XML Để thấy ảnh hưởng rộng lớn XML ngành Công Nghệ Thông Tin cận đại bạn cần để ý XML lý hữu (raison d'être) Microsoft Net Từ WindowsXP trở đi, bên đầy dẫy XML Microsoft đầu tư tỷ đô la Mỹ vào kỹ thuật nầy, tương lai gần tất phần mềm Microsoft không dọn nhà (được ported) qua NET NET Enabled (dùng cho NET được) Đi song song với NET SQLServer 2000, sở liệu hổ trợ XML hồn tồn Có lẽ bạn nghe qua Web Services Đó dịch vụ Web ta dùng ondemand , tức cần cho chương trình mình, cách gọi theo phương pháp giống giống gọi Hàm (Function) Web Services triển khai dựa vào XML Http, chuẩn dùng để gởi trang Web Điểm quan trọng kỹ thuật XML khơng thuộc riêng công ty nào, tiêu chuẩn người cơng nhận soạn World Wide Web Consortium - W3C (một ban soạn thão với diện tất dân có máu mặt giang hồ Tin học) muốn đóng góp cách trao đổi qua Email Bản thân XML khơng có khó hiểu, cơng cụ chuẩn định để làm việc với XML Document Object Model - DOM, XPath, XSL, v.v hữu hiệu, chuẩn nầy phát triển không ngừng Microsoft committed (nhất dấn thân) vào XML từ đầu Chẳng có đại diện để làm việc thường trực W3C mà cịn tích cực đóng góp cách gởi đề nghị Vị trí Microsoft XML tiêu chuẩn chưa hồn thành sản phẩm Microsoft tn thủ (comply) có vẽ đa số cơng nhận tiêu chuẩn hồn thành tn thủ hồn tồn Cái cơng cụ XML sáng giá Microsoft ActiveX MSXML Nó dùng Visual Basic 6, ASP (Active Server Pages) IIS Internet Explorer từ version 5.5 Hiện MSXML có version 4.0 MSXML parse (đọc phân tích) validate (kiểm tra hợp lệ) XML file ta DOM, tree Nodes đại diện thành phần bên XML MSXML giúp ta dựa vào XSL file để transform (biến thể) XML file thành trang Web (HTML) hay XML khác XML gì? Một chút lịch sử Như tất biết, XML viết tắt cho chữ eXtensible Markup Language Markup Language (ngơn ngữ đánh dấu) gì? Trong ngành ấn loát, để thị cho thợ chữ cách in vỡ, tác giả hay chủ bút thường vẽ vòng tròn thão thích ngơn ngữ đánh dấu tương tự tốc ký Ngôn ngữ gọi Markup Language XML ngôn ngữ đánh dấu tương đối subset (một phần nhỏ hơn) đến từ (derived from) ngôn ngữ đánh dấu già dặn tên Standard Generalized Markup Language (SGML) Ngôn ngữ HTML dựa vào SGML, thật áp dụng SGML SGML phát minh Ed Mosher, Ray Lorie Charles F Goldfarb nhóm IBM research vào năm 1969, người đặt chân lên mặt trăng Lúc đầu có tên Generalized Markup Language (GML), thiết kế để dùng làm meta-language, ngôn ngữ dùng để diễn tả ngôn ngữ khác - văn phạm, ngữ vựng chúng ,.v.v Năm 1986, SGML quan ISO (International Standard Organisation) thu nhận (adopted) làm tiêu chuẩn để lưu trữ trao đổi liệu Khi Tim Berners-Lee triển khai HyperText Markup Language - HTML để dùng cho trang Web hồi đầu thập niên 1990, ông ta nhắc nhở HTML áp dụng SGML Vì SGML rắc rối, HTML có nhiều giới hạn nên năm 1996 tổ chức W3C thiết kế XML XML version 1.0 định nghĩa hồ sơ February 1998 W3C Recommendation, giống Internet Request for Comments (RFC), "tiêu chuẩn" Từ HTML đến XML Trong trang Web, ngôn ngữ đánh dấu HTML dùng cặp Tags để đánh dấu vị trí đầu cuối mảnh liệu để giúp chương trình trình duyệt (browser) parse (ngắt khúc để phân tích) trang Web hiển thị phần theo ý người thiết kế trang Web Thí dụ câu HTML đây:

Chào mừng bạn đến thăm VovisoftWeb site

Câu code HTML có chứa hai markup Tags,

Mỗi cặp Tags gói liệu đánh dấu opening Tag closing Tag Hai closing Tags

Tất nằm bên cặp Tags gọi Element Để nói thêm đặc tính Element, ta nhét Attribute align opening Tag Element dạng AttributeName="value", thí dụ align="center" Vì Tags HTML dùng để format (trình bày) tài liệu nên browser cần biết ý nghĩa Tag Một browser 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 bạn đế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 code HTML trên, browser 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) Giống HTML, XML đến từ SGML Nó dùng Tags để encode data Điểm khác biệt chánh HTML XML Tags HTML chứa ý nghĩa formatting (cách trình bày) liệu, Tags 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ệ Vì browser 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, Element Order có Attribute OrderNo với value 1023 Bên Element Order có: • • • Một Child (con) Element OrderDate với value 2002-3-27 Một Child Element Customer với value Peter Collingwood Hai Child Elements Item, Element Item lại chứa Child Element ProductID Child Element Quantity Đôi ta để Element với tên đàng hồng, khơng chứa value, lý ta muốn dùng Element Nhiệm ý (Optional), có được, khơng có khơng Cách tự nhiên gắn closing Tag sau opening Tag Thí dụ Empty (trống rỗng) Element MiddleInitial Element customer đây: Stephen King Có cách khác để biểu diễn Empty Element bỏ closing Tag thêm dấu "/" (slash) cuối openning Tag Ta viết lại thí dụ customer sau: Stephen King Dĩ nhiên Empty Element có Attribute Element PhoneNumber thứ nhì đây: Stephen King 9847 2635 Biểu diễn Data XML Một tài liệu XML phải well-formed valid Mặc dầu hai từ nầy nghe tờ tợ, chúng có ý nghĩa khác Một XML well-formed XML thích hợp cho parser chế biến Tức XML tuân thủ luật lệ Tag, Element, Attribute , value v.v chứa bên để parser nhận diện phân biệt thứ Để ý 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 valid Một tài liệu XML valid chứa data cần có loại tài liệu loại hay class Thí dụ XML đặt hàng bị địi hỏi phải có Attribute OrderNo Child Element Orderdate Parser validate XML cách kiểm tra data XML xem có định nghĩa Specification loại tài liệu XML Specification nầy Document Type Definition (DTD) hay Schema Chốc ta nói đến valid, bàn well-formed 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) Element nhất, gọi Document Element, chứa tất Elements khác tài liệu Mỗi opening Tag phải có closing Tag giống Tags XML case sensitive, tức opening Tag closing Tag phải đánh vần y nhau, chữ hoa hay chữ thường Mỗi Child Element phải nằm trọn bên Element cha Attribute value XML phải gói cặp ngoặc kép hay cặp apostrophe Luật thứ đòi hỏi root Element nhất, nên tài liệu không wellformed khơng có top level Element: Chair Desk Một tài liệu XML khơng có root Element gọi XML fragment (mảnh) Để làm cho well-formed ta cần phải thêm root Element đây: Chair Desk Luật thứ hai nói opening Tag phải có closing Tag giống Tức Tag mở phải đóng lại Empty Element viết cách gọn gọi có Tag tự đóng lại Các Tags khác phải có closing Tag Cái 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 closing tag cho Element Item thứ nhất: 2002-6-14 Helen Mooney 2 1 4 3 Luật thứ ba nói tên Tag case sensitive, tức closing Tag phải đánh vần y hệt opening Tag, phân biệt chữ hoa, chữ thường Như khác với , ta khơng thể dùng Tag để đóng Tag Cái XML khơng wellformed opening Tag closing Tags Element 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 (uppercase) D sau: 2001-01-01 Graeme Malcolm Luật thứ tư nói Child Element phải nằm trọn bên Element cha nó, tức khơng thể bắt đầu Element Element nầy chưa chấm dứt Thí dụ tài liệu XML khơng well-formed closing Tag Category trước closing Tag 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 value Attribute phải gói cặp apostrophe hay ngoặc kép Tài liệu khơng well-form Attribute values khơng ngoặc đàng hồng, số khơng có dấu ngoặc, số có apostrophe, ngoặc kép: Chair

Ngày đăng: 27/06/2014, 12:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan