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
|
## -*- Ruby -*-
## XML::DOM
## 1998-2001 by yoshidam
##
require 'xml/dom2/node'
require 'xml/dom2/domexception'
module XML
module DOM
=begin
== Class XML::DOM::EntityReference
=== superclass
Node
=end
class EntityReference<Node
=begin
=== Class Methods
--- EntityReference.new(name, *children)
creates a new EntityReference.
=end
def initialize(name, *children)
super(*children)
raise "parameter error" if !name
@name = name.freeze
@value = nil
end
=begin
=== Methods
--- EntityReference#nodeType
[DOM]
returns the nodeType.
=end
## [DOM]
def nodeType
ENTITY_REFERENCE_NODE
end
=begin
--- EntityReference#nodeName
[DOM]
returns the nodeName.
=end
## [DOM]
def nodeName
@name
end
=begin
--- EntityReference#to_s
returns the string representation of the EntityReference.
=end
## reference form or expanded form?
def to_s
"&#{@name};"
end
=begin
--- EntityReference#dump(depth = 0)
dumps the EntityReference.
=end
def dump(depth = 0)
print ' ' * depth * 2
print "&#{@name}{\n"
@children.each do |child|
child.dump(depth + 1)
end if @children
print ' ' * depth * 2
print "}\n"
end
=begin
--- EntityReference#cloneNode(deep = true)
[DOM]
returns the copy of the EntityReference.
=end
## [DOM]
def cloneNode(deep = true)
super(deep, @name)
end
def _checkNode(node)
unless node.nodeType == ELEMENT_NODE ||
node.nodeType == PROCESSING_INSTRUCTION_NODE ||
node.nodeType == COMMENT_NODE ||
node.nodeType == TEXT_NODE ||
node.nodeType == CDATA_SECTION_NODE ||
node.nodeType == ENTITY_REFERENCE_NODE
raise DOMException.new(DOMException::HIERARCHY_REQUEST_ERR)
end
end
end
end
end
|