scala.xml.parsing

MarkupParser

trait MarkupParser extends MarkupParserCommon with TokenTests

An XML parser.

Parses XML 1.0, invokes callback methods of a MarkupHandler and returns whatever the markup handler returns. UseConstructingParser if you just want to parse XML to construct instances of scala.xml.Node.

While XML elements are returned, DTD declarations - if handled - are collected using side-effects.

linear super types: MarkupParserCommon, TokenTests, AnyRef, Any
known subclasses: XhtmlParser, ConstructingParser
self type: MarkupParser with MarkupHandler
source: MarkupParser.scala
    version
  1. 1.0

Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. MarkupParser
  2. MarkupParserCommon
  3. TokenTests
  4. AnyRef
  5. Any
Visibility
  1. Public
  2. All
Impl.
  1. Concrete
  2. Abstract

Type Members

  1. type AttributesType = (MetaData, NamespaceBinding)

    definition classes: MarkupParser → MarkupParserCommon
  2. type ElementType = NodeSeq

    definition classes: MarkupParser → MarkupParserCommon
  3. type InputType = Source

    definition classes: MarkupParser → MarkupParserCommon
  4. type NamespaceType = NamespaceBinding

    definition classes: MarkupParser → MarkupParserCommon
  5. type PositionType = Int

    definition classes: MarkupParser → MarkupParserCommon

