| // Generated by CoffeeScript 1.12.7 | |
| (function() { | |
|   var NodeType, WriterState, XMLDOMImplementation, XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; | |
| 
 | |
|   ref = require('./Utility'), assign = ref.assign, isFunction = ref.isFunction; | |
| 
 | |
|   XMLDOMImplementation = require('./XMLDOMImplementation'); | |
| 
 | |
|   XMLDocument = require('./XMLDocument'); | |
| 
 | |
|   XMLDocumentCB = require('./XMLDocumentCB'); | |
| 
 | |
|   XMLStringWriter = require('./XMLStringWriter'); | |
| 
 | |
|   XMLStreamWriter = require('./XMLStreamWriter'); | |
| 
 | |
|   NodeType = require('./NodeType'); | |
| 
 | |
|   WriterState = require('./WriterState'); | |
| 
 | |
|   module.exports.create = function(name, xmldec, doctype, options) { | |
|     var doc, root; | |
|     if (name == null) { | |
|       throw new Error("Root element needs a name."); | |
|     } | |
|     options = assign({}, xmldec, doctype, options); | |
|     doc = new XMLDocument(options); | |
|     root = doc.element(name); | |
|     if (!options.headless) { | |
|       doc.declaration(options); | |
|       if ((options.pubID != null) || (options.sysID != null)) { | |
|         doc.dtd(options); | |
|       } | |
|     } | |
|     return root; | |
|   }; | |
| 
 | |
|   module.exports.begin = function(options, onData, onEnd) { | |
|     var ref1; | |
|     if (isFunction(options)) { | |
|       ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1]; | |
|       options = {}; | |
|     } | |
|     if (onData) { | |
|       return new XMLDocumentCB(options, onData, onEnd); | |
|     } else { | |
|       return new XMLDocument(options); | |
|     } | |
|   }; | |
| 
 | |
|   module.exports.stringWriter = function(options) { | |
|     return new XMLStringWriter(options); | |
|   }; | |
| 
 | |
|   module.exports.streamWriter = function(stream, options) { | |
|     return new XMLStreamWriter(stream, options); | |
|   }; | |
| 
 | |
|   module.exports.implementation = new XMLDOMImplementation(); | |
| 
 | |
|   module.exports.nodeType = NodeType; | |
| 
 | |
|   module.exports.writerState = WriterState; | |
| 
 | |
| }).call(this);
 |