<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>XSLT |</title><link>https://clementgodbarge.com/vi/tag/xslt/</link><atom:link href="https://clementgodbarge.com/vi/tag/xslt/index.xml" rel="self" type="application/rss+xml"/><description>XSLT</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>vi-vn</language><lastBuildDate>Fri, 28 Mar 2025 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>XSLT</title><link>https://clementgodbarge.com/vi/tag/xslt/</link></image><item><title>Multi-Saxon</title><link>https://clementgodbarge.com/vi/code/multi-saxon/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/vi/code/multi-saxon/</guid><description>&lt;h2 id="multi-saxon-xử-lý-xslt-song-song-cho-kho-ngữ-liệu-tei-lớn"&gt;Multi-Saxon: Xử lý XSLT song song cho kho ngữ liệu TEI lớn&lt;/h2&gt;
&lt;p&gt;Multi-Saxon lấp một khoảng trống đáng kể trong bộ công cụ xử lý XML: nó cho phép chạy song song các phép biến đổi XSLT 2.0 và 3.0 mà LXML (thư viện XML phổ biến của Python) không xử lý được. Được thiết kế riêng cho những bộ sưu tập tài liệu XML TEI lớn, Multi-Saxon rút ngắn đáng kể thời gian xử lý nhờ thực thi song song hiệu quả.&lt;/p&gt;
&lt;h2 id="tính-năng-chính"&gt;Tính năng chính&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hỗ trợ XSLT nâng cao&lt;/strong&gt;: Xử lý các phép biến đổi XSLT 2.0 và 3.0, vượt ngoài khả năng của LXML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Xử lý song song&lt;/strong&gt;: Giảm mạnh thời gian biến đổi trên các bộ sưu tập tài liệu lớn nhờ song song hóa&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tối ưu cho TEI&lt;/strong&gt;: Được thiết kế riêng cho tài liệu XML theo chuẩn Text Encoding Initiative (TEI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hiệu năng mở rộng được&lt;/strong&gt;: Xử lý hiệu quả những kho ngữ liệu từ vài trăm đến hàng nghìn tài liệu&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Đa nền tảng&lt;/strong&gt;: Chạy được trên nhiều hệ điều hành và môi trường khác nhau&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="vấn-đề-mà-multi-saxon-giải-quyết"&gt;Vấn đề mà Multi-Saxon giải quyết&lt;/h2&gt;
&lt;p&gt;Học giả nhân văn số làm việc với TEI thường vấp phải hai trở ngại lớn:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LXML (thư viện xử lý XML thông dụng của Python) chỉ hỗ trợ XSLT 1.0, nên không thể dùng các tính năng nâng cao của XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;Xử lý tuần tự những kho ngữ liệu TEI lớn có thể tốn thời gian đến mức không chấp nhận được&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Multi-Saxon giải quyết cả hai bằng cách tận dụng năng lực XSLT nâng cao của Saxon, đồng thời phân phối việc xử lý trên nhiều lõi để đạt mức tăng hiệu năng đáng kể.&lt;/p&gt;
&lt;h2 id="triển-khai"&gt;Triển khai&lt;/h2&gt;
&lt;p&gt;Multi-Saxon kết hợp Python với bộ xử lý Saxon của Java để tạo nên một đường ống biến đổi hiệu năng cao:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dùng thư viện Saxon của Java để xử lý XSLT 2.0/3.0 một cách vững chắc&lt;/li&gt;
&lt;li&gt;Dùng cơ chế đa tiến trình để phân phối các phép biến đổi trên những lõi CPU sẵn có&lt;/li&gt;
&lt;li&gt;Quản lý hiệu quả các nhóm bộ xử lý nhằm tối đa hóa thông lượng&lt;/li&gt;
&lt;li&gt;Cung cấp giao diện đơn giản để xử lý hàng loạt tài liệu TEI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ví-dụ-sử-dụng"&gt;Ví dụ sử dụng&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;multi_saxon&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MultiSaxon&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Initialize with your XSLT stylesheet&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MultiSaxon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;transform.xsl&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Transform a single document&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;input.xml&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;output.xml&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Transform an entire directory in parallel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform_directory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="tác-động-đối-với-nhân-văn-số"&gt;Tác động đối với nhân văn số&lt;/h2&gt;
&lt;p&gt;Với những dự án nhân văn số phải xử lý các bộ sưu tập tài liệu TEI lớn, Multi-Saxon cho phép:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Thực hiện những phép biến đổi phức tạp trên toàn bộ kho ngữ liệu, điều bất khả với LXML&lt;/li&gt;
&lt;li&gt;Rút ngắn mạnh thời gian xử lý (thường gấp 5–10 lần trên hệ thống đa lõi)&lt;/li&gt;
&lt;li&gt;Phân tích tinh vi hơn nhờ các tính năng nâng cao của XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;Đơn giản hóa quy trình xử lý trọn bộ sưu tập tài liệu&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mã nguồn và tài liệu có tại
.&lt;/p&gt;</description></item></channel></rss>