blob: 3fa18f1eb1c2af9f48b77d513c76bedf03d362c3 [file] [log] [blame]
package groovy.xml
/**
* Test the use of GPath navigation with namespaces
*/
class NamespaceNodeGPathTest extends TestXmlSupport {
void testTree() {
Node root = new XmlParser().parseText("""
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation xsd:cheese="Edam">
<xsd:documentation>Purchase order schema for Example.com.</xsd:documentation>
</xsd:annotation>
</xsd:schema>
""")
Namespace xsd = new Namespace('http://www.w3.org/2001/XMLSchema', 'xsd')
def children = root.children()
println "has children $children"
def name = root.name()
println "name is of type ${name.getClass()} with value $name"
root.children().each { println "has a child with name ${it.name()} and content $it" }
def foo = xsd.annotation
println "qname is $foo"
println "qname url is $foo.namespaceURI"
println "qname prefix is $foo.prefix"
println "qname localPart is $foo.localPart"
def a = root[xsd.annotation]
println "Found results $a"
assert a.size() == 1 : " size is $a.size()"
def aNode = a[0]
def cheese = aNode.attributes()[xsd.cheese]
assert cheese == "Edam"
println "Found namespaced attribute $cheese"
cheese = aNode.attribute(xsd.cheese)
assert cheese == "Edam"
println "Found namespaced attribute $cheese"
def e = root[xsd.annotation][xsd.documentation]
//def e = a[xsd.documentation]
assert e.size() == 1: " size is $e.size()"
String text = e.text()
println "Found element: $e with text: $text"
assert text == "Purchase order schema for Example.com."
}
}