Ну, я уже знаю, что есть документ об этом, в котором говорится:Docx или XPS (или OOXML в целом) отношений превратить пример
12.2.4.26 Relationships Transform Algorithm
13 The relationships transform takes the XML document from the Relationships part and converts it to another
14 XML document.
15 The package implementer might create relationships XML that contains content from several namespaces, along
16 with versioning instructions as defined in Part 5: “Markup Compatibility and Extensibility”. [O6.11]
17 The relationships transform algorithm is as follows:
18 Step 1: Process versioning instructions
19 1. The package implementer shall process the versioning instructions, considering that the only known
20 namespace is the Relationships namespace.
21 2. The package implementer shall remove all ignorable content, ignoring preservation attributes.
22 3. The package implementer shall remove all versioning instructions.
23 Step 2: Sort and filter relationships
24 1. The package implementer shall remove all namespace declarations except the Relationships namespace
25 declaration.
26 2. The package implementer shall remove the Relationships namespace prefix, if it is present.
27 3. The package implementer shall sort relationship elements by Id value in lexicographical order,
28 considering Id values as case-sensitive Unicode strings.
29 4. The package implementer shall remove all Relationship elements that do not have eitheran Id value
30 that matches any SourceId valueor a Type value that matches any SourceType value, among the
31 SourceId and SourceType values specified in the transform definition. Producers and consumers shall
32 compare values as case-sensitive Unicode strings. [M6.27] The resulting XML document holds all
33 Relationship elements that either have an Id value that matches a SourceId value or a Type value that
34 matches a SourceType value specified in the transform definition.
35 Step 3: Prepare for canonicalization
Digital Signatures
58
1. The package implementer shall remove all characters between the 1 Relationships start tag and the first
2 Relationship start tag.
3 2. The package implementer shall remove any contents of the Relationship element.
4 3. The package implementer shall remove all characters between the last Relationship end tag and the
5 Relationships end tag.
6 4. If there are no Relationship elements, the package implementer shall remove all characters between
7 the Relationships start tag and the Relationships end tag.
Но я немного запутался в этом процессе, потому что в каждом попробуйте воспроизвести неверную трансформацию, хотя я предположил, что соблюдал все спецификации в документе,
Возможно, если бы был только один пример такого преобразования (только input => output), я был бы намного менее запутанным. Так что единственное, что требуется здесь, это пример такой специфической xml-функции pacakage (или, при желании, с ответом и кодами, хотя это и не было необходимой причиной, я разработал большую часть этого.)
Итак, вот тег, пытающийся произвести вывод:
<Reference URI="/Documents/1/Pages/_rels/1.fpage.rels?ContentType=application/vnd.openxmlformats-package.relationships+xml"><Transforms><Transform Algorithm="http://schemas.openxmlformats.org/package/2006/RelationshipTransform"><opc:RelationshipReference SourceId="rId1" /></Transform><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms></Reference>
а вот оригинальные отношения файла:
<?xml version="1.0" encoding="utf-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="/Documents/1/Pages/3.xml" Id="rId3" /><Relationship Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="/Documents/1/Pages/2.xml" Id="rId2" /><Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="/Documents/1/Pages/1.xml" Id="rId1"/></Relationships>
и вот (неправильно) трансформировали одно:
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Target="/Documents/1/Pages/1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"></Relationship></Relationships>
Это длинный снимок, но вы уже спросили на форуме «открытых спецификаций» в MSDN: https://social.msdn.microsoft.com/Forums/en-US/home?forum=os_binaryfile? Они, как правило, больше ориентируются на «объектные модели», но кто-то может иметь некоторое представление. Я бы упомянул источник «документа» со спецификациями, а также программное обеспечение с отношениями, которые вы пытаетесь преобразовать. Я не узнаю пути «Целевые» ... –
Этот вопрос уже задан: https://social.msdn.microsoft.com/Forums/en-US/4b0364fe-2250-48b4-a6a1-6fe098f8d247/xades- Документы подписи в офисе? forum = os_binaryfile Но предоставленный ответ был неоднозначным и не очень полезным, к сожалению (OP упоминал XAdes, но, честно говоря, его не специфический XAdes). – lkn2993