Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Proponer
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Nick


Contraseña


Nuevo usuario


English

Delphi: AjpdSoft Esquema XML Tree
AjpdSoft


Añadida a la sección Descargas la aplicación AjpdSoft Esquema XML Tree: abre un fichero de esquema de XML (con extensión .xsd) y lo muestra en forma de árbol, además, si el fichero XSD tiene algún fallo de sintaxis mostrará un mensaje de error indicando la línea errónea. Liberamos el código fuente - source code en Borland Delphi 6 100% Open Source.



Algunas definiciones previas: DTD, Schema XML, XSD, XML

DTD (Definición de Tipo de Documento)

Una definición de tipo de documento (DTD ó Document Type Definition) es una descripción de estructura y sintaxis de un documento XML o SGML. Su función es la de describir el formato de datos, para usar un formato común y mantener la consistencia entre todos los documentos que utilicen la misma DTD. De esta forma, dichos documentos, pueden ser validados, puesto que se conoce la estructura de los elementos y la descripción de los datos que trae consigo cada documento, y pueden además compartir la misma descripción y forma de validación dentro de un grupo de trabajo que usa el mismo tipo de información.

La DTD define los tipos de elementos, atributos y entidades permitidas, y puede expresar algunas limitaciones para combinarlos. Una DTD puede residir en un fichero externo, o bien, puede estar contenido en el propio documento XML, como parte de su declaración de tipo de documento.

 

Schema XML ó Esquema XML

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.

El término "XML Schema" es utilizado con varios significados dentro del mismo contexto de descripción de documentos, y es importante tener en cuenta las siguientes consideraciones:

1. "XML Schema" ó "Esquema XML" es el nombre oficial otorgado a la recomendación del W3C, que elaboró el primer lenguaje de esquema separado de XML (la definición de tipo de documentos (DTD) forma parte de XML).
2. Es habitual referirse a los esquemas como "XML schema" de forma genérica, pero se recomienda utilizar el término “documento esquema” (schema document) o "definición de esquema" (schema definition), y reservar “XML Schema” para la denominación de este lenguaje específico.
3. Aunque genéricamente se utilice "XML schemas", XSDL (XML Schema Definition Language) es el nombre técnico de los lenguajes de esquema de XML como:

  • Definición de Tipo de Documento (DTD).
  • XML Schema.
  • Document Schema Definition Languages (DSDL).
  • Document Definition Markup Language (DDML).
  • Document Structure Description (DSD).
  • SGML.
  • Schema for Object-Oriented XML (SOX).

XML Schema es un lenguaje de esquema escrito en XML, basado en la gramática y pensado para proporcionar una mayor potencia expresiva que las DTD, menos capaces al describir los documentos a nivel formal.

Los documentos esquema (normalmente con extensión .xsd de XML Schema Definition ó XSD) se concibieron como una alternativa a las DTD, más complejas, intentando superar sus puntos débiles y buscar nuevas capacidades a la hora de definir estructuras para documentos XML. El principal aporte de XML Schema es el gran número de tipos de datos que incorpora. De esta manera, XML Schema aumenta las posibilidades y funcionalidades de aplicaciones de procesado de datos, incluyendo tipos de datos complejos como fechas, números y strings.

 

 

Características más importantes de AjpdSoft Esquema XML Tree

  • Aplicación de muy sencillo manejo, muy fácil e intuitiva, todas las opciones están en una misma ventana.
  • La aplicación ha sido desarrollada en el lenguaje de programación Borland Delphi 6.
  • No necesita instalación, es suficiente con ejecutar el fichero xsdTree.exe.
  • Muestra en forma de árbol un esquema XML.
  • Abre ficheros de tipo XSD.
  • Si el fichero XSD (esquema XML) no tiene una sintaxis correcta, mostrará un error indicando la línea donde se haya encontrado el error de sintaxis.

 

AjpdSoft Esquema XML Tree en funcionamiento

Ejecutaremos la aplicación haciendo doble click sobre el fichero xsdTree.exe, se abrirá AjpdSoft Esquema XML Tree, pulsaremos en el botón "..." para seleccionar un archivo XSD de esquema XML:

AjpdSoft Esquema XML Tree en funcionamiento

Seleccionaremos el archivo de esquema XSD a abrir:

AjpdSoft Esquema XML Tree en funcionamiento

Pulsaremos el botón "Árbol":

AjpdSoft Esquema XML Tree en funcionamiento

Si la sintaxis del archivo XSD es correcta, mostrará el contenido en forma de árbol:

AjpdSoft Esquema XML Tree en funcionamiento

 

Detección de error de sintaxis en archivo de esquema XML XSD

La aplicación AjpdSoft Esquema XML Tree es capaz de detectar si un fichero de esquema XSD tiene una sintaxis incorrecta, de ser así al pulsar en "Árbol" mostrará un mensaje de error indicando la línea donde ha encontrado el error de sintaxis, por ejemplo:

---------------------------
AjpdSoft XSD Tree
---------------------------
La etiqueta de fin 'xs:complexType' no coincide con la etiqueta de inicio 'xs:sequence'.

Line: 461

.
---------------------------
Aceptar
---------------------------

