[英]Reference External DTD file
我有一個XML文件,CSS文件和一個DTD文件。 我希望當我對dtd文件的引用無效時,即將zzz添加到名稱中,如下面xml文件中所示,當我嘗試在Google Chrome中打開時會出現錯誤。 我沒有收到錯誤? 如果我編輯dtd文件並將文本zzz添加到單詞Body(如圖所示),則同樣適用 - 打開xml文件時應該給我一個錯誤。 我錯過了什么嗎? 所有文件都在同一目錄中。 css文件非常完美。
XML文件
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="Style.css"?>
<!DOCTYPE Main SYSTEM "Definitionzzz.dtd">
<Main xmlns:html="http://www.w3.org/1999/xhtml">
<Heading>
Important text
</Heading>
<Newline></Newline>
<Body>
Important text
</Body>
<Newline></Newline>
<Heading>
Important text
</Heading>
<Newline></Newline>
<Body>
Important text
</Body>
<Newline></Newline>
</Main>
DTD文件
<!--DTD syntax-->
<!DOCTYPE Main
[
<!ELEMENT Main (Heading,Body,Newline,Bullet)>
<!ELEMENT Heading (#PCDATA)>
<!ELEMENT Bodyzzz (#PCDATA)>
<!ELEMENT Newline (#PCDATA)>
<!ELEMENT Bullet (#PCDATA)>
]>
CSS文件
/* CSS For headings */
Main
{
border-radius: 5px;
padding: 0;
margin: 0;
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
overflow: auto;
}
Heading
{
color: #000000;
font-size: 20pt;
text-align: center;
margin-left:15px;
text-decoration:underline;
}
/* CSS For Body */
Body
{
color: #000000;
font-size: 10pt;
}
/* CSS For Bullets */
Bullet
{
color: #000000;
font-size: 15pt;
list-style-type: bullet;
left: 30px;
margin-left:30px;
}
/* CSS For Making a new line */
Newline
{
display:block
}
/* CSS For Weblinks */
a:link:after, a:visited:after
{
content:attr(href); /*displays the actual URL*/
font-size:20pt;
display:block; /*show URLs on a separate line*/
}
除了檢查XML是否格式正確 (即,它完全是XML)之外,Web瀏覽器不進行標記驗證。 他們甚至不讀DTD。
要驗證XML文檔,您需要一個XML驗證器。 一個笨拙的可能性是W3C標記驗證器 。 雖然它在很多方面都是面向HTML的,但它有一個SGML和XML驗證器作為基礎,你可以在XML文檔上使用它。 您需要將DTD放在Web服務器上,以便可以通過URL引用它,或將其包含在XML文檔中。 請注意,外部DTD文件不應該在聲明周圍包含<!DOCTYPE Main [...]>
包裝器,因為它只屬於DTD嵌入在XML文檔中的情況,例如
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="Style.css"?>
<!DOCTYPE Main
[
<!ELEMENT Main (Heading,Body,Newline,Bullet)>
<!ELEMENT Heading (#PCDATA)>
<!ELEMENT Bodyzzz (#PCDATA)>
<!ELEMENT Newline (#PCDATA)>
<!ELEMENT Bullet (#PCDATA)>
]>
<Main xmlns:html="http://www.w3.org/1999/xhtml">
...
順便說一下,即使沒有zzz
,文檔也是無效的 - 您的DTD聲明了一個結構,該結構具有四個特定元素作為根元素的子元素,按指定的順序,並且沒有任何重復。
按照本教程... https://gist.github.com/Squiva/7c1a0f98c3fe820f640d您也可以這樣做...其中node是主節點的名稱,Foobar.dtd是DTD文件的路徑。 享受您的文檔類型定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.