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

S0AmwAAAABJRU5ErkJggg==

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.
+lgW0SAAAAAElFTkSuQmCC

Entradas relacionadas: