PHP / XML - Пространство имен не определено - PullRequest
0 голосов
/ 14 июля 2020

Мы разработали веб-приложение на Laravel / PHP. Приложение считывает данные о клиентах и ​​помещает их в XML. XML отформатирован в соответствии с форматом декларации НДС в Бельгии.

Когда я пытаюсь открыть XML в Inte rnet Explorer, он показывает белую страницу, и я получаю сообщение об ошибке что пространство имен не определено. Я не понимаю этого, потому что считаю, что определил пространство имен.

Кто-нибудь видит, что я делаю неправильно. Я предполагаю, что это что-то глупое, но я ищу несколько дней и не вижу, что не так.

Большое спасибо! С уважением, Jer

1 Ответ

0 голосов
/ 15 июля 2020

Ваши элементы имеют префикс пространства имен ns2, e.g. ns2: VATConsignment`; к сожалению, этот префикс пространства имен никогда не определяется в вашем XML.

даже ваш элемент root использует этот неопределенный префикс пространства имен:

<ns2:VATConsignment xmlns="http://www.minfin.fgov.be/InputCommon"
                    xmlns:ns="http://www.minfin.fgov.be/VATConsignment"
                    VATDeclarationsNbr="1">

Тем не менее он объявляет пространство имен для себя: xmlns="http://www.minfin.fgov.be/InputCommon"

и еще одно пространство имен с префиксом, которое не используется в вашем документе: xmlns:ns="http://www.minfin.fgov.be/VATConsignment"

Теперь я не знаю, все ли ваши элементы ns2: относятся к первому или последнее пространство имен, и вы должны это проверить. В любом случае добавление определения префикса пространства имен для ns2 или (если элементы из пространства имен, определенного с префиксом ns) изменение префикса на ns должно решить проблему.

Вот пример того, как определить дополнительный префикс пространства имен в вашем элементе root:

<ns2:VATConsignment xmlns="http://www.minfin.fgov.be/InputCommon"
                    xmlns:ns2="http://www.minfin.fgov.be/InputCommon"
                    xmlns:ns="http://www.minfin.fgov.be/VATConsignment"
                    VATDeclarationsNbr="1">

Просто примечание: префиксы пространства имен могут быть свободно определены в XML, поэтому используйте что-то более semanti c, чем ns или ns2 значительно упрощают корректуру, например,

<input:VATConsignment xmlns="http://www.minfin.fgov.be/InputCommon"
                    xmlns:input="http://www.minfin.fgov.be/InputCommon"
                    xmlns:vat="http://www.minfin.fgov.be/VATConsignment"
                    VATDeclarationsNbr="1">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...