Explicação do Script PHP DOM e Conteúdo do Ficheiro ex2.xsd

Computação1,79 MB

23 de Fevereiro de 2023

Explique o seguinte script PHP DOM e apresente o conteúdo do ficheiro “ex2.xsd”.

TrLGMuyNl5D9brvqppfiDpmoeqc0OyqOmbBSZn8P1l8LdS7WQ+XAAAAAElFTkSuQmCC

O código apresentado, com recurso à biblioteca DOM, cria um ficheiro XML Schema (XSD) que define a estrutura lógica de uma tabela: Tabela_cliente, com os campos: Nome_cliente, Morada_cliente, tlm_cliente.

Explicação exaustiva:

$dom = new DOMDocument();

$dom->formatOutput = true;

•  Cria um novo documento DOM para gerar o XSD.

•  Ativa a formatação para que o XML gerado seja mais legível.

$root = $dom->createElement('xs:element');

$root->setAttribute('name','Tabela_cliente');

$dom->appendChild($root);

•  Cria o elemento raiz <xs:element> com o atributo name="Tabela_cliente". Este será o elemento principal da tabela de clientes.

•  Adiciona este elemento ao documento.

$root1 = $dom->createElement('xs:element');

$root1->setAttribute('name','Nome_cliente');

Cria o elemento <xs:element> com o atributo name="Nome_cliente". Este representará o campo do nome do cliente.

$ctsptype = $dom->createElement('xs:simpleType');
$ctrestrition = $dom->createElement('xs:restriction');
$ctrestrition->setAttribute('base','xs:string');
$ctmaxlen = $dom->createElement('xs:maxLength');
$ctmaxlen->setAttribute('value',"100");

•  Define um tipo simples (xs:simpleType) para o elemento Nome_cliente.

•  Adiciona uma restrição (xs:restriction) para que o valor do nome seja baseado no tipo xs:string (texto).

•  Aplica uma restrição adicional para limitar o comprimento máximo a 100 caracteres.

$ctrestrition->appendChild($ctmaxlen);
$ctsptype->appendChild($ctrestrition);
$root1->appendChild($ctsptype);

•  Adiciona a restrição de comprimento (<xs:maxLength>) ao tipo simples (<xs:restriction>).

•  Adiciona o tipo simples completo ao elemento Nome_cliente.


$root->appendChild($root2);

$root->appendChild($root3);

Adiciona os elementos Morada_cliente e tlm_cliente à raiz (Tabela_cliente).

Apresente o conteúdo do ficheiro “ex2.xsd”.

xcrn+C06BS0AAAAASUVORK5CYII=

H9qjKY1PZLFdAAAAAElFTkSuQmCC

Crie um DTD para representar a estrutura lógica do exercício 2.

HyEDeiK+PSLjAAAAAElFTkSuQmCC

Apresente um ficheiro XSLT, tendo como base o ficheiro do exercício 2, de forma que apenas sejam visualizados todos os clientes cujo nome comece por “José” e tenham a morada em “Castelo Branco”.

A4e8+hq4wLF9AAAAAElFTkSuQmCC

Crie um Complex Element para ser usado na definição da tag “cliente” do exercício 2.

AXIkniEuu1kYAAAAAElFTkSuQmCC

Resultado será:

A5CbH+0PKRGqAAAAAElFTkSuQmCC

Apresente a estrutura lógica (XML Schema) e respectivo XML com “alguns” dados para a utilização numa loja sapataria online. No modelo ER usaríamos, pelo menos, as seguintes entidades: produto, tipo_produto, cliente, encomenda. Use, pelo menos, xs:element, xs:attribute required, xs:restriction e order indicator choice.

Estrutura Lógica (XML Schema - XSD)



Exemplo de XML


        <id_tipo>1</id_tipo>

        <descricao>Calçado</descricao>



        <id_produto>101</id_produto>

        <nome>Botas de Couro</nome>

        <preco>89.99</preco>

        <qt_existente>50</qt_existente>

        <tipo>1</tipo>



        <id_cliente>201</id_cliente>

        <nome_cliente>Maria Oliveira</nome_cliente>

        <email>[email protected]</email>

        <morada>Avenida da Liberdade, 100</morada>

        <nif>987654321</nif>



        <id_encomenda>301</id_encomenda>

        <id_cliente>201</id_cliente>


            <produto>101</produto>


        <valor_total>89.99</valor_total>



Baixar

PDF Word HTML