-
-
Notifications
You must be signed in to change notification settings - Fork 106
Expand file tree
/
Copy pathXMLDOMConfiguration.coffee
More file actions
60 lines (49 loc) · 1.55 KB
/
XMLDOMConfiguration.coffee
File metadata and controls
60 lines (49 loc) · 1.55 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
XMLDOMErrorHandler = require './XMLDOMErrorHandler'
XMLDOMStringList = require './XMLDOMStringList'
# Implements the DOMConfiguration interface
module.exports = class XMLDOMConfiguration
constructor: () ->
@defaultParams =
"canonical-form": false
"cdata-sections": false
"comments": false
"datatype-normalization": false
"element-content-whitespace": true
"entities": true
"error-handler": new XMLDOMErrorHandler()
"infoset": true
"validate-if-schema": false
"namespaces": true
"namespace-declarations": true
"normalize-characters": false
"schema-location": ''
"schema-type": ''
"split-cdata-sections": true
"validate": false
"well-formed": true
@params = clonedSelf = Object.create @defaultParams
# Returns the list of parameter names
Object.defineProperty @::, 'parameterNames', get: () ->
new XMLDOMStringList(Object.keys(@defaultParams))
# Gets the value of a parameter.
#
# `name` name of the parameter
getParameter: (name) ->
if @params.hasOwnProperty(name)
return @params[name]
else
return null
# Checks if setting a parameter to a specific value is supported.
#
# `name` name of the parameter
# `value` parameter value
canSetParameter: (name, value) -> true
# Sets the value of a parameter.
#
# `name` name of the parameter
# `value` new value or null if the user wishes to unset the parameter
setParameter: (name, value) ->
if value?
@params[name] = value
else
delete @params[name]