2015-02-02 5 views
2

XML 문서를 작성하고 해당 사양을 기술하려고합니다.IDREF 사용 방법

태그의 속성을 다른 태그의 속성으로 제한 할 수 있다고 생각할 수 있으며, !ATTLISTIDREF을 사용하여 수행 할 수 있다고 생각하지만 너무 확신하지 못합니다. 예 :

<?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 태그 속성을이 CMD_ID 태그의 name 속성에 같은 텍스트가 해야 name이 있어야합니다.
  • CMD-ID 태그는 해야SCRIPT 태그의 name 속성에 동일한 텍스트를 가지고 script 속성 것을 가지고있다.
  • CMD_ID의이 SPECbothpressed 속성이있는 경우
  • 는, 그것은 형제 자매가없는 수 있습니다.
  • CMD_IDSPECtrue 또는 falsepressed 속성이있는 경우
  • 는 다음 해야false 또는 true있는 형제가있다.

어떻게하면됩니까?

답변

0

DTD로는이 작업을 수행 할 수없는 것처럼 보입니다. 나는 XSD 대신에 가야한다.