Exemple-3 : Utiliser des archives ZIP
Des archives ZIP peuvent aussi être chargés et des fichiers se trouvant dans un ZIP peuvent être référencés en utilisant le schéma additional-files. Par exemple :
additional-files:///mybigarchive.zip%7Czip/biginstance.xml
Note : | La partie |zip/ doit être échappée par URI en tant que %7Czip/ pour pouvoir se conformer à l'URI RFC puisque le symbole | n'est pas directement autorisé. L'utilisation de motifs glob (* et ?) est aussi autorisée. Vous pouvez donc utiliser quelque chose comme cela pour valider tous les fichiers XML dans l'archive ZIP : {“command”: “xsi”, “args”: [“additional-files:///mybigarchive.zip%7Czip/*.xml”], “options”: {…}} |
Note : | 'Content-Disposition: form-data' est aussi valide, outre 'Content-Disposition: attachment'. Puisque plusieurs outils génèrent form-data en tant que disposition de contenu, la valeur form-data est acceptée comme étant valide. |
Dans cet exemple, on part du principe que toutes les références de schéma sont des chemins relatifs et que tous les schémas sont contenus dans le 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
Binary content of Demo.zip archive
-----PartBoundary-- |
Dans cet exemple, les fichiers XML contenus dans un archive ZIP sont validés en utilisant des références à un schéma externe, qui est fourni dans un second archive ZIP.
-----PartBoundary Content-Disposition: form-data; name="msg" Content-Type: application/json
{"command": "xsi", "args": ["additional-files:///Instances.zip%7Czip/*.xml"], "options": {"user-catalog": "additional-files:///Schemas.zip%7Czip/catalog.xml"}}
-----PartBoundary Content-Disposition: attachment; filename="Instances.zip"; name="additional-files" Content-Type: application/octet-stream
Binary content of Instances.zip archive
-----PartBoundary Content-Disposition: attachment; filename="Schemas.zip"; name="additional-files" Content-Type: application/octet-stream
Binary content of Schemas.zip archive
-----PartBoundary-- |