Как сослаться на элемент XSD/как создать ссылку на элемент файла XSD, чтобы ссылаться на его документацию?

У меня есть несколько документов в стиле XML, и у меня есть файл XSD, содержащий документацию для некоторых тегов.

Я хочу связать некоторые документы из XSD с некоторыми элементами в XML.

Документация XSD, например: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/config.xsd?view=markup => элемент rtmphostlocal

Теперь у меня есть XML-документ, например, здесь: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx?view=markup

Есть атрибут:

<attribute name="rtmphostlocal" value="" type="string" />

Я хотел бы связать документацию XSD с элементом rtmphostlocal в области комментариев другого XML-документа. Так что есть только один источник документов для редактирования, и мне не нужно дублировать комментарии везде, где я использую атрибут. Вид стиля JavaDoc.

Как этого добиться?
Есть ли какая-нибудь нотация, как в HTML, с #anchors, чтобы связать какой-то элемент из XSD?


person seba.wagner    schedule 11.12.2012    source источник
comment
Я немного смущен. У вас есть XSD и XML, но содержимое XML НЕ соответствует XSD: XSD определяет элемент XML rtmphostlocal, но в XML у вас есть элемент attribute. Как вы можете «связать» их, если они даже не совпадают?   -  person MiMo    schedule 12.12.2012
comment
Я еще больше запутался, чем @MiMo   -  person Tony Hopkinson    schedule 12.12.2012
comment
Единственный способ, которым я могу это сделать, - это добавить атрибут к элементу, который ошибочно называется атрибутом в вашем xml со значением XPath в xsd. Как вы собираетесь вставить это в xml, я понятия не имею, потому что связь между одним и другим далеко не очевидна.   -  person Tony Hopkinson    schedule 12.12.2012
comment
Нет, это просто специальная нотация XML. Позже я смогу использовать этот атрибут как обычный тег. В этом смысле я расширяю XML, так что я могу писать ‹rtmphostlocal›. Однако дело не в этом. Возможно, это сложно понять, но в основном я просто хочу создать ссылку или URL-адрес для прямой ссылки на XSD-документацию элемента. То же самое, что и в JavaDoc, когда вы ссылаетесь на специальную переменную или метод. Что-то вроде mySchema.xsd#elementXYZ или аналогичного решения, чтобы я мог написать единый источник документации.   -  person seba.wagner    schedule 12.12.2012
comment
В отличие от форумов, мы не используем слова «Спасибо» или «Любая помощь приветствуется» или подписи на Stack Overflow. См. раздел Должен ли быть "Привет", "спасибо" слоганов и приветствий удалить из постов?.   -  person John Saunders    schedule 12.12.2012


Ответы (1)


Вы хотите иметь возможность указывать из другого документа на объявление элемента для rtmphostlocal в документе схемы, который вы показываете? Это XML-документ; присвойте объявлению элемента идентификатор и укажите на него. Объявление элемента может выглядеть так:

<xs:element name="rtmphostlocal" id="elem_rtmphostlocal">
  ...
</xs:element>

Некоторые люди могут предпочесть использовать xml:id="..." вместо id="...".

Смогут ли системы, считывающие ссылку, указывающую на документ, сделать с ней что-нибудь полезное, зависит главным образом от того, поддерживают ли они идентификаторы фрагментов XML, как указано в спецификации XPointer. Но вы не просили программное обеспечение, поддерживающее XPointer, вы просили нотацию. Ответ: да, есть обозначения. Используйте идентификаторы.

person C. M. Sperberg-McQueen    schedule 12.12.2012
comment
извините, я просто не могу это использовать. Также я хотел бы связать документацию с произвольных точек. Я просто хочу использовать справочную информацию по стилю JavaDoc. Это может быть даже другой элемент, который я хочу записать => Посмотрите здесь документацию, связанную с этим элементом. Причина этого в том, что этот элемент является таким центральным, но я не хочу просто дублировать документацию, которая фактически записана в XSD, в каждом XML-документе. - person seba.wagner; 12.12.2012
comment
также атрибут id имеет в моем XML уже другое значение. XML, который я использую, — это LZX, XML, сравнимый с Flex MXML. И в этом объявлении id уже выбран для обозначения чего-то другого. - person seba.wagner; 12.12.2012
comment
но все же спасибо за ваш комментарий C.M. (хотя полагаю, какой-нибудь овердрайв-модератор снова удалит мой комментарий через 5 минут). - person seba.wagner; 12.12.2012
comment
Извините, я не понимаю вашей логики. Что такого в назначении идентификатора элементу, на который вы хотите указать, что мешает вам ссылаться на него из произвольных точек? И что, черт возьми, LZX может решить, что @id означает, если не это значение однозначно идентифицирует этот элемент XML? Удачи. - person C. M. Sperberg-McQueen; 12.12.2012
comment
Ну, этот идентификатор имеет значение уникального идентификатора для элемента XML. Однако вы не можете использовать его для всех тегов. На основе LZX создаются объекты XML, и некоторые из них являются абстрактными. Атрибут ‹для exmple позже становится переменной. У переменных есть имена, но нет идентификатора. Поэтому запись ‹attribute name=xyz id=xyz приведет к ошибке синтаксического анализа, когда я захочу использовать этот код позже. XML просто имеет много разных разновидностей, и мне кажется, что использование XSD помимо использования стандартных механизмов XML весьма ограничено. - person seba.wagner; 13.12.2012
comment
Благодарю за разъяснение. Если бы я предложил вам поместить атрибут id в элемент attribute, ваше обоснование имело бы смысл. Но я этого не сделал. Понятно, что мы не общаемся успешно; удачи тебе. - person C. M. Sperberg-McQueen; 13.12.2012
comment
извините за это, теперь я понимаю, что вы имели в виду изначально. Однако проблема также в том, что я просто не могу использовать этот механизм, поскольку даже XSD не будет определен в определении схемы файла LZX. Я просто хочу сослаться на некоторый комментарий к документу из моего XSD в любом XML-документе, чтобы иметь несколько хороших перекрестных ссылок и сэкономить время на обслуживании документов. Спасибо, в любом случае. - person seba.wagner; 13.12.2012