XML пространства имен - объявление по умолчанию - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть XML и некоторые проблемы с пониманием того, как элементы квалифицируются в пространствах имен. К сожалению, я не смог найти правильный ответ на мой вопрос. У меня есть небольшой пример, чтобы было легче следить за моим вопросом (извините за немецкие выражения):

<?xml version="1.0" encoding="utf-8"?>
<Buchempfehlungen xmlns:book="http://aifb.kit.edu/buecher"
xmlns:pub="http://aifb.kit.edu/publisher">
    <Empfehlung>
        <book:Titel>Kleines Handbuch für den Umgang mit Unwissen</book:Titel>
        <book:ISBN>978-3442749775</book:ISBN>
        <Autor xmlns="http://aifb.kit.edu/buecher">
            <Name>Nassim Nicholas Taleb</Name>
            <Geburtsdatum>1. Januar 1960</Geburtsdatum>
        </Autor>
        <Verlag>
            <pub:Name>btb</pub:Name>
            <pub:Ort>München</pub:Ort>
        </Verlag>
    </Empfehlung>
</Buchempfehlungen>

Теперь мой вопрос: какому пространству имен назначен элемент "Verlag"? Поскольку в элементе root отсутствует объявление пространства имен по умолчанию. Но есть элемент по умолчанию в элементе Autor, который находится на том же «уровне», что и «Verlag»

Считается ли это «более глубокое» объявление default-ns для всего документа или только для его потомков?

1 Ответ

1 голос
/ 05 февраля 2020

Следующее выражение XPath возвращает элемент Verlag . Его родственное Autor пространство имен по умолчанию не влияет на него. Только его потомки, то есть Имя и Geburtsdatum , принадлежат к одному пространству имен по умолчанию xmlns="http://aifb.kit.edu/buecher".

XPath

/Buchempfehlungen/Empfehlung/Verlag

Выход

<Verlag>
    <pub:Name>btb</pub:Name>
    <pub:Ort>München</pub:Ort>
</Verlag>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...