Làm quen với CAM: công nghệ xác thực XML mới

Đưa việc xác thực ngữ nghĩa và cấu trúc lên mức độ tiếp theo

Các tài liệu XML thường được xác thực cho hoặc DTD (ít khả năng hơn), hoặc lược đồ XML (nhiều khả năng hơn). Gần đây, một công nghệ mới tên là Content Assembly Mechanism (Cơ cấu Lắp ghép Nội dung) (CAM) đã xuất hiện. Nó được Tổ chức Vì Sự Tiến bộ của chuẩn Thông tin Có Cấu trúc (Organization for the Advancement of Structured Information Standards) (OASIS) phê duyệt. CAM đại diện cho bước tiến từ lược đồ XML vì nó còn đưa ra độ linh hoạt nhiều hơn trong việc định nghĩa cả ngữ nghĩa của một tài liệu XML và các quy tắc nghiệp vụ gắn với nội dung dữ liệu thực. Hãy xét tổng quan rộng về CAM, gồm cả các lợi ích của nó qua các tuỳ chọn, trong bài này.

Brian M. Carey, Tư vấn hệ thống TT, Triangle Information Solutions

Brian Carey là một chuyên viên về các hệ thống thông tin, đặc biệt là xây dựng kiến trúc, thiết kế và triển khai các ứng dụng Java doanh nghiệp



08 01 2010

Tiền thân của CAM

Như đã trình bày trong tóm tắt, CAM đại diện cho công nghệ mới nhất khi xác thực các tài liệu XML. Tất nhiên, điều này hàm ý rằng các công nghệ trước đây đã xác thực các tài liệu XML.

Các từ chữ đầu (acronyms) thường sử dụng

  • CCTS: Core Components Technical Specification - Đặc tả Kỹ thuật Các Thành phần Lõi.
  • DTD: Document Type Definition - Định nghĩa Kiểu Tài liệu.
  • IT: information technology - Công nghệ thông tin.
  • OWL: Web Ontology Language - Ngôn ngữ Bản thể luận Web.
  • XPath: XML Path Language - Ngôn ngữ Đường dẫn XML.
  • XML: Extensible Markup Language - Ngôn ngữ Đánh dấu Mở rộng.
  • XSD: XML Schema Definition - Định nghĩa Lược đồ XML.

Cái lâu đời nhất đã được biết với tên là DTD, viết tắt từ chữ Document Type Definition (Định nghĩa Kiểu Tài liệu). Như với hầu hết các tiếp cận công nghệ mới nổi, nó chịu những hạn chế. Nó đã tạo điều kiện thuận lợi cho việc xác thực cấu trúc tài liệu XML, nhưng không nhiều về cách thức về ngữ nghĩa. Nó cũng sử dụng cú pháp khá rắc rối để định nghĩa cấu trúc XML hợp lệ.

DTD sau này được thay thế bằng XSD, viết tắt từ XML Schema Definition (Định nghĩa Lược đồ XML). Đây là một phương tiện xác thực các tài liệu XML mạnh hơn nhiều. Đầu tiên, cú pháp tương tự như chính tài liệu XML. Sau đó, nó đưa ra hỗ trợ có cải tiến về ngữ nghĩa. Trong vài năm qua, các kỹ sư công nghệ tiên phong đã chọn tham gia xác thực các tài liệu XML của họ với XSD, trái với DTD.

Bước vào CAM

Lịch sử của công nghệ đã chỉ ra nhiều lần rằng luôn có một cách tốt hơn để lắp ráp một chiếc bẫy chuột cách ngôn (proverbial mousetrap). Việc xác thực XML không phải là ngoại lệ đối với nguyên tắc đó. CAM đại diện cho đầu vào mới nhất và phức tạp nhất trong gia đình các công nghệ được dùng để xác thực các tài liệu XML.

CAM được cơ quan chuẩn có tên OASIS đề xuất. Tổ chức này cung cấp một số đặc tả, đáng chú ý nhất là về Các Dịch vụ Web và Ngôn ngữ Đánh dấu Mở rộng kinh doanh điện tử (ebXML).

CAM mạnh và linh hoạt hơn nhiều so với các tiền bối của nó. Không giống như XSD, nó không ghép nối một cách chặt chẽ cấu trúc dữ liệu vào các quy tắc nghiệp vụ. Nó cũng đưa ra việc xác thực hướng ngữ cảnh, cái mà đang thiếu trong cả XSD và DTD.

Đối với hầu hết những người đã quen thuộc với XML, CAM cũng dễ học hơn nhiều so với XSD hay DTD. Đó là do trong định nghĩa cấu trúc, định dạng của một tài liệu CAM giống như một cá thể XML một cách đáng chú ý. Và, khi định nghĩa các quy tắc nghiệp vụ, CAM sử dụng (XPath nổi tiếng).

Cấu trúc của một khuôn mẫu CAM

Trong Liệt kê 1, bạn có thể thấy rằng cấu trúc của một khuôn mẫu CAM là không phức tạp.

Liệt kê 1. The structure of a CAM template
<as:CAM xmlns:as="http://www.oasis-open.org/committees/cam" 
CAMlevel="1" 
version="1.0"> 
<as:Header /> 
<as:AssemblyStructure /> 
<as:BusinessUseContext /> 
</as:CAM>

Phần tử gốc, CAM, định nghĩa không gian tên được dùng thông qua khuôn mẫu của chính nó cũng như là cấp độ và phiên bản của CAM.

Phần tử Header (Dòng đầu trang) cung cấp thông tin riêng về tài liệu xác thực. Nhiều phần tử con (không được hiển thị) có tính tự mô tả: Description (Mô tả), Owner (Chủ), Version (Phiên bản) và DateTime (Thời gian Ngày tháng ).

Phần tử AssemblyStructure định nghĩa cấu trúc thực của cá thể tài liệu XML. Đây là nơi CAM và bộ phận XSD đi theo nhau. Phần tử AssemblyStructure đưa ra việc xác thực cho cấu trúc của tài liệu XML nhưng không chứa bất kỳ thông tin nào về ngữ nghĩa.

Và, cuối cùng là phần tử BusinessUseContext cung cấp các quy tắc nghiệp vụ đang thiếu trong phần tử trước đó. Các quy tắc nghiệp vụ được đưa vào như thế nào? Đó là một câu hỏi tuyệt vời, nhưng trước hết bạn cần phải làm quen với cách mà CAM định nghĩa cấu trúc.

Cách CAM định nghĩa cấu trúc

Liệt kê 2 Liệt kê 2 hiển thị cách mà CAM định nghĩa cấu trúc cho một đơn hàng đơn giản.

Liệt kê 2. Một cấu trúc CAM cho một đơn hàng đơn giản
<as:AssemblyStructure> 
 <as:Structure ID="myPO" taxonomy="XML"> 
  <PurchaseOrder> 
  <ShippingAddress> 
   <Name>%string%</Name> 
   <Street>%string%</Street> 
   <City>%string%</City> 
   <State>%string%</State> 
   <Zip>%string%</Zip> 
  </ShippingAddress> 
  <ShipDate>%DD-MM-YYYY%</ShipDate> 
  <comment>%string%</comment> 
  <LineItems> 
   <LineItem> 
    <ItemName>%string%</ItemName> 
    <Quantity>%1%</Quantity> 
    <Price>%54321.00%</Price> 
    <Comment>%string%</Comment> 
   </LineItem> 
   </LineItems>
   <TotalPrice>%54321.00%</TotalPrice>
   <ShippingMethod>%string%</ShippingMethod> 
  </PurchaseOrder> 
 </as:Structure> 
</as:AssemblyStructure>

