XmlCdata.js
4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var utils_1 = require("../utils");
var validate_1 = require("../validate");
var XmlNode_1 = require("./XmlNode");
/**
* Represents an XML CDATA section.
*
* An XML CDATA section is structured as follows, where `{data}` is the
* character data of the section:
*
* ```xml
* <![CDATA[{data}]]>
* ```
*
* The `{data}` value is a property of this node.
*
* XmlCdata nodes cannot have any children.
*/
var XmlCdata = (function (_super) {
__extends(XmlCdata, _super);
/**
* Initializes a new instance of the {@link XmlCdata} class.
*
* @param data The character data of the CDATA section.
*/
function XmlCdata(data) {
var _this = _super.call(this) || this;
_this.data = data;
return _this;
}
Object.defineProperty(XmlCdata.prototype, "data", {
/**
* Gets the character data of the CDATA section.
*
* @returns The character data of the CDATA section.
*/
get: function () {
return this._data;
},
/**
* Sets the character data of the CDATA section.
*
* @param data The character data of the CDATA section.
*/
set: function (data) {
if (!utils_1.isString(data)) {
throw new TypeError("character data should be a string");
}
else if (!validate_1.validateChar(data)) {
throw new Error("character data should not contain characters not"
+ " allowed in XML");
}
else if (/]]>/.test(data)) {
throw new Error("data should not contain the string ']]>'");
}
this._data = data;
},
enumerable: true,
configurable: true
});
/**
* Throws an exception since {@link XmlCdata} nodes cannot have any
* children.
*
* @returns This method does not return.
*/
XmlCdata.prototype.children = function () {
throw new Error("XmlCdata nodes cannot have children");
};
/**
* Throws an exception since {@link XmlCdata} nodes cannot have any
* children.
*
* @param node This parameter is unused.
* @param index This parameter is unused.
*
* @returns This method does not return.
*/
XmlCdata.prototype.insertChild = function (node, index) {
throw new Error("XmlCdata nodes cannot have children");
};
/**
* Throws an exception since {@link XmlCdata} nodes cannot have any
* children.
*
* @param node This parameter is unused.
*
* @returns This method does not return.
*/
XmlCdata.prototype.removeChild = function (node) {
throw new Error("XmlCdata nodes cannot have children");
};
/**
* Throws an exception since {@link XmlCdata} nodes cannot have any
* children.
*
* @param index This parameter is unused.
*
* @returns This method does not return.
*/
XmlCdata.prototype.removeChildAtIndex = function (index) {
throw new Error("XmlCdata nodes cannot have children");
};
/**
* Returns an XML string representation of this node.
*
* @param options Formatting options for the string representation.
*
* @returns An XML string representation of this node.
*/
XmlCdata.prototype.toString = function (options) {
if (options === void 0) { options = {}; }
return "<![CDATA[" + this.data + "]]>";
};
return XmlCdata;
}(XmlNode_1.default));
exports.default = XmlCdata;