<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>XML &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<atom:link href="https://www.oscarblancarteblog.com/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oscarblancarteblog.com</link>
	<description>Software Architect &#38; FullStack developer</description>
	<lastBuildDate>Fri, 18 Jul 2014 22:01:58 +0000</lastBuildDate>
	<language>es-MX</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.9</generator>

<image>
	<url>https://www.oscarblancarteblog.com/wp-content/uploads/2019/03/cropped-ob-32x32.png</url>
	<title>XML &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<link>https://www.oscarblancarteblog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">89905023</site>	<item>
		<title>JSON vs XML</title>
		<link>https://www.oscarblancarteblog.com/2014/07/18/json-vs-xml/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/18/json-vs-xml/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Fri, 18 Jul 2014 22:01:58 +0000</pubDate>
				<category><![CDATA[JSON]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Schema]]></category>
		<category><![CDATA[XSD]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=118</guid>

					<description><![CDATA[<p>En esta entrada quisiera hacer una comparativa entre JSON vs XML ya que en varias ocasiones me ha tocado discutir cual es mejor que la otra y siempre se vuelve un tema de conversación de horas. Mi conclusión a este tema es que ambos son buenos y cada uno tiene sus ventajas y desventajas y son [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/18/json-vs-xml/">JSON vs XML</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>				<img loading="lazy" class="aligncenter wp-image-1586 size-full" src="https://www.oscarblancarteblog.com/wp-content/uploads/2014/07/XML-vs-JSON.jpg" alt="JSON vs XML" width="744" height="414" />En esta entrada quisiera hacer una comparativa entre JSON vs XML ya que en varias ocasiones me ha tocado discutir cual es mejor que la otra y siempre se vuelve un tema de conversación de horas.</p>
<p>Mi conclusión a este tema es que ambos son buenos y cada uno tiene sus ventajas y desventajas y son usados para diferentes cosas.<span id="more-118"></span></p>
<h2>XML</h2>
<h3><strong>Ventajas:</strong></h3>
<ul>
<li>Tiene un formato muy estructurado y fácil de comprender.</li>
<li>Puede ser validado fácilmente mediante <a href="https://www.oscarblancarteblog.com/2014/07/16/que-es-un-schema-en-xml/">Schemas(XSD)</a></li>
<li>Se pueden definir estructuras complejas y re utilizables.</li>
</ul>
<h3><strong>Desventajas:</strong></h3>
<ul>
<li>Es mas complicado de entender</li>
<li>El formato es sumamente estricto.</li>
<li>Lleva mas tiempo procesarlo</li>
<li>Un error con los namespace puede hacer que todo el documento sea invalido</li>
</ul>
<p>&nbsp;</p>
<h2>JSON</h2>
<h3><strong>Ventajas: </strong></h3>
<ul>
<li>Formato sumamente simple</li>
<li>Velocidad de procesamiento alta</li>
<li>Archivos de menor tamaño</li>
</ul>
<h3><strong>Desventajas:</strong></h3>
<ul>
<li>Tiene una estructura enredosa y difícil de interpretar a simple vista</li>
</ul>
<p><strong>NOTA: </strong><em>Gracias a un colaborar denominado<strong> Fugaz </strong>que me informo que existe una librería llamada mongoose que sirve para validar JSON aun que por lo que investigue es una librería de JavaScript y desconozco si exista una API similar para Java.</em></p>
<p><strong>Update 2</strong>: Mongoose es una librería utilizada para conectar NodeJS y MongoDB, aun que es posible validar de cierta forma los Objetos JS, en realidad no se utiliza para ello, si no que sirve para validar los objetos antes de ser persistidos en MongoDB.</p>
<p>Una vez que hablamos de las diferencias podría comentar que XML es mucho mejor para la comunicación entre servidores y aplicaciones ya que permite mensajes mucho mas completos, tipificados y ademas pueden ser validados con facilidad.</p>
<p>&nbsp;</p>
<p>Por otro lado, JSON cuenta con un formato mas simple y fácil de procesar, por lo que es ideal para dispositivos de bajo nivel de procesamiento, como los teléfonos móviles, los cuales son beneficiados ya que se requieren de menos consumo de datos para descargarlos y un consumo menor de batería al procesarlos, desde luego que los teléfonos modernos ya son capaces de procesar información mucho mas rápido pero no podemos confiarnos en todo mundo tendrá uno de esos.</p>
<p>&nbsp;</p>
<p>Tanto JSON como XML son muy ampliamente utilizados en entornos de integración, donde es necesario transmitir datos desde una aplicación a otra, como lo son los Web Services (SOAP) y los servicios REST (JSON), lo que me lleva a recomendarte el articulo <a href="https://www.oscarblancarteblog.com/2017/03/06/soap-vs-rest-2/">SOAP vs REST</a>, donde explico las diferencias de esta dos tecnologías para la construcción de servicios web.</p>
<p>&nbsp;</p>
<p>Cierro el tema preguntándote. ¿Tu que opinas, cuando usarías XML y cuand JSON, Crees que alguna de las dos tenga mas futuro?		</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/18/json-vs-xml/">JSON vs XML</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/18/json-vs-xml/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">118</post-id>	</item>
		<item>
		<title>Que es un Schema en XML</title>
		<link>https://www.oscarblancarteblog.com/2014/07/16/que-es-un-schema-en-xml/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/16/que-es-un-schema-en-xml/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Wed, 16 Jul 2014 00:13:04 +0000</pubDate>
				<category><![CDATA[XSD]]></category>
		<category><![CDATA[Schema]]></category>
		<category><![CDATA[XML]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=26</guid>

					<description><![CDATA[<p>Si bien la mayoría de nosotros que ha trabajado con XML ha escuchado el termino Schema y es que prácticamente XML y Schema van de la mano debido a que en un Schema se definen las reglas de como el XML tendrá que ser creado. Un Schema tiene varios elementos que deberemos entender muy bien [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/16/que-es-un-schema-en-xml/">Que es un Schema en XML</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>				Si bien la mayoría de nosotros que ha trabajado con XML ha escuchado el termino Schema y es que prácticamente XML y Schema van de la mano debido a que en un Schema se definen las reglas de como el XML tendrá que ser creado.</p>
<p>Un Schema tiene varios elementos que deberemos entender muy bien para poder explotar al máximo las ventajas que ofrece.</p>
<p>En este post hablaremos de los puntos mas importantes que debemos de tomar en cuenta para entenderlos.<span id="more-26"></span></p>
<p>&nbsp;</p>
<p><strong>ComplexType: </strong>Sirve para definir estructuras complejas donde podremos agrupas un conjunto de elementos u otros CompleType.</p>
<p>Un ComplexType lo podemos ver como la definición de una clase ya que en este definimos la estructura que deberá tener un tipo y esta pensado para ser reutilizado.</p>
<p><img loading="lazy" class="aligncenter size-full wp-image-27" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/complextype.png" alt="ComplexType" width="340" height="148" /></p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/complextypesource.png"><img loading="lazy" class="aligncenter size-full wp-image-28" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/complextypesource.png" alt="ComplexTypeSource" width="442" height="240" /></a></p>
<p>Las siguientes figuras muestran de forma grafica y el fuente(Source) de como esta generado el CompleType, En la imagen podemos apreciar que se trata de un tipo Login el cual tiene un elemento para almacenar el usuario y otro para el password.</p>
<p>Si prestamos mas atención veremos que el elemento usuario es de tipo UserNameType el cual es un SimpleType del cual hablaremos mas adelante y elemento para el password de tipo String.</p>
<p>Apartir de este ComplexType podremos generar instancias o elementos para poder ser reutilizadas en otros Schemas o ComplexType.</p>
<p>&nbsp;</p>
<p><strong>Element: </strong>Los elements los podemos ver como clases anónimas ya que están basada en un tipo previamente definido y no pueden ser reutilizados en otros ComplexType ni Schema&#8217;s, Los elements son utilizados cuando queremos definir algo que solo lo utilizaremos una vez.</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/element.png"><img loading="lazy" class="aligncenter size-full wp-image-29" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/element.png" alt="Element" width="383" height="190" /></a></p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/elementsource.png"><img loading="lazy" class="aligncenter size-full wp-image-30" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/elementsource.png" alt="ElementSource" width="315" height="20" /></a></p>
<p>En las siguientes figuras vemos como esta compuesto un Element de forma gráfica y en fuente(Source), Podemos apreciar que el element login es de tipo LoginType por lo que hereda su estructura.</p>
<p>Los Elements pueden ser de cualquier ComplexType o SimpleType e incluso no tener un tipo por lo que se denomina AnyType ( Cualquier Tipo) y automáticamente heredaran su estructura</p>
<p><strong>SimpleType: </strong>Los SimpleType o Tipos Simples estan diseñados para crear nuestros propios tipos de datos simples, es decir tipos de datos que representen un solo nodo de nuestro XML.</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/simpletype.png"><img loading="lazy" class="aligncenter size-full wp-image-32" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/simpletype.png" alt="SimpleType" width="158" height="91" /></a><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/simpletypesource.png"><img loading="lazy" class="aligncenter size-full wp-image-33" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/simpletypesource.png" alt="SimpleTypeSource" width="288" height="101" /></a></p>
<p>En este caso Usuario es de tipo UserNameType el cual es un tipo simple y define dos reglas, Mínimo 8 caracteres y Máximo 20, ademas esta basado en un String, esto nos dice que si ponemos cualquier valor en este nodo que su longitud sea menor de 8 y mayor de 20 el schema nos arrojara que el documento es invalido.</p>
<p>Los SimpleType nos pueden ayudar a definir muchas cosas como por ejemplo el formato del RFC (Con expresiones regulares), Moneda  (Numero de dígitos y fracciones), El número de una tarjeta de crédito, etc.</p>
<p>&nbsp;</p>
<p><strong>Attribute: </strong>Los atributos son utilizados a nivel de ComplexType o Element y sirven para representar algún datos que sea relevante a nivel de CompletType o Element, En este caso el Element Usuario tiene un Atribute llamado Token y representa el Token del usuario para darle mayor seguridad al servicio de Login.</p>
<p>&nbsp;</p>
<p><strong>TargetNameSpace: </strong>Al igual que en los lenguajes de programación, Los schemas también tiene NameSpace ( En Java Package) en cual define el dominio al que pertenecen todos los elementos de nuestro Schema.</p>
<p>El NameSpace nos sirve para distinguir entre los distintos tipos que puedan estar definidos en otros Schemas y que por alguna razón tengan los mismo nombres que en nuestro schema. O te imaginas una clase con el mismo nombre y en el mismo paquete? Entonces el namespace seria el paquete y nombre del elemento seria el nombre de la clase si lo queremos ver como programadores Java.</p>
<p>&nbsp;</p>
<p>Finalmente y una vez terminado nuestro Schema podemos crear XML basados en nuestros tipos y validar que sean correctos a nivel sintácticos y semántico.</p>
<p>A continuación un XML Valido para el Element login</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/validxml1.png"><img loading="lazy" class="aligncenter size-full wp-image-36" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/validxml1.png" alt="ValidXML" width="439" height="87" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;		</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/16/que-es-un-schema-en-xml/">Que es un Schema en XML</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/16/que-es-un-schema-en-xml/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">26</post-id>	</item>
		<item>
		<title>Que es XSLT</title>
		<link>https://www.oscarblancarteblog.com/2014/07/15/que-es-xslt/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/15/que-es-xslt/#respond</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Tue, 15 Jul 2014 16:32:08 +0000</pubDate>
				<category><![CDATA[XSLT]]></category>
		<category><![CDATA[Schema]]></category>
		<category><![CDATA[transformaciones]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[xpath]]></category>
		<category><![CDATA[XSD]]></category>
		<category><![CDATA[xsl]]></category>
		<category><![CDATA[xslt]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/2014/07/15/que-es-xslt/</guid>

					<description><![CDATA[<p>Cuando hablamos de XML muchas veces escuchamos hablar también de XSD o Schema el cual representa las reglas de como deberá estar formado un XML pero alguna vez escuchamos de XSLT? XSLT es un lenguaje diseñado para transformar documentos XML a otros documentos incluso no XML. Estas transformaciones son llevadas a cabo mediante plantillas en [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/15/que-es-xslt/">Que es XSLT</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Cuando hablamos de XML muchas veces escuchamos hablar también de XSD o Schema el cual representa las reglas de como deberá estar formado un XML pero alguna vez escuchamos de XSLT?</p>
<p style="text-align: justify;">XSLT es un lenguaje diseñado para transformar documentos XML a otros documentos incluso no XML. Estas transformaciones son llevadas a cabo mediante plantillas en las cuales se plasman las reglas para transformar un documento a otro.<span id="more-10"></span></p>
<p style="text-align: justify;">Un XSLT define reglas tan simples como leer un campo del documento de entrada y dejarlo en el documento de salida o reglas tan complejas como foreach de los nodos u ordenamiento.</p>
<p style="text-align: justify;">XSLT nos permite incluso generar paginas HTML a partir de XML, la siguiente liga muestra un ejemplo de la pagina W3C la cual a partir de un XML de Discos y una plantilla XSLT generan una tabla con los datos de los discos:</p>
<p style="text-align: justify;"><a href="http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&amp;xsltfile=cdcatalog" target="_blank">http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&amp;xsltfile=cdcatalog</a></p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/xslt-engine.png"><img loading="lazy" class="aligncenter size-full wp-image-11" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/xslt-engine.png" alt="XSLT Engine" width="646" height="237" /></a>Fig 1: La siguiente figura muestra como trabaja el motor de XSLT para transformar documentos.</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/15/que-es-xslt/">Que es XSLT</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/15/que-es-xslt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10</post-id>	</item>
		<item>
		<title>Que es BPEL</title>
		<link>https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Tue, 15 Jul 2014 16:17:28 +0000</pubDate>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[bpel]]></category>
		<category><![CDATA[composición soa]]></category>
		<category><![CDATA[composite]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Schema]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[soa suite]]></category>
		<category><![CDATA[webservice]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSD]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/2014/07/15/que-es-bpel/</guid>

					<description><![CDATA[<p>BPEL también conocido como Business Process Execution Language es un lenguaje diseñado por la organización OASIS la cual se encarga de definir estándares a nivel mundial, Este lenguaje esta definido en XML y esta diseñado para orquestar procesos de forma automática. Se le llama Orquestar por que BPEL es el encargado de consumir varios servicios en un [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/">Que es BPEL</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">BPEL también conocido como Business Process Execution Language es un lenguaje diseñado por la organización OASIS la cual se encarga de definir estándares a nivel mundial, Este lenguaje esta definido en XML y esta diseñado para orquestar procesos de forma automática.</p>
<p style="text-align: justify;">Se le llama Orquestar por que BPEL es el encargado de consumir varios servicios en un orden especificado y realizar una función muy concreta.<span id="more-473"></span></p>
<p style="text-align: justify;">Escenario practico.</p>
<p style="text-align: justify;">Agencia de viaje: Imagínate que entras a un pagina de agencia de viaje en la cual puedes comprar un paquete que incluye boletos de avión y hotel. Lo único que tenemos que hacer nosotros es decir a donde queremos con la fecha y la agencia de viaje nos arrojara los paquetes con un precio y solo tenemos que pagar con nuestra tarjeta de crédito para que nuestra reservación quede lista.</p>
<p style="text-align: justify;">Una vez que confirmamos nuestra compra la agencia de viaje tendrá que hacer algunas operaciones que no dependen de ella como seria reservar el boleto de avión con la aerolínea, reservar los día del cuarto directamente con el Hotel, Hacer un cargo por el porcentaje que gana la agencia por realizar la venta y por ultimo guardar en el sistema de la agencia el registro de la venta.</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/agencia-de-viaje4.png"><img loading="lazy" class="aligncenter  wp-image-7" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/agencia-de-viaje4.png" alt="Agencia de viaje" width="557" height="193" /></a></p>
<p style="text-align: justify;"><em>Fig.1: Muestra el proceso a realizar para completar una reservación.</em></p>
<p style="text-align: justify;">Si nos damos cuenta los pasos 2,3,4 no depende de la agencia de viaje si no de servicios que exponen los proveedores como webservices.</p>
<p style="text-align: justify;">Como encaja BPEL en este escenario.</p>
<p style="text-align: justify;">Con BPEL podemos crear un solo servicio que reciba todos los parámetros necesarios para realizar la operación como los datos de la reservación y los datos de la tarjeta de crédito, con estos primero realizaremos la reservación del avión, luego reservaremos el hotel, cargaremos nuestra utilidad al cliente, Guardaremos el registro de la reservación y finalmente regresaremos al cliente la confirmación al cliente. A este proceso se le conoce como orquestar ya que toma el flujo de la ejecución y realiza las tareas de forma automática y en un orden especificado.</p>
<p style="text-align: justify;">Si bien esto te puede parecer algo que cualquier lenguaje pueda realizar la realidad es que BPEL esta diseñador para estos escenarios lo que permite una programación mucho mas rápida.</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/">Que es BPEL</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">473</post-id>	</item>
	</channel>
</rss>
