Я пытаюсь реализовать отраслевую спецификацию, которая требует оцифрованных цифровых подписей XML (XMLDSIG). Вместо того, чтобы в соответствии с примерами (<Signature>
) моя спецификация использует свое собственное имя для подписи элемента:.NET не поддерживает нестандартные имена элементов подписи XMLDSIG
<xs:element name="ensembleSignature" type="dsig:SignatureType" />
<!-- wish this was: <xs:element ref="dsig:Signature" /> -->
Так элемент не называется «Подпись» и находится в пространстве имен XML домена вместо пространства имен DSIG XML ,
С большим количеством дополнительной работы я могу создать эту пользовательскую подпись в .NET.
- Использование класса .NET SignedXml Я создаю < DSIG: Подпись > элемент
- Я манипулировать DOM, чтобы удалить < DSIG: Подпись > и воссоздают элемент как < myns: ensembleSignature >.
Но, похоже, .NET не может проверить входящие < myns: ensembleSignature >, даже если я переименовать входящий элемент обратно < DSig: Подпись >.
Я много раз встречался с спецификацией XMLDSIG, и хотя во всех их примерах используется < Signature> это, похоже, не требует особого имени этого элемента даже для огибающих преобразований. Так это ошибка в SignedXml, которая поддерживает только одно имя этого элемента, если в спецификации XMLDSIG нет такого требования?