Skip to content

Commit d8de147

Browse files
committed
Added node types.
1 parent 8687c65 commit d8de147

17 files changed

+88
-1
lines changed

src/NodeType.coffee

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module.exports =
2+
Document : 1
3+
Declaration : 2
4+
DocType : 3
5+
Element : 4
6+
Raw : 5
7+
Text : 6
8+
CData : 7
9+
Comment : 8
10+
ProcessingInstruction : 9
11+
AttributeDeclaration : 10
12+
ElementDeclaration : 11
13+
EntityDeclaration : 12
14+
NotationDeclaration : 13
15+
Dummy : 14

src/XMLCData.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
XMLNode = require './XMLNode'
2+
NodeType = require './NodeType'
23

34
# Represents a CDATA node
45
module.exports = class XMLCData extends XMLNode
@@ -13,6 +14,7 @@ module.exports = class XMLCData extends XMLNode
1314
if not text?
1415
throw new Error "Missing CDATA text. " + @debugInfo()
1516

17+
@type = NodeType.CData
1618
@text = @stringify.cdata text
1719

1820

src/XMLComment.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
XMLNode = require './XMLNode'
2+
NodeType = require './NodeType'
23

34
# Represents a comment node
45
module.exports = class XMLComment extends XMLNode
@@ -13,6 +14,7 @@ module.exports = class XMLComment extends XMLNode
1314
if not text?
1415
throw new Error "Missing comment text. " + @debugInfo()
1516

17+
@type = NodeType.Comment
1618
@text = @stringify.comment text
1719

1820

src/XMLDTDAttList.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
XMLNode = require './XMLNode'
2+
NodeType = require './NodeType'
23

34
# Represents an attribute list
45
module.exports = class XMLDTDAttList extends XMLNode
@@ -33,6 +34,7 @@ module.exports = class XMLDTDAttList extends XMLNode
3334
throw new Error "Default value only applies to #FIXED or #DEFAULT. " + @debugInfo(elementName)
3435

3536
@elementName = @stringify.name elementName
37+
@type = NodeType.AttributeDeclaration
3638
@attributeName = @stringify.name attributeName
3739
@attributeType = @stringify.dtdAttType attributeType
3840
@defaultValue = @stringify.dtdAttDefault defaultValue

src/XMLDTDElement.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
XMLNode = require './XMLNode'
2+
NodeType = require './NodeType'
23

34
# Represents an attribute
45
module.exports = class XMLDTDElement extends XMLNode
@@ -20,6 +21,7 @@ module.exports = class XMLDTDElement extends XMLNode
2021
value = '(' + value.join(',') + ')'
2122

2223
@name = @stringify.name name
24+
@type = NodeType.ElementDeclaration
2325
@value = @stringify.dtdElementValue value
2426

2527

src/XMLDTDEntity.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{ isObject } = require './Utility'
22

33
XMLNode = require './XMLNode'
4+
NodeType = require './NodeType'
45

56
# Represents an entity declaration in the DTD
67
module.exports = class XMLDTDEntity extends XMLNode
@@ -26,6 +27,7 @@ module.exports = class XMLDTDEntity extends XMLNode
2627

2728
@pe = !!pe
2829
@name = @stringify.name name
30+
@type = NodeType.EntityDeclaration
2931

3032
if not isObject value
3133
@value = @stringify.dtdEntityValue value

src/XMLDTDNotation.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
XMLNode = require './XMLNode'
2+
NodeType = require './NodeType'
23

34
# Represents a NOTATION entry in the DTD
45
module.exports = class XMLDTDNotation extends XMLNode
@@ -20,6 +21,7 @@ module.exports = class XMLDTDNotation extends XMLNode
2021
throw new Error "Public or system identifiers are required for an external entity. " + @debugInfo(name)
2122

2223
@name = @stringify.name name
24+
@type = NodeType.NotationDeclaration
2325
@pubID = @stringify.dtdPubID value.pubID if value.pubID?
2426
@sysID = @stringify.dtdSysID value.sysID if value.sysID?
2527

src/XMLDeclaration.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{ isObject } = require './Utility'
22

33
XMLNode = require './XMLNode'
4+
NodeType = require './NodeType'
45

56
# Represents the XML declaration
67
module.exports = class XMLDeclaration extends XMLNode
@@ -22,6 +23,7 @@ module.exports = class XMLDeclaration extends XMLNode
2223

2324
version = '1.0' if not version
2425

26+
@type = NodeType.Declaration
2527
@version = @stringify.xmlVersion version
2628
@encoding = @stringify.xmlEncoding encoding if encoding?
2729
@standalone = @stringify.xmlStandalone standalone if standalone?

src/XMLDocType.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{ isObject } = require './Utility'
22

33
XMLNode = require './XMLNode'
4+
NodeType = require './NodeType'
45
XMLDTDAttList = require './XMLDTDAttList'
56
XMLDTDEntity = require './XMLDTDEntity'
67
XMLDTDElement = require './XMLDTDElement'
@@ -20,6 +21,7 @@ module.exports = class XMLDocType extends XMLNode
2021
super parent
2122

2223
@name = "!DOCTYPE"
24+
@type = NodeType.DocType
2325

2426
@documentObject = parent
2527

src/XMLDocument.coffee

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{ isPlainObject } = require './Utility'
22

33
XMLNode = require './XMLNode'
4+
NodeType = require './NodeType'
45
XMLStringifier = require './XMLStringifier'
56
XMLStringWriter = require './XMLStringWriter'
67

@@ -29,7 +30,8 @@ module.exports = class XMLDocument extends XMLNode
2930
super null
3031

3132
@name = "?xml"
32-
33+
@type = NodeType.Document
34+
3335
options or= {}
3436
if not options.writer then options.writer = new XMLStringWriter()
3537

0 commit comments

Comments
 (0)