Модульные XML-файлы и вложенные процедуры - PullRequest
1 голос
/ 12 октября 2019

Большинство языков программирования там имеют некоторую форму , включая директиву . C имеет #include макросов, Python имеет from-import-as ... после этого обсуждения на форуме FreeCAD , мне интересно знать, есть ли какие-либо возможности иметь что-то вроде процедур Pascal, которые не возвращаютсялюбые значения, кроме запуска фрагмента кода с учетом некоторых переменных, для XML или любых их разновидностей. Я полностью осознаю тот факт, что XML сам по себе не является языком программирования, но другие языки разметки имеют некоторую форму функциональности включения (например, LaTeX, MultiMarkDown, AsciiDoc, reStructuredText. Подробнее здесь ),

В качестве примера рассмотрим document.xml, который я прикрепил здесь . Было бы здорово, если бы я мог поместить весь тег <Object name="Box" Extensions="True"> в другой файл XML, а затем импортировать его с некоторыми параметрами, регулирующими размещение:

<Property name="Placement" type="App::PropertyPlacement">
    <PropertyPlacement Px="0.0000000000000000" Py="0.0000000000000000" Pz="0.0000000000000000" Q0="0.0000000000000000" Q1="0.0000000000000000" Q2="0.0000000000000000" Q3="1.0000000000000000" A="0.0000000000000000" Ox="0.0000000000000000" Oy="0.0000000000000000" Oz="1.0000000000000000"/>
</Property>

что-то вроде import with variables = ...

Надеюсь, я все правильно объяснил и использовал правильные теги. В противном случае, пожалуйста, помогите мне изменить их.

1 Ответ

1 голос
/ 13 октября 2019

Большинство языков программирования там имеют некоторую форму директивы include. В C есть макросы #include, в Python - from-import-as ... После этого обсуждения на форуме FreeCAD мне интересно узнать, есть ли какие-либо возможности иметь что-то вроде процедур Pascal, которые не возвращают никаких значений, но запускаютчасть кода, содержащая некоторые переменные, для XML или любых их разновидностей. Я полностью осознаю тот факт, что XML сам по себе не является языком программирования, но другие языки разметки имеют некоторую форму функциональности включения (например, LaTeX, MultiMarkDown, AsciiDoc, reStructuredText. Подробнее здесь).

Похоже, что некоторые требования в этом вопросе выполнены и реализованы стандартом W3C Xinclude .

В частности, посмотритев примерах в конце нормативного документа:

https://www.w3.org/TR/xinclude-11/#examples

Существует несколько реализаций XInclude: Saxon поддерживает XInclude через парсер Xerces .

Другой стандарт W3C - XProc имеет " XInclude step ".

XInclude также реализован как один из результатов проекта MVP-XML .

...