Khi xem xét Liệt kê 2, chú ý rằng cấu trúc của tài liệu XML được định nghĩa gần như chính xác mặc dù nó là một cá thể XML. Về mặt này, hầu hết các chuyên gia IT hầu như chắc chắn sẽ đồng ý rằng CAM là dễ đọc hơn nhiều so với XSD đối với những người nào đã hiểu cú pháp XML từ trước. Sự thực của tình trạng đó là nó được miêu tả thực sự như một cá thể XML, nhưng với nội dung không thích hợp, cái mà tôi sẽ giải thích ngay sau đây.

Phần tử Structure (Cấu trúc) là cha của định nghĩa cấu trúc thực. Nó có một thuộc tính ID (mã nhận dạng) xác định cấu trúc riêng này. Giá trị được công nhận hiện thời duy nhất đối với thuộc tính taxonomy (phân loại) là XML.

Chú ý rằng hầu hết các phần tử gồm các giá trị được phân ranh giới bởi ký hiệu phần trăm (%). Đây chỉ đơn giản là cái nắm giữ nội dung thực có trong cá thể XML. Chúng dùng để làm ra tài liệu dễ hiểu hơn bằng mắt thường, trái với việc cung cấp bất kỳ logic xác thực nào. Một số người, khi xây dựng các khuôn mẫu CAM, thực tế đặt các giá trị mẫu vào trong các phần tử, ngược với các giá trị chung bao hàm trong Liệt kê 2. Cách bao hàm tốt nhất các công cụ nắm giữ vị trí là tuỳ vào cá nhân các nhà phát triển.

Bây giờ bạn đã hiểu cách định nghĩa cấu trúc trong CAM, đã đến lúc tìm hiểu thêm một chút về cách thể hiện các quy tắc nghiệp vụ.

Cách CAM thể hiện các quy tắc nghiệp vụ

Nó thực sự đơn giản: XPath.

Vâng, đúng thế. XPath.

Và bây giờ bạn đã có một lợi thế khác của CAM so với các công nghệ xác thực trước đây. Nó sử dụng cú pháp mà hầu hết các kỹ sư công nghệ XML đã hiểu biết từ trước để áp đặt các quy tắc nghiệp vụ. Đối với những người này, không cần phải tìm hiểu ngôn ngữ để thực hiện việc xác thực CAM trong các ứng dụng của họ.

Liệt kê 3 có một thí dụ về phần tử BusinessUseContext.

Liệt kê 3. Áp đặt quy tắc nghiệp vụ với CAM
<as:BusinessUseContext> 
 <as:Rules> 
  <as:default> 
   <as:context> 
    <as:constraint action="makeRepeatable(//PurchaseOrder/LineItems/LineItem)"/> 
    <as:constraint action="makeOptional(//LineItem/Comment)"/> 
    <as:constraint action="setLength(//ShippingAddress/State,2)"/> 
    <as:constraint action="setDateMask(//PurchaseOrder/ShipDate,DD-MM-YYYY)"/> 
    <as:constraint action="setNumberMask(//LineItem/Quantity,###)"/> 
    <as:constraint action="setNumberMask(//LineItem/Price,###.##)"/>
    <as:constraint action="setNumberMask(//PurchaseOrder/TotalPrice,###.##)"/> 
    <as:constraint condition="//PurchaseOrder/TotalPrice > 100" 
     action="makeOptional(//PurchaseOrder/ShippingMethod)"> 
   </as:context> 
  </as:default> 
 </as:Rules> 
</as:BusinessUseContext>

Đối với nhà phát triển XML có kinh nghiệm, cấu trúc này khá dễ giải thích. Không chỉ vì các ràng buộc sử dụng XPath, mà vì các nguyên tắc xác thực được đặt tên theo tiếng Anh chuẩn. Hơn nữa, đây là điều khiến CAM có sức thu hút như vậy.

Các quy tắc tự chúng được định nghĩa trong phần tử context (ngữ cảnh). Mỗi quy tắc là một tham số action (hành động) của một trong những phần tử con constraint (ràng buộc).

