File: domimplementation.rb

package info (click to toggle)
ruby-xmlparser 0.7.3-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 980 kB
  • sloc: ruby: 9,342; ansic: 2,017; makefile: 11
file content (61 lines) | stat: -rw-r--r-- 1,358 bytes parent folder | download | duplicates (9)
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
## -*- Ruby -*-
## XML::DOM
## 1998-2001 by yoshidam
##                     

require 'xml/dom2/domexception'
require 'xml/dom2/dombuilder'
require 'xml/dom2/documenttype'
require 'singleton'

module XML
  module DOM

=begin
== Class XML::DOM::DOMImplementation

=end
    class DOMImplementation
      include Singleton

=begin
   --- DOMImplementation#hasFeature(feature, version)

test if DOM implementation has correct feature and version.

=end
      def hasFeature(feature, version)
        if (feature =~ /^XML$/i || feature =~ /^Core$/i) &&
            (version.nil? || version == "1.0" || version == "2.0")
          return true
        end
        false
      end

      ## [DOM2]
      def createDocumentType(qname, pubid, sysid)
        DocumentType.new(qname, pubid, sysid)
      end

      ## [DOM2]
      def createDocument(nsuri, qname, doctype)
        raise DOMException.new(DOMException::WRONG_DOCUMENT_ERR) if
          doctype && doctype.ownerDocument
        doc = Document.new
        if doctype
          doc.appendChild(doctype)
          doctype.ownerDocument = doc
        end
        elem = doc.createElementNS(nsuri, qname)
        doc.appendChild(elem)
        doc.implementation = self
        doc
      end

      ## [DOM3?]
      def createDOMBuilder
        XML::DOM::DOMBuilder.new(Document.new)
      end
    end
  end
end