// 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);