Phần thân nào quản lý html css và xml

HTML, CSS và XML từ Aashish Jain

Những người làm việc trong SGML và cần định dạng nó thường sử dụng DSSSL (Ngôn ngữ đặc tả và ngữ nghĩa kiểu tài liệu) để thực hiện công việc. DSSSL là một phương ngữ của Scheme, bản thân nó là một dạng LISP đáng kính và phổ biến (viết tắt của "Xử lý danh sách" hoặc rất nhiều dấu ngoặc đơn khó chịu, không cần thiết," tùy thuộc vào người bạn hỏi). Tất nhiên, nếu bạn đang sử dụng DSSSL, bạn đã là một vị thần SGML và một hacker LISP kỳ cựu, và do đó không nên đọc bài viết này

May mắn thay, các ủy ban thảo luận về kiểu dáng, HTML và XML của W3C đã đưa vào thiết kế của họ Ngôn ngữ kiểu dáng mở rộng hoặc XSL. XSL dựa trên DSSSL (và DSSSL-O, phiên bản trực tuyến của DSSSL) và cũng sử dụng một số thành phần kiểu dáng của CSS. Nó đơn giản hơn DSSSL, trong khi vẫn giữ được phần lớn sức mạnh của nó (giống như mối quan hệ giữa XML và SGML). Tuy nhiên, ký hiệu của XSL có thể gây ngạc nhiên. đó là XML. Cách đơn giản nhất để nói nó là. XSL là một tài liệu XML xác định cách chuyển đổi một tài liệu XML khác. Nói gì cơ?

Tại sao XSL rất hữu ích

XSL vô cùng mạnh mẽ. Nó có thể được sử dụng để thêm cấu trúc vào tài liệu (như trong CSS) và nó cũng có thể sắp xếp lại hoàn toàn các thành phần đầu vào cho một mục đích cụ thể. Ví dụ: XSL có thể chuyển đổi XML của một cấu trúc thành HTML của một cấu trúc khác. (Chúng ta sẽ xem một ví dụ về điều này bên dưới. ) XSL cũng có thể cấu trúc lại XML thành các định dạng tài liệu khác. TeX, RTF và PostScript

XSL thậm chí có thể biến đổi XML thành một phương ngữ khác của XML. Điều này nghe có vẻ điên rồ, nhưng nó thực sự là một ý tưởng khá hay. Ví dụ: nhiều bản trình bày của cùng một thông tin có thể được tạo bởi một số tệp XSL khác nhau được áp dụng cho cùng một đầu vào XML. Hoặc, giả sử hai hệ thống nói các "phương ngữ" XML khác nhau nhưng có các yêu cầu thông tin tương tự nhau. XSL có thể được sử dụng để dịch đầu ra của hệ thống thứ nhất thành thứ gì đó tương thích với đầu vào của hệ thống thứ hai

Một số lý do cuối cùng này được các lập trình viên Java đặc biệt quan tâm, vì XSL có thể được sử dụng để dịch giữa các ngôn ngữ khác nhau trong một mạng phân tán gồm các hệ thống con, cũng như để định dạng tài liệu. Hiểu cách sử dụng XSL trong các ứng dụng đơn giản, như chuyển đổi XML thành HTML, sẽ giúp nhà phát triển Java hiểu về XSL nói chung. Hãy xem một ví dụ về cách chuyển đổi XML sang HTML bằng biểu định kiểu XSL

Định dạng XML dưới dạng HTML. Một ví dụ

Tệp XSL là một loạt quy tắc, được gọi là mẫu, được áp dụng cho tệp XML đầu vào. Mỗi khi một mẫu khớp với nội dung nào đó trong đầu vào, mẫu đó sẽ tạo ra một cấu trúc mới ở đầu ra (thường là HTML, như trong ví dụ chúng ta sắp xem). Cấu trúc mới là nội dung của XML, với kiểu thích hợp được áp dụng và sắp xếp như XSL chỉ định. Các mẫu trong tệp XSL được viết bằng XML, sử dụng các thẻ cụ thể với ý nghĩa được xác định

Ví dụ dưới đây đề cập lại đến ví dụ về công thức XML trong Liệt kê 3. Chúng ta sẽ xem xét một tệp XSL chuyển đổi XML trong Liệt kê 3 thành HTML trong Liệt kê 1



    
    
    
    <xsl:value-of select="Name"/>
    
    
    
    

Ingredients

QtyUnitsItem
-- optional

Instructions

  • Liệt kê 7. XSL được sử dụng như một ngôn ngữ XML để biến đổi XML thành một thứ khác

    (Một phiên bản có thể in được của tập tin này là ví dụ. xl)

    Nhìn vào mã này, trước hết, bạn sẽ nhận thấy rằng tệp bắt đầu bằng thẻ

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    2, cho biết tệp này là XML (mặc dù nó cũng là XSL). Mỗi mẫu được giới hạn bởi các thẻ
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    3 và
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    4. Mỗi thẻ bắt đầu bằng
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    5 là một lệnh XSL

    Mặc dù chúng ta sẽ không xem qua tất cả các mẫu trong tệp XSL (vì đây không phải là hướng dẫn về XSL), Liệt kê 8 cung cấp một cái nhìn nhanh về mẫu đầu tiên trong tệp, chỉ để nắm được ý tưởng chung.

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    Liệt kê 8. Mẫu đầu tiên từ biểu định kiểu XSL trong Liệt kê 7

    Lưu ý thẻ

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    6. Nó có một thuộc tính
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    0. Điều này cho biết rằng mẫu này sẽ được áp dụng khi gặp phải phần tử
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    1 ở đầu vào. Mọi thứ nằm trong phần tử
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    6 này sẽ được đặt ở đầu ra

    Bộ xử lý XSL nhìn thấy phần tử

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    1, do đó, nó bắt đầu xây dựng đầu ra của nó bằng cách sử dụng nội dung của phần tử
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    6 trong tệp XSL. Nó thêm một phần tử
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    5, sau đó là một phần tử
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    6 bên trong phần tử đó, và sau đó là một phần tử
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    7. Nó thực sự đang xây dựng một tài liệu HTML mới bằng cách tạo HTML từ mẫu, dựa trên những gì nó nhìn thấy. Thẻ
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    8 hướng dẫn bộ xử lý XSL lấy văn bản chứa trong một số phần tử khác -- trong trường hợp này, phần tử phụ
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    9. Di chuyển xuống một vài dòng, bạn có thể thấy điều tương tự đang xảy ra, khi bộ xử lý XSL tìm nạp lại và sử dụng cùng một chuỗi trong thẻ
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    00 và thẻ
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    01 sau nó. (Lưu ý rằng chúng ta đang sử dụng cùng một văn bản ở nhiều vị trí trong tài liệu, điều mà CSS đơn giản là không thể làm được. ) Cuối cùng, chúng ta đến lệnh
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    02, lệnh này yêu cầu bộ xử lý XSL áp dụng tất cả các mẫu khác trong tệp cho đầu vào

    HTML thu được rất giống với HTML mà chúng ta đã thấy trong Liệt kê 1. Nếu bạn muốn nghiên cứu về XML, XSL và HTML kết quả, đồng thời muốn tìm hiểu cách sử dụng XSL để tự định dạng XML, hãy xem các liên kết về XSL trong phần Tài nguyên của bài viết này

    Khả năng XSL bổ sung

    XSL không giới hạn chỉ sản xuất HTML. XSL cũng có hỗ trợ đầy đủ cho định dạng "gốc", không phụ thuộc vào bản dịch sang một số định dạng khác. Tuy nhiên, chưa có ai triển khai phần này của XSL, chủ yếu là do định dạng và bố cục trang rất khó xử lý. (Tuy nhiên, có một cuộc thi để triển khai tất cả XSL. Xem Tài nguyên. )

    Thiết kế của XSL cũng bao gồm tập lệnh nhúng. Hiện tại, gói LotusXSL của IBM (được viết bằng Java) cung cấp chức năng của hầu hết tất cả các đặc điểm kỹ thuật dự thảo hiện tại của XSL, bao gồm khả năng gọi ECMAScript nhúng (JavaScript tiêu chuẩn châu Âu) từ các mẫu XSL

    Tất nhiên, như mọi khi, sức mạnh đi kèm với sự phức tạp. Học cách viết XSL không phải là một miếng bánh. Nhưng sức mạnh ở đó nếu bạn muốn

    XML không chỉ là quản lý nội dung

    XSL, giống như CSS, có thể được sử dụng trên máy khách hoặc máy chủ trong hệ thống máy khách/máy chủ. Thực tế này cung cấp tính linh hoạt và tổ chức to lớn cho các nhà thiết kế và quản lý trang web. Trên thực tế, nhiều người coi XML, CSS và XSL như một bộ công nghệ khác để "quản lý nội dung" cho các trang Web của họ. Nó giúp tạo kiểu cho các tài liệu Web dễ dàng và nhất quán hơn, tạo điều kiện kiểm soát phiên bản của trang web, đơn giản hóa việc quản lý nhiều trình duyệt (hãy nghĩ đến việc sử dụng biểu định kiểu để khắc phục nhiều khác biệt giữa các trình duyệt), v.v. CSS cũng hữu ích cho Dynamic HTML (mà chúng ta sẽ thảo luận một chút bên dưới), nơi phần lớn tương tác của người dùng xảy ra ở phía máy khách, nơi nó thuộc về. Từ quan điểm của những người quản lý các trang Web, XML, CSS và XSL thực sự là những chiến thắng lớn. Chưa hết, có cả một thế giới ứng dụng không liên quan gì đến trình duyệt và trang Web. Bản đồ của thế giới đó được gọi là Mô hình đối tượng tài liệu

    Mô hình hóa cấu trúc thông tin trong XML

    Cho đến nay, chúng ta đã xem XML như một cách biểu diễn dữ liệu dưới dạng tài liệu mà con người có thể đọc được và chúng ta đã dành thời gian thảo luận về định dạng. Nhưng sức mạnh thực sự của XML là ở khả năng biểu diễn cấu trúc thông tin của nó -- các mẩu thông tin khác nhau liên quan với nhau như thế nào -- theo cùng một cách mà một cơ sở dữ liệu có thể

    Loại tài liệu có cấu trúc mà chúng ta đang xem xét có thuộc tính là tất cả các phần tử của chúng lồng vào nhau, như trong Liệt kê 5 ở trên. Tuy nhiên, thay vì xem tài liệu dưới dạng tệp, hãy xem xét điều gì sẽ xảy ra nếu chúng ta xem cấu trúc của các thẻ dưới dạng cây

    Hình 3. Công thức được biểu diễn dưới dạng cấu trúc cây

    Hình trên cho thấy công thức dưới dạng cây các thẻ tài liệu. Các nút con của tổ tài liệu trong nút cha. Điều gì sẽ xảy ra nếu có một cách tự động chuyển đổi một tài liệu XML thành một cây các đối tượng trong một ngôn ngữ lập trình -- chẳng hạn như, ồ, có thể là Java? . Điều đó sẽ không thú vị sao?

    Đề xuất Cấp 1 Mô hình Đối tượng Tài liệu (DOM) (xem Tài nguyên), được tạo bởi ủy ban W3C, mô tả một tập hợp các giao diện trung lập về ngôn ngữ có khả năng biểu diễn bất kỳ tài liệu XML hoặc HTML được định dạng tốt nào

    Với DOM, các tài liệu HTML và XML có thể được thao tác dưới dạng các đối tượng, thay vì chỉ dưới dạng các luồng văn bản. Trên thực tế, từ quan điểm DOM, tài liệu là cây đối tượng và XML, HTML hoặc những gì bạn có chỉ đơn giản là một biểu diễn liên tục của cây đó

    Tính khả dụng của DOM khiến việc đọc và ghi các tệp tài liệu có cấu trúc trở nên đơn giản hơn nhiều, vì các trình phân tích cú pháp HTML và XML tiêu chuẩn được viết để tạo ra các cây DOM. Nếu các đối tượng này có biểu diễn GUI, thì thật dễ dàng để biết cách tạo một ứng dụng đọc các tệp tài liệu có cấu trúc (XML hoặc HTML), cho phép người dùng chỉnh sửa cấu trúc một cách trực quan, sau đó lưu nó ở định dạng ban đầu. Các chương trình có giao diện với các trang Web hiện có trở nên dễ viết hơn nhiều, bởi vì một khi tài liệu được phân tích cú pháp, bạn sẽ làm việc với các đối tượng có nguồn gốc từ ngôn ngữ lập trình của mình

    Một trong những cách sử dụng phổ biến sớm nhất cho Mô hình đối tượng tài liệu là HTML động, trong đó các tập lệnh phía máy khách thao tác và hiển thị (và hiển thị lại) một tài liệu HTML để đáp ứng các hành động của người dùng. HTML động điều khiển tài liệu phía máy khách theo sự ràng buộc của ngôn ngữ kịch bản với cấu trúc DOM của tài liệu đang được hiển thị. Chẳng hạn, một đối tượng

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    03 khi được nhấp vào có thể sắp xếp lại thứ tự của một bảng trên cùng một trang bằng cách sắp xếp các nút
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    04 (hàng của bảng) trên một cột cụ thể

    Nhưng ngoài tất cả công nghệ web-tài liệu-trình duyệt này, DOM cung cấp một cách phổ biến để truy cập các cấu trúc dữ liệu chung từ các tài liệu có cấu trúc. Bất kỳ ngôn ngữ nào có liên kết (nghĩa là một tập hợp cụ thể các giao diện triển khai DOM bằng ngôn ngữ đó) đều có thể sử dụng XML làm giao diện để lưu trữ, truy xuất và xử lý các cấu trúc đối tượng phân cấp (và thậm chí không phân cấp) chung

    Cách DOM và XML hoạt động cùng nhau

    DOM mở ra cơ hội sử dụng XML làm ngôn ngữ chung trao đổi dữ liệu trên Internet và ngay cả trong các ứng dụng. Tim Berners-Lee, đã thảo luận trước đó và thường được gọi là "nhà phát minh của World Wide Web," nói rằng, ngày nay, điều quan trọng là phải hiểu rằng nếu một hệ thống bạn đang thiết kế tồn tại, một ngày nào đó nó sẽ được sử dụng như một mô-đun trong . Vì vậy, tốt nhất là thiết kế nó theo cách đó ngay từ đầu. DOM được mô tả hoàn toàn bằng IDL, Ngôn ngữ định nghĩa giao diện được sử dụng trong CORBA, do đó, nó được kết nối với các tiêu chuẩn tương tác phần mềm hiện có

    Hãy suy nghĩ một chút về việc DOM với XML sẽ hữu ích như thế nào trong việc lập trình một hệ thống cơ sở dữ liệu. Đầu tiên, biểu diễn lược đồ cơ sở dữ liệu của bạn dưới dạng một tập hợp các đối tượng DOM. Muốn có một tài liệu mô tả lược đồ đó? . viết nó ra dưới dạng XML. Sử dụng XSL để định dạng XML dưới dạng HTML và bạn đã có một tài liệu tham khảo lược đồ hoàn chỉnh, có thể duyệt được và luôn cập nhật. Bạn muốn tự động xây dựng SQL để cập nhật cơ sở dữ liệu quan hệ của mình từ một bộ bản ghi được đưa vào hệ thống của bạn? . Bạn nói gì vậy? . Bạn thậm chí có thể sử dụng XSL để cấu trúc lại cây DOM của bộ bản ghi của bạn thành thứ gì đó phù hợp với lược đồ mới

    Cuối cùng, đã đến lúc bắt đầu lập trình bằng Java. Trong phần tiếp theo, chúng ta sẽ kiểm tra các liên kết Java của DOM và xem cách sử dụng DOM trong một chương trình Java

    XML và Java

    Cho đến thời điểm này, tôi đã trình bày thông tin chung về XML, không có nhiều tham chiếu đến Java. Bây giờ bạn đã hiểu về XML, đã đến lúc xem cách xử lý XML trong Java. Java là một ngôn ngữ tuyệt vời cho XML, như bạn sẽ thấy. Nó cung cấp một định dạng dữ liệu di động bổ sung độc đáo cho mã di động của Java

    Kháng cáo SAX

    Cách dễ nhất để xử lý tệp XML trong Java là sử dụng API đơn giản cho XML hoặc SAX. SAX là một giao diện Java đơn giản mà nhiều trình phân tích cú pháp Java có thể sử dụng. Trình phân tích cú pháp SAX là một lớp triển khai giao diện

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    05. Trình phân tích cú pháp này "dạo" cây các nút tài liệu trong một tệp XML, gọi các phương thức của các lớp trình xử lý do người dùng định nghĩa

    Để xử lý một tài liệu XML, lập trình viên tạo một lớp thực hiện

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    06. Đối tượng
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    07 (nghĩa là đối tượng triển khai
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    05) đọc XML từ nguồn đầu vào của nó, gọi các phương thức của
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    09 khi các thẻ, chuỗi đầu vào, v.v. được nhận dạng ở đầu vào

    Các phương thức của giao diện

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    09 như trong Liệt kê 9

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    0

    Liệt kê 9. giao diện tổ chức. xml. kèn. Trình xử lý tài liệu

    Gói

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    21 bao gồm một lớp tiện ích có tên là
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    22, thực hiện giao diện trong Liệt kê 9 (cũng như một số giao diện khác trong gói SAX) với các phương thức không làm gì cả. Các lập trình viên có thể tạo một lớp con của
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    22 chỉ ghi đè các phương thức họ muốn sử dụng

    Ví dụ: giả sử chúng ta muốn một lớp đếm các phần tử trong tài liệu XML. Chúng ta có thể viết một lớp như sau

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    2

    Liệt kê 10. Một lớp đếm các phần tử trong tài liệu XML

    Để tạo một chương trình Java đếm các phần tử trong tệp XML, bạn chỉ cần tạo một trình phân tích cú pháp SAX (cách bạn thực hiện điều đó tùy thuộc vào gói trình phân tích cú pháp cụ thể của bạn), sau đó tạo một thể hiện của lớp

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    24 của bạn. Sau đó, bạn gọi phương thức
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    25 của trình phân tích cú pháp với
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    24 mới làm đối số. Trình phân tích cú pháp giữ một tham chiếu đến
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    09 mà bạn đã chuyển đến nó. Khi bạn gọi phương thức
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    28 của trình phân tích cú pháp, trình phân tích cú pháp sẽ đọc nguồn đầu vào của nó. Mỗi khi nó gặp một phần tử (tức là thẻ) trong tệp XML, nó sẽ gọi phương thức
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    29 của đối tượng
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    24 của bạn, chuyển tên của thẻ và danh sách các thuộc tính mà thẻ có thể có

    Thử nghiệm với SAX

    Gói ví dụ,

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    31, có thể được tải xuống miễn phí (xem Tài nguyên). Chương trình
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    32 mẫu cho phép bạn chỉ định (theo thứ tự này)

    1. Một tệp XML để phân tích cú pháp
    2. Tên lớp được chỉ định đầy đủ của trình phân tích cú pháp (tùy chọn)
    3. Tên lớp được chỉ định đầy đủ của trình xử lý tài liệu

    Gói bao gồm hai trình xử lý tài liệu.

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    24 từ Liệt kê 10 và một trình xử lý có tên là
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    34, mà (một cách tự nhiên) chỉ cần in XML với một vết lõm dễ đọc. Bạn có thể thử viết trình xử lý tài liệu của riêng mình và chuyển nó tới phương thức chính (được gọi là
    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    35)

    Bạn sẽ cần tệp JAR có tên "XMLApr99. jar" và bạn sẽ cần tải xuống tệp JAR cho gói "XML cho Java" tuyệt vời của IBM (phiên bản 2). Đặt cả hai tệp JAR vào CLASSPATH của bạn và nhập

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    3

    để được hướng dẫn. Gói XML cho Java bao gồm tài liệu xuất sắc, hướng dẫn dành cho lập trình viên và một số chương trình mẫu để giúp bạn bắt đầu

    Mã nguồn cũng có sẵn trong zip và tar. định dạng gz. Để làm bài tập, hãy thử tải xuống một trong các trình phân tích cú pháp XML của nhà cung cấp khác từ phần Tài nguyên, sau đó ghi đè phương thức

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    36 trong mã mẫu để tạo trình phân tích cú pháp từ gói mới

    Trở thành một bác sĩ phẫu thuật cây

    Một chủ đề cuối cùng, nâng cao hơn một chút, trước khi chúng ta kết thúc. Giao diện SAX cho phép bạn phân tích cú pháp tệp XML và thực hiện các hành động cụ thể bất cứ khi nào một số cấu trúc nhất định (như thẻ) xuất hiện trong đầu vào. Điều đó thật tuyệt vời cho rất nhiều ứng dụng. Tuy nhiên, đôi khi bạn muốn có thể cắt và dán toàn bộ các phần của tài liệu XML, cấu trúc lại chúng hoặc thậm chí có thể xây dựng từ đầu một cấu trúc đối tượng như trong Hình 3, sau đó lưu toàn bộ cấu trúc dưới dạng XML . Để làm được điều đó, bạn cần có quyền truy cập vào DOM API

    API DOM cho phép bạn biểu diễn tài liệu XML của mình dưới dạng cây các nút trong chương trình Java (hoặc ngôn ngữ khác) của bạn. Trong khi trình phân tích cú pháp SAX đọc tệp XML, thực hiện gọi lại lớp do người dùng định nghĩa, trình phân tích cú pháp DOM đọc tệp XML và trả về biểu diễn của tệp dưới dạng cây đối tượng, hầu hết thuộc loại

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    37. Điều này mang lại cho bạn sức mạnh to lớn . Hình 4 là một ví dụ về những gì tôi đang nói đến

    hinh 4. Một hệ thống chuyển đổi tài liệu DOM

    Mô hình Đối tượng Tài liệu, trong gói

    
        
        
        
        <xsl:value-of select="Name"/>
        
        
        
        

    38, xác định các giao diện cho các phần tử tài liệu (có nghĩa là các thẻ), các phần tử DTD, các nút văn bản (nơi lưu giữ văn bản thực bên trong các thẻ) và khá nhiều thứ khác mà chúng tôi chưa có . Hình 4 là sơ đồ của một hệ thống chung có thể chuyển đổi một tài liệu XML sang một số dạng khác theo chương trình. Chương trình của bạn sử dụng trình phân tích cú pháp DOM để phân tích cú pháp tệp XML và trình phân tích cú pháp trả về một cây biểu diễn chính xác XML trong tệp. Lưu ý rằng, tại thời điểm này, bạn đã đọc tệp đầu vào, kiểm tra tính hợp lệ về định dạng và ngữ nghĩa, đồng thời xây dựng cấu trúc đối tượng phân cấp phức tạp, tất cả chỉ trong một vài dòng mã. Sau đó, bạn có thể duyệt qua cây tài liệu trong phần mềm, làm bất cứ điều gì bạn muốn với cấu trúc cây. Thêm các nút, xóa chúng, cập nhật giá trị của chúng, đọc hoặc đặt thuộc tính của chúng -- về cơ bản là bất kỳ thứ gì bạn thích. Khi cây của bạn có cấu trúc mới mà bạn mong muốn, hãy yêu cầu nút trên cùng tự in ra một tệp XML khác và tài liệu mới được tạo

    Sức mạnh tổng hợp XML-Java

    Một trong những lý do Java và XML rất phù hợp với nhau là cả Java và XML đều có thể mở rộng. Java thông qua các trình tải lớp của nó, XML thông qua DTD của nó. Hãy tưởng tượng một máy chủ, đọc và viết XML, nơi DTD cho đầu vào hệ thống có thể thay đổi. Khi một phần tử mới được thêm vào ngôn ngữ đầu vào, một máy chủ đang chạy (được viết bằng Java) có thể tự động tải các lớp Java mới để xử lý các thẻ mới. Bạn sẽ không chỉ có một máy chủ ứng dụng có thể mở rộng -- bạn thậm chí sẽ không phải gỡ máy chủ xuống để thêm các tiện ích mở rộng

    Một ý tưởng nhỏ chỉ ra khả năng triển khai XML và Java cùng nhau. Phần tiếp theo là về một công ty có sự kết hợp giữa XML và Java là công nghệ cốt lõi của nó

    XML với Java trong thế giới thực

    Bây giờ bạn đã có kiến ​​thức về công nghệ XML, bao gồm cả cách nó được triển khai trong Java. Bạn hiểu rằng tài liệu có thể được xem dưới dạng cây đối tượng và được thao tác bằng SAX hoặc DOM. Hãy xem xét một công ty thực sự đang sử dụng tất cả các công nghệ này để cung cấp giải pháp cho khách hàng của mình

    Các giao diện DOM không chỉ tồn tại cho XML mà còn cho cả HTML. Điều này có nghĩa là tài liệu ngoài cùng bên trái trong Hình 4 có thể là một trang Web mà từ đó bạn muốn trích xuất thông tin để thao tác trong Java

    Trên thực tế, Epicentric, một công ty khởi nghiệp Internet ở San Francisco, đã làm được điều đó. Epicric sử dụng Java và XML trong các hệ thống chìa khóa trao tay của mình để cho phép tạo các trang web cổng thông tin tùy chỉnh. Các trang cổng thông tin, như trang đầu tiên của Netscape Netcenter và Excite. , là tập hợp thông tin tích hợp từ nhiều nguồn Internet khác nhau. Trong môi trường Internet của công ty, một cổng thông tin có thể chứa thông tin thu thập được từ các trang Web bên ngoài (ví dụ: báo cáo thời tiết), cùng với dữ liệu doanh nghiệp nội bộ. Cổng thông tin cũng thường được tùy chỉnh bởi mỗi người dùng

    Các hệ thống của Epicentric đọc HTML từ Internet dưới dạng tài liệu DOM, trích xuất thông tin từ các tài liệu đó và lưu trữ thông tin đó ở định dạng XML tiêu chuẩn. Các nguồn thông tin khác cũng được chuyển đổi sang cùng định dạng XML này và được lưu trữ trên máy chủ của Epicric. Sau đó, công ty sử dụng XML với XSL và Trang máy chủ Java để tạo cổng tùy chỉnh cho khách hàng của mình

    "Rất nhiều công việc tốt đã được thực hiện trên những điều cơ bản. như trình phân tích cú pháp và bộ xử lý XSL," Ed Anuff, Giám đốc điều hành của Epicric cho biết. Một lợi ích của việc sử dụng XML là nó làm cho các nhà thiết kế suy nghĩ thông qua cấu trúc hệ thống theo một cách rất có cấu trúc, Anuff nói

    Khi được hỏi về những lo ngại với XML, Anuff nói rằng nhiều vấn đề mà anh ấy gặp phải là về kiến ​​trúc, chẳng hạn như sử dụng DTD nào và chỉ định những vị trí thích hợp trong hệ thống để sử dụng XML. Các nhà thiết kế hệ thống vẫn đang tìm cách sử dụng công nghệ mới này một cách hiệu quả nhất trong môi trường doanh nghiệp

    Ngoài ra, vì công nghệ còn quá mới nên thường khó biết phần nào của hệ thống sẽ được xây dựng nội bộ. Ví dụ: khá nhiều công ty đã xây dựng trình phân tích cú pháp XML của riêng họ nhưng hiện tại có ít lợi tức đầu tư vì các công ty lớn hơn đang phát triển công nghệ XML vượt trội và cung cấp miễn phí. Anuff nói: “Thách thức lớn nhất hiện nay là tìm ra khi nào bạn đang phát minh lại bánh xe và khi nào bạn đang gia tăng giá trị”.

    Bất chấp những thách thức này, tương lai có vẻ tươi sáng đối với Epicentric, công ty có một số "khách hàng có quy mô khá" đang sử dụng phần mềm của công ty trong phiên bản beta. Với các khách hàng và nhà quảng cáo bao gồm Công ty Eastman Kodak, Sun Microsystems, Chase Bank và Tạp chí LIFE, Epicentric đang sử dụng XML để tổng hợp và phân phối lại thông tin theo những cách mới lạ.

    Sự kết luận

    XML là một công nghệ biểu diễn dữ liệu mạnh mẽ mà Java đặc biệt phù hợp với nó. Bạn sẽ được nghe nhiều về XML trong những tháng và năm tới. Bất kỳ ai làm việc với các hệ thống thông tin giao tiếp với các hệ thống khác (và những hệ thống nào ngày nay không giao tiếp?) sẽ thu được nhiều lợi ích khi hiểu công nghệ XML và sử dụng nó với đầy đủ lợi thế của nó

    Sử dụng XML với XSL hoặc CSS, bạn có thể quản lý nội dung và kiểu trang Web của mình, đồng thời thay đổi kiểu ở một nơi (biểu định kiểu) thay vì chỉnh sửa hàng đống tệp HTML hoặc tệ hơn là chỉnh sửa tập lệnh tạo HTML động. Sử dụng SAX hoặc DOM, bạn có thể coi các tài liệu Web là cấu trúc đối tượng và xử lý chúng một cách tổng quát và rõ ràng. Hoặc, bạn có thể bỏ hoàn toàn các trình duyệt và viết các máy khách và máy chủ thuần Java giao tiếp với nhau -- và các hệ thống khác -- bằng XML, ngôn ngữ chung mới của Internet. Sun Microsystems, người tạo ra Java, có lẽ đã mô tả tốt nhất sức mạnh của XML và Java cùng nhau trong khẩu hiệu của mình. Mã di động -- Dữ liệu di động. Bắt đầu thử nghiệm với XML trong Java, và bạn sẽ sớm tự hỏi làm thế nào bạn có thể sống mà không có nó

    Cảm ơn Dave Orchard vì những nhận xét của anh ấy về bản thảo của bài viết này và cảm ơn nhiều người hữu ích mà tôi đã gặp ở San Jose, CA

    HTML CSS và XML là gì?

    HTML (Ngôn ngữ đánh dấu siêu văn bản) và CSS (Biểu định kiểu xếp tầng) là hai trong số các công nghệ cốt lõi để xây dựng trang Web . HTML cung cấp cấu trúc của trang, CSS bố cục (hình ảnh và âm thanh), cho nhiều loại thiết bị.

    Cơ quan nào chịu trách nhiệm duy trì các tiêu chuẩn kiểu dáng của HTML?

    W3C là cơ quan tiêu chuẩn web nổi tiếng nhất, nhưng cũng có những tổ chức khác như WHATWG (tổ chức duy trì các tiêu chuẩn sống cho HTML .

    HTML CSS và JavaScript được gọi là gì?

    Nếu bạn đang học phát triển web, bạn sẽ bắt gặp các thuật ngữ như HTML, CSS và JavaScript. Chúng thường được gọi là các khối xây dựng của Web . Ba công cụ này thống trị phát triển web.

    XML và HTML có liên quan như thế nào?

    HTML và XML có liên quan với nhau, trong đó HTML hiển thị dữ liệu và mô tả cấu trúc của trang web, trong khi XML lưu trữ và truyền dữ liệu . HTML là một ngôn ngữ được xác định trước đơn giản, trong khi XML là ngôn ngữ tiêu chuẩn xác định các ngôn ngữ khác.