Ejemplo nº1 (con acentuación): Validar XML
A continuación puede ver un ejemplo en el que aparece el cuerpo de una solicitud POST seguida de una tabla donde se explican todas sus partes (que aparecen numeradas). El comando de la ILC equivalente al comando enviado con esta solicitud sería:
raptorxmlxbrl xsi Primero.xml Segundo.xml --xsd=Demo.xsd
La solicitud pide validar dos archivos XML con un esquema. El cuerpo de la solicitud tendría este aspecto, si imaginamos que en el encabezado se especificó la cadena de frontera ---PartBoundary (ver Encabezado de solicitud).
-----PartBoundary Content-Disposition: form-data; name="msg" Content-Type: application/json
| 1 |
{"command": "xsi", "options": {} , "args": []}
| 2 |
-----PartBoundary Content-Disposition: attachment; filename="Primero.xml"; name="args" Content-Type: application/octet-stream
| 3 |
<?xml version="1.0" encoding="UTF-8"?> <test xsi:noNamespaceSchemaLocation="Demo.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">42</test>
| 4 |
-----PartBoundary Content-Disposition: attachment; filename="Segundo.xml"; name="args" Content-Type: application/octet-stream
| 5 |
<?xml version="1.0" encoding="UTF-8"?> <test xsi:noNamespaceSchemaLocation="Demo.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">35</test>
| 6 |
-----PartBoundary Content-Disposition: attachment; filename="Demo.xsd"; name="additional-files" Content-Type: application/octet-stream
| 7 |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="test" type="xs:int"/> </xs:schema>
| 8 |
-----PartBoundary-- | 9 |
1 | El nombre de las fronteras de las principales partes form-data se declaran en el encabezado de la solicitud. El separador de frontera de parte debe ser una cadena única que no aparezca en ninguna otra parte de los documentos incrustados. Se le añade un prefijo de dos guiones y se utiliza para separar sus partes. La primera parte form-data (de este ejemplo) es la parte msg. Observe que su tipo de contenido es application/json. |
2 | Esta es la sintaxis estándar para solicitudes HTTP POST. Si args contiene una referencia a un archivo y se cargaron más archivos, ambos grupos de archivos se pasan al servidor. |
3 | El primer miembro de la matriz args es un archivo adjunto llamado Primero.xml. |
4 | El texto del archivo Primero.xml. Contiene una referencia a un esquema llamado Demo.xsd, que también se cargará (en la parte form-data additional_files). |
5 | El segundo miembro de la matriz args es un archivo adjunto llamado Segundo.xml. |
6 | El texto del archivo Segundo.xml. También contiene una referencia al esquema Demo.xsd (ver el punto 7). |
7 | El final del último miembro de la matriz args (y por tanto de la matriz propiamente dicha) se indica añadiendo el sufijo '--' a la cadena de frontera de args. |
8 | El texto del archivo Demo.xsd. |
9 | El final de la parte additional_files. Observe que el último separador de frontera de parte tiene tanto un prefijo como un sufijo formados por dos guiones. |