Value Members

  1. def != (arg0: AnyRef) : Boolean

    attributes: final
    definition classes: AnyRef
  2. def != (arg0: Any) : Boolean

    o != arg0 is the same as !(o == (arg0)).

    o != arg0 is the same as !(o == (arg0)).

    arg0

    the object to compare against this object for dis-equality.

    returns

    false if the receiver object is equivalent to the argument; true otherwise.

    attributes: final
    definition classes: Any
  3. def ## () : Int

    attributes: final
    definition classes: AnyRef → Any
  4. def $asInstanceOf [T0] () : T0

    attributes: final
    definition classes: AnyRef
  5. def $isInstanceOf [T0] () : Boolean

    attributes: final
    definition classes: AnyRef
  6. def == (arg0: AnyRef) : Boolean

    o == arg0 is the same as if (o eq null) arg0 eq null else o.equals(arg0).

    o == arg0 is the same as if (o eq null) arg0 eq null else o.equals(arg0).

    arg0

    the object to compare against this object for equality.

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    attributes: final
    definition classes: AnyRef
  7. def == (arg0: Any) : Boolean

    o == arg0 is the same as o.equals(arg0).

    o == arg0 is the same as o.equals(arg0).

    arg0

    the object to compare against this object for equality.

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    attributes: final
    definition classes: Any
  8. def appendText (pos: Int, ts: NodeBuffer, txt: String) : Unit

  9. def asInstanceOf [T0] : T0

    This method is used to cast the receiver object to be of type T0.

    This method is used to cast the receiver object to be of type T0.

    Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression1.asInstanceOf[String] will throw a ClassCastException at runtime, while the expressionList(1).asInstanceOf[List[String]] will not. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested typed.

    returns

    the receiver object.

    attributes: final
    definition classes: Any
  10. def attrDecl () : Unit

    <! attlist := ATTLIST

    <! attlist := ATTLIST

  11. val cbuf : StringBuilder

    character buffer, for names

    character buffer, for names

    attributes: protected
  12. var ch : Char

    holds the next character

    holds the next character

    definition classes: MarkupParser → MarkupParserCommon
  13. def ch_returning_nextch : Char

    definition classes: MarkupParser → MarkupParserCommon
  14. def checkPubID (s: String) : Boolean

    definition classes: TokenTests
  15. def checkSysID (s: String) : Boolean

    definition classes: TokenTests
  16. def clone () : AnyRef

    This method creates and returns a copy of the receiver object.

    This method creates and returns a copy of the receiver object.

    The default implementation of the clone method is platform dependent.

    returns

    a copy of the receiver object.

    attributes: protected[lang]
    definition classes: AnyRef
  17. def content (pscope: NamespaceBinding) : NodeSeq

    content1 ::= '<' content1 | '&' charref .

    content1 ::= '<' content1 | '&' charref ...

  18. def content1 (pscope: NamespaceBinding, ts: NodeBuffer) : Unit

    '<' content1 ::= .

    '<' content1 ::= ...

  19. var curInput : Source

  20. var doc : Document

    attributes: protected
  21. def document () : Document

    [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>' [24] VersionInfo ::= S 'version' Eq ("'" VersionNum "'" | '"' VersionNum '"') [25] Eq ::= S? '=' S? [26] VersionNum ::= '1.

    [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>' [24] VersionInfo ::= S 'version' Eq ("'" VersionNum "'" | '"' VersionNum '"') [25] Eq ::= S? '=' S? [26] VersionNum ::= '1.0' [27] Misc ::= Comment | PI | S

  22. var dtd : DTD

  23. def element (pscope: NamespaceBinding) : NodeSeq

  24. def element1 (pscope: NamespaceBinding) : NodeSeq

    '<' element ::= xmlTag1 '>' { xmlExpr | '{' simpleExpr '}' } ETag | xmlTag1 '/' '>'

    '<' element ::= xmlTag1 '>' { xmlExpr | '{' simpleExpr '}' } ETag | xmlTag1 '/' '>'

  25. def elementDecl () : Unit

    <! element := ELEMENT

    <! element := ELEMENT

  26. def entityDecl () : Unit

    <! element := ELEMENT

    <! element := ELEMENT

  27. var eof : Boolean

    definition classes: MarkupParser → MarkupParserCommon
  28. def eq (arg0: AnyRef) : Boolean

    This method is used to test whether the argument (arg0) is a reference to the receiver object (this).

    This method is used to test whether the argument (arg0) is a reference to the receiver object (this).

    The eq method implements an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation] on non-null instances of AnyRef: * It is reflexive: for any non-null instance x of type AnyRef, x.eq(x) returns true. * It is symmetric: for any non-null instances x and y of type AnyRef, x.eq(y) returns true if and only if y.eq(x) returns true. * It is transitive: for any non-null instances x, y, and z of type AnyRef if x.eq(y) returns true and y.eq(z) returns true, then x.eq(z) returns true.

    Additionally, the eq method has three other properties. * It is consistent: for any non-null instances x and y of type AnyRef, multiple invocations of x.eq(y) consistently returns true or consistently returns false. * For any non-null instance x of type AnyRef, x.eq(null) and null.eq(x) returns false. * null.eq(null) returns true.

    When overriding the equals or hashCode methods, it is important to ensure that their behavior is consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2), they should be equal to each other (o1 == o2) and they should hash to the same value (o1.hashCode == o2.hashCode).

    arg0

    the object to compare against this object for reference equality.

    returns

    true if the argument is a reference to the receiver object; false otherwise.

    attributes: final
    definition classes: AnyRef
  29. def equals (arg0: Any) : Boolean

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

    The default implementations of this method is an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation]: * It is reflexive: for any instance x of type Any, x.equals(x) should return true. * It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true. * It is transitive: for any instances x, y, and z of type AnyRef if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

    If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is often necessary to override hashCode to ensure that objects that are "equal" (o1.equals(o2) returns true) hash to the same scala.Int (o1.hashCode.equals(o2.hashCode)).

    arg0

    the object to compare against this object for equality.

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    definition classes: AnyRef → Any
  30. def errorAndResult [T] (msg: String, x: T) : T

    attributes: protected
    definition classes: MarkupParserCommon
  31. def errorNoEnd (tag: String) : Nothing

    definition classes: MarkupParser → MarkupParserCommon
  32. var extIndex : Int

  33. def extSubset () : Unit

  34. def externalID () : ExternalID

    externalID ::= SYSTEM S syslit PUBLIC S pubid S syslit

    externalID ::= SYSTEM S syslit PUBLIC S pubid S syslit

  35. def externalSource (systemLiteral: String) : Source

    attributes: abstract
  36. def finalize () : Unit

    This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object.

    This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object.

    The details of when and if the finalize method are invoked, as well as the interaction between finalizeand non-local returns and exceptions, are all platform dependent.

    attributes: protected[lang]
    definition classes: AnyRef
  37. def getClass () : java.lang.Class[_ <: java.lang.Object]

    Returns a representation that corresponds to the dynamic class of the receiver object.

    Returns a representation that corresponds to the dynamic class of the receiver object.

    The nature of the representation is platform dependent.

    returns

    a representation that corresponds to the dynamic class of the receiver object.

    attributes: final
    definition classes: AnyRef
  38. def hashCode () : Int

    Returns a hash code value for the object.

    Returns a hash code value for the object.

    The default hashing algorithm is platform dependent.

    Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

    returns

    the hash code value for the object.

    definition classes: AnyRef → Any
  39. def initialize : MarkupParser.this.type

    As the current code requires you to call nextch once manually after construction, this method formalizes that suboptimal reality.

    As the current code requires you to call nextch once manually after construction, this method formalizes that suboptimal reality.

  40. var inpStack : List[Source]

    stack of inputs

    stack of inputs

  41. val input : Source

    attributes: abstract
  42. def intSubset () : Unit

    "rec-xml/#ExtSubset" pe references may not occur within markup declarations

    "rec-xml/#ExtSubset" pe references may not occur within markup declarations

  43. def isAlpha (c: Char) : Boolean

    These are 99% sure to be redundant but refactoring on the safe side.

    These are 99% sure to be redundant but refactoring on the safe side.

    definition classes: TokenTests
  44. def isAlphaDigit (c: Char) : Boolean

    definition classes: TokenTests
  45. def isInstanceOf [T0] : Boolean

    This method is used to test whether the dynamic type of the receiver object is T0.

    This method is used to test whether the dynamic type of the receiver object is T0.

    Note that the test result of the test is modulo Scala's erasure semantics. Therefore the expression1.isInstanceOf[String] will return false, while the expression List(1).isInstanceOf[List[String]] will return true. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested typed.

    returns

    true if the receiver object is an instance of erasure of type T0; false otherwise.

    attributes: final
    definition classes: Any
  46. def isName (s: String) : Boolean

    Name ::= ( Letter | '_' ) (NameChar)*

    Name ::= ( Letter | '_' ) (NameChar)*

    see [5] of XML 1.0 specification

    definition classes: TokenTests
  47. def isNameChar (ch: Char) : Boolean

    NameChar ::= Letter | Digit | '.

    NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender

    see [4] and Appendix B of XML 1.0 specification

    definition classes: TokenTests
  48. def isNameStart (ch: Char) : Boolean

    NameStart ::= ( Letter | '_' ) where Letter means in one of the Unicode general categories { Ll, Lu, Lo, Lt, Nl }

    NameStart ::= ( Letter | '_' ) where Letter means in one of the Unicode general categories { Ll, Lu, Lo, Lt, Nl }

    We do not allow a name to start with ':'. see [3] and Appendix B of XML 1.0 specification

    definition classes: TokenTests
  49. def isPubIDChar (ch: Char) : Boolean

    definition classes: TokenTests
  50. def isSpace (cs: Seq[Char]) : Boolean

    (#x20 | #x9 | #xD | #xA)+

    (#x20 | #x9 | #xD | #xA)+

    attributes: final
    definition classes: TokenTests
  51. def isSpace (ch: Char) : Boolean

    (#x20 | #x9 | #xD | #xA)

    (#x20 | #x9 | #xD | #xA)

    attributes: final
    definition classes: TokenTests
  52. def isValidIANAEncoding (ianaEncoding: Seq[Char]) : Boolean

    Returns true if the encoding name is a valid IANA encoding.

    Returns true if the encoding name is a valid IANA encoding. This method does not verify that there is a decoder available for this encoding, only that the characters are valid for an IANA encoding name.

    ianaEncoding

    The IANA encoding name.

    definition classes: TokenTests
  53. def lookahead () : BufferedIterator[Char]

    Create a lookahead reader which does not influence the input

    Create a lookahead reader which does not influence the input

    definition classes: MarkupParser → MarkupParserCommon
  54. def markupDecl () : Unit

  55. def markupDecl1 () : Any

  56. def mkAttributes (name: String, pscope: NamespaceBinding) : ()

    definition classes: MarkupParser → MarkupParserCommon
  57. def mkProcInstr (position: Int, name: String, text: String) : NodeSeq

    definition classes: MarkupParser → MarkupParserCommon
  58. def ne (arg0: AnyRef) : Boolean

    o.ne(arg0) is the same as !(o.eq(arg0)).

    o.ne(arg0) is the same as !(o.eq(arg0)).

    arg0

    the object to compare against this object for reference dis-equality.

    returns

    false if the argument is not a reference to the receiver object; true otherwise.

    attributes: final
    definition classes: AnyRef
  59. def nextch : Char

    this method assign the next character to ch and advances in input

    this method assign the next character to ch and advances in input

    definition classes: MarkupParser → MarkupParserCommon
  60. def notationDecl () : Unit

    'N' notationDecl ::= "OTATION"

    'N' notationDecl ::= "OTATION"

  61. def notify () : Unit

    Wakes up a single thread that is waiting on the receiver object's monitor.

    Wakes up a single thread that is waiting on the receiver object's monitor.

    attributes: final
    definition classes: AnyRef
  62. def notifyAll () : Unit

    Wakes up all threads that are waiting on the receiver object's monitor.

    Wakes up all threads that are waiting on the receiver object's monitor.

    attributes: final
    definition classes: AnyRef
  63. def parseDTD () : Unit

    parses document type declaration and assigns it to instance variable dtd.

    parses document type declaration and assigns it to instance variable dtd.

    &lt;! parseDTD ::= DOCTYPE name ... >

  64. def pop () : Unit

  65. var pos : Int

    holds the position in the source file

    holds the position in the source file

  66. val preserveWS : Boolean

    if true, does not remove surplus whitespace

    if true, does not remove surplus whitespace

    attributes: abstract
  67. def prolog () : (Option[String], Option[String], Option[Boolean])

    &lt;? prolog ::= xml S? // this is a bit more lenient than necessary.

    &lt;? prolog ::= xml S? // this is a bit more lenient than necessary...

  68. def pubidLiteral () : String

  69. def push (entityName: String) : Unit

  70. def pushExternal (systemId: String) : Unit

  71. def putChar (c: Char) : StringBuilder

    append Unicode character to name buffer

    append Unicode character to name buffer

    attributes: protected
  72. def reportSyntaxError (str: String) : Unit

    definition classes: MarkupParser → MarkupParserCommon
  73. def reportSyntaxError (pos: Int, str: String) : Unit

    definition classes: MarkupParser → MarkupParserCommon
  74. def reportValidationError (pos: Int, str: String) : Unit

  75. def returning [T] (x: T)(f: (T) ⇒ Unit) : T

    Apply a function and return the passed value

    Apply a function and return the passed value

    definition classes: MarkupParserCommon
  76. def saving [A, B] (getter: A, setter: (A) ⇒ Unit)(body: ⇒ B) : B

    Execute body with a variable saved and restored after execution

    Execute body with a variable saved and restored after execution

    definition classes: MarkupParserCommon
  77. def synchronized [T0] (arg0: T0) : T0

    attributes: final
    definition classes: AnyRef
  78. def systemLiteral () : String

    attribute value, terminated by either ' or ".

    attribute value, terminated by either ' or ". value may not contain &lt;. AttValue ::= ' { _ } ' | " { _ } "

  79. def textDecl () : (Option[String], Option[String])

    prolog, but without standalone

    prolog, but without standalone

  80. var tmppos : Int

    holds temporary values of pos

    holds temporary values of pos

    definition classes: MarkupParser → MarkupParserCommon
  81. def toString () : String

    Returns a string representation of the object.

    Returns a string representation of the object.

    The default representation is platform dependent.

    returns

    a string representation of the object.

    definition classes: AnyRef → Any
  82. def truncatedError (msg: String) : Nothing

    definition classes: MarkupParser → MarkupParserCommon
  83. def unreachable : Nothing

    attributes: protected
    definition classes: MarkupParserCommon
  84. def wait () : Unit

    attributes: final
    definition classes: AnyRef
  85. def wait (arg0: Long, arg1: Int) : Unit

    attributes: final
    definition classes: AnyRef
  86. def wait (arg0: Long) : Unit

    attributes: final
    definition classes: AnyRef
  87. def xAttributeValue () : String

    definition classes: MarkupParserCommon
  88. def xAttributeValue (endCh: Char) : String

    attribute value, terminated by either ' or ".

    attribute value, terminated by either ' or ". value may not contain <.

    definition classes: MarkupParserCommon
  89. def xAttributes (pscope: NamespaceBinding) : (MetaData, NamespaceBinding)

    parse attribute and create namespace scope, metadata [41] Attributes ::= { S Name Eq AttValue }

    parse attribute and create namespace scope, metadata [41] Attributes ::= { S Name Eq AttValue }

  90. def xCharData : NodeSeq

    '&lt;! CharData ::= [CDATA[ ( {char} - {char}"]]&gt;"{char} ) ']]&gt;'

    '&lt;! CharData ::= [CDATA[ ( {char} - {char}"]]&gt;"{char} ) ']]&gt;'

    see [15]

  91. def xCharRef : String

    definition classes: MarkupParserCommon
  92. def xCharRef (it: Iterator[Char]) : String

    definition classes: MarkupParserCommon
  93. def xCharRef (ch: () ⇒ Char, nextch: () ⇒ Unit) : String

    CharRef ::= "&#" '0'.

    CharRef ::= "&#" '0'..'9' {'0'..'9'} ";" | "&#x" '0'..'9'|'A'..'F'|'a'..'f' { hexdigit } ";"

    see [66]

    definition classes: MarkupParserCommon
  94. def xComment : NodeSeq

    Comment ::= '&lt;!--' ((Char - '-') | ('-' (Char - '-')))* '--&gt;'

    Comment ::= '&lt;!--' ((Char - '-') | ('-' (Char - '-')))* '--&gt;'

    see [15]

  95. def xEQ : Unit

    scan [S] '=' [S]

    scan [S] '=' [S]

    definition classes: MarkupParserCommon
  96. def xEndTag (startName: String) : Unit

    [42] '<' xmlEndTag ::= '<' '/' Name S? '>'

    [42] '<' xmlEndTag ::= '<' '/' Name S? '>'

    definition classes: MarkupParserCommon
  97. def xEntityValue () : String

    entity value, terminated by either ' or ".

    entity value, terminated by either ' or ". value may not contain &lt;. AttValue ::= ' { _ } ' | " { _ } "

  98. def xHandleError (that: Char, msg: String) : Unit

    definition classes: MarkupParser → MarkupParserCommon
  99. def xName : String

    actually, Name ::= (Letter | '_' | ':') (NameChar)* but starting with ':' cannot happen Name ::= (Letter | '_') (NameChar)*

    actually, Name ::= (Letter | '_' | ':') (NameChar)* but starting with ':' cannot happen Name ::= (Letter | '_') (NameChar)*

    see [5] of XML 1.0 specification

    pre-condition: ch != ':' // assured by definition of XMLSTART token post-condition: name does neither start, nor end in ':'

    definition classes: MarkupParserCommon
  100. def xProcInstr : ElementType

    '<?' ProcInstr ::= Name [S ({Char} - ({Char}'>?' {Char})]'?>'

    '<?' ProcInstr ::= Name [S ({Char} - ({Char}'>?' {Char})]'?>'

    see [15]

    definition classes: MarkupParserCommon
  101. def xSpace : Unit

    scan [3] S ::= (#x20 | #x9 | #xD | #xA)+

    scan [3] S ::= (#x20 | #x9 | #xD | #xA)+

    definition classes: MarkupParserCommon
  102. def xSpaceOpt : Unit

    skip optional space S?

    skip optional space S?

    definition classes: MarkupParserCommon
  103. def xTag (pscope: NamespaceType) : (String, ())

    parse a start or empty tag.

    parse a start or empty tag. [40] STag ::= '<' Name { S Attribute } [S] [44] EmptyElemTag ::= '<' Name { S Attribute } [S]

    attributes: protected
    definition classes: MarkupParserCommon
  104. def xTakeUntil [T] (handler: (PositionType, String) ⇒ T, positioner: () ⇒ PositionType, until: String) : T

    Take characters from input stream until given String "until" is seen.

    Take characters from input stream until given String "until" is seen. Once seen, the accumulated characters are passed along with the current Position to the supplied handler function.

    attributes: protected
    definition classes: MarkupParserCommon
  105. def xText : String

    parse character data.

    parse character data. precondition: xEmbeddedBlock == false (we are not in a scala block)

  106. def xToken (that: Seq[Char]) : Unit

    definition classes: MarkupParserCommon
  107. def xToken (that: Char) : Unit

    definition classes: MarkupParserCommon
  108. def xmlProcInstr () : MetaData

    &lt;? prolog ::= xml S .

    &lt;? prolog ::= xml S ... ?&gt;

Inherited from MarkupParserCommon

Inherited from TokenTests

Inherited from AnyRef

Inherited from Any