123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- // Generated by CoffeeScript 2.4.1
- (function() {
- var NodeType, WriterState, XMLDOMImplementation, XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction;
-
- ({assign, isFunction} = require('./Utility'));
-
- XMLDOMImplementation = require('./XMLDOMImplementation');
-
- XMLDocument = require('./XMLDocument');
-
- XMLDocumentCB = require('./XMLDocumentCB');
-
- XMLStringWriter = require('./XMLStringWriter');
-
- XMLStreamWriter = require('./XMLStreamWriter');
-
- NodeType = require('./NodeType');
-
- WriterState = require('./WriterState');
-
- // Creates a new document and returns the root node for
- // chain-building the document tree
-
- // `name` name of the root element
-
- // `xmldec.version` A version number string, e.g. 1.0
- // `xmldec.encoding` Encoding declaration, e.g. UTF-8
- // `xmldec.standalone` standalone document declaration: true or false
-
- // `doctype.pubID` public identifier of the external subset
- // `doctype.sysID` system identifier of the external subset
-
- // `options.headless` whether XML declaration and doctype will be included:
- // true or false
- // `options.keepNullNodes` whether nodes with null values will be kept
- // or ignored: true or false
- // `options.keepNullAttributes` whether attributes with null values will be
- // kept or ignored: true or false
- // `options.ignoreDecorators` whether decorator strings will be ignored when
- // converting JS objects: true or false
- // `options.separateArrayItems` whether array items are created as separate
- // nodes when passed as an object value: true or false
- // `options.noDoubleEncoding` whether existing html entities are encoded:
- // true or false
- // `options.stringify` a set of functions to use for converting values to
- // strings
- // `options.writer` the default XML writer to use for converting nodes to
- // string. If the default writer is not set, the built-in XMLStringWriter
- // will be used instead.
- 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);
- // create the document node
- doc = new XMLDocument(options);
- // add the root node
- root = doc.element(name);
- // prolog
- if (!options.headless) {
- doc.declaration(options);
- if ((options.pubID != null) || (options.sysID != null)) {
- doc.dtd(options);
- }
- }
- return root;
- };
-
- // Creates a new document and returns the document node for
- // chain-building the document tree
-
- // `options.keepNullNodes` whether nodes with null values will be kept
- // or ignored: true or false
- // `options.keepNullAttributes` whether attributes with null values will be
- // kept or ignored: true or false
- // `options.ignoreDecorators` whether decorator strings will be ignored when
- // converting JS objects: true or false
- // `options.separateArrayItems` whether array items are created as separate
- // nodes when passed as an object value: true or false
- // `options.noDoubleEncoding` whether existing html entities are encoded:
- // true or false
- // `options.stringify` a set of functions to use for converting values to
- // strings
- // `options.writer` the default XML writer to use for converting nodes to
- // string. If the default writer is not set, the built-in XMLStringWriter
- // will be used instead.
-
- // `onData` the function to be called when a new chunk of XML is output. The
- // string containing the XML chunk is passed to `onData` as its single
- // argument.
- // `onEnd` the function to be called when the XML document is completed with
- // `end`. `onEnd` does not receive any arguments.
- module.exports.begin = function(options, onData, onEnd) {
- if (isFunction(options)) {
- [onData, onEnd] = [options, onData];
- 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);
|