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