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 I

0

Todas las tiendas tienen sus propios distribuidores y necesitan hacer pedidos a dichos distribuidores. En este caso necesito que un pedido se haga de forma automática, Y el distribuidor me solicita que lo realice a través de un lenguaje XML, personalizado por la empresa.


El Extensible Markup Language (XML) es una especificación de propósito general para crear lenguajes de marcado personalizado. Se clasifica como un lenguaje extensible porque permite a sus usuarios definir sus propios elementos. Su objetivo principal es ayudar a los sistemas de información comparten datos estructurados, en particular a través de Internet, y se utiliza tanto para codificar documentos y serializar los datos. En este último contexto, es comparable con otros lenguajes de serialización basados ​​en texto tales como JSON y YAML.



Comenzó como un subconjunto simplificado del lenguaje de marcado generalizado estándar (SGML), y está diseñado para ser relativamente legibles por humanos. Mediante la adición de restricciones semánticas, idiomas de la aplicación se pueden implementar en XML. Estos incluyen XHTML, RSS, MathML, GraphML, Scalable Vector Graphics, MusicXML, y miles de otros. Por otra parte, XML se utiliza a veces como el lenguaje de especificación para dichos idiomas de la aplicación.



XML es recomendado por el World Wide Web Consortium (W3C). Es un estándar abierto de gratuidad. La recomendación especifica tanto la gramática léxico y los requisitos para el análisis sintáctico.

A continuación vamos a estudiar como trabajar con un documento XML desde PHP. Empezando por ver como se genera un documento XML desde 0 con el siguiente ejemplo:

<?php
try 
{
   $dasxml = SDO_DAS_XML::create("carta.xsd");
   try 
  {
       $doc = $dasxml->createDocument();
       $odr = $doc->getRootDataObject();
       $sec = $odr->getSequence();
       $sec->insert("April 09, 2005", NULL, 'fecha');
       $sec->insert("Acme Inc. ", NULL, NULL);
       $sec->insert("United Kingdom. ");
       $sec->insert("Estimado/a", NULL, NULL);
       $sec->insert("Tarun", NULL, "nombre");
       $sec->insert("Nayaraaa", NULL, "apellido");
       $odr->apellido = "Nayar";
       $sec->insert("Porfavor, observe que su pedido número ");
       $sec->insert(12345);
       $sec->insert(" ha sido enviado hoy. Gracias por hacer negocios con nosotros.");
       print($dasxml->saveString($doc));
   } 
   catch (SDO_Exception $e) 
   {
       print($e);
   }
catch (SDO_Exception $e) 
{
   print("Problema creando un documento XML: " . $e->getMessage());
}
?>


El método createDocument() del DAS XML devuelve un objeto documento con un único objeto raíz que corresponde a un elemento de documento vacío.


XML Schema es un lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa, más allá de las normas sintácticas impuestas por el propio lenguaje XML. Se consigue así una percepción del tipo de documento con un nivel alto de abstracción. Fue desarrollado por el World Wide Web Consortium (W3C)


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:carta="http://esquemaCarta"
  targetNamespace="http://esquemaCarta">
  <xsd:element name="cartas" type="carta:ModeloCarta"/>
  <xsd:complexType name="ModeloCarta" mixed="true">
    <xsd:sequence>
      <xsd:element name="fecha" minOccurs="0" type="xsd:string"/>
      <xsd:element name="nombre" minOccurs="0" type="xsd:string"/>
      <xsd:element name="apellido" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>



En esta estructura se usa la API Sequence así como asignaciones a propiedades para construir el grafo de datos.

Los objetos de datos sencuenciados son SDOs que pueden rastrear el orden de las propiedades de un objeto de datos. También pueden contener elementos de texto no estructurado (un elemento de texto que no pertenece a ninguna de las propiedades del SDO). Los objetos de datos secuenciados son útiles para trabajar con documentos XML que permiten texto no estructurado (es decir, mixed=true) o si los elementos pueden estar intercalados.

<?php/**
 * Cargar, actualizar, y guardar un documento XML
 */
try 

{
   
$dasxml SDO_DAS_XML::create("carta.xsd");
   
$documento $dasxml->loadFile("carta.xml");
   
$objeto_datos_raíz $documento->getRootDataObject();
   
$objeto_datos_raíz->fecha "September 03, 2004";
   
$objeto_datos_raíz->nombre "Anantoju";
   
$objeto_datos_raíz->apellido "Madhu";
   
$dasxml->saveFile($documento"salida-carta.xml");
   echo 
"Se ha escrito un nuevo fichero:\n";
   print 
file_get_contents("salida-carta.xml");

catch (SDO_Exception $e
{
   print(
$e->getMessage());
}
?>


Los tres valores más importantes son: 

Cartas, el nombre del elemento documento

ModeloCarta, el nombre del tipo complejo del elemento documento. También es el nombre del tipo de SDO del objeto de datos raíz.


http://esquemaCarta, el espacio de nombres al que pertenece el elemento documento. También es el URI del espacio de nombres del tipo de SDO del objeto de datos raíz.

Quedando al final así:


<carta:cartas xmlns:carta="http://esquemaCarta">
  <fecha>March 1, 2005</fecha>
  Mutual of Omaha
  Wild Kingdom, USA
  Estimado/a
  <nombre>Casy</nombre>
  <apellido>Crocodile</apellido>
  Por favor, compre más repelente de tiburones.
  Su prima ha vencido.
</carta:cartas>

Related Posts:

  • Log PrestaShop ¿Como saber si nuestro modulo esta funcionando o no? La solución es usar un Log: Aquel mensaje que genera el programador de un sist… Read More
  • Módulos de PrestaShop III Lenguajes que usaremos hoy PHP, HTML.  Programas usados: XAMPP, JetBrains y notepad++. Continuamos con la elaboración del modulo anterior. N… Read More
  • Hooks en PrestaShop Los hooks representan puntos definidos del código que se puede utilizar para ejecutar las funciones de su propio módulo. O, dicho de otro modo, … Read More
  • Módulos de PrestaShop IV Lenguajes que usaremos hoy Smarty Programas usados: XAMPP y JetBrains. Continuamos con la base del modulo anterior.  Smarty es un motor d… Read More
  • Módulos de PrestaShop II Lenguajes que usaremos hoy PHP, HTML, CSS.  Programas usados: XAMPP, JetBrains y notepad++. Continuamos con la elaboración del modulo anterio… 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)