ViaThinkSoft MultiDump DRAFT

-- Example, this is a comment which the parser will ignore
{viathinksoft-vmd general(1) uniqueId(1)}: 00000000-0000-0000-0000-000000000001

-- {viathinksoft-vmd reserved(0)}: Use of this OID is illegal

viathinksoft-vmd := {iso(1) identified-organizatin(3) dod(6) internet(1) private(4) enterprise(1) viathinksoft(37476) vmd(20)}

{viathinksoft-vmd pwb-dumpset(?)}: ( -- es darf nur 1 root geben
	-- date
	-- owner
	-- title

	{viathinksoft-vmd pwb-dumpset(?) usage(?)}: ( -- td: was ist, wenn es mehrere gibt?
		-- default: false
		{viathinksoft-vmd pwb-dumpset(?) usage(?) pwb-admin(?)}: true
		{viathinksoft-vmd pwb-dumpset(?) usage(?) pwb-user(?)}: false

		{viathinksoft-vmd pwb-dumpset(?) usage(?) other(?)}: something
		{viathinksoft-vmd pwb-dumpset(?) usage(?) other(?)}: something other
	);

	-- Dump for administrator accounts. Usage illegal by users
	{viathinksoft-vmd pwb-dumpset(?) admindump(1)} {
		{viathinksoft-vmd pwb-dumpset(?) admindump(1) users(?)}: (
			{viathinksoft-vmd pwb-dumpset(?) admindump(1) users(?) username(?)}
			{viathinksoft-vmd pwb-dumpset(?) admindump(1) users(?) email(?)}
			{viathinksoft-vmd pwb-dumpset(?) admindump(1) users(?) password(?)}: (
				{viathinksoft-vmd pwb-dumpset(?) admindump(1) users(?) password(?) sha1(?)}: ...
				{viathinksoft-vmd pwb-dumpset(?) admindump(1) users(?) password(?) md5(?)}: ... -- td: +salt
				{viathinksoft-vmd pwb-dumpset(?) admindump(1) users(?) password(?) marschall1987(?)}: ...
			);
		);

		{viathinksoft-vmd pwb-dumpset(?) admindump(1) config(?)}: (

		);
	);

	{viathinksoft-vmd pwb-dumpset(?) personaldump(2)}: (
		{viathinksoft-vmd general(1) uniqueId(1)}: 00000000-0000-0000-0000-000000000001

		{viathinksoft-vmd localuserid(1)}: DAM -- may only be set by administrator

		-- Dump for user accounts. Usage illegal by administrators
		{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100)}: (
			{viathinksoft-vmd general(1) uniqueId(1)}: 00000000-0000-0000-0000-000000000000
			{viathinksoft-vmd general(1) note user(2)}: Hello World
			{viathinksoft-vmd general(1) note program(2)}: Converted, Merged

			-- Item is in 2 folders (if possible)
			{viathinksoft-vmd general(1) folder(3)}: Eigene Kontakte/Ich/
			{viathinksoft-vmd general(1) folder(3)}: Eigene Kontakte/Nette Leute/

			{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) name(1)}: Max Mustermann
			{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) birthdate(1)}: 1990-01-01
			{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) sex}: M
			{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) telephone(2)}: +49 123 45678

			{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) internet(1)}: (
				{viathinksoft-vmd general(1) uniqueId(1)}: 00000000-0000-0000-0000-000000000001

				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) internet(1) nickname(1)}: blackdrake
				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) internet(1) nickname(1)}: dmx

				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) internet(1) accounts(0)}: (

				);

				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) internet(1) email(?)}: (

				);

				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) internet(1) messenger(?)}: (

				);

				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) internet(1) social(?)}: (

				);
			);

			{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) address(10)}: (
				{viathinksoft-vmd general(1) uniqueId(1)}: 00000000-0000-0000-0000-000000000001

				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) address(10) name(1)}: At Home
				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) address(10) street(2)}: Musterstraße
				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) address(10) number(3)}: 1
				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) address(10) plz(4)}: 69123 Musterstadt
				{viathinksoft-vmd pwb-dumpset(?) personaldump(2) contact(100) address(10) country(6)}: Germany
			);
		);
	);
);

The module itself (e.g. vmd.contact) defines the encoding of each field (e.g. UTF8 or Base64).
However, it is necessary that all data is coded in ASCII. Also, the module defines if it is
legal to have a field multiple times and how to react on OIDs which are unknown to the current
version of the system. It is recommended to throw a fatal error if a dataset OID is unknown
(= unknown module).

Multiline fields should be multiple one-line fields of the same datatype.

** Fragen **

?? trennen: pwb + normal?
?? als xml machen?
?? illegale notes in der obersten ebene
?? encoding NID? ascii, utf8, base64
?? Folder-Only entity, wenn ein leerer ordner eingerichtet werden soll

** Ideen **

geboren, ort
verheiratet --> wie auf andere datensätze referenzieren? GUID?
status
messenger activität, blockstatus

OID that describe encoding!