2012-11-26 2 views
2

내 firefox addon에서, 나는 "global.dtd"파일에 넣고 싶은 몇 가지 !ENTITIY을 가지고있다. 그런 다음 모든 .xul 파일에서 global.dtd와 .xul 파일의 특정 .dtd 파일에 모두 액세스하려고합니다.단일 xul에서 여러 dtd 파일을 사용하는 방법은 무엇입니까?

따라서 code1.xul의 경우 code1.dtd 및 global.dtd를로드합니다. 그러면 code2.xul에 대해 code2.dtd와 global.dtd를로드합니다.

따라서 동일한 문자열을 global.dtd에서 사용할 수 있습니다.

이 작업을 수행 할 수 있습니까? 어떻게 정의를 작성합니까? 두 개의 doctypes를 넣을 수 없습니다.

<!DOCTYPE overlay SYSTEM "chrome://myaddon/locale/global.dtd"> 
<!DOCTYPE overlay SYSTEM "chrome://myaddon/locale/code1.dtd"> 

답변

3

당신이 global.dtd를 사용하려는 DTD에서 매개 변수 엔티티를 사용

예를 들어, code1.dtdcode2.dtd이를 추가 :.

<!ENTITY % global SYSTEM "global.dtd"> 
%global; 

을 당신은해야합니다 global.dtd의 위치를 ​​가리 키도록 SYSTEM ID를 조정하십시오.

+0

그래서 각 엔티티를 개별적으로 가져와야하고 전체 파일을 가져올 수 없습니까? – bgmCoder

+0

@BGM - 매개 변수 엔티티를 사용하여 전체 파일을 가져옵니다. 기본적으로 엔티티 참조 '% global;'은 'global.dtd'의 전체 내용으로 대체됩니다. –

+0

골리함으로써, 그게 다야! 부쉘 고마워! – bgmCoder

2

동일한 XUL 파일에서 여러 개의 DTD를 가져올 수도 있습니다.

<!DOCTYPE some_name [ 
    <!ENTITY % firstDTD SYSTEM "chrome://extension/locale/first.dtd"> 
    %firstDTD; 
    <!ENTITY % secondDTD SYSTEM "chrome://extension/locale/pref/second.dtd"> 
    %secondDTD; 
]> 
+0

팁 주셔서 감사! – bgmCoder

관련 문제