Re: [xml] New user, evaluating XML libraries



Hi Daniel,


Daniel Veillard <veillard redhat com> writes:

  Le'ts be frank, it's a bit of FUD, Schemas is being implemented, it's
not fully implemented because the spec is basically broken beyond recovery.

I thought it is because Kasimier is missing in action ;-). But, I agree,
XML Schema is not the easiest spec to read.


... SAX not formerly defined except for Java. On the other hand the
XMLTextReader from C# is part of the ECMA C# spec, and is a good API.

You mean SAX, which is only defined for Java, is a bad thing but
XMLTextReader, which is only define for C#, is good? ;-)


  Also DOM *requires* UTF-16 for all strings. This means that in general
1/ you will loose time, most content around is UTF-8
2/ you will loose memory space/cache efficiency as the converted output is
   way larger in average
3/ you will looose CPU efficiency as breaking cache is #1 performance
   problem in modern computers

I think it largely depends on what kind of data one is handling. If there
are a lot of non-latin characters then UTF-8 will waste at leaset as much
and normally a lot more (4-byte surrogate pairs) space than UTF-16.


  There is no functional XSD validator. Go to the xmlschemas-dev
archive at W3C, check the last 5 questions from Michael Kay (who is
a Schemas implementor and one of the W3C spec writers), they are unanswered
for weeks now, nobody can tell what it is supposed to do. Trying to use
XSD to promote interoperability or validation of data is kind of a joke.
Relax-NG on the other hand is an ISO standard, has a formal specification
and can be read and understood by most programmers in a matter of a couple
of days.

While what you say could be true, most XML parsers these days support
XML Schema while there is hardly any that support Relax-NG. Also there
are a lot of industry standards organizations that managed to define
interoperable schemas that describe fairly complex XML vocabularies.
Finally, one last thing, that a lot of people tend to overlook, is that
it is fairly straightforward (in most cases) to provide XML data
binding (generated types in a programming language that represent the
given vocabulary) from XML Schema. I do not think it will be anywhere
as easy or at all possible to do the same with Relax-NG.


hth,
-boris


-- 
Boris Kolpackov
Code Synthesis Tools CC
http://www.codesynthesis.com
Open-Source, Cross-Platform C++ XML Data Binding




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]