Chuyển đến nôi dung chính

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 (tiếng Anh).

Khi bạn đăng nhập lần đầu tiên, một bản trích ngang trên developerWorks sẽ được tạo ra. Chọn các thông tin trong trích ngang của developerWorks để hiển thị công khai, bạn có thể sửa lại thông tin này bất cứ lúc nào. Tên, họ và tên hiển thị sẽ đi kèm với nội dung mà bạn gửi lên.

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

  • Đóng [x]

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.

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 (tiếng Anh).

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

  • Đóng [x]

Sản xuất tài liệu và sử dụng lại thông tin trong XML, Phần 3: Tạo những tài liệu XML đa mục đích

Sử dụng những tài liệu đơn nguồn cho nhiều người dùng và nhiều định dạng đầu ra

William von Hagen, Quản trị hệ thống, Tác giả, WordSmiths
William von Hagen đã là một tác giả và là một quản trị viên các hệ thống UNIX từ suốt hơn 20 năm qua và một người ủng hộ Linux từ năm 1993. Bill là tác giả hoặc đồng tác giả của các cuốn sách về các chủ đề như là Ubuntu Linux, Xen Virtualization, GNU Compiler Collection (GCC), SUSE Linux, Mac OS X, các hệ thống tệp tin Linux và SGML. Ông cũng đã viết rất nhiều bài viết cho các ấn phẩm Linux và Mac OS X và các trang web

Tóm tắt:  XML là một định dạng tối ưu cho việc viết những tài liệu mà bạn có thể sử dụng với nhiều gói phần mềm tài liệu và nhiều môi trường sản xuất khác nhau. Trong bài viết thứ ba của loạt bài, bạn khám phá làm thế nào để tạo những tài liệu đơn nguồn mà có thể tạo ra kết quả với nhiều định dạng khác nhau.

Xem thêm bài trong loạt bài này

Ngày:  29 01 2010
Mức độ:  Trung bình Cũng sẵn có bằng  tiếng Anh PDF:  A4 và Thư (226KB | 8 pages)Tải Adobe® Reader®
Hoạt động:  3300 lần đọc
Góp ý kiến:  


Tài liệu đơn nguồn là gì?

