| // Generated by CoffeeScript 1.6.3 |
| (function() { |
| var XMLDocType, _; |
| |
| _ = require('lodash-node'); |
| |
| module.exports = XMLDocType = (function() { |
| function XMLDocType(parent, pubID, sysID) { |
| var _ref, _ref1; |
| this.documentObject = parent; |
| this.stringify = this.documentObject.stringify; |
| this.children = []; |
| if (_.isObject(pubID)) { |
| _ref = pubID, pubID = _ref.pubID, sysID = _ref.sysID; |
| } |
| if (sysID == null) { |
| _ref1 = [pubID, sysID], sysID = _ref1[0], pubID = _ref1[1]; |
| } |
| if (pubID != null) { |
| this.pubID = this.stringify.dtdPubID(pubID); |
| } |
| if (sysID != null) { |
| this.sysID = this.stringify.dtdSysID(sysID); |
| } |
| } |
| |
| XMLDocType.prototype.clone = function() { |
| return _.create(XMLDocType.prototype, this); |
| }; |
| |
| XMLDocType.prototype.element = function(name, value) { |
| var XMLDTDElement, child; |
| XMLDTDElement = require('./XMLDTDElement'); |
| child = new XMLDTDElement(this, name, value); |
| this.children.push(child); |
| return this; |
| }; |
| |
| XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { |
| var XMLDTDAttList, child; |
| XMLDTDAttList = require('./XMLDTDAttList'); |
| child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue); |
| this.children.push(child); |
| return this; |
| }; |
| |
| XMLDocType.prototype.entity = function(name, value) { |
| var XMLDTDEntity, child; |
| XMLDTDEntity = require('./XMLDTDEntity'); |
| child = new XMLDTDEntity(this, false, name, value); |
| this.children.push(child); |
| return this; |
| }; |
| |
| XMLDocType.prototype.pEntity = function(name, value) { |
| var XMLDTDEntity, child; |
| XMLDTDEntity = require('./XMLDTDEntity'); |
| child = new XMLDTDEntity(this, true, name, value); |
| this.children.push(child); |
| return this; |
| }; |
| |
| XMLDocType.prototype.notation = function(name, value) { |
| var XMLDTDNotation, child; |
| XMLDTDNotation = require('./XMLDTDNotation'); |
| child = new XMLDTDNotation(this, name, value); |
| this.children.push(child); |
| return this; |
| }; |
| |
| XMLDocType.prototype.cdata = function(value) { |
| var XMLCData, child; |
| XMLCData = require('./XMLCData'); |
| child = new XMLCData(this, value); |
| this.children.push(child); |
| return this; |
| }; |
| |
| XMLDocType.prototype.comment = function(value) { |
| var XMLComment, child; |
| XMLComment = require('./XMLComment'); |
| child = new XMLComment(this, value); |
| this.children.push(child); |
| return this; |
| }; |
| |
| XMLDocType.prototype.instruction = function(target, value) { |
| var XMLProcessingInstruction, child; |
| XMLProcessingInstruction = require('./XMLProcessingInstruction'); |
| child = new XMLProcessingInstruction(this, target, value); |
| this.children.push(child); |
| return this; |
| }; |
| |
| XMLDocType.prototype.root = function() { |
| return this.documentObject.root(); |
| }; |
| |
| XMLDocType.prototype.document = function() { |
| return this.documentObject; |
| }; |
| |
| XMLDocType.prototype.toString = function(options, level) { |
| var child, indent, newline, pretty, r, space, _i, _len, _ref; |
| pretty = (options != null ? options.pretty : void 0) || false; |
| indent = (options != null ? options.indent : void 0) || ' '; |
| newline = (options != null ? options.newline : void 0) || '\n'; |
| level || (level = 0); |
| space = new Array(level + 1).join(indent); |
| r = ''; |
| if (pretty) { |
| r += space; |
| } |
| r += '<!DOCTYPE ' + this.root().name; |
| if (this.pubID && this.sysID) { |
| r += ' PUBLIC "' + this.pubID + '" "' + this.sysID + '"'; |
| } else if (this.sysID) { |
| r += ' SYSTEM "' + this.sysID + '"'; |
| } |
| if (this.children.length > 0) { |
| r += ' ['; |
| if (pretty) { |
| r += newline; |
| } |
| _ref = this.children; |
| for (_i = 0, _len = _ref.length; _i < _len; _i++) { |
| child = _ref[_i]; |
| r += child.toString(options, level + 1); |
| } |
| r += ']'; |
| } |
| r += '>'; |
| if (pretty) { |
| r += newline; |
| } |
| return r; |
| }; |
| |
| XMLDocType.prototype.ele = function(name, value) { |
| return this.element(name, value); |
| }; |
| |
| XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { |
| return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue); |
| }; |
| |
| XMLDocType.prototype.ent = function(name, value) { |
| return this.entity(name, value); |
| }; |
| |
| XMLDocType.prototype.pent = function(name, value) { |
| return this.pEntity(name, value); |
| }; |
| |
| XMLDocType.prototype.not = function(name, value) { |
| return this.notation(name, value); |
| }; |
| |
| XMLDocType.prototype.dat = function(value) { |
| return this.cdata(value); |
| }; |
| |
| XMLDocType.prototype.com = function(value) { |
| return this.comment(value); |
| }; |
| |
| XMLDocType.prototype.ins = function(target, value) { |
| return this.instruction(target, value); |
| }; |
| |
| XMLDocType.prototype.up = function() { |
| return this.root(); |
| }; |
| |
| XMLDocType.prototype.doc = function() { |
| return this.document(); |
| }; |
| |
| return XMLDocType; |
| |
| })(); |
| |
| }).call(this); |