Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 06 de Outubro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
108 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Tutorial - Transformando XML DataPacket (Formato de Pacote de Dados) em XML
Publicado por ActiveDelphi : Domingo, Fevereiro 19, 2006 - 10:07 GMT-3 (10595 leituras)
Comentários comentar   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Primeiramente vamos adicionar em um Form, dois botões, um Memo, um ClientDataset, um DataSource, um XMLTransform e um Grid...
Criar um arquivo (no bloco de notas, por exemplo) e salvar como country_dp.xml contendo a seguinte estrutura:

<?xml version="1.0" standalone="yes" ?>
- <DATAPACKET Version="2.0">
- <METADATA>
- <FIELDS>
<FIELD attrname="Name" fieldtype="string" WIDTH="24" />
<FIELD attrname="Capital" fieldtype="string" WIDTH="24" />
<FIELD attrname="Continent" fieldtype="string" WIDTH="24" />
<FIELD attrname="Area" fieldtype="r8" />
<FIELD attrname="Population" fieldtype="r8" />
</FIELDS>
<PARAMS DEFAULT_ORDER="1" PRIMARY_KEY="1" LCID="2057" />
</METADATA>
- <ROWDATA>
<ROW Name="Brazil" Capital="Brasilia" Continent="South America" Area="8511196" Population="150400000" />
<ROW Name="Cuba" Capital="Havana" Continent="North America" Area="114524" Population="10600000" />
</ROWDATA>
</DATAPACKET>


Colocar o ClientDataset acessando o XML pela propriedade FileName.

Informar no DataSource a propriedade Dataset para o componente ClientDataset.

Criar um arquivo no Bloco de Notas e salvar com o nome de Country_ToXml.xtr e adicionar a seguinte estrutura ao mesmo:

<XmlTransformation Version="1.0"><Transform Direction="ToXml" DataEncoding="ISO-8859-1"><SelectEach from="DATAPACKET\ROWDATA\ROW" dest="\Countries\Country"><Select from=&quot;@Name" dest="\Name"/><Select from=&quot;@Capital" dest="\Capital"/><Select from=&quot;@Continent" dest="\Continent"/><Select from=&quot;@Area" dest="\Area"/><Select from=&quot;@Population" dest="\Population"/></SelectEach></Transform><XmlSchema RootName="Countries"><![CDATA[<xs:schema xmlns:xs="http://www.w3.org/2000/10/XMLSchema"><xs:element name="Countries" type="CountriesType"/><xs:complexType name="CountriesType"><xs:sequence><xs:element name="Country" type="CountryType" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType><xs:element name="Country" type="CountryType"/><xs:complexType name="CountryType"><xs:sequence><xs:element name="Name" type="NameType"/><xs:element name="Capital" type="CapitalType"/><xs:element name="Continent" type="ContinentType"/><xs:element name="Area" type="AreaType"/><xs:element name="Population" type="PopulationType"/></xs:sequence></xs:complexType><xs:element name="Name" type="NameType"/><xs:simpleType name="NameType"><xs:restriction base="xs:string"/></xs:simpleType><xs:element name="Capital" type="CapitalType"/><xs:simpleType name="CapitalType"><xs:restriction base="xs:string"/></xs:simpleType><xs:element name="Continent" type="ContinentType"/><xs:simpleType name="ContinentType"><xs:restriction base="xs:string"/></xs:simpleType><xs:element name="Area" type="AreaType"/><xs:simpleType name="AreaType"><xs:restriction base="xs:string"/></xs:simpleType><xs:element name="Population" type="PopulationType"/><xs:simpleType name="PopulationType"><xs:restriction base="xs:string"/></xs:simpleType></xs:schema>]]></XmlSchema><CdsSkeleton><![CDATA[<DATAPACKET Version="2.0"><METADATA><FIELDS><FIELD attrname="Name" fieldtype="string" WIDTH="24"/><FIELD attrname="Capital" fieldtype="string" WIDTH="24"/><FIELD attrname="Continent" fieldtype="string" WIDTH="24"/><FIELD attrname="Area" fieldtype="r8"/><FIELD attrname="Population" fieldtype="r8"/></FIELDS><PARAMS DEFAULT_ORDER="1" PRIMARY_KEY="1" LCID="2057"/></METADATA><ROWDATA/></DATAPACKET>
]]></CdsSkeleton><XslTransform/><Skeleton><![CDATA[<?xml version="1.0"?>
<Countries><Country><Name></Name><Capital></Capital><Continent></Continent><Area></Area><Population></Population></Country></Countries>
]]></Skeleton></XmlTransformation>


Obs.: Esse arquivo foi criado no utilitário do Delphi, chamado XMLMapper na aba Tools, para maiores informações abrir o mesmo(Country_ToXml.xtr) neste programa.

No componente XMLTransform, propriedade TransformationFile, informar o arquivo Country_ToXml.xtr

No primeiro Botão Colocar o Caption como "Publicar XML" e no evento onclick o seguinte código:

XMLTransform.SourceXMLFile := 'country_dp.xml';
// associa o arquivo de dados de origem
Memo1.Text := XMLTransform1.Data;
// Exibe os dados convertidos de acordo com o formato definido no arquivo
//Country_ToXml.xtr definido no XMLMapper


No segundo Botão colocar o caption como "Salvar XML" e no evento onclick colocar o seguinte código:

(XMLTransform.ResultDocument as IDOMPersist).save(XMLTransform.xml);

Rodar e clicar no Publicar e posteriormente no salvar.

Ele vai gerar o XML no formato Comum, diferente do padrão (proprietário) do ClientDataset e salvar no arquivo XMLTransform.xml com um código como o abaixo:

<?xml version="1.0" ?>
- <Countries>
- <Country>
<Name>Brazil</Name>
<Capital>Brasilia</Capital>
<Continent>South America</Continent>
<Area>8511196</Area>
<Population>150400000</Population>
</Country>
- <Country>
<Name>Cuba</Name>
<Capital>Havana</Capital>
<Continent>North America</Continent>
<Area>114524</Area>
<Population>10600000</Population>
</Country>
</Countries>

 

Por: Fábio Corrêa da Cruz fbiocorrea@yahoo.com.br



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados