Чтобы уточнить вопрос, могу ли я заменить определения пространства имен определением?
Это все еще правильно сформированный XML?Являются ли они «одинаковыми» в контексте, является вторым по-прежнему правильно сформированным XML-сообщением SOAP, подобно оригиналу.
Например, Это правильно сформированное XML-сообщение SOAP из примера Oracle.Затем я сделаю его копию, но заменит атрибут SOAP-ENV на его определение:
SOAP-ENV
<?xml version="1.0" encoding="utf-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Client</faultcode> <faultstring>Message does not have necessary info</faultstring> <faultactor>http://gizmos.com/order</faultactor> <detail> <PO:order xmlns:PO="http://gizmos.com/orders/"> Quantity element does not have a value</PO:order> <PO:confirmation xmlns:PO="http://gizmos.com/confirm"> Incomplete address: no zip code</PO:confirmation> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Так что SOAP-ENV, который определяется в цитируемом определении "http://schemas.xmlsoap.org/soap/envelope/", заменяется.
"http://schemas.xmlsoap.org/soap/envelope/"
<?xml version="1.0" encoding="utf-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <http://schemas.xmlsoap.org/soap/envelope/:Header/> <http://schemas.xmlsoap.org/soap/envelope/:Body> <http://schemas.xmlsoap.org/soap/envelope/:Fault> <faultcode>SOAP-ENV:Client</faultcode> <faultstring>Message does not have necessary info</faultstring> <faultactor>http://gizmos.com/order</faultactor> <detail> <PO:order xmlns:PO="http://gizmos.com/orders/"> Quantity element does not have a value</PO:order> <PO:confirmation xmlns:PO="http://gizmos.com/confirm"> Incomplete address: no zip code</PO:confirmation> </detail> </http://schemas.xmlsoap.org/soap/envelope/:Fault> </http://schemas.xmlsoap.org/soap/envelope/:Body> </http://schemas.xmlsoap.org/soap/envelope/:Envelope>
Нет, синтаксис, предложенный вами для замены префиксов пространства имен на URI пространства имен, не является правильно сформированным XML.Некоторые программы поддерживают что-то близкое, хотя:
<{http://schemas.xmlsoap.org/soap/envelope/}Envelope />
Это обычно называется Кларк Нотация .