Есть ли хороший способ canonicalize XML с MSXML6?MSXML и cannonical XML
У меня есть документ XML, который я загружаю в объект IXMLDOMDocument. Мне нужно выполнить операцию, такую как пение или хеширование документа. Я хотел бы поместить его в XML-каноническую форму a la C14N или аналогичный стандарт. IXMLDOMDocument имеет метод сохранения в файл, но я не думаю, что он сначала канонизирует его, и он действительно не предоставляет никаких ручек, чтобы контролировать, как он записывает файл. Существует MXXMLWriter60, который позволяет вам контролировать некоторые вещи, такие как отступ, формат кодировки и т. Д., Но похоже, что у него нет всего, чтобы сделать полный стандарт C14N. Структура .net имеет XmlDsigC14NTransform, которая кажется идеей, но, очевидно, не пригодна для использования там, где я находится в стеке. Похоже, что MSXML имеет некоторую поддержку XMLDSIG, поэтому код должен канонизировать материал, но он не раскрывает ничего подобного.
Любые предложения?
Насколько я могу судить, XMLDSIG был реализован в MSXML 5.0 для MS Office, но не в MSXML 3.0, 4.0 или 6.0. Так что добро пожаловать в мой мир: Microsoft реализует вещи в .Net или в офисе, а не на уровне платформы, оставляя огромное количество разработчиков на своих устройствах. Я предполагаю, что то, что происходит, когда группам разрешено записывать ресурсы компании в своих собственных маленьких мирах. Акционеры должны быть яркими, уверены пользователи. – Bob77
Я не уверен, что вы имеете в виду. Вы можете кодировать библиотеку MSXML3/6 на уровне платформы на любом SKU Windows, даже Mobile, IoT core, desktop и т. Д., Если вы пишете собственный код. В конце концов, это просто COM. DLL находятся в системе32 FWIW. –
В любом случае, это не похоже на хороший API в MSXML для canonicalize. Очевидно, что он может и canonicalize как часть XMLDISG, но он не отображается. Гипотетически, если бы у кого-то был доступ к исходному коду для базового объекта disig, нетрудно было бы предоставить ему новый интерфейс, предоставляющий частные методы canonicalize. –