Bei den XML- und XPath-basierten Tests werden Namensräume, für die
ein Präfix definiert ist, automatisch erkannt. Weil der XML-Standard
aber zulässt, dass Namensräume mehrfach definiert werden,
ermittelt PDFUnit den Default-Namensraum nicht automatisch.
Er muss durch das Attribut defaultNamespace=".."
vorgegeben
werden:
<!-- The default namespace has to be declared, but any alias can be used for it. --> <testcase name="hasXFAData_UsingDefaultNamespace"> <assertThat testDocument="xfa/xfa-enabled.pdf"> <hasXFAData> <withNode tag="foo:log/foo:to" value="memory" defaultNamespace="http://www.xfa.org/schema/xci/2.6/" /> </hasXFAData> </assertThat> </testcase>
Beachten Sie, dass in diesem Beispiel einmal das Präfix foo
und einmal das Präfix bar
für den gleichen Namensraum
verwendet wird. Das ist zwar seltsam, aber der Java-Standard verlangt
ein beliebiges Präfix, das nicht weggelassen werden
darf.
Das nächste Beispiel zeigt die Deklaration des Default-Namensraumes
für das Tag <matchingXPath />
:
<testcase name="hasXMPData_MatchingXPath_WithDefaultNamespace"> <assertThat testDocument="xmp/metadata-added.pdf"> <hasXMPData> <matchingXPath expr="//foo:format = 'application/pdf'" defaultNamespace="http://purl.org/dc/elements/1.1/" /> </hasXMPData> </assertThat> </testcase>