Rationale

From wiki
Jump to: navigation, search

This section lists some design decisions that have been made during the development of the library.

The output streams do not accept a grammar during construction for validation

  • validation can only occur once the document is complete
  • failed validation usually throws an exception
  • the xml::xofstream uses RAII to flush the document to file in its destructor
  • a destructor must not throw
  • anyway it's simple enough to re-open the output stream with an input stream for validation afterwards

Document type definitions (DTD) cannot be specified with an external grammar

In an output stream the attributes of an element are sorted alphabetically