From e46aab9c0c8a2f0420a4d1e3d7865b84122f745b Mon Sep 17 00:00:00 2001 From: buraq Date: Mon, 11 Apr 2005 17:06:19 +0000 Subject: new XML API that deals with namespaces properly --- test/files/jvm/serialization.check | 4 +- test/files/jvm/xmlLiterals.check | 1 - test/files/jvm/xmlLiterals.scala | 57 ++++++----- test/files/jvm/xmlstuff.check | 21 ---- test/files/jvm/xmlstuff.scala | 192 +++---------------------------------- 5 files changed, 42 insertions(+), 233 deletions(-) (limited to 'test/files/jvm') diff --git a/test/files/jvm/serialization.check b/test/files/jvm/serialization.check index 497215a742..209f6ec976 100644 --- a/test/files/jvm/serialization.check +++ b/test/files/jvm/serialization.check @@ -74,8 +74,8 @@ x = title y = title x equals y: true - y equals x: true -x =
Last NameFirst Name
Tom20
Bob22
James19
-y =
Last NameFirst Name
Tom20
Bob22
James19
+x =
Last NameFirst Name
Tom20
Bob22
James19
+y =
Last NameFirst Name
Tom20
Bob22
James19
x equals y: true - y equals x: true x = Tim diff --git a/test/files/jvm/xmlLiterals.check b/test/files/jvm/xmlLiterals.check index 4fa9298cd2..95487bee2f 100644 --- a/test/files/jvm/xmlLiterals.check +++ b/test/files/jvm/xmlLiterals.check @@ -67,5 +67,4 @@ Test05Ref {  { namespace - diff --git a/test/files/jvm/xmlLiterals.scala b/test/files/jvm/xmlLiterals.scala index 73d6627b1c..e47fa11126 100644 --- a/test/files/jvm/xmlLiterals.scala +++ b/test/files/jvm/xmlLiterals.scala @@ -48,11 +48,13 @@ object Test { val x3 = xx3.toString(); /* ws in element content */ + //Console.println("tmp1:"+x3); + //Console.println("tmp2:"+Elem(null,"mars",e,null).toString() ); assertEquals( noWS( x3 ), - Elem("","hello",e, - Elem("","world",e), - Elem("","test",e), - Elem("","mars",e)).toString() ); + Elem(null,"hello",e,null, + Elem(null,"world",e,null), + Elem(null,"test",e,null), + Elem(null,"mars",e,null)).toString() ); Console.println("ws trimming in patterns"); @@ -72,14 +74,14 @@ object Test { .toString(); assertEquals( noWS( z ), noWS( - Elem("","html",e, - Elem("","body",e, - Elem("","h1",e,Text("Hello World")), - Elem("","p",e,Text("Check the "), - Elem("","a", e,Text("scala")) - % (Attribute("","href","scala.epfl.ch")), + Elem(null,"html",e,null, + Elem(null,"body",e,null, + Elem(null,"h1",e,null,Text("Hello World")), + Elem(null,"p",e,null,Text("Check the "), + Elem(null,"a", e,null,Text("scala")) + % (new UnprefixedAttribute("href","scala.epfl.ch",Null)), Text("page!")) - ) % Attribute("", "background","#FFFFFF") + ) % new UnprefixedAttribute("background","#FFFFFF",Null) ).toString() )); @@ -100,16 +102,16 @@ object Test { /* === embedded Scala blocks === */ def computeDate() = { - Elem("","date", e, Text("now!")); + Elem(null,"date", e, null, Text("now!")); } /* embedding Scala strings as text and elements */ val sc = { "World" }{ Text("42") }{ computeDate() }; assertEquals( sc.child.elements.toList, - List( Text("World"), Text("42"), Elem("", "date", e,Text("now!") ) ) ); + List( Text("World"), Text("42"), Elem(null, "date", e,null, Text("now!") ) ) ); assertEquals( sc.toString(), - Elem("","hello",e,Text("World42"),Elem("","date",e,Text("now!"))).toString() ); + Elem(null,"hello",e,null,Text("World42"),Elem(null,"date",e,null, Text("now!"))).toString() ); def foo( m:Node ):String = m match { case => "hello node" @@ -132,11 +134,11 @@ object Test { ; assertEquals( noWS( rows.toList.toString() ), - noWS( List(Elem("","tr",e, - Elem("","td",e,Text("1.1")),Elem("","td",e,Text("1.2")) + noWS( List(Elem(null,"tr",e,null, + Elem(null,"td",e,null,Text("1.1")),Elem(null,"td",e,null, Text("1.2")) ), - Elem("","tr",e, - Elem("","td",e,Text("2.1")),Elem("","td",e,Text("2.2")) + Elem(null,"tr",e,null, + Elem(null,"td",e,null,Text("2.1")),Elem(null,"td",e,null,Text("2.2")) ) ).toString() ) ); @@ -144,9 +146,9 @@ object Test { val rows3 = a b c d ; // these are not equal as comments are valid XML Info items. - assertEquals( rows2, Elem("","tr",e,Comment(" an XML comment "),ProcInstr("pinotext",""),ProcInstr("pi","text"))); + assertEquals( rows2, Elem(null,"tr",e,null,Comment(" an XML comment "),ProcInstr("pinotext",""),ProcInstr("pi","text"))); - assertEquals( rows3, Elem("","tr",e,Text("a"),Comment(" an XML comment "),Text("b"),ProcInstr("pinotext",""),Text("c"),ProcInstr("pi","text"),Text("d"))); + assertEquals( rows3, Elem(null,"tr",e,null,Text("a"),Comment(" an XML comment "),Text("b"),ProcInstr("pinotext",""),Text("c"),ProcInstr("pi","text"),Text("d"))); } @@ -198,8 +200,8 @@ object Test03Servlet { case { xs @ _* }
=> { beautify( xs )}
- case Elem("", label, _, xs @ _* ) => - new Elem("", label, beautify( xs ):_*) + case Elem(null, label, _, _, xs @ _* ) => + new Elem(null, label, e, null, beautify( xs ):_*) case _ => n } @@ -228,8 +230,7 @@ object Test03Servlet { */ def doGetXML() = { beautify( page( List( format( getMessage( "message" ) )) )); - /* page( List( format( theMessage ))); */ - + //page( List( format( theMessage ))); } def main( args:Array[String] ) = { @@ -253,14 +254,14 @@ object Test03Servlet { Console.println( onlyOne ); val tryBrace = Now escaped {{ braces } ; - assertEquals( tryBrace, Elem("","try",e,Text("Now escaped { braces }"))); + assertEquals( tryBrace, Elem(null,"try",e,null,Text("Now escaped { braces }"))); val tryBrace2 = cool ?; assertEquals( tryBrace2.attribute("myAttrib"), "7" ); /* Scala comments are not allowed in XML literals. see neg(2) */ val zzz = /* no comment */; - assertEquals( zzz, Elem("","hello", e, Text("/* no comment */"))); + assertEquals( zzz, Elem(null,"hello", e,null, Text("/* no comment */"))); } @@ -280,10 +281,6 @@ object Test03Servlet { ; Console.println( foo ); - val h = new scala.collection.mutable.HashMap[String,String](); - h("www.bar.com") = "bar"; - h("www.baz.com") = ""; - Console.println( Utility.toXML(foo, h) ); } diff --git a/test/files/jvm/xmlstuff.check b/test/files/jvm/xmlstuff.check index 397a8970d6..393a4813c8 100644 --- a/test/files/jvm/xmlstuff.check +++ b/test/files/jvm/xmlstuff.check @@ -1,23 +1,3 @@ -passed ok -equality -passed ok -passed ok -passed ok -passed ok -passed ok -xpath \ -passed ok -passed ok -passed ok -passed ok -passed ok -passed ok -passed ok -passed ok -xpath \\ DESCENDANTS -passed ok -passed ok -passed ok NodeSeq passed ok @@ -46,4 +26,3 @@ namespaces passed ok passed ok passed ok -passed ok diff --git a/test/files/jvm/xmlstuff.scala b/test/files/jvm/xmlstuff.scala index e68f692bdb..1418707f95 100644 --- a/test/files/jvm/xmlstuff.scala +++ b/test/files/jvm/xmlstuff.scala @@ -6,181 +6,8 @@ import scala.xml.{Node,NodeSeq,Elem,Text}; object Test with Application { - val e = Node.NoAttributes; - -/* - def eq( a:Seq[Node], b:Seq[Node] ):boolean = { - (a.length == b.length) && eq(a.elements,b.elements) - } - def eq( ita:Iterator[Node], itb:Iterator[Node] ) = { - var res = true; - while( ita.hasNext && itb.hasNext && res ) { - res = (ita.next == itb.next); - }; - !ita.hasNext && !itb.hasNext && res - } - */ - val xmlFile1 = ""; - val isrc1 = new InputSource( new StringReader( xmlFile1 ) ); - val parsedxml1 = XML.load( isrc1 ); - val isrc11 = new InputSource( new StringReader( xmlFile1 ) ); - val parsedxml11 = XML.load( isrc11 ); - - val c = new Node { - def label = "hello"; - def namespace = ""; - def child = List(Elem("","world",e)); - def attributes = e; - }; - - assertSameElements( List( 3 ), List( 3 )); - - Console.println("equality"); - assertEquals( c, parsedxml11 ); - assertEquals( parsedxml1, parsedxml11 ); - assertSameElements( List(parsedxml1), List(parsedxml11)); - assertSameElements( Iterator.fromArray(Predef.Array(parsedxml1)).toList, List(parsedxml11)); - - val x2 = "Peter BunemanDan SuciuData on ze web"; - - val i = new InputSource( new StringReader( x2 )); - val x2p = XML.load( i ); - - assertEquals(x2p, Elem("","book",e, - Elem("","author",e,Text("Peter Buneman")), - Elem("","author",e,Text("Dan Suciu")), - Elem("","title",e,Text("Data on ze web")))); - - val xmlFile2 = "Peter BunemanDan SuciuData on ze webJohn MitchellFoundations of Programming Languages"; - val isrc2 = new InputSource( new StringReader( xmlFile2 ) ); - val parsedxml2 = XML.load( isrc2 ); - - // xmlFile2/book -> book,book - Console.println("xpath \\"); - - - assertSameElements( parsedxml1 \ "_" , List( Elem("","world",e) ) ); - - assertSameElements( parsedxml1 \ "world", List( Elem("","world",e) ) ); - -/* - Console.println( parsedxml2 \ "_" ); - Console.println( (parsedxml2 \ "_" ).elements); - for( val i <- (parsedxml2 \ "_" ).elements) { - Console.println( i ); - }; - */ - assertSameElements( - parsedxml2 \ "_" , - - List( - Elem("","book", e, - Elem("","author",e,Text("Peter Buneman")), - Elem("","author",e,Text("Dan Suciu")), - Elem("","title",e,Text("Data on ze web"))), - Elem("","book",e, - Elem("","author",e,Text("John Mitchell")), - Elem("","title",e,Text("Foundations of Programming Languages")))) - ); - assertEquals( (parsedxml2 \ "author").length, 0 ); - - assertSameElements( - parsedxml2 \ "book", - - List( - Elem("","book",e, - Elem("","author",e,Text("Peter Buneman")), - Elem("","author",e,Text("Dan Suciu")), - Elem("","title",e,Text("Data on ze web"))), - Elem("","book",e, - Elem("","author",e,Text("John Mitchell")), - Elem("","title",e,Text("Foundations of Programming Languages"))) - ) - ); - - assertSameElements( - - parsedxml2 \ "_" \ "_", - - List( - Elem("","author",e,Text("Peter Buneman")), - Elem("","author",e,Text("Dan Suciu")), - Elem("","title",e,Text("Data on ze web")), - Elem("","author",e,Text("John Mitchell")), - Elem("","title",e,Text("Foundations of Programming Languages")) - ) - ); - - assertSameElements( - - parsedxml2 \ "_" \ "author", - - List( - Elem("","author",e,Text("Peter Buneman")), - Elem("","author",e,Text("Dan Suciu")), - Elem("","author",e,Text("John Mitchell")) - ) - - ); - - assertSameElements( (parsedxml2 \ "_" \ "_" \ "author"), List() ); - - Console.println("xpath \\\\ DESCENDANTS"); - - assertSameElements( - - parsedxml2 \\ "author", - - List( - Elem("","author",e,Text("Peter Buneman")), - Elem("","author",e,Text("Dan Suciu")), - Elem("","author",e,Text("John Mitchell")) - ) - - ); - - assertEquals( - - (new NodeSeq { val theSeq = List( parsedxml2 ) }) \\ "_", - - List( - Elem("","bib",e, - Elem("","book",e, - Elem("","author",e,Text("Peter Buneman")), - Elem("","author",e,Text("Dan Suciu")), - Elem("","title",e,Text("Data on ze web"))), - Elem("","book",e, - Elem("","author",e,Text("John Mitchell")), - Elem("","title",e,Text("Foundations of Programming Languages")))), - Elem("","book",e, - Elem("","author",e,Text("Peter Buneman")), - Elem("","author",e,Text("Dan Suciu")), - Elem("","title",e,Text("Data on ze web"))), - Elem("","author",e,Text("Peter Buneman")), - Text("Peter Buneman"), - Elem("","author",e,Text("Dan Suciu")), - Text("Dan Suciu"), - Elem("","title",e,Text("Data on ze web")), - Text("Data on ze web"), - Elem("","book",e, - Elem("","author",e,Text("John Mitchell")), - Elem("","title",e,Text("Foundations of Programming Languages"))), - Elem("","author",e,Text("John Mitchell")), - Text("John Mitchell"), - Elem("","title",e,Text("Foundations of Programming Languages")), - Text("Foundations of Programming Languages") - ) - ); - - - assertSameElements( - - parsedxml2 \\ "title", - - List( - Elem("","title",e,Text("Data on ze web")), - Elem("","title",e,Text("Foundations of Programming Languages"))) - ); + //val e: scala.xml.MetaData = null; //Node.NoAttributes; + //val sc: scala.xml.NamespaceBinding = null; Console.println("NodeSeq"); @@ -221,7 +48,7 @@ object Test with Application { ; - Console.println( new scala.xml.PrettyPrinter(80, 5).format ( + Console.println( new scala.xml.PrettyPrinter(80, 5).formatNodes ( for( val t <- books \\ "title"; val r <- reviews \\ "entry"; r \ "title" == t) yield @@ -236,7 +63,6 @@ object Test with Application { for( val t @ Blabla <- new NodeSeq { val theSeq = books.child }.asList) yield t ); - val phoneBook = @@ -264,7 +90,7 @@ val addrBook = ; - Console.println( new scala.xml.PrettyPrinter(80, 5).format ( + Console.println( new scala.xml.PrettyPrinter(80, 5).formatNodes ( for( val t <- addrBook \\ "entry"; val r <- phoneBook \\ "entry"; t \ "name" == r \ "name") yield @@ -298,6 +124,7 @@ val addrBook = true); /* namespaces */ + // begin tmp Console.println("namespaces"); val cuckoo = @@ -307,7 +134,11 @@ val addrBook = for( val n <- cuckoo.child ) { assertEquals( n.namespace, "http://cuckoo.com"); } + // end tmp + /* +DEPRECATED, don't support namespaces in pattern match anymore +*/ /* assertEquals( true, cuckoo match { case @@ -316,11 +147,14 @@ val addrBook = => true; case _ => false; }); */ + /* + // begin tmp assertEquals( false, cuckoo match { case => true; case _ => false; }); - + // end tmp + */ } -- cgit v1.2.3