2
Я пишу XML-документ и пытаюсь также указать его спецификацию.Как использовать IDREF
Я думаю, что я могу указать, что атрибут тега может быть ограничен атрибутом другого тега, и я думаю, что это можно сделать с помощью !ATTLIST
IDREF
, но я не уверен. Пример:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE CUSTOM_RIBBON
[
<!ELEMENT CUSTOM_RIBBON (VERSION, ICONS, SCRIPT+, CMD_ID+, CATEGORY)>
<!ELEMENT ICONS (#CDATA)>
<!ELEMENT SCRIPT (#CDATA)>
<!ELEMENT CMD_ID (SPEC)>
<!ELEMENT CATEGORY (PANEL)>
<!ELEMENT PANEL (BUTTON, GROUP, SEPARATOR)+>
<!ELEMENT GROUP (BUTTON, SEPARATOR)+>
<!ELEMENT BUTTON EMPTY>
<!ATTLIST BUTTON name IDREF #REQUIRED>
<!ELEMENT SEPARATOR EMPTY>
<!ELEMENT VERSION EMPTY>
<!ATTLIST VERSION value CDATA #REQUIRED>
]>
<CUSTOM_RIBBON>
<SCRIPT name="button1-script">
// some script here
messagebox("AHHH!");
</SCRIPT>
<CMD_ID name="button1">
<SPEC pressed="both" script="button1-script" text="boo!" />
</CMD>
<CATEGORY name="Foo">
<PANEL name="Bar">
<BUTTON name="button1" />
</PANEL>
</CATEGORY>
<CUSTOM_RIBBON>
Я хотел бы указать, что:
BUTTON
тег должен иметь атрибутname
, что сусла имеет один и тот же текст в атрибутеCMD_ID
тегаname
.CMD-ID
тега имеетscript
атрибут, который сусло имеет один и тот же текст в атрибутеSCRIPT
тегаname
.- Если
CMD_ID
«sSPEC
имеетpressed
атрибутboth
, то не может иметь брата. - Если
CMD_ID
«sSPEC
имеетpressed
атрибутtrue
илиfalse
, то обязательно есть родственный, котороеfalse
илиtrue
.
Как это сделать?