Class: VCDOM::MiniDOM::DOMImplementation
- Inherits:
-
Object
- Object
- VCDOM::MiniDOM::DOMImplementation
- Defined in:
- lib/vcdom/minidom/dom_implementation.rb
Constant Summary collapse
- @@instance =
nil
Class Method Summary collapse
Instance Method Summary collapse
-
#create_document(namespace_uri, qualified_name, doctype = nil) ⇒ Object
createDocument introduced in DOM Level 2 Creates a DOM Document object of the specified type with its document element.
-
#initialize ⇒ DOMImplementation
constructor
# getFeature introduced in DOM Level 3 # # This method returns a specialized object which implements the specialized # APIs of the specified feature and version, as specified in DOM Features.
- #mini_parser ⇒ Object
- #mini_serializer ⇒ Object
Constructor Details
#initialize ⇒ DOMImplementation
# getFeature introduced in DOM Level 3
#
# This method returns a specialized object which implements the specialized
# APIs of the specified feature and version, as specified in DOM Features.
# The specialized object may also be obtained by using binding-specific
# casting methods but is not necessarily expected to, as discussed in Mixed
# DOM Implementations.
# This method also allow the implementation to provide specialized objects
# which do not support the DOMImplementation interface.
#
# Parameters
# feature of type DOMString
# The name of the feature requested.
# Note that any plus sign "+" prepended to the name of the feature will
# be ignored since it is not significant in the context of this method.
# version of type DOMString
# This is the version number of the feature to test.
# Return Value
# DOMObject
# Returns an object which implements the specialized APIs of the specified
# feature and version, if any, or null if there is no object which implements
# interfaces associated with that feature.
# If the DOMObject returned by this method implements the DOMImplementation
# interface, it must delegate to the primary core DOMImplementation and not
# return results inconsistent with the primary core DOMImplementation such
# as hasFeature, getFeature, etc.
# No Exceptions
# hasFeature
#
# Test if the DOM implementation implements a specific feature and version,
# as specified in DOM Features.
#
# Parameters
# feature of type DOMString
# The name of the feature to test.
# version of type DOMString
# This is the version number of the feature to test.
# Return Value
# boolean
# true if the feature is implemented in the specified version, false otherwise.
# No Exceptions
195 196 197 198 199 200 201 202 |
# File 'lib/vcdom/minidom/dom_implementation.rb', line 195 def initialize() if ! @@instance.nil? then raise "既にインスタンス化されています" end @@instance = self @mini_parser = MiniParser.new() @mini_serializer = MiniSerializer.new() end |
Class Method Details
.get_instance ⇒ Object
204 205 206 207 208 209 210 |
# File 'lib/vcdom/minidom/dom_implementation.rb', line 204 def self.get_instance() if @@instance.nil? then return self.new() else return @@instance end end |
Instance Method Details
#create_document(namespace_uri, qualified_name, doctype = nil) ⇒ Object
createDocument introduced in DOM Level 2
Creates a DOM Document object of the specified type with its document element.
Note that based on the DocumentType given to create the document,
the implementation may instantiate specialized Document objects that support
additional features than the "Core", such as "HTML" [DOM Level 2 HTML].
On the other hand, setting the DocumentType after the document was
created makes this very unlikely to happen.
Alternatively, specialized Document creation methods, such as createHTMLDocument
[DOM Level 2 HTML], can be used to obtain specific types of Document objects.
Parameters
namespaceURI of type DOMString
The namespace URI of the document element to create or null.
qualifiedName of type DOMString
The qualified name of the document element to be created or null.
doctype of type DocumentType
The type of document to be created or null.
When doctype is not null, its Node.ownerDocument attribute is set to
the document being created.
Return Value
Document
A new Document object with its document element.
If the NamespaceURI, qualifiedName, and doctype are null, the returned
Document is empty with no document element.
Exceptions
DOMException
INVALID_CHARACTER_ERR: Raised if the specified qualified name is not an
XML name according to [XML 1.0].
NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the
qualifiedName has a prefix and the namespaceURI is null,
or if the qualifiedName is null and the namespaceURI is
different from null, or if the qualifiedName has a prefix
that is "xml" and the namespaceURI is different from
"http://www.w3.org/XML/1998/namespace" [XML Namespaces],
or if the DOM implementation does not support the "XML" feature
but a non-null namespace URI was provided, since namespaces were
defined by XML.
WRONG_DOCUMENT_ERR: Raised if doctype has already been used with a different
document or was created from a different implementation.
NOT_SUPPORTED_ERR: May be raised if the implementation does not support
the feature "XML" and the language exposed through the Document
does not support XML Namespaces (such as [HTML 4.01]).
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/vcdom/minidom/dom_implementation.rb', line 97 def create_document( namespace_uri, qualified_name, doctype = nil ) # 第 3 引数が nil でなければエラー if ! doctype.nil? then raise TypeError.new( 'This DOM implementation does not support a Doctype, so the third argument must be null.' ) end doc = Document.new() if qualified_name.nil? and ! namespace_uri.nil? then # the qualified name is null, but namespace URI is different from null raise DOMException.new( DOMException::NAMESPACE_ERR, 'The qualified name is null, but namespace URI is different from null.' ) end if ! qualified_name.nil? then doc.append_child( doc.create_element_ns( namespace_uri, qualified_name ) ) end #doc._set_document_type( doctype ) #doc._set_document_element( doc.create_element_ns( namespace_uri, qualified_name ) ) # doctype の ownerDocument を設定 #aDoctype._setOwnerDocument( doc ) if ( aDoctype != nil ) return doc end |
#mini_parser ⇒ Object
45 46 47 |
# File 'lib/vcdom/minidom/dom_implementation.rb', line 45 def mini_parser return @mini_parser end |
#mini_serializer ⇒ Object
48 49 50 |
# File 'lib/vcdom/minidom/dom_implementation.rb', line 48 def mini_serializer return @mini_serializer end |