1. Giới thiệu về XML

Doug Tidwell

Tóm tắt:  XML (Extensible Markup Language) đã phát triển từ buzzword cuối cùng trở thành cơ sở của nền công nghệ thương mại điện tử trong thời gian kỷ lục. Những bài hướng dẫn mới nhất bàn về các vấn đề XML là gì, tại sao nó được phát triển, và cách nó đang tạo hình thái tương lai của thương mại điện tử ra sao. Trong đó cũng bao gồm rất nhiều vấn đề chung và các tiêu chuẩn quan trọng trong lập trình XML, được kết thúc bằng hai nghiên cứu tình huống chỉ ra cách những công ty đang sử dụng XML để giải quyết những vấn đề kinh doanh như thế nào.


Giới thiệu

XML, hoặc Extensible Markup Language (ngôn ngữ đánh dấu mở rộng), là một ngôn ngữ đánh dấu mà bạn có thể sử dụng để tạo ra thẻ riêng của mình. Nó được tạo nên bởi Liên minh mạng toàn cầu nhằm khắc phục những hạn chế của HTML - ngôn ngữ đánh dấu siêu văn bản, là cơ sở của mọi trang Web. Giống như HTML, XML cũng được dựa trên SGML – Standard Generalized Markup Language. Mặc dù SGML được sử dụng trong ngành công nghiệp xuất bản trong nhiều thập kỷ, nhưng sự phức tạp của nó đều khiến những ai từng sử dụng nó mà không có cách nào khác phải thấy mệt mỏi (một cách nói vui, SGML cũng là "Sounds great, maybe later").

Tại sao chúng ta cần XML?

HTML là ngôn ngữ đánh dấu thành công nhất từ trước tới nay. Bạn có thể thấy dấu ấn của HTML đơn giản nhất trên bất cứ công cụ nào, từ thiết bị cầm tay tới máy chủ, thậm chí bạn còn có thể chuyển đổi đánh dấu HTML sang lời nói hoặc các định dạng khác với những công cụ chính xác. HTML thành công như thế, tại sao W3C lại tạo ra XML? Để trả lời cho câu hỏi này, hãy xem tài liệu dưới đây:

<p><b>Mrs. Mary McGoon</b>
<br>
1401 Main Street
<br>
Anytown, NC 34829</p>
          

Vấn đề của HTML là nó được thiết kế như trong ý nghĩ của con người. Cho dù thông tin trên HTML không được thể hiện trên một trình duyệt thì chúng ta vẫn đoán biết được rằng đó là một địa chỉ bưu điện của ai đó. (Cụ thể hơn là địa chỉ bưu điện ở Mỹ; và thậm chí dù bạn không biết rõ về các khu vực bưu điện ở Mỹ thì bạn vẫn có thể đoán ra nó đang nói về cái gì.)

Con người chúng ta đều có trí thông minh để hiểu được ý nghĩa và mục đích của hầu hết các văn bản. Tuy nhiên một cỗ máy lại không như thế. Khi các thẻ trong tài liệu này chỉ cho một trình duyệt cách thể hiện thông tin, thì bản thân các thẻ lại không chỉ cho trình duyệt thông tin đó là gì. Bạn và tôi đều biết đó là một địa chỉ, nhưng máy móc thì không thế.

Diễn tả HTML

Để diễn tả HTML, trình duyệt phải tuân theo các chỉ dẫn của tài liệu HTML. Đoạn thẻ cho trình duyệt biết phải bắt đầu diễn tả trên một dòng mới, điển hình là bằng một dòng trống phía trước, hai thẻ tách cho trình duyệt biết phải diễn tả dòng tiếp theo mà không có dòng trống ở giữa. Ngay cả khi trình duyệt định dạng tài liệu rất đẹp đẽ thì máy móc vẫn không biết đó là một địa chỉ.

Đặc trưng 1. địa chỉ HTML

HTML address

Xử lý HTML

Về vấn đề này của tài liệu HTML mẫu, thử tính đến việc rút mã bưu chính ra khỏi địa chỉ này. Đây là một thuật toán (tách gỡ có chủ ý) nhằm tìm ra mã bưu chính trong đánh dấu HTML:

Nếu bạn tìm thấy một đoạn có hai <br> thẻ, mã bưu chính chính là từ thứ hai sau dấy phẩy đầu tiên trong thẻ thứ hai.

Cho dù thuật toán này có thể giải quyết được ví dụ trên, nhưng sẽ có vô số các địa chỉ hoàn toàn tồn tại trên khắp thế giới mà thuật toán này không thể giải quyết được. Và thậm chí nếu bạn có thể viết được thuật toán tìm mã bưu chính trong mọi địa chỉ diễn tả trong HTML, thì cũng có vô số các đoạn với hai thẻ mà không chứa một địa chỉ nào cả. Vì vậy viết ra một thuật toán có thể tìm được mã bưu chính trong mọi đoạn HTML là vô cùng khó, nếu không nói là không thể.

Văn bản XML mẫu

Bây giờ hãy thử xem một văn bản XML mẫu. Với XML, bạn có thể đưa ý nghĩa vào các thẻ trong văn bản. Quan trọng hơn, máy tính sẽ dễ dàng hơn trong việc xử lý thông tin. Bạn có thể rút được mã bưu chính ra từ văn bản này đơn giản là bằng cách bao bọc nó bởi <postal-code> </postal-code> các thẻ, được biết một cách máy móc là phần tử <postal-code>.

<address>
  <name>
    <title>Mrs.</title>
    <first-name>
      Mary
    </first-name>
    <last-name>
      McGoon
    </last-name>
  </name>
  <street>
    1401 Main Street
  </street>
  <city>Anytown</city>
  <state>NC</state>
  <postal-code>
    34829
  </postal-code>
</address>
          

thẻ, phần tử, và thuộc tính

Có ba thuật ngữ chủ yếu dùng để miêu tả các phần của một văn bản XML: thẻ, phần tử, và thuộc tính. Đây là văn bản mẫu minh họa các thuật ngữ:

<address>
  <name>
    <title>Mrs.</title>
    <first-name>
      Mary
    </first-name>
    <last-name>
      McGoon
    </last-name>
  </name>
  <street>
    1401 Main Street
  </street>
  <city state="NC">Anytown</city>
  <postal-code>
    34829
  </postal-code>
</address>
          

  • thẻ là phần chữ giữa dấu ngoặc đơn bên trái (<) và ngoặc đơn bên phải (>). Có thẻ bắt đầu (như <name>) và thẻ kết thúc (như </name>)
  • phần tử là thẻ bắt đầu, thẻ kết thúc, và mọi thứ giữa chúng. Trong mẫu trên, <name>, phần tử bao gồm ba phần tử con: <title>, <first-name>, và <last-name>.
  • Thuộc tính là một cặp giá trị tên trong thẻ bắt đầu của một phần tử. Trong ví dụ này, state là một thuộc tính của phần tử <city>; trong ví dụ trước đó, <state> là một phần tử (xem Một văn bản XML mẫu).

XML đang thay đổi Web như thế nào

Bây giờ bạn đã thấy những nhân viên phát triển sử dụng XML để tạo nên văn bản với các dữ liệu tự-mô tả như thế nào, chúng ta hãy xem người ta đang sử dụng những văn bản này để cải thiện Web như thế nào. Dưới đây là một số lĩnh vực chủ chốt:

  • XML đơn giản hóa việc trao đổi dữ liệu. Bởi vì những tổ chức khác (hoặc thậm chí là các phần khác nhau trong cùng tổ chức) hiếm khi làm chuẩn hóa trên một bộ công cụ duy nhất, chúng sẽ phải làm một số lượng đáng kể công việc để trao đổi thông tin. Sử dụng XML, mỗi nhóm sẽ tạo nên một lợi ích riêng mà có thể chuyển đổi những định dạng dữ liệu bên trong trở thành XML và ngược lại. Trên hết, đây là cơ hội tốt để nhà cung cấp phần mềm có thể đưa ra các công cụ chuyển đổi những ghi chép cơ sở dữ liệu của họ (danh bạ LDAP hoặc lệnh mua, v.v...) thành XML và ngược lại.
  • XML cho phép mã hóa thông minh. Bởi vì những văn bản XML được tổ chức để nhận dạng từng thông tin quan trọng (cũng như mối quan hệ giữa các thông tin), có thể viết mã để xử lí văn bản XML mà không cần con người tác động. Những nhà cung cấp phần mềm đã dành rất nhiều thời gian và tiền bạc xây dựng các công cụ phát triển XML, điều đó có nghĩa là viết mã đó, là một quá trình tương đối đơn giản.
  • XML cho phép tìm kiếm thông minh. Mặc dù công cụ tìm kiếm đã cải thiện dần trong nhiều năm qua, tuy nhiên nhận được những kết quả không chính xác vẫn phổ biến xảy ra. Nếu bạn đang tìm kiếm một ai đó mang tên “Chip” trong những trang HTML, bạn sẽ tìm thấy một loạt các trang web về chip sô-cô-la, chip máy tính, chip gỗ, và nhiều thứ vô dụng khác. Tìm kiếm văn bản XML cho <first-name> các yếu tố chứa từ Chip sẽ mang lại cho bạn những kết quả tốt hơn rất nhiều.

Tôi cũng sẽ đề cập tới ứng dụng thực tế của XML trong Các nghiên cứu tình huống .

1 của 7  | Trang sau

Comments