2014-04-15 44 views
1

我已經爲XMetal創建了specilized DTD,其中添加了圖像元素。在DTD中定義圖像元素

圖像元件的結構如下

<!ENTITY % Attr-com 
    "id ID #IMPLIED 
    class NMTOKEN #IMPLIED 
    type NMTOKEN #IMPLIED 
    style CDATA #IMPLIED 
    lang NMTOKEN #IMPLIED" 
> 

<!ELEMENT image EMPTY> 
<!ATTLIST image %Attr-com; 
      alt CDATA #IMPLIED 
      href CDATA #REQUIRED 
      keyref NMTOKEN #IMPLIED 
      border CDATA #IMPLIED 
      height CDATA #IMPLIED 
      width CDATA #IMPLIED 
      align CDATA #IMPLIED 
      scale NMTOKEN #IMPLIED 
      placement (inline | break)  "inline" 
      conref CDATA #IMPLIED> 

但是,這並不在XMetal來得工作。 Xmetal中的圖像圖標不突出顯示。如果我使用的圖像元素的元素列表,它會顯示這樣的

<image/> 

如何XMetal還使用DTD,使圖像應該能夠添加。

回答

0

我沒有在looong時間使用XMetaL,但我仍然有一個安裝,可以告訴你我是如何總是完成圖形。

所有屬性都是CDATA或NMTOKEN,因此XMetaL無法知道實際圖像是什麼。

我所做的是使一個屬性爲ENTITY類型。這將使XMetaL尋找一個名稱與屬性值匹配的實體聲明。

該實體應聲明爲NDATA(符號數據)系統實體。您還需要確保符號被聲明。對於我的示例,我使用的是png。

下面是我的DTD和XML的示例。

DTD

<!NOTATION PNG PUBLIC "PNG 1.0" "image/png"> 
<!ELEMENT doc (p|image)+> 
<!ELEMENT p (#PCDATA)> 
<!ELEMENT image EMPTY> 
<!ATTLIST image 
    href ENTITY #REQUIRED> 

XML

<!DOCTYPE doc SYSTEM "test.dtd" [ 
<!ENTITY test.png SYSTEM "images/test.png" NDATA PNG> 
]> 
<doc> 
<p>Test image:</p> 
<image href="test.png"/> 
</doc> 

注:我的XML有一個包含我的形象與實體聲明的內部子集。您不必手動添加這些;

enter image description here

這裏是我的XML的開放XMetal中:

enter image description here

如果你注意到,我的光標在XMetal來得> 「的圖元......」 - 您可以使用 「工具」在image元素之後,並在doc之內關閉標記。由於image元素被允許在這個位置,工具欄上的圖像按鈕被激活,將允許我補充一個新的形象。這是什麼樣子,如果我添加一個新的形象:

enter image description here

要選擇一個實際的圖像,你可以在屬性檢查器編輯href屬性。它是一個下拉列表,列出您已聲明的所有可用實體。

希望這是足以讓你去。如果不讓我知道什麼仍然不起作用。

0

在一般情況下,您可以配置XMetal還使用CTM文件與DTD相關的XMetal還定製的一部分,以識別DTD的圖像元素(一個或多個)。注意,這是一個替代使用XML實體來表示在圖形XMetal中;使用CTM,不需要使用實體和ENTITY屬性類型。

有關於可在這裏XMetal一樣的CTM文件的一般信息:該網頁上
http://xmetal.com/tutorials/customizing_xmetal_manually.html
搜索「<圖像>」準確地找到關於XMetal還識別圖像類型位。

不過(說這裏的具體問題),它看起來好像你正在使用DITA。當您使用專門的DITA DTD時,XMetaL應自動爲您生成正確的CTM;你不需要自己編輯CTM。因此,您的問題實際上可能是XMetaL支持問題。

看來,你發佈一個類似的問題在社區XMetal的論壇,我們(我在JustSystems的工作以外,XMetal的製造商)一直在幫助你在該線程。在這一點上,我將讓援助繼續存在:
http://forums.xmetal.com/index.php/topic,3355.0.html

0

感謝您的答覆。但在我的情況下,我有n個在DTD中定義的元素以及圖像元素。我可以看到xmetal中的圖像元素,並出現十字符號。但是,如果我雙擊該圖標,在屬性窗口不displaying.I認爲這是一些什麼樣是指HREF。但我不知道到底是什麼問題..