123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // Generated by CoffeeScript 2.4.1
- (function() {
- var NodeType, XMLDTDAttList, XMLNode;
- XMLNode = require('./XMLNode');
- NodeType = require('./NodeType');
- // Represents an attribute list
- module.exports = XMLDTDAttList = class XMLDTDAttList extends XMLNode {
- // Initializes a new instance of `XMLDTDAttList`
- // `parent` the parent `XMLDocType` element
- // `elementName` the name of the element containing this attribute
- // `attributeName` attribute name
- // `attributeType` type of the attribute
- // `defaultValueType` default value type (either #REQUIRED, #IMPLIED,
- // #FIXED or #DEFAULT)
- // `defaultValue` default value of the attribute
- // (only used for #FIXED or #DEFAULT)
- constructor(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {
- super(parent);
- if (elementName == null) {
- throw new Error("Missing DTD element name. " + this.debugInfo());
- }
- if (attributeName == null) {
- throw new Error("Missing DTD attribute name. " + this.debugInfo(elementName));
- }
- if (!attributeType) {
- throw new Error("Missing DTD attribute type. " + this.debugInfo(elementName));
- }
- if (!defaultValueType) {
- throw new Error("Missing DTD attribute default. " + this.debugInfo(elementName));
- }
- if (defaultValueType.indexOf('#') !== 0) {
- defaultValueType = '#' + defaultValueType;
- }
- if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {
- throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. " + this.debugInfo(elementName));
- }
- if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {
- throw new Error("Default value only applies to #FIXED or #DEFAULT. " + this.debugInfo(elementName));
- }
- this.elementName = this.stringify.name(elementName);
- this.type = NodeType.AttributeDeclaration;
- this.attributeName = this.stringify.name(attributeName);
- this.attributeType = this.stringify.dtdAttType(attributeType);
- if (defaultValue) {
- this.defaultValue = this.stringify.dtdAttDefault(defaultValue);
- }
- this.defaultValueType = defaultValueType;
- }
- // Converts the XML fragment to string
- // `options.pretty` pretty prints the result
- // `options.indent` indentation for pretty print
- // `options.offset` how many indentations to add to every line for pretty print
- // `options.newline` newline sequence for pretty print
- toString(options) {
- return this.options.writer.dtdAttList(this, this.options.writer.filterOptions(options));
- }
- };
- }).call(this);
|