Используя RelaxNG, как я могу разрешить любому элементу иметь атрибут «myattribute» - то есть определять глобальные атрибуты - PullRequest
1 голос
/ 21 февраля 2012

Есть ли способ объявить атрибут глобально доступным в моей грамматике?

То есть я хочу, чтобы любой элемент мог иметь определенный атрибут.

В качестве альтернативы я хотел быопределить список элементов, которые могут иметь атрибут «id».

1 Ответ

1 голос
/ 22 февраля 2012

Пример решения вашей проблемы:

<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
    datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    <start>
        <ref name="testDef"/>
    </start>
    <define name="testDef">
        <element name="test">
            <ref name="commonAttributes"/>
        </element>
    </define>
    <define name="commonAttributes">
        <attribute name="id">
            <data type="ID"/>
        </attribute>
        <attribute name="otherCommonAttr">
            <data type="string"/>
        </attribute>
    </define>
</grammar>

Вы должны объявить ссылку на определение общих атрибутов в каждом элементе, как в элементе test в примере выше.

...