componente-digital.xsd
9.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<?xml version='1.0' encoding='UTF-8'?><schema xmlns:dig="http://pen.planejamento.gov.br/interoperabilidade/soap/v1_1/componente-digital" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://pen.planejamento.gov.br/interoperabilidade/soap/v1_1/componente-digital">
<complexType name="cadeiaDoCertificado">
<annotation>
<documentation>
Cadeia do certificado da chave privada que gerou
a assinatura. Essa cadeia pode ser enviada nos
formatos PEM, DER, PKCS7, PKCS12 ou PFX.
</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="formato" use="required">
<simpleType>
<restriction base="string">
<enumeration value="PEM"/>
<enumeration value="DER"/>
<enumeration value="PKCS7"/>
<enumeration value="PKCS12"/>
<enumeration value="PFX"/>
</restriction>
</simpleType>
</attribute>
</extension>
</simpleContent>
</complexType>
<complexType name="hashDeAssinatura">
<annotation>
<documentation>
Hash gerado a partir do algoritmo informado
no atributo correspondente, codificado em Base64. Ex:
Input: 123456
Output: ujJTh2rta8ItSm/1PYQGxq2GQZXtFEq1yHYhtsIz
tUi66uaVbfNG7IwX9eoQ817jy8UUeX7X3dMUVGTioLq0Ew==
</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="algoritmo" use="required">
<simpleType>
<restriction base="string">
<enumeration value="NONEwithRSA"/>
<enumeration value="MD2withRSA"/>
<enumeration value="MD5withRSA"/>
<enumeration value="SHA1withRSA"/>
<enumeration value="SHA256withRSA"/>
<enumeration value="SHA384withRSA"/>
<enumeration value="SHA512withRSA"/>
<enumeration value="NONEwithDSA"/>
<enumeration value="SHA1withDSA"/>
<enumeration value="NONEwithECDSA"/>
<enumeration value="SHA1withECDSA"/>
<enumeration value="SHA256withECDSA"/>
<enumeration value="SHA384withECDSA"/>
<enumeration value="SHA512withECDSA"/>
</restriction>
</simpleType>
</attribute>
</extension>
</simpleContent>
</complexType>
<simpleType name="tipoDeConteudo">
<annotation>
<documentation>
Define as categorias de conteúdo
de componente digital. Opções:
textual, imagem, audio, video e outro.
</documentation>
</annotation>
<restriction base="string">
<enumeration value="txt"><annotation><documentation>Textual</documentation></annotation></enumeration>
<enumeration value="img"><annotation><documentation>Imagem</documentation></annotation></enumeration>
<enumeration value="aud"><annotation><documentation>Áudio</documentation></annotation></enumeration>
<enumeration value="vid"><annotation><documentation>Vídeo</documentation></annotation></enumeration>
<enumeration value="out"><annotation><documentation>Outro</documentation></annotation></enumeration>
</restriction>
</simpleType>
<simpleType name="mimeType">
<annotation>
<documentation>
Enumera os tipos MIME permitidos.
Essa lista foi extraída dos tipos
permitidos do e-PING, para as
categorias aplicáveis ao trâmite
de processos administrativos.
</documentation>
</annotation>
<restriction base="string">
<enumeration value="application/pdf"/>
<enumeration value="application/vnd.oasis.opendocument.text"/>
<enumeration value="application/vnd.oasis.opendocument.formula"/>
<enumeration value="application/vnd.oasis.opendocument.spreadsheet"/>
<enumeration value="application/vnd.oasis.opendocument.presentation"/>
<enumeration value="text/xml"/>
<enumeration value="text/rtf"/>
<enumeration value="text/html"/>
<enumeration value="text/plain"/>
<enumeration value="text/csv"/>
<enumeration value="image/gif"/>
<enumeration value="image/jpeg"/>
<enumeration value="image/png"/>
<enumeration value="image/svg+xml"/>
<enumeration value="image/tiff"/>
<enumeration value="image/bmp"/>
<enumeration value="audio/mp4"/>
<enumeration value="audio/midi"/>
<enumeration value="audio/ogg"/>
<enumeration value="audio/vnd.wave"/>
<enumeration value="video/avi"/>
<enumeration value="video/mpeg"/>
<enumeration value="video/mp4"/>
<enumeration value="video/ogg"/>
<enumeration value="video/webm"/>
<enumeration value="outro">
<annotation>
<documentation>
Deve ser usado apenas para componentes que
não se encaixem em nenhum outro mimeType dessa
lista. A utilização desse item obriga o
preenchimento do campo 'dadosComplementaresDoTipoDeArquivo'.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="dadosComplementaresDoTipoDeArquivo">
<annotation>
<documentation>
Instruções para garantir que o receptor do
componente digital consiga acessar o conteúdo
do artefato. Pode conter versões e nomes de
softwares, bem como configurações ou plugins
específicos, caso aplicável. Pode ser informado
em complemento ao 'mimeType', se este for
um dos tipos previstos na solução, ou deve ser
obrigatoriamente informado se o 'mimeType'
for identificado como 'outro'.
</documentation>
</annotation>
<restriction base="string">
<minLength value="1"/>
<maxLength value="1000"/>
</restriction>
</simpleType>
<complexType name="hash">
<annotation>
<documentation>
Hash gerado a partir do algoritmo informado
no atributo correspndente, codificado em Base64. Ex:
Input: 123456
Output: ujJTh2rta8ItSm/1PYQGxq2GQZXtFEq1yHYhtsIz
tUi66uaVbfNG7IwX9eoQ817jy8UUeX7X3dMUVGTioLq0Ew==
</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="algoritmo" use="required">
<simpleType>
<restriction base="string">
<enumeration value="SHA256"/>
</restriction>
</simpleType>
</attribute>
</extension>
</simpleContent>
</complexType>
<complexType name="componenteDigital">
<annotation>
<documentation>
Representa um arquivo binário. Normalmente
este arquivo binário está atrelado a um
documento, que pode, por sua vez, ser uma
peça de um processo ou um documento avulso.
</documentation>
</annotation>
<sequence>
<element name="nome">
<simpleType>
<restriction base="string">
<minLength value="1"/>
<maxLength value="100"/>
</restriction>
</simpleType>
</element>
<element name="hash" type="dig:hash"/>
<element name="tipoDeConteudo" type="dig:tipoDeConteudo"/>
<element name="mimeType" type="dig:mimeType"/>
<element minOccurs="0" name="dadosComplementaresDoTipoDeArquivo" type="dig:dadosComplementaresDoTipoDeArquivo"/>
<element name="tamanhoEmBytes" type="long"/>
<element name="ordem" type="integer">
<annotation>
<documentation>
Ordem desse componente digital dentro
do artefato que o contém.
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="assinaturaDigital" type="dig:assinaturaDigital"/>
</sequence>
</complexType>
<complexType name="assinaturaDigital">
<annotation>
<documentation>
Dados que certificam que uma determinada entidade
assinou digitalmente alguma cadeia binária, que
deve estar presente no contexto deste elemento.
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="dataHora" type="dateTime"/>
<element name="cadeiaDoCertificado" type="dig:cadeiaDoCertificado"/>
<element name="hash" type="dig:hashDeAssinatura"/>
</sequence>
</complexType>
<complexType name="parteDeComponenteDigital">
<annotation>
<documentation>
Representa uma faixa de bytes, por exemplo: 10-50.
O primeiro valor é o início da faixa, e o segundo,
o fim. Considera-se índices iniciados em zero, ou seja,
0-10 significa os primeiros 10 bytes do componente.
Essa definição também indica que o segundo número é
exclusivo, ou seja, o byte representado pelo seu valor
*não* é retornado: a faixa 0-1 traz apenas 1 byte, e não
2. Exemplo utilizando notação matemática: "[0-1[".
</documentation>
</annotation>
<sequence>
<element name="inicio">
<simpleType>
<restriction base="integer">
<minInclusive value="0"/>
</restriction>
</simpleType>
</element>
<element name="fim">
<simpleType>
<restriction base="integer">
<minInclusive value="0"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
</schema>