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="<文字列>"
(必須)
AIX
BSDi
DECAlpha
DOS
HPBLS
HPUX
IRIX
Linux
MacOS
OS/2
SCO CMW
SCO ODT
Solaris
SunOS
UnixWare
Win95
WinNT
OSVERSION
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="<プロセッサ名>"
(必須)
x86
mips
alpha
ppc
sparc
680x0
IMPLEMENTATION
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