Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

viernes, 29 de julio de 2016

Pedidos Internos II

0

Otra forma distinta de gestionar automáticamente un pedido seria a través de objetos.
Veamos un ejemplo:

jungla.xsd

<schema xmlns="http://www.w3.org/2001/XMLSchema">

  <element name="jungla">
    <complexType>
        <any minOccurs="0" maxOccurs="unbounded"/>
      <sequence>
      </sequence>
    </complexType>
  </element>
</schema>

El primer esquema define el tipo complejo jungla como contendor de una secuencia de cualquier otro tipo. Los otros tipos que usará el ejemplo están definidos en un segundo fichero de esquema.

tiposAnimales.xsd

<schema xmlns= "http://www.w3.org/2001/XMLSchema">
 <complexType name="tipoSerpiente">
               <element name= "nombre" type="string"/>
               <sequence>
                              <element name= "longitud" type="positiveInteger" />
               </sequence>
  </complexType>
               <complexType name="tipoOso">
                               <element name= "peso" type="positiveInteger" />
                                              <sequence>
                                                            <element name= "nombre" type="string"/>
                                              </sequence>
                               <element name= "nombre" type="string"/>
</complexType>
<complexType name="tipoPantera">
               < sequence >
                              <element name= "color" type="string" />
                </sequence>
</complexType>

Aquí está el código de PHP de ejemplo que utiliza estos dos ficheros de esquema.

<?php
/**
 * Ilustrar tipos abiertos y el uso del método addTypes()
 */
$dasxml = SDO_DAS_XML::create();
$dasxml->addTypes("jungla.xsd"); // este es un tipo abierto, es decir, el xsd especifica que pueden contener cualquier ("any") tipo
$dasxml->addTypes('tiposAnimales.xsd');
$baloo            = $dasxml->createDataObject('','tipoOso');
$baloo->nombre    = "Baloo";
$baloo->peso    = 800;
$bagheera         = $dasxml->createDataObject('','tipoPantera');
$bagheera->nombre = "Bagheera";
$bagheera->color  = 'negro';
$kaa              = $dasxml->createDataObject('','tipoSerpiente');
$kaa->nombre      = "Kaa";
$kaa->longitud    = 25;
$documento        = $dasxml->createDocument();
$od               = $documento->getRootDataObject();
$od->oso          = $baloo;
$od->pantera      = $bagheera;
$od->serpiente    = $kaa;
print($dasxml->saveString($documento,2));
?>

Estos dos fichero de esquemas son cargados primero en el DAS XMLThese con los métodos create() y addTypes(). El método createDataObject() se usa para crear tres objetos por separado. En cada caso se pasan el URI del espacio de nombres y el nombre del tipo al método createDataObject(): en este ejemplo el URI del espacio de nombres está enblanco ya que no se usa un espacio de nombres en el esquema. Una vez que los tres objetos de datos - que representan un oso, una pantera y una serpiente - han sido creados, se crea un objeto documento con el método createDocument(). En este caso no existen ambigüedad sobre lo que debería ser el elemento documento del documento - ya que el segundo fichero de esquema sólo define tipos complejos, por lo que el elemento documento solo puede ser el elemento global jungla definido en el primer esquema. Este documento tendrá un único objeto de datos raíz que se corresponde con un elemento documento vacío jungla. Ya que es un tipo abierto, las propiedades se pueden añadir a voluntad. Cuando la primera asignación se hace a $od->oso, se añade una propiedad oso al objeto de datos raíz: lo mismo ocurre con las dos asignaciones siguientes. Cual el documento es escrito por el método saveString(), el documento resultante es:

<?xml version="1.0" encoding="UTF-8"?>
<jungla xsi:type="jungla" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<oso xsi:type="tipoOso">
    <nombre>Baloo</nombre>
    <peso>800</peso>
<color>negro</color>
</oso>
  <pantera xsi:type="tipoPantera">
    <nombre>Bagheera</nombre>
<longitud>25</longitud>
</pantera>
  <serpiente xsi:type="tipoSerpiente">
    <nombre>Kaa</nombre>
</jungla>
</serpiente>


Para conocer otras formas puedes ver aquí

Related Posts:

  • Pedidos Internos II Otra forma distinta de gestionar automáticamente un pedido seria a través de objetos. Veamos un ejemplo: jungla.xsd <schema xmlns="http://w… Read More
  • Añadir grupo de clientes a Categorías Si creas un nuevo grupo de clientes en Prestashop, por defecto no tendrá ninguna categoría asociada. Es decir, este nuevo grupo no podrá ver/acceder … Read More
  • Si no se te ven algunas imagenes La primera causa puede ser que se haya modificado algo del .htaccess, para solucionarlo debe ir a preferencias > seo&urls, bajas un poco y pul… Read More
  • Post request Curl Como enviar un post con un pedido xml con PrestaShop. Aquí os dejo un ejemplo que me han dejado en las prácticas, muy útil! <?php $service_ur… Read More
  • Pedidos internos I Todas las tiendas tienen sus propios distribuidores y necesitan hacer pedidos a dichos distribuidores. En este caso necesito que un pedido se haga de… Read More

0 comentarios:

Publicar un comentario

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)