AjpdSoft Esquema XML Tree en funcionamiento

Esta opción es útil para saber de una manera rápida si un fichero XSD tiene una sintaxis correcta.

 

 

Instalación y configuración de AjpdSoft Esquema XML Tree

AjpdSoft Esquema XML Tree no requiere de ningún tipo de instalación, es suficiente con ejecutar el fichero xsdTree.exe, es el único fichero nesario, el resto de ficheros sólo son útiles para desarrolladores de software que quieran realizar alguna modificación.

 

Datos técnicos de AjpdSoft Esquema XML Tree

Esta aplicación ha sido desarrollada en el lenguaje de programación Borland Delphi 6.

Si eres desarrollador de software y te has registrado en nuestra web (si aún no te has registrado puedes hacerlo desde aquí gratuitamente) puedes descargar el código fuente 100% Open Source (completo y totalmente gratuito) en Borland (ahora Codegear) Delphi 6:

AjpdSoft Esquema XML Tree (Código fuente Open Source en Borland Delphi 6)

AjpdSoft Esquema XML Tree ha sido testeada y funciona correctamente en equipos con sistemas operativos: Windows 98, Windows XP, Windows 2000 Server, Windows Server 2003, Windows Vista y Windows 7 (Seven).

A quién va dirigida AjpdSoft Esquema XML Tree

La aplicación AjpdSoft Esquema XML Tree va dirigida a usuarios y desarrolladores que necesiten un ejemplo de apertura de fichero de esquema XML, para comprobar si el fichero está bien formado o para ver, de forma rápida, su estructura.

También puede ser útil para estudiantes que tengan que realizar algún proyecto de ejemplo de trabajo con esquemas XML.

Anexo

  • Código fuente (source code) de la aplicación completa:

Unidad "UnidadMenuPrincipal.pas":

unit UnidadMenuPrincipal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, xmldom, XMLIntf, msxmldom, XMLDoc, shellapi;

type
  TformMenuPrincipal = class(TForm)
    GroupBox1: TGroupBox;
    bSel: TBitBtn;
    txtXSD: TEdit;
    arXSD: TTreeView;
    btArbol: TBitBtn;
    dlAbrir: TOpenDialog;
    LWEB: TLabel;
    procedure btArbolClick(Sender: TObject);
    procedure obtenerArbolXSD (nodoXML : IXMLNode; nodoArbol : TTreeNode);
    procedure bSelClick(Sender: TObject);
    procedure LWEBClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  formMenuPrincipal: TformMenuPrincipal;

implementation

{$R *.dfm}

procedure TformMenuPrincipal.obtenerArbolXSD (nodoXML : IXMLNode; nodoArbol : TTreeNode);
var
  I: Integer;
  nuevoNodoArbol : TTreeNode;
  nodoTexto : string;
  atributoNodo : IXMLNode;
begin
  // No tener en cuenta nodos de texto y especiales
  if nodoXML.NodeType = ntElement then
  begin
    //Añadir el propio nodo
    nodoTexto := nodoXML.NodeName;
    if nodoXML.IsTextElement then
      nodoTexto := nodoTexto + ' = ' + nodoXML.NodeValue;
    nuevoNodoArbol := arXSD.Items.AddChild(nodoArbol, nodoTexto);

    //Añadir atributos
    for I := 0 to nodoXML.AttributeNodes.Count - 1 do
    begin
      atributoNodo := nodoXML.AttributeNodes.Nodes[I];
      arXSD.Items.AddChild(nuevoNodoArbol,
          '[' + atributoNodo.NodeName + ' = "' + atributoNodo.Text + '"]');
    end;

    // Añade cada nodo secundario (hijo)
    if nodoXML.HasChildNodes then
      for I := 0 to nodoXML.ChildNodes.Count - 1 do
        obtenerArbolXSD (nodoXML.ChildNodes.Nodes [I], nuevoNodoArbol);
  end;
end;

procedure TformMenuPrincipal.btArbolClick(Sender: TObject);
var
  xmlDoc : TXMLDocument;
begin
  if FileExists(txtXSD.Text) then
  begin
    arXSD.Visible := false;
    arXSD.Items.Clear;
    xmlDoc := TXMLDocument.Create(Self);
    xmlDoc.LoadFromFile(dlAbrir.FileName);
    obtenerArbolXSD (xmlDoc.DocumentElement, nil);
    arXSD.FullExpand;
    arXSD.Visible := true;    
  end
  else
    MessageDlg('El fichero XSD seleccionado no existe.', mtInformation, [mbok], 0);
end;

procedure TformMenuPrincipal.bSelClick(Sender: TObject);
begin
  dlAbrir.InitialDir := ExtractFilePath (Application.ExeName);
  if dlAbrir.Execute then
    txtXSD.Text := dlAbrir.FileName;
end;

procedure TformMenuPrincipal.LWEBClick(Sender: TObject);
begin
  ShellExecute(Handle, Nil, PChar('http://www.ajpdsoft.com'),
      Nil, Nil, SW_SHOWNORMAL);
end;

end.



 

Artículos relacionados

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft.


Anuncios


Enviado el Jueves, 15 julio a las 13:27:11 por ajpdsoft
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+