2014年7月5日 星期六

XSL介紹


XSL(EXtensible Stylesheet Language)屬於XML相關技術之一,用途在於可以將XML文件轉換成為HTML, TXT或併入另一種XML檔案格式,另外也支援內崁CSS語法豐富文件樣式

基本上XSL可以分為三大部分:
  • XSLT - a language for transforming XML documents
  • X-PATH - a language for navigating in XML documents
  • XSL-FO - a language for formatting XML documents
 XSLT代表EXtensible Stylesheet Language Transformation, 可以透過XSL將XML文件轉化成不同的檔案格式如XML, HTML, XHTML等,另外XSL也使用Xpath來導覽XML節點文件,對Xpath相關的教學文件可以參考這裡

再轉化的過程當中, XSML使用Xpath來解析XML的原始內容, 如果解析到相對應的模式(pattern)情況, 就會XSML就會轉化當中的文件成為輸出的檔案格式:











1.      如何建立一份XSL?

宣告一份XSL的開頭可以採用以下兩者標籤其中之一:

1. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

一份XSL文件都是先宣告 標籤起頭定義這是份XSL文件, 接下來做個練習, 以下有一份XML和XSL文件:

在這份XSL文件當中match="/" 標籤代表找尋XML文件的template(樣版),則是Xpath當中的定義, "/"則是代表從root element開始來解析全部文件, 代表從XML文件當中找尋特定的元素, 並且把它給轉化成輸出的格式, 當中的select的值則代表Xpath的語法, 這個元素可以用來使用某特定Node List的迴圈語法, 以下的例子:

可以使用的外卡(wild card)字元如:
  • =  (equal)
  • != (not equal)
  • < less than
  • > greater than
在的標籤當中, 可以加入此標籤來排序某特定元素,此標籤為XSL的條件判斷, 以下例子說明如果標籤通過expression則輸出內容

expression
">
  ...some output if the expression is true...

則是用來做單一的元素判斷, 而則可以用來做多種判斷。

2014年7月4日 星期五

當多執行緒同時存取同一個檔案問題

這個問題可以在方法上面加載一個 attribute [MethodImpl(MethodImplOptions.Synchronized)] 來避免不同的執行緒存取同一個檔案,另一個方式則是使用Lock方法

image

參考資料:

http://stackoverflow.com/questions/541194/c-sharp-version-of-javas-synchronized-keyword

2014年7月3日 星期四

Zip Components Investigation

前陣子研究了一下各家Zip元件的各方面比較,下面是整理過後的報告:
 

 

.NET ZipForge

Chilkat.NET Zip

DotNETZIP

Create self-extracting EXE up to 4GB

V

V

V

Custom SFX stub

V

X

V

Create a big ZIP size up to 10GB

V

V

V

License

Royalty free –

For 4 Developers

Royalty free –

A Site-Wide license is for any number of developers at a single company location

MS-GPL

Price

€699

http://www.componentace.com/order/

$249

Free