Audi:
I understand your frustration, but if you consider that the FRAME= file adds or imposes structure on the HTML frame navigation pages, then it makes sense -- to me at least -- that FRAME= with XML output creates a DTD -- which is one way of imposing or defining the structure (allowed tags) for an XML file.
To extrapolate further. There is no additional structure that can be added to a CSV file by a FRAME= file. In fact, if you do this: [pre]
ods csv file='main.csv'
contents='some_c.csv'
frame='some_f.csv';
[/pre]
Then MAIN.CSV has the csv output and SOME_C.CSV and SOME_F.CSV are created, but they are empty files.
FRAME= was originally introduced in SAS 7 for creating the standard set of files needed for HTML frame navigation. When XML came down the road, FRAME= got reused as a valid option for XML markup.
If you use similar code for LaTeX markup, then [pre]
ods latex file='lmain.txt'
contents='lsome_c.txt'
frame='lsome_f.txt';
[/pre]
Then LMAIN.TXT has LaTeX output and LSOME_C.TXT has LaTeX output for contents, but LSOME_F.TXT is empty -- which means that there is no further structure that can be supplied by ODS MARKUP for the LaTeX set of output.
Just a few other thoughts on the subject,
cynthia