/* __ *\ ** ________ ___ / / ___ Scala API ** ** / __/ __// _ | / / / _ | (c) 2003-2013, LAMP/EPFL ** ** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ package scala.xml /** 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 * @version 1.0, 26/04/2005 */ @SerialVersionUID(-2289320563321795109L) class Document extends NodeSeq with pull.XMLEvent 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 } }