2010-08-12 8 views
6

Supponiamo che io hoC'è un modo per incorporare uno snippet di codice in un altro?

  • frammento Un
  • frammento B
    dovesnippet di uncontieneframmento B n volteconn> 1 .

In questo momento ho copiato il contenuto del frammento B in snippet di un. Questo ha lo svantaggio, che ogni volta che cambio lo snippet B, devo cambiare anche lo snippet A. Pertanto, la mia domanda è se c'è qualche tipo di dichiarazione per incorporare uno snippet in un altro?
ad es.
<externalsnippet src=".\snippetB.snippet" />
o qualcosa di simile.

+0

Hai mai capito questo? – Daryl

risposta

1

Si potrebbe utilizzare un'entità parsed generale esterna di dichiarare un riferimento di entità per frammento B e quindi utilizzarlo n numero di volte all'interno di frammento A.

Quando frammento A viene analizzato, i riferimenti di entità verrà espanso e il contenuto dello snippet B verrà incluso in ogni punto in cui è stata utilizzata l'entità.

Per esempio, si supponga che si ha un file chiamato snipppetB.xml:

<snippetB> 
    <foo>Content goes here</foo> 
</snippetB> 

E un programma per snippet di un dichiarato un'entità chiamata snippetB riferimento snippetB.xml e lo ha utilizzato per quattro volte :

<!DOCTYPE snippetA [ 
    <!ENTITY snippetB SYSTEM "./snippetB.xml"> 
]> 
<snippetA> 
<a>&snippetB;</a> 
<b>&snippetB;</b> 
<c>&snippetB;</c> 
<d>&snippetB;</d> 
</snippetA> 

Quando snippetA.xml viene analizzato, il contenuto XML sarebbe l piace così:

<snippetA> 
<a> 
<snippetB> 
    <foo>Content goes here</foo> 
    </snippetB> 
    </a> 
<b> 
<snippetB> 
    <foo>Content goes here</foo> 
    </snippetB> 
    </b> 
<c> 
<snippetB> 
    <foo>Content goes here</foo> 
    </snippetB> 
    </c> 
<d> 
<snippetB> 
    <foo>Content goes here</foo> 
    </snippetB> 
    </d> 
    </snippetA> 
Problemi correlati