forked from scala/scala-xml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDocument.scala
101 lines (85 loc) · 3.62 KB
/
Document.scala
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
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2019, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala
package xml
import scala.collection.Seq
/**
* A document information item (according to InfoSet spec). The comments
* are copied from the Infoset spec, only augmented with some information
* on the Scala types for definitions that might have no value.
* Also plays the role of an `XMLEvent` for pull parsing.
*
* @author Burak Emir
*/
@SerialVersionUID(-2289320563321795109L)
class Document extends NodeSeq with Serializable {
/**
* An ordered list of child information items, in document
* order. The list contains exactly one element information item. The
* list also contains one processing instruction information item for
* each processing instruction outside the document element, and one
* comment information item for each comment outside the document
* element. Processing instructions and comments within the DTD are
* excluded. If there is a document type declaration, the list also
* contains a document type declaration information item.
*/
var children: Seq[Node] = _
/** The element information item corresponding to the document element. */
var docElem: Node = _
/** The dtd that comes with the document, if any */
var dtd: scala.xml.dtd.DTD = _
/**
* An unordered set of notation information items, one for each notation
* declared in the DTD. If any notation is multiply declared, this property
* has no value.
*/
def notations: Seq[scala.xml.dtd.NotationDecl] =
dtd.notations
/**
* An unordered set of unparsed entity information items, one for each
* unparsed entity declared in the DTD.
*/
def unparsedEntities: Seq[scala.xml.dtd.EntityDecl] =
dtd.unparsedEntities
/** The base URI of the document entity. */
var baseURI: String = _
/**
* The name of the character encoding scheme in which the document entity
* is expressed.
*/
var encoding: Option[String] = _
/**
* An indication of the standalone status of the document, either
* true or false. This property is derived from the optional standalone
* document declaration in the XML declaration at the beginning of the
* document entity, and has no value (`None`) if there is no
* standalone document declaration.
*/
var standAlone: Option[Boolean] = _
/**
* A string representing the XML version of the document. This
* property is derived from the XML declaration optionally present at
* the beginning of the document entity, and has no value (`None`)
* if there is no XML declaration.
*/
var version: Option[String] = _
/**
* 9. This property is not strictly speaking part of the infoset of
* the document. Rather it is an indication of whether the processor
* has read the complete DTD. Its value is a boolean. If it is false,
* then certain properties (indicated in their descriptions below) may
* be unknown. If it is true, those properties are never unknown.
*/
var allDeclarationsProcessed = false
// methods for NodeSeq
def theSeq: Seq[Node] = this.docElem
override def canEqual(other: Any) = other match {
case _: Document => true
case _ => false
}
}