rnfse 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +25 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +14 -0
  5. data/CHANGELOG.md +0 -0
  6. data/Gemfile +3 -0
  7. data/Guardfile +15 -0
  8. data/LICENSE.md +41 -0
  9. data/Procfile +1 -0
  10. data/README.md +59 -0
  11. data/Rakefile +12 -0
  12. data/lib/provedores.yml +11 -0
  13. data/lib/rnfse/api/abrasf_1_0/definitions.json +374 -0
  14. data/lib/rnfse/api/abrasf_1_0/recepcionar_lote_rps.json +46 -0
  15. data/lib/rnfse/api/abrasf_1_0.rb +55 -0
  16. data/lib/rnfse/api/iss_net_1_0.rb +6 -0
  17. data/lib/rnfse/api.rb +101 -0
  18. data/lib/rnfse/configuration.rb +18 -0
  19. data/lib/rnfse/core.rb +9 -0
  20. data/lib/rnfse/hash.rb +148 -0
  21. data/lib/rnfse/string.rb +36 -0
  22. data/lib/rnfse/version.rb +3 -0
  23. data/lib/rnfse/xml_builder/abrasf_1_0.rb +95 -0
  24. data/lib/rnfse/xml_builder/iss_net_1_0.rb +70 -0
  25. data/lib/rnfse/xml_builder.rb +10 -0
  26. data/lib/rnfse.rb +22 -0
  27. data/rnfse.gemspec +60 -0
  28. data/spec/api/abrasf_1_0/recepcionar_lote_rps_json_spec.rb +123 -0
  29. data/spec/api/abrasf_1_0_spec.rb +26 -0
  30. data/spec/api/iss_net_1_0_spec.rb +99 -0
  31. data/spec/api_spec.rb +65 -0
  32. data/spec/core_spec.rb +35 -0
  33. data/spec/fixtures/abrasf_1_0/enviar_lote_rps_envio.xml +47 -0
  34. data/spec/fixtures/abrasf_1_0/nfse.xsd +771 -0
  35. data/spec/fixtures/certificate.pem +18 -0
  36. data/spec/fixtures/iss_net_1_0/enviar_lote_rps_envio.xml +75 -0
  37. data/spec/fixtures/key.pem +15 -0
  38. data/spec/fixtures/vcr_cassettes/iss_net_1_0_recepcionar_lote_rps.yml +214 -0
  39. data/spec/hash_spec.rb +205 -0
  40. data/spec/spec_helper.rb +29 -0
  41. data/spec/string_spec.rb +38 -0
  42. data/spec/support/.keep +0 -0
  43. data/spec/version_spec.rb +5 -0
  44. data/spec/xml_builder/abrasf_1_0_spec.rb +63 -0
  45. data/spec/xml_builder/iss_net_1_0_spec.rb +86 -0
  46. data/spec/xml_builder_spec.rb +14 -0
  47. metadata +433 -0
