Как добавить один и тот же атрибут несколько раз в тег элемента в XML

В XML-схеме (XSD), которую я пишу, мне нужно определить атрибут, который может встречаться несколько раз внутри своего родительского элемента.

Просто чтобы прояснить это на примере: родительский элемент представляет события и поддерживает различные атрибуты, такие как, например, заголовок и дата возникновения. Один из атрибутов под названием department — это организационный отдел. Мероприятие может быть организовано одним или несколькими отделами.

Я хочу знать, может ли XSD обрабатывать несколько экземпляров одного и того же атрибута в элементе или это выходит за рамки стандарта XML?


person Noobie    schedule 30.09.2012    source источник


Ответы (1)


Вы не можете. Имена атрибутов уникальны для каждого элемента.

Если вам нужно иметь несколько битов данных под одним и тем же именем, то обычными решениями являются либо список, разделенный пробелами, либо дочерние элементы.

<event department="foo bar baz" />

or

<event>
    <department>foo</department>
    <department>bar</department>
    <department>baz</department>
</event>
person Quentin    schedule 30.09.2012
comment
Учитывая тот факт, что списками, разделенными пробелами, не очень легко управлять с помощью XSL (большинство пользователей на самом деле не сильно разрабатывают XSL, чтобы знать, как это сделать), и это не помогает выражениям XPath быть более читабельными... мои два цента . - person Chucky; 13.02.2013