0

単純な xml ドキュメントがあります。しかし、DTD ファイルも使用する必要があります。しかし、追加しても追加しなくても、何も変わりません。ファイルは私の xml ページには影響しません。

<?xml version="1.0"?>
<?xml-stylesheet  type="text/css" href="stylesheet.css"?>
<!DOCTYPE software SYSTEM "software.dtd">
<software>
<application>
    <suite>
        <office>
            <app>
                <title>Microsoft Office</title>
                <developer>Microsoft</developer>
                <os>Microsoft Windows</os>
                <license>Trialware</license>
            </app>
            <app>
                <title>iWork</title>
                <developer>Apple</developer>
                <os>Mac OS</os>
                <license>Proprietary</license>
            </app>
            <app>
                <title>Open Office</title>
                <developer>StarOffice,OpenOffice.org,Apache OpenOffice</developer>
                <os>Linux, Mac OS, Microsoft Windows</os>
                <license>LGPL,Apache License</license>
            </app>
        </office>
    </suite>
</application>  

そしてここに私の.dtdファイル

<!DOCTYPE software
[
<!ELEMENT software(application)>
<!ELEMENT application(suite)>
<!ELEMENT suite(office)>
<!ELEMENT office(app)>
<!ELEMENT app(title,developer,os,license)>
<!ELEMENT title(#PCDATA)>
<!ELEMENT developer(#PCDATA)>
<!ELEMENT os(#PCDATA)>
<!ELEMENT license(#PCDATA)>
] 
>

このようにsthに変更すると、xmlページにはまだすべてが正常に表示されます。

<!DOCTYPE software
[
<!ELEMENT look ANY>
] 
>

どうしたの?

4

2 に答える 2

1

XML パーサーが検証を実行するかどうかは、呼び出し方によって異なります。DTD を持っていても検証を行わない可能性は十分にあります (そして一般的です)。使用しているパーサーと、それを呼び出す方法を示す必要があります。

于 2013-02-26T22:06:00.563 に答える
0

DTDを使用して、ブラウザーでXMLファイルを表示するときに表示される要素を制限しようとしている場合、それはDTDの目的ではなく、機能しません。DTDは、ドキュメントの基本的な検証用です。

XMLスタイルシートまたは(できれば)XSLTを使用して、表示目的でXMLを変換できます。

于 2013-02-26T22:44:14.060 に答える