Başka bir DTD'ye DTD eklenebilir mi? (İkinci DTD'yi ilk DTD'ye kopyalayıp yapıştırmak istemiyorum. İlk DTD'deki ikinci DTD'ye bir işaretçi gibi bir şey söylemek istiyorum.)Başka bir DTD'de DTD dahil
9
A
cevap
11
Evet, mümkün. Bir yol DTD içinde kullanılabilen parameter entity kullanmaktır.
XML dosyası:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "first.dtd" [
<!ELEMENT type (#PCDATA)> <!-- you can also add DTD here -->
]>
<note>
<type>business</type>
<to>George W.</to>
<from>Me</from>
<heading>meeting</heading>
<body>Meet me in central park at 16</body>
</note>
Birinci (referans) DTD:
<!ELEMENT note (type,to,from,heading,body)>
<!ENTITY % elements SYSTEM "second.dtd">
%elements;
Saniye (başvurulan) DTD:
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
en örneğe bakalım 0
Oxygen XML ile işaretlendiğinde, ikinci DTD denen üçüncü DTD'yi bile yapabilirsiniz. Eğer özyinelemeli kullanamazsınız Ancak öğe başvuruları örneğin:
elements1.dtd:
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ENTITY % elements2 SYSTEM "elements2.dtd">
%elements2;
elements2.dtd:
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!ENTITY % elements1 SYSTEM "elements1.dtd">
%elements1;
bu soruya çok benzer[Xerces] Rekürsif varlık başvurusuna "% elements1" . (Referans yolu: % elements1 ->% elements2 -> % elements1),
: http://stackoverflow.com/questions/6259366/can-i-reference-an-external -dtd-için yapı-of-the bir elemana-in-a-dtd –