OSD (Open Software Description) は、 Microsoft と Marimba が 提唱しているソフトウェアの配布のためのデータフォーマットです。 XML アプリケーションの 1 つで、CDF (Channel Definition Format) と 組み合わせることで自動的なアップデートも行えるようになります。
以下は、Microsoft の ウェブサイトにある文書 「Specification for the Open Software Description (OSD) Format」 を基にした、OSD ボキャブラリの簡易リファレンスです。
ABSTRACT
| CODEBASE
| DEPENDENCY
| DISKSIZE
| IMPLEMENTATION
|
IMPLTYPE
| LANGUAGE
| LICENSE
| MEMSIZE
| OS
|
OSVERSION
| PROCESSOR
| SOFTPKG
| TITLE
| VM
|
ABSTRACT<!ELEMENT ABSTRACT (#PCDATA)>
<ABSTRACT>ソリティア by FooBar Corp.</ABSTRACT>
SOFTPKG
CODEBASE<!ELEMENT CODEBASE EMPTY> <!ATTLIST CODEBASE FILENAME CDATA #IMPLIED> <!ATTLIST CODEBASE HREF CDATA #REQUIRED> <!ATTLIST CODEBASE SIZE CDATA #IMPLIED>
<CODEBASE> を複数置くと、そのうち1つがランダムに選ばれて使われます(ミラーサイト)。1つも指定しなかったり、HREF 属性が正しく指定されないとエラーになります。
FILENAME="<文字列>"
HREF="<URL>" (必須)
SIZE="<最大KB>"
IMPLEMENTATION
DEPENDENCY<!ELEMENT DEPENDENCY (CODEBASE|SOFTPKG)* > <!ATTLIST DEPENDENCY ACTION (Assert|Install) "Assert">
ACTION="(Assert|Install)"
"Assert" を指定すると、この SOFTPKG 自体が無効になります。"Install" を指定すると、必要なソフトウェアコンポーネントを取得・インストールします。デフォルトは "Assert" です。
CODEBASE、SOFTPKG
SOFTPKG
DISKSIZE<!ELEMENT DISKSIZE EMPTY> <!ATTLIST DISKSIZE VALUE CDATA #REQUIRED>
VALUE="<最小KB>" (必須)
IMPLEMENTATION
IMPLEMENTATION<!ELEMENT IMPLEMENTATION (CODEBASE | DEPENDENCY | DISKSIZE | IMPLTYPE | LANGUAGE | OS | PROCESSOR | VM)*>
CODEBASE、DEPENDENCY、DISKSIZE、IMPLTYPE、LANGUAGE、OS、PROCESSOR、VM
SOFTPKG
IMPLTYPE<!ELEMENT IMPLTYPE EMPTY> <!ATTLIST IMPLTYPE VALUE CDATA #REQUIRED>
VALUE="<タイプ>" (必須)
IMPLEMENTATION
LANGUAGE<!ELEMENT LANGUAGE EMPTY> <!ATTLIST LANGUAGE VALUE CDATA #REQUIRED>
<LANGUAGE> を置くこともできます。1つも指定しない場合は、どの言語でも実行できることを意味します。
VALUE="<言語コード>" (必須)
"ja"、英語は "en"です。
IMPLEMENTATION
LICENSE<!ELEMENT LICENSE EMPTY> <!ATTLIST LICENSE HREF CDATA #REQUIRED>
HREF=&"<URL>" (必須)
SOFTPKG
MEMSIZE<!ELEMENT MEMSIZE EMPTY> <!ATTLIST MEMSIZE VALUE CDATA #REQUIRED>
VALUE="<KB数>" (必須)
IMPLEMENTATION
OS<!ELEMENT OS (OSVERSION)*> <!ATTLIST OS VALUE CDATA #REQUIRED>
<OS> を置くこともできます。1つも指定しない場合は、どのオペレーティングシステムでも実行できることを意味します。
VALUE="<文字列>" (必須)
AIXBSDiDECAlphaDOSHPBLSHPUXIRIXLinuxMacOSOS/2SCO CMWSCO ODTSolarisSunOSUnixWareWin95WinNTOSVERSION
IMPLEMENTATION
OSVERSION<!ELEMENT OSVERSION EMPTY> <!ATTLIST OSVERSION VALUE CDATA #REQUIRED>
<OSVERSION> を置くこともできます。1つも指定しない場合は、どのバージョンでも実行できることを意味します。
VALUE="<バージョン>" (必須)
<OS VALUE="WinNT"><OSVERSION VALUE="4,0,0,0"/></OS>
OS
PROCESSOR<!ELEMENT PROCESSOR EMPTY> <!ATTLIST PROCESSOR VALUE CDATA #REQUIRED>
<PROCESSOR> を置くこともできます。1つも指定しない場合は、どのプロセッサでも実行できることを意味します。
VALUE="<プロセッサ名>" (必須)
x86mipsalphappcsparc680x0IMPLEMENTATION
SOFTPKG<!ELEMENT SOFTPKG (ABSTRACT | IMPLEMENTATION | DEPENDENCY | LICENSE | TITLE)*> <!ATTLIST SOFTPKG NAME CDATA #REQUIRED> <!ATTLIST SOFTPKG VERSION CDATA #IMPLIED>
NAME="<パッケージ名>" (必須)
NAME="com.foobar.www.Solitaire"VERSION="<バージョン>"
ABSTRACT、IMPLEMENTAION、DEPENDENCY、LICENSE、TITLE
DEPENDENCY
TITLE<!ELEMENT TITLE (#PCDATA) >
SOFTPKG エレメントの NAME アトリビュートと違って、一意でなくともかまいません。
SOFTPKG
VM<!ELEMENT VM EMPTY> <!ATTLIST VM VALUE CDATA #REQUIRED>
VALUE="<仮想マシン>" (必須)
IMPLEMENTATION