Scripts PHP DOM, XSLT e XML Schema: Guia Prático de Exercícios
Classificado em Computação
Escrito em em
português com um tamanho de 190,59 KB
1. Criar um ficheiro XML com PHP DOM
Apresente um script PHP DOM que crie um ficheiro XML (com o nome “ex1.xml”) com o conteúdo apresentado na Figura 1.
// Elemento raiz
$shiporder = $dom->createElement('shiporder');
$shiporder->setAttribute('orderid', '889923');
$dom->appendChild($shiporder);
// Elemento orderperson
$orderperson = $dom->createElement('orderperson', 'John Smith');
$shiporder->appendChild($orderperson);
// Elemento shipto
$shipto = $dom->createElement('shipto');
$shiporder->appendChild($shipto);
// Sub-elementos de shipto
$shipto->appendChild($dom->createElement('name', 'Ola Nordmann'));
$shipto->appendChild($dom->createElement('address', 'Langgt 23'));
$shipto->appendChild($dom->createElement('city', '4000 Stavanger'));
$shipto->appendChild($dom->createElement('country', 'Norway'));
// Elementos item
$item1 = $dom->createElement('item');
$item1->appendChild($dom->createElement('title', 'Empire Burlesque'));
$item1->appendChild($dom->createElement('note', 'Special Edition'));
$item1->appendChild($dom->createElement('quantity', '12'));
$item1->appendChild($dom->createElement('price', '10.90'));
$shiporder->appendChild($item1);
$item2 = $dom->createElement('item');
$item2->appendChild($dom->createElement('title', 'Hide your heart'));
$item2->appendChild($dom->createElement('quantity', '1'));
$item2->appendChild($dom->createElement('price', '9.90'));
$shiporder->appendChild($item2);
// Salvar XML
$dom->save('ex1.xml');
?>
2. Função e resultado do XSLT
Atendendo ao ficheiro XSLT apresentado na Figura 2, diga para que serve e qual será o resultado se aplicado ao ficheiro apresentado na Figura 1.
// Resposta 2: Função e Resultado do XSLT
/*
Função:
O ficheiro XSLT transforma o XML da Figura 1 em uma página HTML formatada. Ele filtra os pedidos com quantidade maior que 10 e exibe as informações relevantes em uma tabela HTML.
Resultado:
Tabela HTML com as seguintes colunas:
- orderperson: Nome da pessoa que fez o pedido.
- name: Nome do destinatário.
- address: Endereço do destinatário.
- city: Cidade do destinatário.
- title: Título do item.
- quantity: Quantidade do item.
Somente itens com quantidade superior a 10 aparecerão nesta tabela.
*/
3. Carregar e visualizar o XML com XSLT em PHP
Escreva um script PHP que carregue e visualize o ficheiro XML apresentado na Figura 1 associado ao ficheiro XSLT apresentado na Figura 2.
$xml = new DOMDocument;
$xml->load('ex1.xml');
$xsl = new DOMDocument;
$xsl->load('transform.xslt');
$proc = new XSLTProcessor;
$proc->importStylesheet($xsl);
echo $proc->transformToXML($xml);
?>
4. Estrutura lógica (XML Schema) para rent-a-car
Apresente a estrutura lógica (XML Schema) e respectivo XML com “alguns” dados para a utilização numa rent-a-car de automóveis. No modelo ER usaríamos, pelo menos, as seguintes entidades/relações: dados_cliente, dados_viatura, contrato_aluguer. Use, pelo menos, xs:element, xs:attribute required, xs:restriction e order indicator choice.
5. DTD correspondente ao XML
Crie o DTD correspondente ao XML do exercício anterior.
6. Output do script ex6.php
Considerando as figuras seguintes, indique qual será o output do script ex6.php.