سؤال

أعتقد أنني بحاجة إلى DTD لتحديد المخطط وXSLT إذا كنت أرغب في عرضه في المتصفح وجعله يبدو "جميلًا".لكنني لست متأكدًا مما سأحتاجه أيضًا للحصول على مستند XML محدد جيدًا يمكن الاستعلام عنه باستخدام XQuery وعرضه في متصفح الويب.

هل كانت مفيدة؟

المحلول

لكي تكون وثيقة XML قابلة للاستعلام باستخدام XQquery، لا يلزمك تعريف DTD أو XSD.الغرض من DTD أو XSD هو تحديد البنية الصارمة لمستند XML والسماح بالتحقق من الصحة قبل الاستخدام.

تفسر المتصفحات الحديثة ملفات XML بشكل جيد للغاية وتظهر شجرة DOM.إذا كان التنسيق المحسن لـ XML لعرض المستعرض ضروريًا، فيجب عليك إنشاء ملف تحويل XSLT ثم إضافة توجيه إلى مستند XML الأصلي يشير إلى ملف XSLT.يختار المتصفح هذا التوجيه ويستخدم معالج XSLT المدمج للحصول على الإخراج الذي يتم تفسيره بعد ذلك بواسطة المتصفح.

معلومات.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>

نصائح أخرى

بالمعنى الدقيق للكلمة، لا تحتاج إلى أي شيء.يعمل XML، حتى بدون تعريف المخطط.

يساعد تعريف المخطط (في XSD أو RelaxNG أو DTD) الأدوات المختلفة التي تعمل مع XML، لأنها يمكنها التحقق من أن بنية XML تتوافق مع ما تريد.

تعد ترجمة XSLT إلى HTML أمرًا رائعًا إذا كان XML يحتوي على معلومات تريد الاطلاع عليها باستخدام المتصفح.ومع ذلك، فهو بعيد كل البعد عن الضرورة.

للاستعلام عن XML باستخدام XPath أو XQuery، تحتاج إلى معالج XPath أو XQuery.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top