0
tufffta
06.02.15
✎
14:35
|
У меня метод Канонизировать (КаноническийDOM) и КаноническаяЗаписьXML работает неправильно: в результате декларации пространств имен возвращаются записаны без самих атрибутов "xmlns".
Пример результата:
<SignedProperties ="; :xsi="; Id="SignedPropertiesElem_0">
<SignedSignatureProperties>
<SigningTime>2015-01-26T13:25:56Z</SigningTime>
<SigningCertificate>
<Cert>
<CertDigest>
<DigestMethod ="; Algorithm=";
<DigestValue =";
</CertDigest>
Вот декларации пространств имен:
=";
:xsi=";
Потом при читании такого файла таже самая 1С дает ошибки.
А вот как я каноникализую:
canonical = new КаноническийDOM;
КаноническаяЗаписьXML = new КаноническаяЗаписьXML;
КаноническаяЗаписьXML.ОткрытьФайл("\\ESBSERVER\Andriaus_Darbine\temp.xml", ТипКаноническогоXML.КаноническийXML);
canonical.Канонизировать(RefTarget, КаноническаяЗаписьXML);
КаноническаяЗаписьXML.Закрыть();
То же самое и стаким алгоритмом без Канонический.DOMКанонизировать:
ЧтениеXML= new ЧтениеXML;
ЧтениеXML("c:\signatures0.xml");
ReadXML.ИгнорироватьПробелы = Ложь;
ЗаписьXML = Новый КаноническаяЗаписьXML;
ЗаписьXML.УстановитьСтроку(ТипКаноническогоXML.КаноническийXML);
Пока ЧтениеXML.Прочитать() Цикл
ЗаписьXML.ЗаписатьТекущий(ЧтениеXML);
КонецЦикла;
ЧтениеXML.Закрыть();
CanonicalXML = ЗаписьXML.Закрыть();
Версия платвормы: 8.3.5.1443 и 8.3.4.482
Может кто-нибудь знает что делать чтобы метод неудалял "xmlns"?
|
|