Beispiel-3: Verwenden von ZIP-Archiven
Auch ZIP-Archive können hochgeladen werden und Dateien innerhalb eines ZIP-Archivs können mit Hilfe des additional-files-Schemas referenziert werden. Zum Beispiel:
additional-files:///mybigarchive.zip%7Czip/biginstance.xml
Anmerkung: | Der |zip/-Teil muss als %7Czip/ URI-maskiert werden, damit er der URI RFC entspricht, da das Pipe-Symbol | direkt nicht zulässig ist. Auch globale Muster wie (* und ?) können verwendet werden. Sie können daher alle XML-Dateien in einem ZIP-Archiv mit einen Befehl wie dem folgenden validieren: {“command”: “xsi”, “args”: [“additional-files:///mybigarchive.zip%7Czip/*.xml”], “options”: {…}} |
Anmerkung: | Zusätzlich zu 'Content-Disposition: attachment' ist auch 'Content-Disposition: form-data' ist gültig. Da mehrere Tools form-data als Content Disposition generieren, wird auch der Wert form-data als gültig akzeptiert. |
In diesem Beispiel wird davon ausgegangen, dass alle Schemareferenzen relative Pfade sind und dass sich alle Schemas innerhalb des ZIP-Archivs befinden.
-----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-- |
Beispiel: Validieren von XML-Dateien in einem ZIP-Archiv, das Referenzen zu externen Schemas enthält |
In diesem Beispiel werden die XML-Dateien in einem ZIP-Archiv mittels Referenzen zu einem externen Schema, das in einem zweiten ZIP-Archiv bereitgestellt wird, validiert.
-----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-- |