Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.css |
...
Função: XmlFVldSch
...
Realiza a validação de um arquivo XML utilizando um XSD (XML Schema Definition).
Sintaxe
Bloco de código |
---|
lRetorno := XmlFVldSch( |
...
<cXML>, <cXSD>, <cError>, <cWarning> ) |
Parâmetros
...
Nome | Tipo | Descrição | Obrigatório | Referência |
---|
...
cXML |
...
Caractere | Indica o arquivo XML |
...
que será validado |
...
X |
...
cXSD |
...
Caractere | Indica o arquivo XSD |
...
utilizado na validação do |
...
XML |
...
X | ||
cError |
...
Caractere | Indica a variável que será preenchida com a descrição do erro |
...
observado durante a validação do XML | X | X |
cWarning |
...
Caractere | Indica a variável que será preenchida com a descrição do |
...
alerta observado durante a validação do XML | X | X |
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRetorno |
...
Lógico | Retorna verdadeiro (.T.) |
...
caso o arquivo XML |
...
for validado a partir do XSD e, caso contrário, retorna falso (.F.) |
...
XML - Sigla de Extensible Markup Language, o XML é uma linguagem baseada em tags semelhante ao HTML. Sua principal característica é a extensibilidade. Quem emite um documento XML pode criar tags personalizadas, que são definidas num documento anexo, que tem extensão XSD.
XSD - Sigla de XML Schema Definition. Arquivo associado a um documento XML que descreve e valida os dados no documento, permitindo a criação de tipos de dados personalizados e regras específicas para os mesmos.
Função disponível a partir da build 7.00.070910P.
#INCLUDE "TOTVS.CH"#INCLUDE "XMLXFUN.CH"User Function ExeXMLXSD() Local cError := "" Local cWarning := "" Local cXML := "\Teste1.xml" Local cXMLInvalid := "\Teste2.xml" Local cXSD := "\Teste.xsd" Local oXml := NIL Local oXsd := NIL //Gera o Objeto XML oXml := XmlParser( GeraXML(), "_", @cError, @cWarning ) //Gera o Objeto XSD oXsd := XmlParser( GeraXSD(), "_", @cError, @cWarning ) // Tranforma o Objeto XML em arquivo XML SAVE oXml XMLFILE cXML // Tranforma o Objeto XSD em arquivo XML SAVE oXsd XMLFILE cXsd //Gera o Objeto XML Invalido oXml := XmlParser( GeraXMLInvalid(), "_", @cError, @cWarning ) // Tranforma o Objeto XML invalido em arquivo XML SAVE oXml XMLFILE cXMLInvalid // Valida o arquivo XML com o XSD if XmlFVldSch ( cXML, cXSD, @cError, @cWarning ) Alert ("XML Valido") else Alert ("XML Invalido. Erro: "+ cError+" Warning "+ cWarning) endif // Valida o arquivo XML com o XSD if XmlFVldSch ( cXMLInvalid, cXSD, @cError, @cWarning ) Alert ("XML Valido") else Alert ("XML Invalido. Erro: "+ cError+" Warning "+ cWarning) endifReturn oXml// função para gerar uma string contendo um xmlStatic Function GeraXML()Local cScript := '<?xml version="1.0" encoding="UTF-8"?>'cScript += "<pedido>"cScript += " <NomeCliente>Microsiga Software S/A</NomeCliente>"cScript += " <Endereco>Av. Braz Leme</Endereco>"cScript += " <Numero>1361</Numero>"cScript += " <Data>22-03-2005</Data>"cScript += " <Itens>"cScript += " <Item>"cScript += " <Produto>Prothues</Produto>"cScript += " <Quantidade>1</Quantidade>"cScript += " <Preco>100.00</Preco>"cScript += " </Item>"cScript += " <Item>"cScript += " <Produto>ERP</Produto>"cScript += " <Quantidade>2</Quantidade>"cScript += " <Preco>50.00</Preco>"cScript += " </Item>"cScript += " </Itens>"cScript += "</pedido>"Return cScript// função para gerar uma string contendo um xml invalidoStatic Function GeraXMLInvalid()Local cScript := '<?xml version="1.0" encoding="UTF-8"?>'cScript += "<pedido>"cScript += " <NomeCliente>Microsiga Software S/A</NomeCliente>"cScript += " <Endereco>Av. Braz Leme</Endereco>"cScript += " <Numero>1361</Numero>"cScript += " <Data>22-03-2005</Data>"cScript += " <Itens>"cScript += " <Item>"cScript += " <Produto>Prothues</Produto>"cScript += " <Quantidade>ABC</Quantidade>" //quantidade com conteudo invalidocScript += " <Preco>100.00</Preco>"cScript += " </Item>"cScript += " <Item>"cScript += " <Produto>ERP</Produto>"cScript += " <Quantidade>2</Quantidade>"cScript += " <Preco>50.00</Preco>"cScript += " </Item>"cScript += " </Itens>"cScript += "</pedido>"Return cScript// função para gerar uma string contendo um xsdStatic Function GeraXSD()Local cScript := '<?xml version="1.0" encoding="utf-16"?>'cScript += '<xs:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns="" id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema">'cScript += ' <xs:element name="pedido">'cScript += ' <xs:complexType>'cScript += ' <xs:sequence>'cScript += ' <xs:element minOccurs="0" name="NomeCliente" type="xs:string" />'cScript += ' <xs:element minOccurs="0" name="Endereco" type="xs:string" />'cScript += ' <xs:element minOccurs="0" name="Numero" type="xs:string" />'cScript += ' <xs:element minOccurs="0" name="Data" type="xs:string" />'cScript += ' <xs:element minOccurs="0" maxOccurs="unbounded" name="Itens">'cScript += ' <xs:complexType>'cScript += ' <xs:sequence>'cScript += ' <xs:element minOccurs="0" maxOccurs="unbounded" name="Item">'cScript += ' <xs:complexType>'cScript += ' <xs:sequence>'cScript += ' <xs:element minOccurs="0" name="Produto" type="xs:string" />'cScript += ' <xs:element minOccurs="0" name="Quantidade" type="xs:integer" />'cScript += ' <xs:element minOccurs="0" name="Preco" type="xs:float" />'cScript += ' </xs:sequence>'cScript += ' </xs:complexType>'cScript += ' </xs:element>'cScript += ' </xs:sequence>'cScript += ' </xs:complexType>'cScript += ' </xs:element>'cScript += ' </xs:sequence>'cScript += ' </xs:complexType>'cScript += ' </xs:element>'cScript += '</xs:schema>'Return cScript
...
e preenche as variáveis cError e cWarning quando não for possível validar o XML. |
Observações
- Função disponibilizada a partir do build 7.00.070910p.
- Essa função somente acessa arquivos e diretórios localizados a partir do rootPath.
Exemplos
Exemplo
Toggle Cloak | ||
---|---|---|
|
Cloak | ||
---|---|---|
| ||
Arquivos utilizados no exemplo: |