Á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: XmlSVldSch

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

XmlSVldSch ( < cXML>, < cSchemaPath>, < @cError>, < @cWarning> ) --> lRet

NomeTipoDescriçãoObrigatórioReferência
cXMLCaracterIndica o valor XML como string que será validado, pode ser passado uma variável string com conteúdo XML. X
cSchemaPathCaracterIndica o arquivo XSD com 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 X
cWarningCaracterCaso ocorra algum alerta 'Warning' durante validação do arquivo XML, a variável será preenchida com a descrição do 'Warning' ocorrido. X X
    lRet(logico)
  • Retorna verdadeiro (.T.), se o XML for válido, caso contrário, retorna falso (.F.).

XML - 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 - 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.

 

Importante
Função disponível a partir da build 7.00.070910P.

 

#INCLUDE "TOTVS.CH"#INCLUDE "XMLXFUN.CH"User Function ExeXMLSXSD()	Local cError   := ""	Local cWarning := ""		Local cXSD := "\Teste.xsd"	Local cXml := ""		//Gera o Objeto XSD	oXsd := XmlParser( GeraXSD(), "_", @cError, @cWarning )	// Tranforma o Objeto XSD em arquivo XML  SAVE oXsd XMLFILE cXsd  cXml := GeraXML()    // Valida o arquivo XML com o XSD  if XmlSVldSch ( cXml, cXSD, @cError, @cWarning )    Alert ("XML Valido")  else    Alert ("XML Invalido. Erro: "+ cError+" Warning "+ cWarning)  endif  cXml := GeraXMLInvalid()  // Valida o arquivo XML com o XSD  if XmlSVldSch ( cXml, 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