Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

Versão 1 Próxima »

Função: XmlFVldSch

Executa a validação de um arquivo XML com relação a um arquivo XSD (Schema).

XmlFVldSch ( < cXMLPath>, < cSchemaPath>, < cError>, < cWarning> ) --> lRetorno

NomeTipoDescriçãoObrigatórioReferência
cXMLPathCaracterIndica o arquivo XML com o path que será validado. X
cSchemaPathCaracterIndica o arquivo XSD com o path para validação do arquivo XML. X
cErrorCaracterCaso ocorra algum erro durante a validação do arquivo XML, a variável será preenchida com a descrição do erro ocorrido. X
cWarningCaracterCaso ocorra algum alerta de 'warning' durante a validação do arquivo XML, a variável será preenchida com a descrição do 'warning' ocorrido. X
    lRetorno(logico)
  • Retorna verdadeiro (.T.) se o arquivo XML é válido. Caso contrário, retorna falso (.F.) se o arquivo XML não é válido.

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
Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10

  • Sem rótulos