Chú ý quy tắc đầu tiên: makeRepeatable(//PurchaseOrder/LineItems/LineItem). Như tên gọi này hàm ý, nó cho bộ xác thực biết phần tử con LineItem của phần tử LineItemscó thể lặp lại được. Điều này tức là có thể nhiều trong số chúng, tạo nên cảm giác hoàn thiện do đơn hàng điển hình có thể có nhiều mục khác nhau.

Quy tắc tiếp theo là về phần tử Comment (Bình luận). Quy tắc này phát biểu rằng các bình luận là tuỳ chọn. Nói một cách khác, tài liệu XML có thể là hợp lệ với một phần tử Comment rỗng.

Quy tắc tiếp theo đặt độ dài tối đa, theo các ký tự, cho phần tử State. Trong trường hợp này, độ dài tối đa là 2, được hiểu như mã bưu điện (postal abbreviation) ứng với một bang ở Hoa kỳ.

Quy tắc tiếp nữa áp đặt định dạng ngày tháng. Ở đây, định dạng DD-MM-YYYY được sử dụng, mặc dù có thể chắc chắn bạn sử dụng các định dạng khác. Trong trường hợp này, một ngày hợp lệ sẽ là tương tự như 03-03-2009, có nghĩa là ngày 3 tháng 3 năm 2009.

Quy tắc tiếp theo áp đặt định dạng cho phần tử Quantity (Số lượng). Trong trường hợp này, các nội dung của phần tử đó phải là một số phù hợp với mặt nạ ###. Nói cách khác, một đơn đặt hàng chứa một mục dòng với một số bốn chữ số trong phần tử Quantity sẽ được coi là không hợp lệ. Với quy tắc này, một đơn đặt hàng không thể chứa một mục dòng mà đặt mua một số lượng nhiều hơn 999 đối với bất kỳ sản phẩm nào.

Hai quy tắc tiếp theo, Price (Giá) và TotalPrice (Tổng giá tiền), giống với quy tắc trước. Giống như quy tắc Quantity chúng áp sử dụng mặt nạ số lượng. Khác biệt là ở chỗ mặt nạ số lượng tính đến các dấu thập phân. Đó là vì hai phần tử là các giá trị đôla mà có thể chứa các giá trị phân số đại diện cho tiền xu.

Và cuối cùng là có quy tắc đặc biệt thú vị. Thú vị vì đưa vào một ràng buộc hướng ngữ cảnh. Chính xác đó là gì? Đó là một ràng buộc mà có thể xác thực một tài liệu XML trên cơ sở nội dung của các phần tử nhất định. Trong trường hợp này, nếu tổng giá tiền của đơn hàng vượt quá 100 đôla, thì phần tử ShippingMethod của tài liệu XML có thể là rỗng. Nếu không, nó không thể rỗng. Quy tắc nghiệp vụ đã áp dụng ở đây là các đơn hàng mà tổng cộng 100 đôla hoặc nhiều hơn tự động được vận chuyển theo chuẩn miễn phí. Đối với các đơn hàng nhỏ hơn 100 đôla, tài liệu phải quy định một phương thức chuyển hàng.

Lắp ghép toàn bộ với nhau

Liệt kê 4 trình bày toàn bộ tài liệu CAM được ghép từ các đoạn cung cấp trước đó.

Liệt kê 4. Bây giờ hãy ghép toàn bộ với nhau
<?xml version='1.0'?> 
<as:CAM CAM level="1" version="1.0" 
	xmlns:as="http://www.oasis-open.org/committees/cam" > 
<as:Header> 
 <as:Description>Simple Purchase Order</as:Description> 
 <as:Owner>developerWorks</as:Owner> 
 <as:Version>0.1</as:Version> 
 <as:DateTime>2009-07-07T12:00:00</as:DateTime> 
</as:Header> 
<as:AssemblyStructure> 
 <as:Structure ID="myPO" taxonomy="XML"> 
  <PurchaseOrder> 
  <ShippingAddress> 
   <Name>%string%</Name> 
   <Street>%string%</Street> 
   <City>%string%</City> 
   <State>%string%</State> 
   <Zip>%string%</Zip> 
  </ShippingAddress> 
  <ShipDate>%DD-MM-YYYY%</ShipDate> 
  <comment>%string%</comment> 
  <LineItems> 
   <LineItem> 
    <ItemName>%string%</ItemName> 
    <Quantity>%1%</Quantity> 
    <Price>%54321.00%</Price> 
    <Comment>%string%</Comment> 
   </LineItem> 
   </LineItems>
   <TotalPrice>%54321.00%</TotalPrice>
   <ShippingMethod>%string%</ShippingMethod> 
  </PurchaseOrder> 
 </as:Structure> 
</as:AssemblyStructure>
<as:BusinessUseContext> 
 <as:Rules> 
  <as:default> 
   <as:context> 
    <as:constraint action="makeRepeatable(//PurchaseOrder/LineItems/LineItem)"/> 
    <as:constraint action="makeOptional(//LineItem/Comment)"/> 
    <as:constraint action="setLength(//ShippingAddress/State,2)"/> 
    <as:constraint action="setDateMask(//PurchaseOrder/ShipDate,DD-MM-YYYY)"/> 
    <as:constraint action="setNumberMask(//LineItem/Quantity,###)"/> 
    <as:constraint action="setNumberMask(//LineItem/Price,###.##)"/>
    <as:constraint action="setNumberMask(//PurchaseOrder/TotalPrice,###.##)"/> 
    <as:constraint condition="//PurchaseOrder/TotalPrice > 100" 
     action="makeOptional(//PurchaseOrder/ShippingMethod)"> 
   </as:context> 
  </as:default> 
 </as:Rules> 
</as:BusinessUseContext> 
</as:CAM>

Như bạn thấy, Liệt kê 4 hơi nhỏ hơn nối ghép của Liệt kê 23. Một phần tử Header được bổ sung, mà chỉ đơn giản là xác định thông tin về tệp xác thực riêng này. Trong trường hợp này, mô tả đơn giản, một người chủ, một phiên bản, và ngày tháng của tài liệu được thêm vào.

Mặc dù không hiển thị trong Liệt kê 4, phần tử Header cũng có thể chứa các tham số. Việc xác thực tài liệu XML có thể thay đổi trên cơ sở giá trị của các tham số. Ví dụ, nếu một tham số có tên là noMoreThan10LineItems được đặt giá trị true (đúng), tài liệu CAM áp đặt quy tắc nghiệp vụ là không thể có quá 10 phần tử LineItem trong toàn bộ đơn hàng. Đây là một thí dụ về mức độ mạnh mẽ và độ linh hoạt của CAM có thể có khi nó thực hiện việc xác thực. Lợi ích ở đây là bạn có thể chỉ cần đổi tham số đó sang giá trị false (sai) để làm mất hiệu lực quy tắc đó.

Các lợi ích của CAM so với đối thủ cạnh tranh

Rõ ràng là chỉ vì một công nghệ nào đó là mới không có nghĩa rằng nó là hữu ích hoặc cung cấp một kết quả thu được cao hơn về đầu tư của những bậc tiền bối. Tuy nhiên, CAM có một số lợi thế rõ ràng so với các đối thủ cạnh tranh của nó.

Đầu tiên, CAM tách riêng cấu trúc từ các quy tắc nghiệp vụ. Đây là một mẫu luôn trở lại thông qua phát triển phần mềm và không hạn chế một chút nào với CAM. Thí dụ, mẫu Model-View-Controller (MVC) trong các môi trường phát triển đối tượng được phân phối tách mô hình ra khỏi khung nhìn từ bộ điều khiển. Ngược với CAM, XSD ghép nối chặt chẽ cấu trúc với các quy tắc nghiệp vụ, làm cho chi phí bảo trì cao hơn.

CAM cũng cho phép xác thực hướng ngữ cảnh. Nói cách khác, CAM công nhận một cấu trúc động dựa trên nội dung của các phần tử hoặc thuộc tính nhất định. Như vậy, nếu phần tử X chứa một giá trị nhất định, một quy tắc nghiệp vụ được áp dụng cho phần tử Y. Nếu nó chứa giá trị khác, quy tắc nghiệp vụ đó có thể được áp dụng cho phần tử Z thay vào đó. Điều này trình bày trong Liệt kê 3 với quy tắc cuối cùng. Trong trường hợp đó, các tài liệu đặt mua hàng với tổng giá tiền 100 đôla hoặc nhiều hơn không cần quy định một phương thức chuyển hàng do có chuyển hàng theo chuẩn miễn phí đối với các đơn hàng đó. các bậc tiền bối của CAM không tạo điều kiện cho việc xác thực phức tạp như vậy.

Việc phân tích các tập hợp quy tắc và cấu trúc dễ hơn nhiều với CAM. Cấu trúc được trình bày như một cá thể XML theo định dạng cây thông thường, bằng cách ấy con người cũng như máy tính có thể đọc nó dễ dàng hơn. Ngữ pháp dùng để áp đặt các quy tắc nghiệp vụ cũng trực quan như vậy: makeRepeatable, makeOptional, setLength, v.v… không quá khó khăn khi giải mã. Và mặc dù các quy tắc và cấu trúc là tách biệt, chúng vẫn nằm trong cùng một tài liệu, tạo điều kiện dễ dàng nhìn toàn cảnh về các yêu cầu xác thực tổng thể. Mặt khác XSD đòi hỏi hiểu biết về một tập hợp các định nghĩa không trực giác— chẳng hạn như complexType (nghĩa là gì?) — và không được phân tích dễ dàng như vậy.

Tiếp tục với chủ đề “bạn không cần tìm hiểu thứ gì mới”, CAM sử dụng XPath. Như đã hiển thị trước đây, đây là ngôn ngữ thể hiện quy tắc nghiệp vụ trên các phần tử nhất định. Không chỉ có tính trực quan XPath và dễ học, nó còn được biết từ trước đối với hầu hết các kỹ sư công nghệ XML. Điều này làm cho việc chuyển dịch sang CAM trơn tru hơn nhiều vì việc xác thực logic nghiệp vụ không đòi hỏi các nhà phát triển XML tìm hiểu điều gì mới hoàn toàn. Ngữ pháp XSD không phải là thứ gì đó như XPath.

Một ưu thế khác của CAM so với XSD là việc bản địa hóa cần được áp đặt dễ dàng hơn với CAM. Với XSD, các liệt kê là tĩnh và do đó không thể thực hiện việc nhận thức theo ngữ cảnh. Tuy nhiên, với CAM, bạn có thể áp dụng việc liệt kê riêng dựa trên các giá trị ngữ cảnh. Trong thị trường toàn cầu đang nổi, nhu cầu xác thực được tổ chức hợp lý như vậy phải là tự giải thích.

Các khuôn mẫu CAM cũng đưa ra hỗ trợ Kiến trúc Hướng Dịch vụ (Service-Oriented Architecture) thế hệ tiếp theo. CAM hỗ trợ các công nghệ quy trình kinh doanh như Ngôn ngữ Thực hiện Quy trình Kinh doanh (Business Process Execution Language) (BPEL), Lược đồ Quy trình Đặc tả Kinh doanh (Business Process Specification Schema) (BPSS), và các công cụ mô hình hoá Ký pháp Mô hình hoá Quy trình Kinh doanh (Business Process Modeling Notation) (BPMN). Hãy trích dẫn từ trang Wiki : “Hoàn tất hình ảnh SOA mà CAM có các cơ chế mở rộng có thể được dùng để hỗ trợ việc tham chiếu đăng ký ngữ nghĩa (chẳng hạn như ebXML-regrep) và các định nghĩa siêu dữ liệu (chẳng hạn như CCTS và OWL) nằm bên ngoài các khuôn mẫu là chìa khoá cho các trao đổi SOA thế hệ tiếp theo.” Ngoài ra, CAM đã được OASIS phát triển, nên bạn có thể chắc chắn rằng tổ chức này sẽ đảm bảo rằng CAM là tương thích với các chuẩn khác của nó, trong trường hợp CAM chưa tương thích.

Kết luận

CAM đại diện cho thế hệ mới nhất của các công nghệ xác thực XML. Nó cung cấp nhiều lợi ích hơn những bậc tiền bối của nó. Các lợi ích đó gồm sự tách biệt quan tâm về cấu trúc và logic nghiệp vụ, xác thực động dựa trên ngữ cảnh, sự tương kết với các công nghệ tối tân, chi phí bảo trì thấp hơn, và nó dễ học hơn. CAM cũng được phê duyệt bởi một tổ chức tiêu chuẩn rất được tôn trọng là OASIS.

CAM là một công nghệ đang nổi. Theo đúng nghĩa, nó không được dẫn chứng bằng tài liệu và không hưởng lợi ích từ kinh nghiệm của mọi người. Tuy nhiên, chắc chắn nó rất mạnh trong bản phát hành ban đầu của nó và hứa hẹn là một phương tiện hiệu quả hơn nhiều về việc xác thực XML.

CAM gần như chắc chắn ở đây để ở lại và thay thế các bậc tiền bối của nó.

Tài nguyên

Học tập

  • Trang mạng biên tập tự do OASIS CAM: Tìm hiểu nhiều hơn về CAM.
  • Về Hướng dẫn Lược đồ XML: Khám phá cách tạo ra các lược đồ XML, nguyên nhân tại sao các lược đồ XML mạnh hơn nhiều so với các DTD, và cách sử dụng Lược đồ XML trong ứng dụng của bạn.
  • Tài liệu hướng dẫn DTD: Tìm hiểu cách sử dụng các DTD.
  • Giới thiệu về XML (Doug Tidwell, developerWorks, 8.2002): XML, Ngôn ngữ Đánh dấu Mở rộng, đã đi từ thông dụng mới nhất đến công nghệ eBusiness được củng cố trong thời gian kỷ lục. Hãy tìm hiểu XML là gì, tại sao nó được phát triển, và cách nó hình thành tương lai của thương mại điện tử.
  • Xác thực XML (Nicholas Chase, developerWorks, 8.2003): Xác thực các tệp và tài liệu để chắc chắn rằng dữ liệu phù hợp với các ràng buộc toàn vẹn. Hãy tìm hiểu xác thực là gì và cách kiểm tra một tài liệu đối lại một Định nghĩa Kiểu Tài liệu (DTD) hoặc tài liệu Lược đồ XML.
  • Thiết kế các lược đồ XML cho dữ liệu doanh nghiệp (Bilal Siddiqui, developerWorks, 10.2006): Tìm hiểu cách sử dụng các đặc tính của Lược đồ XML W3C để thiết kế các định dạng dữ liệu dùng cho quản lý sản xuất.
  • Cấp giấy chứng nhận XML của IBM: Tìm ra cách mà bạn có thể trở thành một nhà phát triển được IBM chứng nhận về XML và các công nghệ liên quan.
  • Thư viện kỹ thuật XML: Xem XML developerWorks zone để có các bài viết về kỹ thuật và mách nước, các hướng dẫn, tiêu chuẩn, và Sách đỏ IBM trong phạm vi rộng.
  • Các sự kiện kỹ thuật developerWorks và các buổi phát tin trên mạng: Theo sát công nghệ trong các phiên làm việc này.
  • Nhà sách công nghệ: Duyệt xem các cuốn sách về chủ đề này và các chủ đề kỹ thuật khác.
  • developerWorks podcasts: Hãy nghe các phỏng vấn và thảo luận thú vị cho các nhà phát triển phần mềm.

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Nguồn mở
ArticleID=459890
ArticleTitle=Làm quen với CAM: công nghệ xác thực XML mới
publish-date=01082010