Re: B.9 Formal system, public identifiers?
email@example.com (Gavin Nicol) wrote:
> I think the figures depend largely on how much code reuse is in effect.
> Most people dealing with XML probably already have code to use. For those
> that don't, I don't see 5000 lines of code as a major overhead, because
> the code is very straightforward.
No-one in the world has any XML code today.
There are people with URL-handling code, but there are very few people in
the world with FSI code. Most of it was written by James, in fact...
For me, if something takes James 5,000 lines, it is probably complex enough
that I would leave it out of the XML implementation I was thinking of
writing in my spare time when it settles down. If FSIs end up being
required by XML, I won't use XML for my purpose.
Although I can write about 500 lines of working C in a day, I am very
tired on the next day :-), and it takes several days of debugging. So I
can get between 100 and 300 working, tested, debugged lines of code done
in a day, averaged out over a week.
So FSIs may take me more than ten weeks.
Well, I don't think that counts as not a ``major overhead''.
If it takes me ten weeks to implement a parser for all of XML, you can
forget it. I would expect to be able to write a simple style-sheet
aware browser in less time than that!
(the last one took me about 2 or 3 weeks, but it wasn't very good :-) )
A possible compromise might be to allow a url: prefix to a URL, and
say that. This is forwards compatible -- you can add URNs later when
they are working, and any other mechanism you want.
Note that one very very useful feature in Panorama is support for partial
URLs. A system identifier of "docbook.dtd" is interpreted as relative to
the file containing that identifier. Hence, if we used File->Open to open
a file containing that system identifier, Panorama looks in the same
directory as the document you just opened. But if ftp was used, Panorama
will use ftp to fetch "docbook.dtd" from the remote computer, again in
the same directory. And if http was used... well, you see the pattern :-)
This means you can test your SGML locally on a networked or local disk,
then yes exactly the same unchanged files to test with a web browser.
No changes means no errors.
If URLs are used in XML, let's also allow partial URLs, as in HTML, and say
that _all_ system identifiers are treated in this way. It really does
work, and there is a sample implementation you can try...