Interleave In RNC

У меня есть источник с тремя p с различными значениями атрибутов, я попытался сделать произвольный порядок элементов вместе с одним обязательным элементом p class='parab1'. Это любое количество абзаца 1, абзаца 2 и фараграфа 3 в любом порядке, но должен быть хотя бы один абзац1.

Ниже я попробовал опцию перемежения в RNC, но мне не удалось с ошибкой "элемент" p "может встречаться в более чем одном операнде"interleave"" Это потому, что один и тот же элемент объявлен более одного раза. Но возможно ли это в RelaxNG, используя любой другой метод?

Источник

<body>
<h1 class="title">title</h1>
<h2 class="subtitle">subtitle</h2>
<p class="paragraph2">Para text 2</p>
<p class="paragraph1">para text 1</p>
<p class="paragraph3">Para text 2</p>
</body>

СРН

start = element body { h1?, h2?, (p.paragraph1+ & p.paragraph2? & 
 p.paragraph3?) }
 h1 = element h1 { text & attribute class { string } }
 h2 = element h2 { text & attribute class { string } }
 p.paragraph1 = element p { text & attribute class { string "paragraph1" } }
 p.paragraph2 = element p { text & attribute class { string "paragraph2" } }
 p.paragraph3 = element p { text & attribute class { string "paragraph3" } }

0 ответов

Другие вопросы по тегам