The following is a XML definition I did some 3+ years ago
during a discusion, here on classiccomp (back when there
was one list *G*), as an example what a XML storage good
for everything from punch card to CD could be.
This example shows two CCDD structures, one showing an
IBMish tape, the other a disk for a popular 8 Bit micro.
(Back then nobody came up with the systems name :).
Someone asked recently how to handle multiple XML within
one file ... well, that's exactly the way it works :)
Gruss
H.
CCDD stands for Classic Computer Device Data
-------------------------
<?xml version="1.0" standalone='yes' ?>
<!DOCTYPE CCDD [
<!ELEMENT CCDD (VORSPANN?, META?, (CHANNEL* | DEVICE* |
MEDIA))>
<!ELEMENT VORSPANN (#PCDATA)>
<!ELEMENT META (#PCDATA | SYSTEM | OS)*>
<!ELEMENT SYSTEM (#PCDATA)>
<!ELEMENT OS (#PCDATA)>
<!ELEMENT CHANNEL (META?, DEVICE*)>
<!ELEMENT DEVICE (META?, MEDIA*)>
<!ELEMENT MEDIA (META?, (RAW | HEAD*) )>
<!ELEMENT HEAD (RAW | TRACK*)>
<!ELEMENT TRACK (RAW | BLOCK*)>
<!ELEMENT BLOCK (RAW | DATA*)>
<!ELEMENT DATA (#PCDATA)>
<!ELEMENT RAW (#PCDATA)>
<!ATTLIST CHANNEL
ID ID #IMPLIED>
<!ATTLIST DEVICE
ID ID #IMPLIED>
<!ATTLIST MEDIA
ID ID #IMPLIED
LFD CDATA #IMPLIED
SIZE CDATA #IMPLIED
FILLER CDATA #IMPLIED
FORMAT CDATA #IMPLIED>
<!ATTLIST HEAD
LFD CDATA #IMPLIED
SIZE CDATA #IMPLIED
FILLER CDATA #IMPLIED
FORMAT CDATA #IMPLIED>
<!ATTLIST TRACK
LFD CDATA #IMPLIED
SIZE CDATA #IMPLIED
FILLER CDATA #IMPLIED
FORMAT CDATA #IMPLIED>
<!ATTLIST BLOCK
LFD CDATA #IMPLIED
SIZE CDATA #IMPLIED
FILLER CDATA #IMPLIED
TYPE (DATA|HEADER|UNDEF) "DATA">
<!ATTLIST DATA
SIZE CDATA #IMPLIED
FILLER CDATA #IMPLIED
ENCODING (CHAR|BIN|SED|INTEL|MOT) "SED">
<!ATTLIST RAW
SIZE CDATA #IMPLIED
FILLER CDATA #IMPLIED
CONTENT (DATA|PYSICAL) "DATA"
ENCODING (CHAR|BIN|SED|INTEL|MOT) "SED">
]>
<CCDD>
<META>
Example for a tape mounted on Drive D0 on Channel 1.
</META>
<CHANNEL ID="C_1">
<META>
Standard type 1 channel
</META>
<DEVICE ID="D_D0">
<META>
T9G (6250bpi)
</META>
<MEDIA LFD="0" FORMAT="T6250">
<META>
First Tape in Device
</META>
<HEAD LFD="0" SIZE="36" FILLER="00">
<TRACK LFD="16" SIZE="16" FILLER="00">
<BLOCK TYPE="HEADER">
<DATA SIZE="80" ENCODING="CHAR" FILLER="
">VOL1TAPE001 BS2000 TSOS
4</DATA>
</BLOCK>
<BLOCK TYPE="HEADER">
<DATA SIZE="80" ENCODING="CHAR" FILLER="
">UVL1PRIVATE LABEL</DATA>
</BLOCK>
<BLOCK TYPE="HEADER">
<DATA SIZE="80" ENCODING="CHAR" FILLER="
">HDR1FILE1 00010001000100000102000102 000000BS2000</DATA>
</BLOCK>
<BLOCK TYPE="HEADER">
<DATA SIZE="80" ENCODING="CHAR" FILLER="
">HDR2U020480204841 00</DATA>
</BLOCK>
<BLOCK TYPE="HEADER">
<DATA SIZE="80" ENCODING="CHAR" FILLER="
">HDR3TSOS COMPLETE.FILE.NAME.OF.FILE1
0</DATA>
</BLOCK>
<BLOCK TYPE="DATA">
<DATA SIZE="2048" ENCODING="CHAR"
FILLER="�">NO REAL DATA INSIDE THIS BLOCK</DATA>
</BLOCK>
<BLOCK TYPE="HEADER">
<DATA SIZE="80" ENCODING="CHAR" FILLER="
">EOF1FILE1 00010001000100000102000102 000001BS2000</DATA>
</BLOCK>
<BLOCK TYPE="HEADER">
<DATA SIZE="80" ENCODING="CHAR" FILLER="
">EOF2U020480204841 00</DATA>
</BLOCK>
<BLOCK TYPE="HEADER">
<DATA SIZE="80" ENCODING="CHAR" FILLER="
">EOF33TSOS COMPLETE.FILE.NAME.OF.FILE1
0</DATA>
</BLOCK>
</TRACK>
</HEAD>
</MEDIA>
</DEVICE>
</CHANNEL>
</CCDD>
<CCDD>
<META>
This is another CCDD File for a FD of
<SYSTEM>XXXXX</SYSTEM> running under <OS>yyyy</OS>.
</META>
<MEDIA LFD="0" SIZE="2" FORMAT="GCR">
<META>
Floppy disk for xxxxxx
</META>
<HEAD LFD="0" SIZE="36" FILLER="00">
<TRACK LFD="16" SIZE="16" FILLER="00">
<BLOCK LFD="14">
<DATA SIZE="256" ENCODING="SED" FILLER="00">
</DATA>
</BLOCK>
<BLOCK LFD="15">
<DATA SIZE="256" ENCODING="SED" FILLER="00">
000000000000000000000000100E
</DATA>
</BLOCK>
</TRACK>
<TRACK LFD="17" SIZE="16" FILLER="00">
<BLOCK LFD="0">
<DATA SIZE="256" ENCODING="SED" FILLER="00">
04110F030000FE000000000000000000
00000000000000000000000000000000
000000000000007A0000000000000000
23010000231001000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
000000000000000380010000
</DATA>
</BLOCK>
<BLOCK LFD="15">
<DATA SIZE="256" ENCODING="SED" FILLER="00">
0000000000000000000000100F02C8C5
CCCCCFA0A0A0A0A0A0A0A0A0A0A0A0A0
A0A0A0A0A0A0A0A0A0A0A00001
</DATA>
</BLOCK>
</TRACK>
</HEAD>
</MEDIA>
</CCDD>
--
VCF Europa 6.0 am 30.April und 01.Mai 2005 in Muenchen
http://www.vcfe.org/