Que es un Schema en XML

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 para poder explotar al m谩ximo las ventajas que ofrece.

En este post hablaremos de los puntos mas importantes que debemos de tomar en cuenta para entenderlos.

 

ComplexType:聽Sirve para definir estructuras complejas donde podremos agrupas un conjunto de elementos u otros CompleType.

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.

ComplexType

ComplexTypeSource

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.

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.

Apartir de este ComplexType podremos generar instancias o elementos para poder ser reutilizadas en otros Schemas o ComplexType.

 

Element:聽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’s, Los elements son utilizados cuando queremos definir algo que solo lo utilizaremos una vez.

Element

ElementSource

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.

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

SimpleType:聽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.

SimpleTypeSimpleTypeSource

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.

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.

 

Attribute:聽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.

 

TargetNameSpace:聽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.

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.

 

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.

A continuaci贸n un XML Valido para el Element login

ValidXML

 

 

3 thoughts to “Que es un Schema en XML”

    1. Hola Juan Pablo.

      Los token son muy utilizados en sistemas donde la seguridad es algo imprescindible, un token es un dispositivo que tu tienes f铆sicamente como el que se utiliza para la banca electr贸nica. Estos token generan n煤meros cada cierto tiempo el cual puede ser validado por el servidor, de esta manera sabes que la persona que se esta autenticando a demas de que sabe su usuario y password tiene a la mano este dispositivo, por lo cual la seguridad se aumenta debido a que si alguna persona ajena intenta entrar con alg煤n usuario ya no le sera suficiente saber su usuario y password, si no que a demas tendr谩 que tener a la mano el token.

      Como nota interesante la seguridad la puedes dividir en tres cosas:
      Lo que uno sabe: Esto es lo que uno sabe de memoria como un usuario y password.
      Lo que uno tiene: Son dispositivos de autenticacion como el token o una tarjeta inteligente, las cuales tenemos que tener f铆sicamente para poder validar nuestra identidad.
      Lo que uno es: Estos son autentificaciones biometricas, como tu huella digital, la Iris de los ojos, reconocimiento facial u cualquier identificaci贸n que se realice por medio de la lectura de cualquier parte de tu cuerpo.

      Espero que esta informaci贸n aclare tu duda y si no, seguimos en contacto.

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *