Okay, so here are the two basic camps:
1) XML is a standard that should be conformed to
100% in parsers. If it isn't going to be, then is should be called an
"XML Parser". Certainly, this is an ideal goal if you do not know how the
parser will be used. As a result, it needs to stay generic and expect to
handle all combinations of needs.
2) XML is a recommendation that should be
implemented in parsers as is appropriate to the situation. It is still an
XML parser of sorts, however.
The second camp is the way I choose to see
XML. For any particular implementation of
XML, I define a DTD or Schema that fits my needs. In my case, I deal
exclusively with e-commerce markup and I use only a specific subset of the XML
specification. So I have two choices: use a parser specific to my
needs or use a general-purpose parser that will work of anyone. While the
latter will work, it is overkill (just like using an SGML parser would be
overkill when processing XML). My needs are fixed. I will never
receive XML that doesn't conform to the subset I use. As a result, a
parser that handles only that subset makes more sense. Is it an actual XML
parser? Yes, since it does process certain XML. No, since it doesn't
process all XML. But remember, I am only ever using certain XML, so from
my point-of-view, the answer is "yes".
Everyone can complain until they are blue in the
face about which is better. In the end, it's a moot point. If 1
million people use a special-purpose XML parser for a specific purpose, then
that is absolutely fine. It doesn't matter what the rest of the universe
is doing with XML because it's not within their problem domain. If
there is cross-over of domains, then those people will use a different parser
that fits their needs.
In the end, I would expect any development
process to go something like this:
1) Define XML DTD or Schema.
2) Choose parser that will handle the
application of this XML.
3) Implement XML using chosen parser.
If it means that someone uses more than one parser
to get different jobs done, that's fine. If it means that someone uses the
"fully standard" parser to get different jobs done, that's fine as well.
In the end, deciding what subset of parser should be used for development
is every bit as important as deciding what subset of XML should be used for DTD
or Schema definition.