Như Phần 1 trong loạt bài này đã trình bày, sử dụng XML (và khái niệm tiền bối của nó, Ngôn ngữ Đánh dấu Tổng quát Chuẩn, hoặc SGML) dành cho tài liệu cho phép bạn phân tách nội dung của một tài liệu — những từ và dữ liệu thực sự mà nó chứa — từ biểu diễn của nó — theo cách mà nội dung được hiển thị theo định dạng đầu ra cụ thể hoặc trên thiết bị đầu ra riêng. Sự phân tách này cho phép bạn tập trung vào nội dung của tài liệu đó hơn là làm thế nào để thông tin sẽ được sử dụng hoặc biểu diễn. Phần 2 thảo luận về những cơ chế khác nhau cho phép bạn tổ chức tài liệu XML vào những đơn vị thông tin nhỏ hơn (được biết đến như là (sự phân mảnh (chunking)) một cách rộng rãi, để tạo những tài liệu lớn hơn hoặc những tài liệu cho các người dùng khác nhau bằng việc xâu chuỗi những mảnh thông tin khác nhau lại với nhau hoặc những mảnh thông tin giống nhau trong những chuỗi khác nhau.

Những từ viết tắt được dùng thường xuyên

  • DITA: Kiến trúc Kiểu Thông tin Darwin (Darwin Information Typing Architecture)
  • DTD: Định nghĩa kiểu tài liệu (Document type definition)
  • HTML: Ngôn ngữ đánh dấu siêu văn bản (Hypertext Markup Language)
  • PDF: Định dạng Tài liệu khả chuyển (Portable Document Format)
  • URL: Định vị tài nguyên thống nhất (Uniform Resource Locator)
  • XML: Ngôn ngữ Đánh dấu mở rộng (Extensible Markup Language)
  • XSL: Ngôn ngữ Định kiểu mở rộng (Extensible Stylesheet Language)

Sự phát triển tự nhiên quá nhanh của XML như là môi trường tài liệu độc lập-phần mềm mà tạo điều kiện tái sử dụng thông tin là cần thiết cho việc tùy biến thông tin sao cho nội dung của nó biến đổi tùy theo người dùng và định dạng đầu ra cụ thể. Việc tái sử dụng này thường được biết đến như là tài liệu đơn nguồn, bởi vì một tập đơn những tệp tin đầu vào có thể thỏa mãn các yêu cầu của đa người dùng hoặc nhiều định dạng đầu ra. Một vài yêu cầu đơn nguồn được gắn một cách tự động bằng các công cụ mà công cụ đó sản xuất đầu ra theo những định dạng khác nhau. Ví dụ, việc sản sinh đầu ra PDF cho một tài liệu DocBook XML có chứa một liên kết đến các tài nguyên mở rộng (sử dụng thành phần <ulink>) nhúng cả siêu liên kết đến thông tin đó và URL thực sự của nó trong đầu ra, trong khi việc sản sinh đầu ra HTML từ cùng tài liệu XML chỉ đơn giản là nhúng một liên kết vào đầu ra HTML đó.

Việc chuyển đổi một phần tử đơn theo các cách khác nhau cho những định dạng đầu ra khác nhau là một bước đi đúng cho tài liệu đơn nguồn, nhưng nó không cho phép tùy biến nội dung tài liệu trên những yêu cầu biểu diễn của nó. Có thể tùy biến nội dung thực sự của một tài liệu dựa trên định dạng đầu ra đích của nó là một yêu cầu khá phổ biến đối với tài liệu hiện đại. Thật may mắn, điều này được nhúng một cách dễ dàng bằng sự kết hợp giữa việc tiền xử lý và tận dụng ưu điểm của khía cạnh mềm dẻo trong thiết kế của các định dạng tài liệu chẳng hạn như DocBook XML.


Các thuộc tính và phần tử DocBook

Những phần tử XML sử dụng cặp tên-giá trị được gọi là các thuộc tính để cung cấp thông tin thêm về một thể hiện của một phần tử. Điển hình, những thuộc tính mà xác định một cách duy nhất các thể hiện của cùng một phần tử trong một tài liệu XML hoặc xác định hành vi được cụ thể hóa cho các thể hiện của một phần tử. Các thuộc tính được chứa trong phạm vi của một phần tử và có cú pháp:

<attribute_name="value">

Ví dụ, thuộc tính phổ biến nhất cho những phần tử XML là thuộc tính id, thuộc tính này xác định duy nhất một thể hiện của một phần tử XML cho trước, như trong ví dụ sau đây:

<section id="introduction">

Trong tài liệu XML, các thuộc tính id hỗ trợ việc tham chiếu chéo thông qua những phần tử chẳng hạn như các phần tử <xref><link>. Đây là những ví dụ của những tham chiếu đến phần tử <section> được sử dụng trong ví dụ trước đó:

<xref linkend="introduction"/>
<link linkend="introduction">introduction to this document</link>

Một ví dụ của thuộc tính mà xác định hành vi được cụ thể hóa cho một phần tử là thuộc tính role của phần tử <emphasis>:

<emphasis role="bold">example</emphasis>

Nội dung nằm bên trong phần tử <emphasis> được trả lại theo kiểu chữ nghiêng trong những định dạng biểu diễn chẳng hạn như PDF hoặc HTML. Việc chỉ thị thuộc tính role="bold" thay đổi việc trả về của phần tử này từ chữ nghiêng sang chữ đậm.


Những hướng tiếp cận khác cho tùy biến tài liệu

Về mặt lịch sử, những ngôn ngữ đánh dấu được hướng tới sản xuất tài liệu hỗ trợ mức độ tùy biến nào đó của một tập những phần tử mà chúng hỗ trợ. Việc tạo những phần tử tùy biến mà có thể được sử dụng theo những cách riêng với một công cụ cho trước là một đặc trưng của Ngôn ngữ Đánh dấu Tổng Quát gốc, hoặc GML, thế hệ trước của SGML (xem Tài nguyên để có thêm thông tin). Như gợi ý của các từ viết tắt, điểm khác nhau chính giữa GML và SGML là sự tiêu chuẩn hóa của tập những phần tử được biểu diễn ở một định nghĩa kiểu tài liệu cho trước.

Sau đó, cho dù SGML và các kiểu tài liệu XML được thiết kế để sử dụng một chuẩn, một tập phần tử được định nghĩa trước, nó vẫn có thể thêm vào những định nghĩa phần tử tùy biến bằng cách tham chiếu đến các tài nguyên mở rộng xác định những phần tử đó. Tuy nhiên, việc thêm những định nghĩa phần tử tùy biến vào một DTD hoặc lược đồ đang tồn tại là một ý tưởng tồi vì nhiều lý do khác nhau, quan trọng nhất là:

  • Các tài liệu sử dụng những phần tử không chuẩn không còn phù hợp với những kiểu tài liệu chuẩn chẳng hạn như DocBook hoặc DITA.
  • Việc mở rộng một DTD hoặc lược đồ giới hạn những cơ hội cho việc trao đổi tài liệu với những cơ quan hoặc công ty khác nhau mà những nơi này sử dụng các DTDs hoặc lược đồ tiêu chuẩn. Thậm chí nếu bạn cũng trao đổi các định nghĩa cho những phần tử không chuẩn của bạn, khối lượng việc tùy biến sẽ bị yêu cầu nhiều hơn cho sự trao đổi tài liệu thành công.
  • Những công cụ được thiết kế để làm việc với các kiểu tài liệu chuẩn sẽ phải được mở rộng để hỗ trợ những phần tử mới. Mặc dù làm như vậy là khá dễ dàng với những công cụ nguồn mở, sự mở rộng này có thể là không thể được với những công cụ thuộc quyền sở hữu riêng, những công cụ nguồn đóng.

Bài viết này thảo luận về việc sử dụng một bước tiền xử lý để loại bỏ văn bản một cách có điều kiện mà không áp dụng cho một người dùng hoặc định dạng đầu ra cụ thể. Một vài công cụ tài liệu XML đồ họa cung cấp một giải pháp tương đương bằng việc cho phép bạn thiết lập các biến sử dụng trong suốt tiến trình sản sinh đầu ra. Bài viết này tập trung vào hướng tiếp cận phổ biến hơn của việc tiền xử lý mà có thể được sử dụng trong một phạm vi rộng lớn của những công cụ tài liệu XML nguồn mở hơn là vào những cơ chế hỗ trợ bằng những công cụ tài liệu cụ thể.


Những thuộc tính phổ biến cho các phần tử DocBook

Như người dùng có thể mong đợi, các phần tử XML khác nhau có các thuộc tính khác nhau dựa trên kiểu và tác dụng của phần tử cụ thể. Tuy nhiên, những lược đồ tài liệu XML và DTD chẳng hạn như kiểu tài liệu DocBook mà là trọng tâm của loạt bài viết này cũng định nghĩa một tập các thuộc tính phổ biến (xem Tài nguyên để biết thêm thông tin), tập này có thể được sử dụng trên bất kỳ phần tử XML nào và được sử dụng để nhận dạng thông tin cụ thể biểu diễn - hoặc đích - cụ thể cho một phần tử cho trước. Các ví dụ phổ biến của những thuộc tính này bao gồm:

  • arch: Được thiết kế để nhận dạng hệ thống máy tính hoặc kiến trúc bộ xử lý mà nội dung bên trong một thể hiện cho trước của một phần tử áp dụng vào
  • audience: Được thiết kế để nhận dạng người dùng mà nội dung bên trong một thể hiện cho trước của một phần tử áp dụng vào
  • condition: Được thiết kế cho việc tùy biến nội dung cụ thể theo địa phương, theo ứng dụng cụ thể
  • os: Được thiết kế để nhận dạng hệ điều hành máy tính mà nội dung bên trong một thể hiện cho trước của một phần tử áp dụng vào
  • revision: Được thiết kế để nhận dạng một phần mềm cụ thể hoặc việc sửa lại tài liệu mà nội dung bên trong một thể hiện cho trước của một phần tử áp dụng vào
  • vendor: Được thiết kế để nhận dạng đại lý phần cứng hoặc phần mềm mà nội dung bên trong một thể hiện cho trước của một phần tử áp dụng vào

Xác định một tập các giá trị hợp lệ cho bất kỳ thuộc tính nào, sau đó thực thi một tiền xử lý để loại bỏ những phần tử mà có những giá trị khác với thuộc tính đó cung cấp một phương pháp dễ dàng để điều kiện hóa tài liệu của bạn. Những thuộc tính mà bạn quyết định sử dụng cho việc tùy biến là hoàn toàn tùy thuộc vào bạn, nhưng việc chọn lựa phụ thuộc vào những thuộc tính nào ứng dụng tốt nhất cho kiểu nội dung mà bạn muốn điều kiện hóa và lý do cho việc tùy biến đó. Bài viết này sử dụng thuộc tính condition chung như một ví dụ của điều kiện hóa tổng quát cho định dạng đầu ra/biểu diễn cho trước.

Hai phần tiếp theo giải thích làm thế nào để sử dụng các thuộc tính để nhận dạng tùy theo điều kiện những phần tử cụ thể hoặc các phân đoạn nội dung bên trong một phần tử.


Bao hàm toàn bộ các phần tử một cách có điều kiện

Những thuộc tính phổ biến đã thảo luận trong phần trước cung cấp một cách dễ dàng để xác định các phần của các tài liệu của bạn mà bạn muốn liên kết với những người dùng và định dạng đầu ra cụ thể. Đoạn này sử dụng thuộc tính condition như là một ví dụ, nhưng bạn có thể sử dụng bất kỳ phần tử phổ biến nào đã thảo luận trong những đoạn trước với điều kiện là chúng không được sử dụng ngay từ đầu trên trang web của bạn.

Một kiểu phổ biến của nội dung được điều kiện hóa là văn bản mà xuất hiện trong một tài liệu khi nó được định dạng để dùng trong những định dạng biểu diễn khác nhau. Ví dụ, những tài liệu mà được thiết kế để sử dụng trực tuyến thường chứa những liên kết tới đoạn tiếp theo ở phần cuối của mỗi đoạn để điều hướng một cách đơn giản cho người đọc. Những liên kết này có thể thấy như sau:

<para>
To proceed to the next section of this tutorial, click
<link linkend="link-to-next-section">here</link>.
</para>

Mặc dù hữu dụng trong các tài liệu trực tuyến, thông tin này vừa dư thừa vừa khó hiểu khi tài liệu tương tự được đinh dạng như là tài liệu Adobe® PostScript® hoặc PDF. Để xác định phần tài liệu này chỉ để sử dụng khi tài liệu được định dạng cho biểu diễn trực tuyến, bạn có thể thêm thuộc tính condition="online" vào phần tử <para>, như trong ví dụ sau đây:

<para condition="online">
To proceed to the next section of this tutorial, click
<link linkend="link-to-next-section">here</link>.
</para>


Thêm tiền xử lý vào tiến trình định dạng tài liệu

Thật là tốt nếu việc bổ sung các thuộc tính vào phần tử cho trước đã thảo luận trong phần trước thực hiện đúng đối với những công cụ tài liệu của bạn, nhưng trường hợp đó thực sự hiếm. Để tận dụng ưu điểm của kiểu điều kiện này, bạn cần viết một tập lệnh XSL nhỏ để loại bỏ phần kia của tài liệu của bạn khi bạn đang định dạng nó cho những định dạng biểu diễn khác. Ví dụ 1 thể hiện một ví dụ của tập lệnh XSL để loại bỏ những phần tử nội dung mà có thuộc tính condition với giá trị không phải là print.


Ví dụ 1. Tập lệnh tiền xử lý cho đầu ra in ấn
	
      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                         xmlns:xi="http://www.w3.org/2003/XInclude">
      <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
      <xsl:preserve-space elements="*"/>

      <xsl:template match="*|@*">
        <xsl:variable name="_element">
          <xsl:value-of select="name()" />
        </xsl:variable>
        <xsl:variable name="_condition">
          <xsl:value-of select="@condition" />
        </xsl:variable>
        <xsl:choose>
          <xsl:when test="$_condition = ''">
            <xsl:copy>
              <xsl:apply-templates select="@* | * | text() | comment()" />
            </xsl:copy>
          </xsl:when>
          <xsl:when test="$_condition = 'print'">
            <xsl:copy>
              <xsl:apply-templates select="@*|node()" />
            </xsl:copy>
          </xsl:when>
          <xsl:otherwise>
            <xsl:message> Skipping <xsl:value-of select="$_element"/></xsl:message>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:template>

    </xsl:stylesheet>

Chú ý: Tập lệnh này được viết để có thể đọc được, không hoa văn. Tất nhiên bạn có thể đơn giản hóa nó.

Tiếp tục với ví dụ trước, tập lệnh này trong Ví dụ 1 loại bỏ những phần tử mà thuộc tính condition của nó xác định chúng như là đích cho những định dạng đầu ra khác. Đích này lấy ra nội dung đã biểu diễn trong ví dụ "online-only" trước đó, bởi vì thuộc tính condition của nó có giá trị online. Phần đầu tiên của tập lệnh xử lý mỗi phần tử và gán tên của phần tử và giá trị bất kỳ cho thuộc tính condition vào các biến có liên quan. Phần còn lại của tập lệnh tùy theo điều kiện đưa ra nội dung dựa trên giá trị của thuộc tính condition. Nếu thuộc tính condition không tồn tại hoặc thuộc tính có giá trị print, phần tử bên trong được sao chép đến đầu ra của tập lệnh. Nếu thuộc tính condition có bất kỳ giá trị khác, phần tử liên quan bị loại khỏi đầu ra, và xử lý trước đó.

Để tích hợp một tập lệnh dễ dàng chẳng hạn như đưa vào tiến trình sản xuất tài liệu của bạn, bạn thêm nó vào một phần của Makefile để sản xuất tài liệu PDF hoặc PostScript. Để làm được như vậy, bạn sử dụng tập lệnh này cho xử lý tài liệu đầu vào của bạn, gửi một lần nữa đầu ra của nó vào một tệp tin, sau đó bạn định dạng cái nào thích hợp.

Ví dụ 2 đưa ra tập lệnh XSL tương tự, tùy biến để loại bỏ những phần tử nội dung có thuộc tính condition với giá trị không phải là online. Thêm tập lệnh này vào một tệp đích Makefile cho tài liệu trực tuyến cho phép chứa những phần tử chẳng hạn như những phần tử trong các ví dụ mã lệnh trước đó chỉ nhận giá trị trực tuyến (online).


Ví dụ 2. Tiền xử lý tập lệnh cho đầu ra trực tuyến
	
      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                         xmlns:xi="http://www.w3.org/2003/XInclude">
      <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
      <xsl:preserve-space elements="*"/>

      <xsl:template match="*|@*">
        <xsl:variable name="_element">
          <xsl:value-of select="name()" />
        </xsl:variable>
        <xsl:variable name="_condition">
          <xsl:value-of select="@condition" />
        </xsl:variable>
        <xsl:choose>
          <xsl:when test="$_condition = ''">
            <xsl:copy>
              <xsl:apply-templates select="@* | * | text() | comment()" />
            </xsl:copy>
          </xsl:when>
          <xsl:when test="$_condition = 'online'">
            <xsl:copy>
              <xsl:apply-templates select="@*|node()" />
            </xsl:copy>
          </xsl:when>
          <xsl:otherwise>
            <xsl:message> Skipping <xsl:value-of select="$_element"/></xsl:message>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:template>

    </xsl:stylesheet>

So sánh mã XSL trong Ví dụ 1Ví dụ 2 thấy rằng chúng chỉ khác nhau ở một từ đơn, điều này làm cho chúng thích hợp tốt với quá trình đơn giản hóa thông qua hỗ trợ các tham số (stringparam) đã cung cấp trong XSL và do đó trong xsltproc. Tôi để phần này như là một bài tập, vì mục tiêu của những ví dụ này là rõ ràng, đây không phải là lớp học cấp tốc về việc viết XSL.


Bao hàm các phân đoạn nội dung một cách có điều kiện

Những ví dụ trong phần trước cũng thích hợp để lấy hoặc loại ra toàn bộ phần tử dựa trên một giá trị thuộc tính. Tuy nhiên, hầu hết tài liệu XML được điều kiện hóa đòi hỏi việc điều kiện hóa những loại văn bản trong phần tử khác nhau. Phổ biến nhất, bạn có thể cần tùy biến nội dung cụ thể vào một đoạn. Điều này được thực hiện dễ dàng theo hai cách sau:

  • Các phần tử điều kiện hóa có thể xuất hiện bên trong một đoạn
  • Sử dụng phần tử <phrase> để điều kiện hóa các phần của văn bản bên trong một đoạn

Để những phần tử điều kiện hóa có thể xuất hiện bên trong một đoạn, hãy thêm thuộc tính mà bạn đang sử dụng cho điều kiện và một giá trị thích hợp cho phần tử thích hợp bên trong một đoạn. Ví dụ, đoạn tài liệu trình bày trong Ví dụ 3 cung cấp một phần tử điều kiện <mediaobject> bên trong một đoạn (đã định dạng để có thể đọc được).


Ví dụ 3. Một phần tử mediaobject được điều kiện hóa
	
    <para>
      To create a new file, click the <emphasis
      role="bold">Add</emphasis> icon 
      (<mediaobject>
          <imageobject audience="online">
               <imagedata fileref="add.gif"/>
          </imageobject>
          <imageobject audience="print">
               <imagedata fileref="../../images/add.gif" />
          </imageobject>
        </mediaobject>)
      beside the <emphasis role="bold">New File</emphasis> menu entry.
    </para>

Mặc dù chủ yếu được sử dụng như là một ví dụ ở đây, điều kiện hóa phần tử <mediaobject> cho phép bạn chỉ ra những đường dẫn khác nhau đến vị trí đồ họa trong những định dạng biểu diễn khác nhau. Trong trường hợp này, các tài liệu trực tuyến tìm kiếm đồ họa trong vị trí tập trung trên máy chủ Web cho trước hoặc máy chủ Web ảo, trong khi những tài liệu in ấn định vị đồ họa trên một thư mục riêng cho những mục đích định dạng.

Việc sử dụng phần tử <phrase> để xác định những đoạn của văn bản được điều kiện hóa là cái gì đó thú vị hơn. Với phần tử <phrase>, bạn có thể thấy một phạm vi cụ thể hoặc khoảng văn bản mà nhỏ hơn một đoạn và phù hợp hoàn toàn với việc điều kiện hóa tài liệu. Ví dụ 4 (đã định dạng để có thể đọc được) trình bày một ví dụ về điều kiện hóa một từ đơn để làm cho văn bản rõ ràng hơn đối với một định dạng biểu diễn cho trước.


Ví dụ 4. Điều kiện hóa một từ đơn
	
    <p>
       See the 
         <link linkend="target-id">
              introduction to this 
              <phrase audience="online">portion</phrase>
              <phrase audience="print">chapter</phrase>
              of the documentation
         </link>
       for more information.
    </p>


Kết luận

Sức mạnh và tính linh động của XML, tập các chuẩn đang tồn tại, và một tập phong phú các công cụ để làm việc và chuyển đổi các tài liệu XML cung cấp một môi trường mạnh cho việc tạo và dùy trì tài liệu. Những thuộc tính và kỹ thuật đã thảo luận trong bài viết này làm cho ta dễ dàng tạo ra tài liệu có điều kiện, tài liệu đó có thể chứa nội dung khác nhau nhắm tới những người dùng, những hệ thống máy tính, hoặc những định dạng biểu diễn cụ thể. Nếu bạn thêm một giai đoạn tiền xử lý đơn giản hoặc tập các biến để sử dụng trong tiến trình sản xuất tài liệu của bạn, bạn có thể tạo và duy trì tài liệu đơn nguồn để sản xuất đầu ra chuyên dụng. Chức năng này rõ ràng cung cấp một giải pháp hữu ích và mềm dẻo cho vấn đề đơn giản hóa sự phát triển và duy trì tài liệu truyền thống trong khi vẫn phục vụ tốt nhất các yêu cầu của tập cụ thể của những người dùng của tài liệu đó.



Các tải về

Mô tảTênKích thướcPhương thức tải
Sample XSL script for print outputconditional-print.zip1KBHTTP
Sample XSL script for online outputconditional-online.zip1KBHTTP

Thông tin về phương thức tải


Tài nguyên

Học tập

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

Thảo luận

Đôi nét về tác giả

William von Hagen đã là một tác giả và là một quản trị viên các hệ thống UNIX từ suốt hơn 20 năm qua và một người ủng hộ Linux từ năm 1993. Bill là tác giả hoặc đồng tác giả của các cuốn sách về các chủ đề như là Ubuntu Linux, Xen Virtualization, GNU Compiler Collection (GCC), SUSE Linux, Mac OS X, các hệ thống tệp tin Linux và SGML. Ông cũng đã viết rất nhiều bài viết cho các ấn phẩm Linux và Mac OS X và các trang web

Hướng dẫn về "Phản ánh nội dung không thích hợp

Phản ánh về nội dung không thích hợp

Cám ơn. Nhận xét này sẽ được báo cho người chủ mục tin.


Hướng dẫn về "Phản ánh nội dung không thích hợp

Phản ánh về nội dung không thích hợp

Gửi phản ánh bị lỗi. Làm ơn thử lại sau.


developerWorks: Đăng nhập

Nếu bạn chưa có định danh (ID) và mật khẩu của IBM, đăng ký tại đây.


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 (tiếng Anh).

 


Khi bạn đăng nhập lần đầu tiên, một bản trích ngang trên developerWorks sẽ được tạo ra. Chọn các thông tin trong trích ngang của developerWorks để hiển thị công khai, bạn có thể sửa lại thông tin này bất cứ lúc nào. Tên, họ và tên hiển thị sẽ đi kèm với nội dung mà bạn gửi lên.

Choose your display name

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.

(Độ dài phải từ 3 đến 31 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 (tiếng Anh).

 


Chấm điểm bài này

Bình luận

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Nguồn mở
ArticleID=477499
ArticleTitle=Sản xuất tài liệu và sử dụng lại thông tin trong XML, Phần 3: Tạo những tài liệu XML đa mục đích
publish-date=01292010
author1-email=wvh@vonhagen.org
author1-email-cc=mmccrary@us.ibm.com