Start Dtd validating parser

Dtd validating parser

With a little experience, this information is all you'll need to quickly identify what's wrong.

) non-validating yet mostly conforming XML parser written in C.

Its primary goals are small binary size, simplicity and correctness. The code can be obtained from the git repo and is available under a permissive MIT license.

[n:\dbtdg]nsgmls -sv -c \share\sgml\catalog examples\errs\misspell2m:\jade\nsgmls.exe: I: SP version "1.3.2" m:\jade\nsgmls.exe:examples\errs\misspell2.sgm:: E: end tag for element "TITEL" which is not open m:\jade\nsgmls.exe:examples\errs\misspell2.sgm:3:5: E: document type does not allow element "PARA" here; missing one of "FOOTNOTE", "MSGTEXT" start-tag m:\jade\nsgmls.exe:examples\errs\misspell2.sgm:9:5: E: document type does not allow element "PARA" here; missing one of "FOOTNOTE", "MSGTEXT" start-tag m:\jade\nsgmls.exe:examples\errs\misspell2.sgm:15:5: E: document type does not allow element "PARA" here; missing one of "FOOTNOTE", "MSGTEXT" start-tag m:\jade\nsgmls.exe:examples\errs\misspell2.sgm:21:9: E: end tag for "TITLE" omitted, but OMITTAG NO was specified m:\jade\nsgmls.exe:examples\errs\misspell2.sgm:2:9: start tag was here m:\jade\nsgmls.exe:examples\errs\misspell2.sgm:21:9: E: end tag for "CHAPTER" which is not finished Sometimes the problem isn't spelling, but placing a tag in the wrong context.

It is possible to implement a more convenient and high-level API on top of yxml, but I'm not very fond of libraries that do more than what I strictly need.

The API follows a simple and mostly buffer-less design, and only consists of three functions: Be aware that simple is not necessarily easy or convenient.

The API is relatively low-level and designed to integrate into pretty much any application and for any use case.

If the document isn't valid, we load it anyway, but add an attribute to the root element (so that subsequent pipeline processing can tell, presumably).