Подпись XML содержащий namespace - has a relative namespace

Доброе утро!
Нужно подписать xml содержащий namespace

<v1:uForm xmlns:a=“namespace.abstractUForm” xmlns:v1=“namespace.v1”>

  • 05.01.2025*
  • 5000000016*

От метода SignXML приходит ответ
"org.apache.xml.security.signature.ReferenceNotInitializedException: Element v1:uForm has a relative namespace: a=“namespace.abstractUForm”

Jar файл предоставленный ИС ЭСФ подписывает этот же xml без проблем.
Как подписать XML с namespace?

Добрый день!
ReferenceNotInitializedException: Element v1:uForm has a relative namespace указывает на некорректное определение пространства имен, а именно кажется неправильные кавычки “ ” вместо стандартных " в атрибутах xmlns.

Если подписываете часть xml, то это не работает

Не зависит от кавычек - зависит от содержимого кавычек… в топике выделил курсивом чтобы было понимание где xml.

Конечно подписываю полный xml
<v1:uForm xmlns:a=“namespace.abstractUForm” xmlns:v1=“namespace.v1”>
05.01.2025
5000000016

KPO
15883
981141001567
Главный склад КПО

10.00
WRITE_OFF
LOSS


25.73.30.01-8204200000
796
10.00
1
10.00
Ключи гаечные ручные (включая гаечные ключи с торсиометрами, но исключая воротки); сменные головки для гаечных ключей, с ручками или без них / головки для гаечных ключей сменные, с ручками или без них
1021703
12345/181223/0000000
Ключи гаечные ручные
12345
8204200000


</v1:uForm>

можете оформить xml, чтобы можно было проверить?

Ниже XML

<v1:uForm xmlns:a="namespace.abstractUForm" xmlns:v1="namespace.v1">
	<date>05.01.2025</date>
	<number>5000000016</number>
	<sender>
		<name>KPO</name>
		<storeId>15883</storeId>
		<tin>981141001567</tin>
		<storeName>Главный склад КПО </storeName>
	</sender>
	<totalSum>                                                                                                                                                                                                                                                         10.00 </totalSum>
	<type>WRITE_OFF</type>
	<writeOffReason>LOSS</writeOffReason>
	<products>
		<product>
			<gsvsCode>25.73.30.01-8204200000</gsvsCode>
			<measureUnitCode>796</measureUnitCode>
			<price>10.00</price>
			<quantity>1</quantity>
			<sum>10.00</sum>
			<name>Ключи гаечные ручные (включая гаечные ключи с торсиометрами, но исключая воротки); сменные головки для гаечных ключей, с ручками или без них / головки для гаечных ключей сменные, с ручками или без них                                                       </name>
			<productId>1021703</productId>
			<manufactureOrImportDocNumber>12345/181223/0000000</manufactureOrImportDocNumber>
			<productNameInImportDoc>Ключи гаечные ручные                                                                                                                                                                                                                                           </productNameInImportDoc>
			<productNumberInImportDoc>12345</productNumberInImportDoc>
			<tnvedCode>8204200000</tnvedCode>
		</product>
	</products>
</v1:uForm>

Понятно. Относительные пространства имён не разрешены.
Вам нужно изменить либо как URI
<v1:uForm xmlns:a="http://namespace.abstractUForm" xmlns:v1="http://namespace.v1">
либо URN
<v1:uForm xmlns:a="urn:namespace:abstractUForm" xmlns:v1="urn:namespace:v1">

Подскажите, пожалуйста, у вас получилось отправить какой-нибудь из предложенных вариантов на портал? Я пробовал подписать фактуру, но портал её не принимает

По всякому пробавал, к сожалению не получилось… нужен корректный namespace

Жалко. Я успешно подписываю тикет аутентификации и сессия открывается нормально. а вот отправка фактуры не получается никак.