<html>
Rick - I didnt see where to pickup your draft.&nbsp; Since this group is
NOT<br>
XML-standards-body-only-need-apply, I thought I'd make a 2 cent
point.<br>
<br>
SOMEWHERE in xmlland there is an effort to use XML tags syntax instead of
DTD, <br>
and I just have to workaround with my own for now.&nbsp;&nbsp; Maybe that
is getting completed.<br>
<br>
In any case, what I feel is that its EASIER for me to setup an XML
validation thang than what I see<br>
as a separate syntax in the DTD world.&nbsp;&nbsp; PLUS it gets awfully
difficult from <br>
an application approach to get really detailed rules e.g. arbitrary
extensions to DTD<br>
for those cases where &quot;if its tuesday and you are in belgium, you
can speak three languages unless<br>
you are in a lambic beer brewery&quot;.&nbsp;&nbsp; To me, XML (or maybe
xml) is helpful 'cause its<br>
readable e.g. intuitive - DTD's aint' folks and never will be..<br>
<br>
So rather than worry about it,&nbsp; I create an application level XML
tag and then place entries for each attribute for<br>
my own application.&nbsp; I am not trying to pursue STANDARDS.&nbsp; I am
interested in STANDARDS when<br>
the parser folks can improve their interaction with my
applications.&nbsp;&nbsp;&nbsp; A while ago I brought up<br>
EVENT handling which I feel is essential to getting more power from the
parser but that<br>
met a big THUNK with the people on this group at that time.<br>
<br>
So, for my apps, after the XML parser has validated the entries via DTD,
I can use a more granular <br>
application level XML approach.<br>
<br>
For example, to validate the XML &lt;Command&gt; entry &lt;CO&gt; and its
several attributes, I have this<br>
'validate' method hanging around for my application.&nbsp; At some point
I could go back and build the DTD from this<br>
information and let the parser do the error checking, but this was faster
for me to build into my application<br>
for right now than trying to grok the DTD stuff.&nbsp;&nbsp; And I don't
see how the parser is going to<br>
handle the issues right now that more errors/rules brings to the
table.<br>
<br>
<br>
<font face="Terminal, Monaco">&lt;COMMAND TYPE=&quot;CO&quot;
NAME=&quot;entities&quot; METHOD=&quot;validate&quot;&gt;<br>
&lt;CO TYPE=&quot;TYPE&quot;
VALIDATE=&quot;prelim|cli|request|command|files|backup|restore|image|internal|include|internal_file|metadata|var|var_internal|var_calc|var_list|subcommand|cond_subcommand|program|cond_program|suffix|executable|log|logfile|catalog|exit|errorcode&quot;
CO=&quot;*&quot;/&gt;<br>
&lt;CO TYPE=&quot;DEFAULT&quot; VALIDATE=&quot;*&quot;
CO=&quot;*&quot;/&gt;<br>
&lt;CO TYPE=&quot;NAME&quot; VALIDATE=&quot;*&quot;
CO=&quot;*&quot;/&gt;<br>
&lt;CO TYPE=&quot;LOG&quot; VALIDATE=&quot;*&quot;
CO=&quot;*&quot;/&gt;<br>
&lt;CO TYPE=&quot;PURPOSE&quot; VALIDATE=&quot;*&quot;
CO=&quot;*&quot;/&gt;<br>
&lt;CO TYPE=&quot;CALC&quot; VALIDATE=&quot;*&quot;
CO=&quot;var_calc&quot;/&gt;<br>
&lt;CO TYPE=&quot;COMMAND&quot;
VALIDATE=&quot;request|command|files|backup|restore|image|internal|include|internal_file|var|var_internal|metadata|var_calc|var_list|subcommand|cond_subcommand|log|logfile|catalog|exit&quot;
CO=&quot;subcommand|cond_subcommand&quot;/&gt;<br>
&lt;CO TYPE=&quot;PROGRAM&quot; VALIDATE=&quot;*&quot;
CO=&quot;program|cond_program|subcommand|var_list&quot;/&gt;<br>
&lt;CO TYPE=&quot;METHOD&quot; VALIDATE=&quot;subcommand|cli|map&quot;
CO=&quot;subcommand|cond_subcommand|error&quot;/&gt;<br>
&lt;CO TYPE=&quot;WHEN&quot;
VALIDATE=&quot;pre|post|during|notify|hold&quot;
CO=&quot;*&quot;/&gt;<br>
&lt;CO TYPE=&quot;CLEANUP&quot; VALIDATE=&quot;ok|no&quot;
CO=&quot;*&quot;/&gt;<br>
&lt;CO TYPE=&quot;NOTIFY&quot; VALIDATE=&quot;ok|no&quot;
CO=&quot;*&quot;/&gt;<br>
&lt;CO TYPE=&quot;PREFACE&quot; VALIDATE=&quot;*&quot;
CO=&quot;cli&quot;/&gt;<br>
&lt;CO TYPE=&quot;VAR&quot; VALIDATE=&quot;*&quot;
CO=&quot;cond_program|cond_subcommand|subcommand&quot;/&gt;<br>
&lt;CO TYPE=&quot;VAR_NAME&quot; VALIDATE=&quot;*&quot;
CO=&quot;cond_program|cond_subcommand&quot;/&gt;<br>
&lt;CO TYPE=&quot;VAR_COMPARE&quot;
VALIDATE=&quot;==|!=|&amp;#62;|&amp;#62;&amp;#62;|&amp;#60;|&amp;#60;&amp;#60;|&amp;#60;=|&amp;#62;=&quot;
CO=&quot;cond_program|cond_subcommand&quot;/&gt;<br>
&lt;CO TYPE=&quot;MODE&quot;
VALIDATE=&quot;for_each_sub|optional|required|default&quot;
CO=&quot;cli|program|cond_program|subcommand|cond_subcommand|var|var_calc&quot;/&gt;<br>
&lt;/COMMAND&gt;<br>
<br>
</font>I am using Python and the code to validate this was very short and
easy to implement.&nbsp; Maybe 50 lines.<br>
I would see more benefit in using the parser if there was clearer
interactions between the parser and the real world<br>
application.&nbsp; Most parsers take a document centric approach while I
am working more data driven where I use<br>
bits of XML all through the processing of the application.&nbsp; So I
want to be able to control just<br>
when this level of validation is done for example. BTW, can you find the
INVALID<br>
XML on this page based on this syntax?&nbsp;&nbsp;&nbsp; <br>
<br>
I suspect other folks are doing something similar here to get things
going:&nbsp; IMHO, <br>
this approach is more readable as well as more flexible than the
DTD.&nbsp; Can someone<br>
point me to the status of using XML for this kind of validation is
done?<br>
Again, if the PARSER's said they could do something more with the DTD
than just<br>
complain when an error occurred, it would be more helpful to me.&nbsp; I
know<br>
that the nascent XML editors need the DTDs so in the long term I'll
have<br>
to go back and support that.&nbsp; <br>
<br>
<div>...bryan</div>
<br>
<div>F. Bryan Cooper<x-tab>&nbsp;</x-tab>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>707 823 7324 <x-tab>&nbsp;&nbsp;&nbsp;</x-tab></div>
<div><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>707 313 0355 fax</div>
<div>VERITAS Software&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <x-tab>&nbsp;&nbsp;</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>707 321 3301 mobile</div>
Bryan.Cooper@veritas.com&nbsp;&nbsp; 
</html>