Ejemplo nº3: Usar archivos ZIP
También puede cargar archivos ZIP y hacer referencia a los ficheros del archivo ZIP con el esquema additional-files. Por ejemplo:
additional-files:///migranarchivo.zip%7Czip/instanciagrande.xml
Nota: | en la parte |zip/ el URI tiene que estar entre caracteres de escape (%7Czip/) para ajustarse al RFC del URI porque el símbolo | no está permitido. El uso de patrones glob (* y ?) también está permitido. Por tanto, para validar todos los archivos XML del archivo ZIP puede usar algo así: {"command": "xsi", "args": ["additional-files:///migranarchivo.zip%7Czip/*.xml"], "options": {...}} |
Nota: | 'Content-Disposition: form-data' también es válido, junto con 'Content-Disposition: attachment'. Como varias herramientas generan form-data como content-disposition, también se acepta el valor form-data. |
En este ejemplo, se supone que todas las referencias de esquema son rutas de acceso relativas y que todos los esquemas están dentro del archivo ZIP.
-----PartBoundary Content-Disposition: form-data; name="msg" Content-Type: application/json
{"command": "xsi", "args": ["additional-files:///Demo.zip%7Czip/*.xml"], "options": {}}
-----PartBoundary Content-Disposition: attachment; filename="Demo.zip"; name="additional-files" Content-Type: application/octet-stream
Contenido binario del archivo Demo.zip
-----PartBoundary-- |
En este ejemplo los archivos XML del archivo ZIP se validan por medio de referencias a un esquema externo, que está en otro archivo ZIP.
-----PartBoundary Content-Disposition: form-data; name="msg" Content-Type: application/json
{"command": "xsi", "args": ["additional-files:///Instancias.zip%7Czip/*.xml"], "options": {"user-catalog": "additional-files:///Schemas.zip%7Czip/catalog.xml"}}
-----PartBoundary Content-Disposition: attachment; filename="Instancias.zip"; name="additional-files" Content-Type: application/octet-stream
Contenido binario del archivo Instancias.zip
-----PartBoundary Content-Disposition: attachment; filename="Esquemas.zip"; name="additional-files" Content-Type: application/octet-stream
Contenido binario del archivo Esquemas.zip
-----PartBoundary-- |