@@ -0,0 +1,771 @@
1
+ <?xml version="1.0"?>
2
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
3
+ targetNamespace="http:/www.abrasf.org.br/nfse.xsd"
4
+ xmlns="http:/www.abrasf.org.br/nfse.xsd"
5
+ attributeFormDefault="unqualified"
6
+ elementFormDefault="qualified">
7
+
8
+ <!-- definition of simple elements -->
9
+ <xsd:simpleType name="tsNumeroNfse">
10
+ <xsd:restriction base="xsd:nonNegativeInteger">
11
+ <xsd:totalDigits value="15"/>
12
+ </xsd:restriction>
13
+ </xsd:simpleType>
14
+ <xsd:simpleType name="tsCodigoVerificacao">
15
+ <xsd:restriction base="xsd:string">
16
+ <xsd:maxLength value="9"/>
17
+ <xsd:minLength value="1"/>
18
+ <xsd:whiteSpace value="collapse"/>
19
+ </xsd:restriction>
20
+ </xsd:simpleType>
21
+ <xsd:simpleType name="tsStatusRps">
22
+ <xsd:restriction base="xsd:byte">
23
+ <xsd:pattern value="1|2"/>
24
+ </xsd:restriction>
25
+ </xsd:simpleType>
26
+ <xsd:simpleType name="tsStatusNfse">
27
+ <xsd:restriction base="xsd:byte">
28
+ <xsd:pattern value="1|2"/>
29
+ </xsd:restriction>
30
+ </xsd:simpleType>
31
+ <xsd:simpleType name="tsNaturezaOperacao">
32
+ <xsd:restriction base="xsd:byte">
33
+ <xsd:pattern value="1|2|3|4|5|6"/>
34
+ </xsd:restriction>
35
+ </xsd:simpleType>
36
+ <xsd:simpleType name="tsRegimeEspecialTributacao">
37
+ <xsd:restriction base="xsd:byte">
38
+ <xsd:pattern value="1|2|3|4|5|6"/>
39
+ </xsd:restriction>
40
+ </xsd:simpleType>
41
+ <xsd:simpleType name="tsSimNao">
42
+ <xsd:restriction base="xsd:byte">
43
+ <xsd:pattern value="1|2"/>
44
+ </xsd:restriction>
45
+ </xsd:simpleType>
46
+ <xsd:simpleType name="tsNumeroRps">
47
+ <xsd:restriction base="xsd:nonNegativeInteger">
48
+ <xsd:totalDigits value="15"/>
49
+ </xsd:restriction>
50
+ </xsd:simpleType>
51
+ <xsd:simpleType name="tsSerieRps">
52
+ <xsd:restriction base="xsd:string">
53
+ <xsd:maxLength value="5"/>
54
+ <xsd:minLength value="1"/>
55
+ <xsd:whiteSpace value="collapse"/>
56
+ </xsd:restriction>
57
+ </xsd:simpleType>
58
+ <xsd:simpleType name="tsTipoRps">
59
+ <xsd:restriction base="xsd:byte">
60
+ <xsd:pattern value="1|2|3"/>
61
+ </xsd:restriction>
62
+ </xsd:simpleType>
63
+ <xsd:simpleType name="tsOutrasInformacoes">
64
+ <xsd:restriction base="xsd:string">
65
+ <xsd:maxLength value="255"/>
66
+ <xsd:minLength value="1"/>
67
+ <xsd:whiteSpace value="collapse"/>
68
+ </xsd:restriction>
69
+ </xsd:simpleType>
70
+ <xsd:simpleType name="tsValor">
71
+ <xsd:restriction base="xsd:decimal">
72
+ <xsd:totalDigits value="15"/>
73
+ <xsd:fractionDigits value="2" fixed="true"/>
74
+ <xsd:minInclusive value="0"/>
75
+ </xsd:restriction>
76
+ </xsd:simpleType>
77
+ <xsd:simpleType name="tsItemListaServico">
78
+ <xsd:restriction base="xsd:string">
79
+ <xsd:maxLength value="5"/>
80
+ <xsd:minLength value="1"/>
81
+ <xsd:whiteSpace value="collapse"/>
82
+ </xsd:restriction>
83
+ </xsd:simpleType>
84
+ <xsd:simpleType name="tsCodigoCnae">
85
+ <xsd:restriction base="xsd:int">
86
+ <xsd:totalDigits value="7"/>
87
+ </xsd:restriction>
88
+ </xsd:simpleType>
89
+ <xsd:simpleType name="tsCodigoTributacao">
90
+ <xsd:restriction base="xsd:string">
91
+ <xsd:maxLength value="20"/>
92
+ <xsd:minLength value="1"/>
93
+ <xsd:whiteSpace value="collapse"/>
94
+ </xsd:restriction>
95
+ </xsd:simpleType>
96
+ <xsd:simpleType name="tsAliquota">
97
+ <xsd:restriction base="xsd:decimal">
98
+ <xsd:totalDigits value="5"/>
99
+ <xsd:fractionDigits value="4"/>
100
+ <xsd:minInclusive value="0"/>
101
+ </xsd:restriction>
102
+ </xsd:simpleType>
103
+ <xsd:simpleType name="tsDiscriminacao">
104
+ <xsd:restriction base="xsd:string">
105
+ <xsd:maxLength value="2000"/>
106
+ <xsd:minLength value="1"/>
107
+ <xsd:whiteSpace value="collapse"/>
108
+ </xsd:restriction>
109
+ </xsd:simpleType>
110
+ <xsd:simpleType name="tsCodigoMunicipioIbge">
111
+ <xsd:restriction base="xsd:int">
112
+ <xsd:totalDigits value="7"/>
113
+ </xsd:restriction>
114
+ </xsd:simpleType>
115
+ <xsd:simpleType name="tsInscricaoMunicipal">
116
+ <xsd:restriction base="xsd:string">
117
+ <xsd:maxLength value="15"/>
118
+ <xsd:minLength value="1"/>
119
+ <xsd:whiteSpace value="collapse"/>
120
+ </xsd:restriction>
121
+ </xsd:simpleType>
122
+ <xsd:simpleType name="tsRazaoSocial">
123
+ <xsd:restriction base="xsd:string">
124
+ <xsd:maxLength value="115"/>
125
+ <xsd:minLength value="1"/>
126
+ <xsd:whiteSpace value="collapse"/>
127
+ </xsd:restriction>
128
+ </xsd:simpleType>
129
+ <xsd:simpleType name="tsNomeFantasia">
130
+ <xsd:restriction base="xsd:string">
131
+ <xsd:maxLength value="60"/>
132
+ <xsd:minLength value="1"/>
133
+ <xsd:whiteSpace value="collapse"/>
134
+ </xsd:restriction>
135
+ </xsd:simpleType>
136
+ <xsd:simpleType name="tsCnpj">
137
+ <xsd:restriction base="xsd:string">
138
+ <xsd:length value="14" fixed="true"/>
139
+ <xsd:whiteSpace value="collapse"/>
140
+ </xsd:restriction>
141
+ </xsd:simpleType>
142
+ <xsd:simpleType name="tsEndereco">
143
+ <xsd:restriction base="xsd:string">
144
+ <xsd:maxLength value="125"/>
145
+ <xsd:minLength value="1"/>
146
+ <xsd:whiteSpace value="collapse"/>
147
+ </xsd:restriction>
148
+ </xsd:simpleType>
149
+ <xsd:simpleType name="tsNumeroEndereco">
150
+ <xsd:restriction base="xsd:string">
151
+ <xsd:maxLength value="10"/>
152
+ <xsd:minLength value="1"/>
153
+ <xsd:whiteSpace value="collapse"/>
154
+ </xsd:restriction>
155
+ </xsd:simpleType>
156
+ <xsd:simpleType name="tsComplementoEndereco">
157
+ <xsd:restriction base="xsd:string">
158
+ <xsd:maxLength value="60"/>
159
+ <xsd:minLength value="1"/>
160
+ <xsd:whiteSpace value="collapse"/>
161
+ </xsd:restriction>
162
+ </xsd:simpleType>
163
+ <xsd:simpleType name="tsBairro">
164
+ <xsd:restriction base="xsd:string">
165
+ <xsd:maxLength value="60"/>
166
+ <xsd:minLength value="1"/>
167
+ <xsd:whiteSpace value="collapse"/>
168
+ </xsd:restriction>
169
+ </xsd:simpleType>
170
+ <xsd:simpleType name="tsUf">
171
+ <xsd:restriction base="xsd:string">
172
+ <xsd:length value="2" fixed="true"/>
173
+ </xsd:restriction>
174
+ </xsd:simpleType>
175
+ <xsd:simpleType name="tsCep">
176
+ <xsd:restriction base="xsd:int">
177
+ <xsd:totalDigits value="8" fixed="true"/>
178
+ </xsd:restriction>
179
+ </xsd:simpleType>
180
+ <xsd:simpleType name="tsEmail">
181
+ <xsd:restriction base="xsd:string">
182
+ <xsd:maxLength value="80"/>
183
+ <xsd:minLength value="1"/>
184
+ <xsd:whiteSpace value="collapse"/>
185
+ </xsd:restriction>
186
+ </xsd:simpleType>
187
+ <xsd:simpleType name="tsTelefone">
188
+ <xsd:restriction base="xsd:string">
189
+ <xsd:maxLength value="11"/>
190
+ <xsd:minLength value="1"/>
191
+ <xsd:whiteSpace value="collapse"/>
192
+ </xsd:restriction>
193
+ </xsd:simpleType>
194
+ <xsd:simpleType name="tsCpf">
195
+ <xsd:restriction base="xsd:string">
196
+ <xsd:length value="11" fixed="true"/>
197
+ </xsd:restriction>
198
+ </xsd:simpleType>
199
+ <xsd:simpleType name="tsIndicacaoCpfCnpj">
200
+ <xsd:restriction base="xsd:byte">
201
+ <xsd:pattern value="1|2|3"/>
202
+ </xsd:restriction>
203
+ </xsd:simpleType>
204
+ <xsd:simpleType name="tsCodigoObra">
205
+ <xsd:restriction base="xsd:string">
206
+ <xsd:maxLength value="15"/>
207
+ <xsd:minLength value="1"/>
208
+ <xsd:whiteSpace value="collapse"/>
209
+ </xsd:restriction>
210
+ </xsd:simpleType>
211
+ <xsd:simpleType name="tsArt">
212
+ <xsd:restriction base="xsd:string">
213
+ <xsd:maxLength value="15"/>
214
+ <xsd:minLength value="1"/>
215
+ <xsd:whiteSpace value="collapse"/>
216
+ </xsd:restriction>
217
+ </xsd:simpleType>
218
+ <xsd:simpleType name="tsNumeroLote">
219
+ <xsd:restriction base="xsd:nonNegativeInteger">
220
+ <xsd:totalDigits value="15"/>
221
+ </xsd:restriction>
222
+ </xsd:simpleType>
223
+ <xsd:simpleType name="tsNumeroProtocolo">
224
+ <xsd:restriction base="xsd:string">
225
+ <xsd:maxLength value="50"/>
226
+ </xsd:restriction>
227
+ </xsd:simpleType>
228
+ <xsd:simpleType name="tsSituacaoLoteRps">
229
+ <xsd:restriction base="xsd:byte">
230
+ <xsd:pattern value="1|2|3|4"/>
231
+ </xsd:restriction>
232
+ </xsd:simpleType>
233
+ <xsd:simpleType name="tsQuantidadeRps">
234
+ <xsd:restriction base="xsd:int">
235
+ </xsd:restriction>
236
+ </xsd:simpleType>
237
+ <xsd:simpleType name="tsCodigoMensagemAlerta">
238
+ <xsd:restriction base="xsd:string">
239
+ <xsd:maxLength value="4"/>
240
+ <xsd:minLength value="1"/>
241
+ <xsd:whiteSpace value="collapse"/>
242
+ </xsd:restriction>
243
+ </xsd:simpleType>
244
+ <xsd:simpleType name="tsDescricaoMensagemAlerta">
245
+ <xsd:restriction base="xsd:string">
246
+ <xsd:maxLength value="200"/>
247
+ <xsd:minLength value="1"/>
248
+ <xsd:whiteSpace value="collapse"/>
249
+ </xsd:restriction>
250
+ </xsd:simpleType>
251
+ <xsd:simpleType name="tsCodigoCancelamentoNfse">
252
+ <xsd:restriction base="xsd:string">
253
+ <xsd:maxLength value="4"/>
254
+ <xsd:minLength value="1"/>
255
+ <xsd:whiteSpace value="collapse"/>
256
+ </xsd:restriction>
257
+ </xsd:simpleType>
258
+ <xsd:simpleType name="tsIdTag">
259
+ <xsd:restriction base="xsd:string">
260
+ <xsd:maxLength value="255"/>
261
+ </xsd:restriction>
262
+ </xsd:simpleType>
263
+
264
+ <xsd:simpleType name="tsVersao">
265
+ <xsd:restriction base="xsd:token">
266
+ <xsd:pattern value="[1-9]{1}[0-9]{0,1}\.[0-9]{2}"/>
267
+ </xsd:restriction>
268
+ </xsd:simpleType>
269
+
270
+ <!-- definition of complex elements -->
271
+
272
+ <xsd:complexType name="tcCpfCnpj">
273
+ <xsd:choice>
274
+ <xsd:element name="Cpf" type="tsCpf" minOccurs="1" maxOccurs="1"/>
275
+ <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1"/>
276
+ </xsd:choice>
277
+ </xsd:complexType>
278
+ <xsd:complexType name="tcEndereco">
279
+ <xsd:sequence>
280
+ <xsd:element name="Endereco" type="tsEndereco" minOccurs="0" maxOccurs="1"/>
281
+ <xsd:element name="Numero" type="tsNumeroEndereco" minOccurs="0" maxOccurs="1"/>
282
+ <xsd:element name="Complemento" type="tsComplementoEndereco" minOccurs="0" maxOccurs="1"/>
283
+ <xsd:element name="Bairro" type="tsBairro" minOccurs="0" maxOccurs="1"/>
284
+ <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="0" maxOccurs="1"/>
285
+ <xsd:element name="Uf" type="tsUf" minOccurs="0" maxOccurs="1"/>
286
+ <xsd:element name="Cep" type="tsCep" minOccurs="0" maxOccurs="1"/>
287
+ </xsd:sequence>
288
+ </xsd:complexType>
289
+ <xsd:complexType name="tcContato">
290
+ <xsd:sequence>
291
+ <xsd:element name="Telefone" type="tsTelefone" minOccurs="0" maxOccurs="1"/>
292
+ <xsd:element name="Email" type="tsEmail" minOccurs="0" maxOccurs="1"/>
293
+ </xsd:sequence>
294
+ </xsd:complexType>
295
+ <xsd:complexType name="tcIdentificacaoOrgaoGerador">
296
+ <xsd:sequence>
297
+ <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
298
+ <xsd:element name="Uf" type="tsUf" minOccurs="1" maxOccurs="1"/>
299
+ </xsd:sequence>
300
+ </xsd:complexType>
301
+ <xsd:complexType name="tcIdentificacaoRps">
302
+ <xsd:sequence>
303
+ <xsd:element name="Numero" type="tsNumeroRps" minOccurs="1" maxOccurs="1"/>
304
+ <xsd:element name="Serie" type="tsSerieRps" minOccurs="1" maxOccurs="1"/>
305
+ <xsd:element name="Tipo" type="tsTipoRps" minOccurs="1" maxOccurs="1"/>
306
+ </xsd:sequence>
307
+ </xsd:complexType>
308
+ <xsd:complexType name="tcIdentificacaoPrestador">
309
+ <xsd:sequence>
310
+ <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1"/>
311
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
312
+ </xsd:sequence>
313
+ </xsd:complexType>
314
+ <xsd:complexType name="tcIdentificacaoTomador">
315
+ <xsd:sequence>
316
+ <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="0" maxOccurs="1"/>
317
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
318
+ </xsd:sequence>
319
+ </xsd:complexType>
320
+ <xsd:complexType name="tcDadosTomador">
321
+ <xsd:sequence>
322
+ <xsd:element name="IdentificacaoTomador" type="tcIdentificacaoTomador" minOccurs="0" maxOccurs="1"/>
323
+ <xsd:element name="RazaoSocial" type="tsRazaoSocial" minOccurs="0" maxOccurs="1"/>
324
+ <xsd:element name="Endereco" type="tcEndereco" minOccurs="0" maxOccurs="1"/>
325
+ <xsd:element name="Contato" type="tcContato" minOccurs="0" maxOccurs="1"/>
326
+ </xsd:sequence>
327
+ </xsd:complexType>
328
+ <xsd:complexType name="tcIdentificacaoIntermediarioServico">
329
+ <xsd:sequence>
330
+ <xsd:element name="RazaoSocial" type="tsRazaoSocial" minOccurs="1" maxOccurs="1"/>
331
+ <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="1" maxOccurs="1"/>
332
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
333
+ </xsd:sequence>
334
+ </xsd:complexType>
335
+ <xsd:complexType name="tcValores">
336
+ <xsd:sequence>
337
+ <xsd:element name="ValorServicos" type="tsValor" minOccurs="1" maxOccurs="1"/>
338
+ <xsd:element name="ValorDeducoes" type="tsValor" minOccurs="0" maxOccurs="1"/>
339
+ <xsd:element name="ValorPis" type="tsValor" minOccurs="0" maxOccurs="1"/>
340
+ <xsd:element name="ValorCofins" type="tsValor" minOccurs="0" maxOccurs="1"/>
341
+ <xsd:element name="ValorInss" type="tsValor" minOccurs="0" maxOccurs="1"/>
342
+ <xsd:element name="ValorIr" type="tsValor" minOccurs="0" maxOccurs="1"/>
343
+ <xsd:element name="ValorCsll" type="tsValor" minOccurs="0" maxOccurs="1"/>
344
+ <xsd:element name="IssRetido" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
345
+ <xsd:element name="ValorIss" type="tsValor" minOccurs="0" maxOccurs="1"/>
346
+ <xsd:element name="ValorIssRetido" type="tsValor" minOccurs="0" maxOccurs="1"/>
347
+ <xsd:element name="OutrasRetencoes" type="tsValor" minOccurs="0" maxOccurs="1"/>
348
+ <xsd:element name="BaseCalculo" type="tsValor" minOccurs="0" maxOccurs="1"/>
349
+ <xsd:element name="Aliquota" type="tsAliquota" minOccurs="0" maxOccurs="1"/>
350
+ <xsd:element name="ValorLiquidoNfse" type="tsValor" minOccurs="0" maxOccurs="1"/>
351
+ <xsd:element name="DescontoIncondicionado" type="tsValor" minOccurs="0" maxOccurs="1"/>
352
+ <xsd:element name="DescontoCondicionado" type="tsValor" minOccurs="0" maxOccurs="1"/>
353
+ </xsd:sequence>
354
+ </xsd:complexType>
355
+ <xsd:complexType name="tcDadosServico">
356
+ <xsd:sequence>
357
+ <xsd:element name="Valores" type="tcValores" minOccurs="1" maxOccurs="1"/>
358
+ <xsd:element name="ItemListaServico" type="tsItemListaServico" minOccurs="1" maxOccurs="1"/>
359
+ <xsd:element name="CodigoCnae" type="tsCodigoCnae" minOccurs="0" maxOccurs="1"/>
360
+ <xsd:element name="CodigoTributacaoMunicipio" type="tsCodigoTributacao" minOccurs="0" maxOccurs="1"/>
361
+ <xsd:element name="Discriminacao" type="tsDiscriminacao" minOccurs="1" maxOccurs="1"/>
362
+ <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
363
+ </xsd:sequence>
364
+ </xsd:complexType>
365
+ <xsd:complexType name="tcDadosConstrucaoCivil">
366
+ <xsd:sequence>
367
+ <xsd:element name="CodigoObra" type="tsCodigoObra" minOccurs="1" maxOccurs="1"/>
368
+ <xsd:element name="Art" type="tsArt" minOccurs="1" maxOccurs="1"/>
369
+ </xsd:sequence>
370
+ </xsd:complexType>
371
+ <xsd:complexType name="tcDadosPrestador">
372
+ <xsd:sequence>
373
+ <xsd:element name="IdentificacaoPrestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
374
+ <xsd:element name="RazaoSocial" type="tsRazaoSocial" minOccurs="1" maxOccurs="1"/>
375
+ <xsd:element name="NomeFantasia" type="tsNomeFantasia" minOccurs="0" maxOccurs="1"/>
376
+ <xsd:element name="Endereco" type="tcEndereco" minOccurs="1" maxOccurs="1"/>
377
+ <xsd:element name="Contato" type="tcContato" minOccurs="0" maxOccurs="1"/>
378
+ </xsd:sequence>
379
+ </xsd:complexType>
380
+ <xsd:complexType name="tcInfRps">
381
+ <xsd:sequence>
382
+ <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps" minOccurs="1" maxOccurs="1"/>
383
+ <xsd:element name="DataEmissao" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
384
+ <xsd:element name="NaturezaOperacao" type="tsNaturezaOperacao" minOccurs="1" maxOccurs="1"/>
385
+ <xsd:element name="RegimeEspecialTributacao" type="tsRegimeEspecialTributacao" minOccurs="0" maxOccurs="1"/>
386
+ <xsd:element name="OptanteSimplesNacional" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
387
+ <xsd:element name="IncentivadorCultural" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
388
+ <xsd:element name="Status" type="tsStatusRps" minOccurs="1" maxOccurs="1"/>
389
+ <xsd:element name="RpsSubstituido" type="tcIdentificacaoRps" minOccurs="0" maxOccurs="1"/>
390
+ <xsd:element name="Servico" type="tcDadosServico" minOccurs="1" maxOccurs="1"/>
391
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
392
+ <xsd:element name="Tomador" type="tcDadosTomador" minOccurs="0" maxOccurs="1"/>
393
+ <xsd:element name="IntermediarioServico" type="tcIdentificacaoIntermediarioServico" minOccurs="0" maxOccurs="1"/>
394
+ <xsd:element name="ContrucaoCivil" type="tcDadosConstrucaoCivil" minOccurs="0" maxOccurs="1"/>
395
+ </xsd:sequence>
396
+ <!--
397
+ ALTERADO POR BELO HORIZONTE
398
+ MOTIVO: Compatibilizar com o estado, em que o nome do atributo é Id, com I maiúsculo.
399
+ -->
400
+ <xsd:attribute name="Id" type="tsIdTag"/>
401
+ </xsd:complexType>
402
+ <xsd:complexType name="tcRps">
403
+ <xsd:sequence>
404
+ <xsd:element name="InfRps" type="tcInfRps" minOccurs="1" maxOccurs="1"/>
405
+ </xsd:sequence>
406
+ </xsd:complexType>
407
+ <xsd:complexType name="tcIdentificacaoNfse">
408
+ <xsd:sequence>
409
+ <xsd:element name="Numero" type="tsNumeroNfse" minOccurs="1" maxOccurs="1"/>
410
+ <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1"/>
411
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
412
+ <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
413
+ </xsd:sequence>
414
+ </xsd:complexType>
415
+ <xsd:complexType name="tcInfNfse">
416
+ <xsd:sequence>
417
+ <xsd:element name="Numero" type="tsNumeroNfse" minOccurs="1" maxOccurs="1"/>
418
+ <xsd:element name="CodigoVerificacao" type="tsCodigoVerificacao" minOccurs="1" maxOccurs="1"/>
419
+ <xsd:element name="DataEmissao" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
420
+ <xsd:element name="IdentificacaoRps" minOccurs="0" type="tcIdentificacaoRps" maxOccurs="1"/>
421
+ <xsd:element name="DataEmissaoRps" type="xsd:date" minOccurs="0" maxOccurs="1"/>
422
+ <xsd:element name="NaturezaOperacao" type="tsNaturezaOperacao" minOccurs="1" maxOccurs="1"/>
423
+ <xsd:element name="RegimeEspecialTributacao" type="tsRegimeEspecialTributacao" minOccurs="0" maxOccurs="1"/>
424
+ <xsd:element name="OptanteSimplesNacional" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
425
+ <xsd:element name="IncentivadorCultural" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
426
+ <xsd:element name="Competencia" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
427
+ <xsd:element name="NfseSubstituida" type="tsNumeroNfse" minOccurs="0" maxOccurs="1"/>
428
+ <xsd:element name="OutrasInformacoes" type="tsOutrasInformacoes" minOccurs="0" maxOccurs="1"/>
429
+ <xsd:element name="Servico" type="tcDadosServico" minOccurs="1" maxOccurs="1"/>
430
+ <xsd:element name="ValorCredito" type="tsValor" minOccurs="0" maxOccurs="1"/>
431
+ <xsd:element name="PrestadorServico" type="tcDadosPrestador" minOccurs="1" maxOccurs="1"/>
432
+ <xsd:element name="TomadorServico" type="tcDadosTomador" minOccurs="0" maxOccurs="1"/>
433
+ <xsd:element name="IntermediarioServico" type="tcIdentificacaoIntermediarioServico" minOccurs="0" maxOccurs="1"/>
434
+ <xsd:element name="OrgaoGerador" type="tcIdentificacaoOrgaoGerador" minOccurs="1" maxOccurs="1"/>
435
+ <xsd:element name="ContrucaoCivil" type="tcDadosConstrucaoCivil" minOccurs="0" maxOccurs="1"/>
436
+ </xsd:sequence>
437
+ <!--
438
+ ALTERADO POR BELO HORIZONTE
439
+ MOTIVO: Compatibilizar com o estado, em que o nome do atributo é Id, com I maiúsculo.
440
+ -->
441
+ <xsd:attribute name="Id" type="tsIdTag"/>
442
+ </xsd:complexType>
443
+ <xsd:complexType name="tcNfse">
444
+ <xsd:sequence>
445
+ <xsd:element name="InfNfse" type="tcInfNfse" minOccurs="1" maxOccurs="1"/>
446
+ </xsd:sequence>
447
+ <xsd:attribute name="versao" type="tsVersao" use="required" />
448
+ </xsd:complexType>
449
+
450
+ <xsd:complexType name="tcInfPedidoCancelamento">
451
+ <xsd:sequence>
452
+ <xsd:element name="IdentificacaoNfse" type="tcIdentificacaoNfse" minOccurs="1" maxOccurs="1"/>
453
+ <xsd:element name="CodigoCancelamento" type="tsCodigoCancelamentoNfse" minOccurs="1" maxOccurs="1"/>
454
+ </xsd:sequence>
455
+ <!--
456
+ ALTERADO POR BELO HORIZONTE
457
+ MOTIVO: Compatibilizar com o estado, em que o nome do atributo é Id, com I maiúsculo.
458
+ -->
459
+ <xsd:attribute name="Id" type="tsIdTag"/>
460
+ </xsd:complexType>
461
+ <xsd:complexType name="tcPedidoCancelamento">
462
+ <xsd:sequence>
463
+ <xsd:element name="InfPedidoCancelamento" type="tcInfPedidoCancelamento" minOccurs="1" maxOccurs="1"/>
464
+ </xsd:sequence>
465
+ </xsd:complexType>
466
+ <xsd:complexType name="tcConfirmacaoCancelamento">
467
+ <xsd:sequence>
468
+ <xsd:element name="Pedido" type="tcPedidoCancelamento" minOccurs="1" maxOccurs="1"/>
469
+ <xsd:element name="DataHoraCancelamento" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
470
+ </xsd:sequence>
471
+ <!--
472
+ ALTERADO POR BELO HORIZONTE
473
+ MOTIVO: Compatibilizar com o estado, em que o nome do atributo é Id, com I maiúsculo.
474
+ -->
475
+ <xsd:attribute name="Id" type="tsIdTag"/>
476
+ </xsd:complexType>
477
+
478
+ <!--
479
+ ADICIONADO POR BELO HORIZONTE
480
+ MOTIVO: Evitar a redefinição de elementos já existentes e prover uma melhor estruturação para o retorno do cancelamento.
481
+ Melhor explicado no tipo de retorno do cancelamento.
482
+ -->
483
+ <xsd:element name="RetCancelamento">
484
+ <xsd:complexType>
485
+ <xsd:sequence>
486
+ <xsd:element name="NfseCancelamento" type="tcCancelamentoNfse" minOccurs="1" maxOccurs="unbounded"/>
487
+ </xsd:sequence>
488
+ </xsd:complexType>
489
+ </xsd:element>
490
+ <!-- FIM ALTERAÇÃO BELO HORIZONTE -->
491
+
492
+ <xsd:complexType name="tcCancelamentoNfse">
493
+ <xsd:sequence>
494
+ <xsd:element name="Confirmacao" type="tcConfirmacaoCancelamento" minOccurs="1" maxOccurs="1"/>
495
+ </xsd:sequence>
496
+ <xsd:attribute name="versao" type="tsVersao" use="required" />
497
+ </xsd:complexType>
498
+
499
+ <xsd:complexType name="tcInfSubstituicaoNfse">
500
+ <xsd:sequence>
501
+ <xsd:element name="NfseSubstituidora" type="tsNumeroNfse" minOccurs="1" maxOccurs="1"/>
502
+ </xsd:sequence>
503
+ <!--
504
+ ALTERADO POR BELO HORIZONTE
505
+ MOTIVO: Compatibilizar com o estado, em que o nome do atributo é Id, com I maiúsculo.
506
+ -->
507
+ <xsd:attribute name="Id" type="tsIdTag"/>
508
+ </xsd:complexType>
509
+ <xsd:complexType name="tcSubstituicaoNfse">
510
+ <xsd:sequence>
511
+ <xsd:element name="SubstituicaoNfse" type="tcInfSubstituicaoNfse" minOccurs="1" maxOccurs="1"/>
512
+ </xsd:sequence>
513
+ <xsd:attribute name="versao" type="tsVersao" use="required" />
514
+ </xsd:complexType>
515
+ <xsd:complexType name="tcCompNfse">
516
+ <xsd:sequence>
517
+ <xsd:element name="Nfse" type="tcNfse" minOccurs="1" maxOccurs="1"/>
518
+ <xsd:element name="NfseCancelamento" type="tcCancelamentoNfse" minOccurs="0" maxOccurs="1"/>
519
+ <xsd:element name="NfseSubstituicao" type="tcSubstituicaoNfse" minOccurs="0" maxOccurs="1"/>
520
+ </xsd:sequence>
521
+ </xsd:complexType>
522
+ <xsd:element name="CompNfse" type="tcCompNfse"/>
523
+ <xsd:element name="ListaMensagemRetorno">
524
+ <xsd:complexType>
525
+ <xsd:sequence>
526
+ <xsd:element name="MensagemRetorno" type="tcMensagemRetorno" minOccurs="1" maxOccurs="unbounded"/>
527
+ </xsd:sequence>
528
+ </xsd:complexType>
529
+ </xsd:element>
530
+ <!--
531
+ ALTERADO POR BELO HORIZONTE
532
+ -->
533
+ <xsd:element name="ListaMensagemRetornoLote">
534
+ <xsd:complexType>
535
+ <xsd:sequence>
536
+ <xsd:element name="MensagemRetorno" type="tcMensagemRetornoLote" minOccurs="1" maxOccurs="unbounded"/>
537
+ </xsd:sequence>
538
+ </xsd:complexType>
539
+ </xsd:element>
540
+ <!--
541
+ FIM ALTERAÇÃO BELO HORIZONTE
542
+ -->
543
+ <xsd:complexType name="tcMensagemRetorno">
544
+ <xsd:sequence>
545
+ <xsd:element name="Codigo" type="tsCodigoMensagemAlerta" minOccurs="1" maxOccurs="1"/>
546
+ <xsd:element name="Mensagem" type="tsDescricaoMensagemAlerta" minOccurs="1" maxOccurs="1"/>
547
+ <xsd:element name="Correcao" type="tsDescricaoMensagemAlerta" minOccurs="0"/>
548
+ </xsd:sequence>
549
+ </xsd:complexType>
550
+ <xsd:complexType name="tcMensagemRetornoLote">
551
+ <xsd:sequence>
552
+ <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps" minOccurs="1" maxOccurs="1"/>
553
+ <xsd:element name="Codigo" type="tsCodigoMensagemAlerta" minOccurs="1" maxOccurs="1"/>
554
+ <xsd:element name="Mensagem" type="tsDescricaoMensagemAlerta" minOccurs="1" maxOccurs="1"/>
555
+ </xsd:sequence>
556
+ </xsd:complexType>
557
+ <xsd:complexType name="tcLoteRps">
558
+ <xsd:sequence>
559
+ <xsd:element name="NumeroLote" type="tsNumeroLote" minOccurs="1" maxOccurs="1"/>
560
+ <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1"/>
561
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="1" maxOccurs="1"/>
562
+ <xsd:element name="QuantidadeRps" type="tsQuantidadeRps" minOccurs="1" maxOccurs="1"/>
563
+ <xsd:element name="ListaRps" minOccurs="1" maxOccurs="1">
564
+ <xsd:complexType>
565
+ <xsd:sequence>
566
+ <xsd:element name="Rps" maxOccurs="unbounded" type="tcRps" minOccurs="1">
567
+ </xsd:element>
568
+ </xsd:sequence>
569
+ </xsd:complexType>
570
+ </xsd:element>
571
+ </xsd:sequence>
572
+ <!--
573
+ ALTERADO POR BELO HORIZONTE
574
+ MOTIVO: Compatibilizar com o estado, em que o nome do atributo é Id, com I maiúsculo.
575
+ -->
576
+ <xsd:attribute name="Id" type="tsIdTag"/>
577
+ <xsd:attribute name="versao" type="tsVersao" use="required" />
578
+ </xsd:complexType>
579
+
580
+ <xsd:element name="EnviarLoteRpsResposta">
581
+ <xsd:complexType>
582
+ <xsd:choice>
583
+ <xsd:sequence>
584
+ <xsd:element name="NumeroLote" type="tsNumeroLote" minOccurs="1" maxOccurs="1"/>
585
+ <xsd:element name="DataRecebimento" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
586
+ <xsd:element name="Protocolo" type="tsNumeroProtocolo" minOccurs="1" maxOccurs="1"/>
587
+ </xsd:sequence>
588
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
589
+ </xsd:choice>
590
+ </xsd:complexType>
591
+ </xsd:element>
592
+
593
+ <xsd:element name="EnviarLoteRpsEnvio">
594
+ <xsd:complexType>
595
+ <xsd:sequence>
596
+ <xsd:element name="LoteRps" type="tcLoteRps"/>
597
+ </xsd:sequence>
598
+ </xsd:complexType>
599
+ </xsd:element>
600
+
601
+ <!--
602
+ ALTERADO POR BELO HORIZONTE
603
+ ALTERAÇÃO: minOccurs do elemento NumeroLote alterado para zero, ao invés de 1.
604
+ MOTIVO: Há a situação de lote não recebido, se for enviado um protocolo inexistente no parâmetro da consulta. Logo, não haverá
605
+ número de lote a ser retornado nessa situação.
606
+ -->
607
+ <xsd:element name="ConsultarSituacaoLoteRpsResposta">
608
+ <xsd:complexType>
609
+ <xsd:choice>
610
+ <xsd:sequence>
611
+ <xsd:element name="NumeroLote" type="tsNumeroLote" minOccurs="0" maxOccurs="1"/>
612
+ <xsd:element name="Situacao" type="tsSituacaoLoteRps" minOccurs="1" maxOccurs="1"/>
613
+ </xsd:sequence>
614
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
615
+ </xsd:choice>
616
+ </xsd:complexType>
617
+ </xsd:element>
618
+ <!-- FIM ALTERAÇÃO BELO HORIZONTE -->
619
+
620
+ <xsd:element name="ConsultarSituacaoLoteRpsEnvio">
621
+ <xsd:complexType>
622
+ <xsd:sequence>
623
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
624
+ <xsd:element name="Protocolo" type="tsNumeroProtocolo" minOccurs="1" maxOccurs="1"/>
625
+ </xsd:sequence>
626
+ </xsd:complexType>
627
+ </xsd:element>
628
+
629
+ <!--
630
+ ALTERADO POR BELO HORIZONTE
631
+ ALTERAÇÃO: Utilizar o apontamento ref para a NFS-e retornada.
632
+ MOTIVO: O elemento CompNfse já está definido, não há a necessidade de redefiní-lo nesse tipo de elemento, apenas utilizar uma
633
+ referência a ele.
634
+ -->
635
+ <xsd:element name="ConsultarNfseRpsResposta">
636
+ <xsd:complexType>
637
+ <xsd:choice>
638
+ <xsd:element ref="CompNfse" minOccurs="1" maxOccurs="1"/>
639
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
640
+ </xsd:choice>
641
+ </xsd:complexType>
642
+ </xsd:element>
643
+ <!-- FIM ALTERAÇÃO BELO HORIZONTE -->
644
+
645
+ <xsd:element name="ConsultarNfseRpsEnvio">
646
+ <xsd:complexType>
647
+ <xsd:sequence>
648
+ <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps" minOccurs="1" maxOccurs="1"/>
649
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
650
+ </xsd:sequence>
651
+ </xsd:complexType>
652
+ </xsd:element>
653
+
654
+ <!--
655
+ ALTERADO POR BELO HORIZONTE
656
+ ALTERAÇÃO: Utilizar o apontamento ref para as NFS-e retornadas no elemento ListaNfse.
657
+ MOTIVO: O elemento CompNfse já está definido, não há a necessidade de redefiní-lo nesse tipo de elemento, apenas utilizar uma
658
+ referência a ele.
659
+ ALTERAÇÃO: minOccurs de CompNfse dentro de ListaNfse alterado para 1, ao invés de zero.
660
+ MOTIVO: Se a filtragem não retornar registros, é mais sugestivo retornar uma mensagem no elemento ListaMensagemRetorno alertando
661
+ o usuário sobre o fato, além de outros possíveis erros nessa lista como vínculo indevido de inscrição municipal e CNPJ informado
662
+ nos parâmetros da pesquisa.
663
+ -->
664
+ <xsd:element name="ConsultarNfseResposta">
665
+ <xsd:complexType>
666
+ <xsd:choice>
667
+ <xsd:element name="ListaNfse" minOccurs="1" maxOccurs="1">
668
+ <xsd:complexType>
669
+ <xsd:sequence>
670
+ <xsd:element ref="CompNfse" minOccurs="1"/>
671
+ </xsd:sequence>
672
+ </xsd:complexType>
673
+ </xsd:element>
674
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
675
+ </xsd:choice>
676
+ </xsd:complexType>
677
+ </xsd:element>
678
+ <!-- FIM ALTERAÇÃO BELO HORIZONTE -->
679
+
680
+ <xsd:element name="ConsultarNfseEnvio">
681
+ <xsd:complexType>
682
+ <xsd:sequence>
683
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
684
+ <xsd:element name="NumeroNfse" type="tsNumeroNfse" minOccurs="0" maxOccurs="1"/>
685
+ <xsd:element name="PeriodoEmissao" minOccurs="0" maxOccurs="1">
686
+ <xsd:complexType>
687
+ <xsd:sequence>
688
+ <xsd:element name="DataInicial" type="xsd:date" minOccurs="1" maxOccurs="1"/>
689
+ <xsd:element name="DataFinal" type="xsd:date" minOccurs="1" maxOccurs="1"/>
690
+ </xsd:sequence>
691
+ </xsd:complexType>
692
+ </xsd:element>
693
+ <xsd:element name="Tomador" type="tcIdentificacaoTomador" minOccurs="0" maxOccurs="1"/>
694
+ <xsd:element name="IntermediarioServico" type="tcIdentificacaoIntermediarioServico" minOccurs="0" maxOccurs="1"/>
695
+ </xsd:sequence>
696
+ </xsd:complexType>
697
+ </xsd:element>
698
+
699
+ <!--
700
+ ALTERADO POR BELO HORIZONTE
701
+ ALTERAÇÃO: Utilizar o apontamento ref para as NFS-e retornadas no elemento ListaNfse.
702
+ MOTIVO: O elemento CompNfse já está definido, não há a necessidade de redefiní-lo nesse tipo de elemento, apenas utilizar uma
703
+ referência a ele.
704
+ ALTERAÇÃO: Adição na estrutura de choice do retorno da lista de mensagem de retorno do lote.
705
+ MOTIVO: Nessa resposta temos 3 possibilidade de retorno, ou a lista de NFS-e, ou a lista de erros comuns informandos erros nos
706
+ parâmetros enviados pelo serviço ou a lista de erros dos RPS's em questão, que é a lista já especificada mas que não estava
707
+ sendo apontada desse tipo de dado. Esse erro é especial pois contém a referência ao RPS em que houve aquele erro.
708
+ -->
709
+ <xsd:element name="ConsultarLoteRpsResposta">
710
+ <xsd:complexType>
711
+ <xsd:choice>
712
+ <xsd:element name="ListaNfse" minOccurs="1" maxOccurs="1">
713
+ <xsd:complexType>
714
+ <xsd:sequence>
715
+ <xsd:element ref="CompNfse" maxOccurs="unbounded" minOccurs="1"/>
716
+ </xsd:sequence>
717
+ </xsd:complexType>
718
+ </xsd:element>
719
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
720
+ <xsd:element ref="ListaMensagemRetornoLote" minOccurs="1" maxOccurs="1"/>
721
+ </xsd:choice>
722
+ </xsd:complexType>
723
+ </xsd:element>
724
+ <!-- FIM ALTERAÇÃO BELO HORIZONTE -->
725
+
726
+ <xsd:element name="ConsultarLoteRpsEnvio">
727
+ <xsd:complexType>
728
+ <xsd:sequence>
729
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
730
+ <xsd:element name="Protocolo" type="tsNumeroProtocolo" minOccurs="1" maxOccurs="1"/>
731
+ </xsd:sequence>
732
+ </xsd:complexType>
733
+ </xsd:element>
734
+
735
+ <!--
736
+ ALTERADO POR BELO HORIZONTE
737
+ ALTERAÇÃO: Referencia para RetCancelamento ao invés de Cancelamento diretamente.
738
+ MOTIVO: Evitar a redefinição de elementos já existentes e prover uma melhor estruturação para o retorno do cancelamento.
739
+ A NFS-e quando formada em CompNfse tem o nome do tipo de dado NfseCancelamento, para melhorar essa compatibilidade de nomes
740
+ e a estruturação dessa resposta do serviço de cancelamento.
741
+ -->
742
+ <xsd:element name="CancelarNfseResposta">
743
+ <xsd:complexType>
744
+ <xsd:choice>
745
+ <xsd:element ref="RetCancelamento" minOccurs="1" maxOccurs="1"/>
746
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
747
+ </xsd:choice>
748
+ </xsd:complexType>
749
+ </xsd:element>
750
+ <!-- FIM ALTERAÇÃO BELO HORIZONTE -->
751
+
752
+ <xsd:element name="CancelarNfseEnvio">
753
+ <xsd:complexType>
754
+ <xsd:sequence>
755
+ <xsd:element name="Pedido" type="tcPedidoCancelamento"/>
756
+ </xsd:sequence>
757
+ </xsd:complexType>
758
+ </xsd:element>
759
+
760
+ <!--
761
+ Cabeçalho de dados
762
+ -->
763
+ <xsd:element name="cabecalho">
764
+ <xsd:complexType>
765
+ <xsd:sequence>
766
+ <xsd:element name="versaoDados" type="tsVersao" minOccurs="1" maxOccurs="1"/>
767
+ </xsd:sequence>
768
+ <xsd:attribute name="versao" type="tsVersao" use="required" />
769
+ </xsd:element>
770
+
771
+ </xsd:schema>