Pergunta

Eu acredito que eu preciso de uma DTD para definir o esquema e um XSLT se eu quiser exibi-lo em um navegador e tem que olhar "bonito".Mas eu não tenho certeza o que mais eu precisaria ter uma bem definida documento XML que pode ser consultado usando XQuery e exibidos em um navegador da web.

Foi útil?

Solução

Para um documento XML a ser consultáveis usando XQquery não é necessário definir um DTD ou XSD.Com o propósito de DTD ou XSD é definir a rigorosa estrutura de um documento XML e para permitir a validação antes do uso.

Navegadores modernos interpretar arquivos XML-se muito bem e mostrar uma árvore DOM.Se formatação avançada de XML para a exibição do navegador é necessário você precise criar uma transformação XSLT arquivo e, em seguida, adicionar uma diretiva para o documento XML original apontando para o arquivo XSLT.O navegador pega essa directiva e usa o built-in processador XSLT para obter a saída que é então interpretada pelo navegador.

info.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="info.xslt"?>
<info>
    <appName>My App</appName>
    <version>1.0.129</version>
    <buildTime>10-09-2008 12:44:03</buildTime>
</info>

informações.xslt

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <head>
                <title>Application</title>
                <style type="text/css">
                    body { font-family: Lucida Console; }
                    #outer { text-align: left; }
                    #name {
                        font-weight: bold;
                        font-size: 1.2em;
                    }
                    #logo {
                        float: left;
                        padding-right: 20px;
                        padding-bottom: 200px;
                    }
                </style>
            </head>
            <body>
                <xsl:apply-templates select="info" />
            </body>
        </html>
    </xsl:template>

    <xsl:template match="info">
        <img id="logo" src="image.png" />
        <div id="outer">
            <div id="name">
                <xsl:value-of select="appName"/>
            </div>
            <div id="version">
                <xsl:value-of select="version"/>
            </div>
            <div id="date">
                <xsl:value-of select="buildTime"/>
            </div>
        </div>
    </xsl:template>
</xsl:stylesheet>

Outras dicas

Estritamente falando, você precisa de nada.XML, mesmo sem uma definição de esquema, funciona.

Uma definição de esquema (em XSD, RelaxNG ou DTD) de ajuda de várias ferramentas que trabalhar com o XML, porque eles podem verificar que a estrutura do XML está de acordo com o que você deseja.

Um XSLT tradução HTML é muito bom se o XML contém informações que você precisa olhar com um navegador.Isso está longe de ser necessário, no entanto.

Para consultar o XML com o XPath ou XQuery, você precisa de um XPath ou XQuery processador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top