2008-09-15 3 views
0

Я считаю, что мне нужно DTD для определения схемы и XSLT, если я хочу отобразить ее в браузере и выглядеть «красиво». Но я не уверен, что еще мне понадобится иметь четко определенный XML-документ, который можно запросить с помощью XQuery и отобразить в веб-браузере.Что мне нужно для управления файлами XML?

ответ

1

Для того чтобы XML-документ запрашивался с помощью XQquery, вам не нужно определять DTD или XSD. Цель DTD или XSD - определить строгую структуру документа XML и разрешить проверку перед использованием.

Современные браузеры прекрасно интерпретируют XML-файлы и показывают дерево DOM. Если требуется форматирование XML для отображения браузера, вам необходимо создать файл преобразования XSLT, а затем добавить директиву в исходный XML-документ, указывающий на файл XSLT. Браузер выбирает эту директиву и использует встроенный XSLT-процессор для получения вывода, который затем интерпретируется браузером.

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> 

info.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> 
2

Строго говоря, вам ничего не нужно. XML, даже без определения схемы, работает.

Определение схемы (в XSD, RelaxNG или DTD) помогает различным инструментам, которые работают с XML, потому что они могут проверить, соответствует ли структура XML тому, что вы хотите.

Перевод XSLT в HTML хорош, если XML содержит информацию, которую вы хотите просмотреть с помощью браузера. Однако это далеко не обязательно.

Чтобы запросить XML с помощью XPath или XQuery, вам нужен процессор XPath или XQuery.

Смежные вопросы