Discussion:
Создание своей схемы
Denis Ibaev
2006-03-01 16:41:11 UTC
Permalink
Здравствуйте.

Я хочу сделать так, чтобы в моем формате, основанном на XSLT, текст
внутри тегов подсвечивался как язык программирования, например,
JavaScript. Я делаю так:

<type name="xlang">
<scheme name="xlang">
<inherit scheme="xslt:xslt"/>
</scheme>
</type>

Очевидно, что нужно заместить одну из схем, наследуемых со схемой
xslt, но я не знаю какую.

Кто нибудь может подсказать решение?.

Спасибо.

--
Денис Ибаев
***@gmail.com
N╛HS^╣И ┼X╛╡ '╡┼чu╪╠<бз┌╨.²жКy╘"· ╝*m┼x%jx.j╜┘╚^фв╖vф╘╕X°jь╗·х╖╤▄m╘щ ├Б∙И·v&─╤в╖vь^√+чаФэjкZ²ьХ┼{az Б≥Г^╫Иh╔ЙЮ╝▀╘n╥ ▓)Ю┼{h╤╛²Л║ь╖┌в╚╝+h╞
Igor Russkih
2006-03-02 07:10:10 UTC
Permalink
÷ÏÏÂÝÅ ÇÏ×ÏÒÑ ÒÅÛÅÎÉÊ ÎÅÓËÏÌØËÏ,

óÁÍÏÅ ÐÒÁ×ÉÌØÎÏÅ É ÎÅÔÒÉ×ÉÁÌØÎÏÅ - ÏÐÉÓÁÔØ Ó×ÏÊ XSD ÔÉÐ, ÕÎÁÓÌÅÄÏ×ÁÎÎÙÊ ÏÔ
xslt, É ÄÌÑ ÎÅÇÏ ×ÎÅÄÒÉÔØ ÍÏÄÉÆÉËÁÃÉÉ × ÎÅËÏÔÏÒÙÅ ÉÚ XSD-ÔÉÐÏ× - ÄÌÑ
ÐÏÄÓ×ÅÔËÉ ÔÏÇÏ-ÖÅ javascript

äÒÕËÏÊ ×ÁÒÉÁÎÔ - ÐÒÏÂÏ×ÁÔØ ÎÁÐÒÑÍÕÀ - ÐÉÓÁÔØ HRC, ÎÁÓÌÅÄÏ×ÁÎÎÙÊ ÏÔ xslt É
ÐÙÔÁÔØÓÑ ÎÁÊÔÉ ÔÅ ËÏÍÐÏÎÅÎÔÙ, ËÏÔÏÒÙÅ × ÎÅÍ ÎÕÖÎÏ ÍÏÄÉÆÉÃÉÒÏ×ÁÔØ. îÏ
ÐÒÏÂÌÅÍÁ ÚÄÅÓØ × ÔÏÍ, ÞÔÏ XSLT - Á×ÔÏÇÅÎÅÒÉÒÕÅÍÏÅ ÏÐÉÓÁÎÉÅ ÓÉÎÔÁËÓÉÓÁ É
ÚÁ×ÔÒÁ ÏÎÏ ÍÏÖÅÔ ÂÙÔØ ÓÇÅÎÅÒÉÒÏ×ÁÎÏ ÓÏ×ÓÅÍ ÐÏ-ÄÒÕÇÏÍÕ.

íÏÊ ÓÏ×ÅÔ - ÒÁÚÏÂÒÁÔØÓÑ ËÁË ÓÏÚÄÁÀÔÓÑ HRC ÉÚ XSD É ÏÐÉÓÁ× Ó×ÏÊ XSD
ÓÇÅÎÅÒÉÒÏ×ÁÔØ HRC ÄÌÑ ÎÅÇÏ.

On 3/1/06, Denis Ibaev <***@gmail.com> wrote:
úÄÒÁ×ÓÔ×ÕÊÔÅ.

ñ ÈÏÞÕ ÓÄÅÌÁÔØ ÔÁË, ÞÔÏÂÙ × ÍÏÅÍ ÆÏÒÍÁÔÅ, ÏÓÎÏ×ÁÎÎÏÍ ÎÁ XSLT, ÔÅËÓÔ
×ÎÕÔÒÉ ÔÅÇÏ× ÐÏÄÓ×ÅÞÉ×ÁÌÓÑ ËÁË ÑÚÙË ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÎÁÐÒÉÍÅÒ,
JavaScript. ñ ÄÅÌÁÀ ÔÁË:

<type name="xlang">
<scheme name="xlang">
<inherit scheme="xslt:xslt"/>
</scheme>
</type>

ïÞÅ×ÉÄÎÏ, ÞÔÏ ÎÕÖÎÏ ÚÁÍÅÓÔÉÔØ ÏÄÎÕ ÉÚ ÓÈÅÍ, ÎÁÓÌÅÄÕÅÍÙÈ ÓÏ ÓÈÅÍÏÊ
xslt, ÎÏ Ñ ÎÅ ÚÎÁÀ ËÁËÕÀ.

ëÔÏ ÎÉÂÕÄØ ÍÏÖÅÔ ÐÏÄÓËÁÚÁÔØ ÒÅÛÅÎÉÅ?.

óÐÁÓÉÂÏ.

--
äÅÎÉÓ éÂÁÅ×
***@gmail.com



--
Igor
Denis Ibaev
2006-03-02 16:44:13 UTC
Permalink
Попробую "самый правильный и нетривиальный" путь - опишу XSD. Но я так
и не нашёл конвертер XSD в HRC, упоминаемый в документации. Где его
можно найти?
Вообще говоря решений несколько,
Самое правильное и нетривиальное - описать свой XSD тип, унаследованный от
xslt, и для него внедрить модификации в некоторые из XSD-типов - для
подсветки того-же javascript
Друкой вариант - пробовать напрямую - писать HRC, наследованный от xslt и
пытаться найти те компоненты, которые в нем нужно модифицировать. Но
проблема здесь в том, что XSLT - автогенерируемое описание синтаксиса и
завтра оно может быть сгенерировано совсем по-другому.
Мой совет - разобраться как создаются HRC из XSD и описав свой XSD
сгенерировать HRC для него.
--
Igor
N╛HS^╣И ┼X╛╡ '╡┼чu╪╠<бз┌╨.²жКy╘"· ╝*m┼x%jx.j╜┘╚^фв╖vф╘╕X°jь╗·х╖╤▄m╘щ ├Б∙И·v&─╤в╖vь^√+чаФэjкZ²ьХ┼{az Б≥Г^╫Иh╔ЙЮ╝▀╘n╥ ▓)Ю┼{h╤╛²Л║ь╖┌в╚╝+h╞
Eugene Efremov
2006-03-02 18:10:13 UTC
Permalink
Hello!
Post by Denis Ibaev
Попробую "самый правильный и нетривиальный" путь - опишу XSD. Но я так
и не нашёл конвертер XSD в HRC, упоминаемый в документации. Где его
можно найти?
colorer/bin/xsd2hrc/xsd2hrc.xsl

Рассчитано, вообще говоря, на запуск через ant. Образец для подражания -
в colorer/src/hrc/*.
Впрочем, никто, конечно, не мешает доработать напильником и запускать
руками.


WBR, Eugene.



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Denis Ibaev
2006-03-04 10:46:39 UTC
Permalink
C ant я вроде разобрался, но не понял как в XSD указать, что
содержимое определённого элемента нужно интерпретировать, как исходный
код на некотором языке программирования.
Post by Eugene Efremov
colorer/bin/xsd2hrc/xsd2hrc.xsl
Рассчитано, вообще говоря, на запуск через ant. Образец для подражания -
в colorer/src/hrc/*.
Впрочем, никто, конечно, не мешает доработать напильником и запускать
руками.
WBR, Eugene.
А┼д┘5К^≥╗╔┼к)╒{(╜Г[кл-╗+╒Ищn╥ ▓)Ю╠йБ╕ь╖┌V╖┌Ф═zьZ╣Лmzwlj e┴ф╜┼┴Л┼{hаФз²ы╗n)^≥Гbh mzwm┘Иb╫Лmф╛╣╘щ▌┬╖╤╘╝)·uКч√┼^╝
Х╨√Кy╘"·╖╤▀a┼ичай┼x-z╨Б╤┼Р
Eugene Efremov
2006-03-04 15:15:58 UTC
Permalink
Hello!
Post by Denis Ibaev
C ant я вроде разобрался, но не понял как в XSD указать, что
содержимое определённого элемента нужно интерпретировать, как исходный
код на некотором языке программирования.
Там (в src/hrc/**/src) есть такие файлы вида custom.*.xml. Вот в них это
все и задается. Либо напрямую, путем переопределения hrc-схемы для этого
xsd-типа (если, конечно, нужный элемент имеет свой не неанонимный тип),
либо -- через предназначенную специально для этого секцию
script-n-style. Советую посмотреть, как это сделано для xhtml, svg или wsc.
--
WBR, Eugene.




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Denis Ibaev
2006-03-06 16:48:14 UTC
Permalink
Что-то у меня не получается. В custom.xml я пишу:

<scheme name="init-element">
<inherit scheme="init-element-old">
<virtual scheme="string-elementContent" subst-scheme="lisp:lisp"/>
</inherit>
</scheme>

??? ???? ? ???? ??????? ????? HRC: <scheme name="init-element"> <inherit scheme="init-element-old"> <virtual scheme="string-elementContent" subst-scheme="lisp:lisp"/> </inherit> </scheme> <scheme name="init-element-old"> <block end="/ &gt; /x" start="/\M &lt; (%nsprefix;init
([\s\/&gt;]|$) )/x" scheme="string-elementContent"
xmlns="http://colorer.sf.net/2003/hrc"/>
</scheme>

Но подсветки не наблюдается.
Post by Eugene Efremov
Там (в src/hrc/**/src) есть такие файлы вида custom.*.xml. Вот в них это
все и задается. Либо напрямую, путем переопределения hrc-схемы для этого
xsd-типа (если, конечно, нужный элемент имеет свой не неанонимный тип),
либо -- через предназначенную специально для этого секцию
script-n-style. Советую посмотреть, как это сделано для xhtml, svg или wsc.
├+в╜zf╒√+,╕┴Л╒╥²o,O0╤═╝▀╖u╨чjH╖┌г+┼⌡b· Z·  │Кajв╠╣Ищ╠╙i√'╤*'╡)Мё⌡jwf║╦╔zg²┴═-╣Ищ╤╔┼В╟y╥╡ж╖v:"·ь^╕╦╕yв╞zZ)z╦+╒Й[╜Ф╓┼x"·з-├+'{(v)Ю╣ЙК┼з+
Eugene Efremov
2006-03-06 17:54:33 UTC
Permalink
Hello!
Post by Denis Ibaev
<scheme name="init-element">
<inherit scheme="init-element-old">
<virtual scheme="string-elementContent" subst-scheme="lisp:lisp"/>
</inherit>
</scheme>
А второй вариант:

<c:script-n-style>
<c:element name="init">
<c:default name="lisp"/>
</c:element>
</c:script-n-style>

?
Post by Denis Ibaev
xmlns="http://colorer.sf.net/2003/hrc"/>
</scheme>
Но подсветки не наблюдается.
А посмотреть, что из себя представляют схемы вида ...-elementContent?
Если идти этим путем, надо действовать по-другому:

1. В xsd описать отдельный тип для init. Что-нибудь вроде:

<xs:element name="init" type="initLisp"/>

<xs:simpleType name="initLiss">
<xs:restriction base="xs:string">
.......

2. После этого в custom.xml переопределить схему для initLips:

<scheme name="initLisp-content">
<inherit scheme="lisp:lisp"/>
</scheme>

Кстати, после этого можно глянуть в то, что сгенерилось, и понять,
почему переопределение elementContent бессмысленно...
--
WBR, Eugene



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Igor Russkih
2006-03-07 06:51:29 UTC
Permalink
*-elementContent ÐÅÒÅÏÐÒÅÄÅÌÑÔØ ÂÅÓÓÍÙÓÌÅÎÎÏ - ÜÔÏ ÓÌÕÖÅÂÎÙÅ ÓÈÅÍÙ ÄÌÑ
ÒÁÚÂÏÒÁ XML ÔÜÇÁ.
÷ÏÚÍÏÖÎÏ Ñ ÎÅ ÓÏ×ÓÅÍ ÐÏÎÑÌ, ÎÏ ÉÚ ÐÒÉ×ÅÄÅÎÎÏÇÏ ËÕÓËÁ ÜÌÅÍÅÎÔ init ÍÏÖÅÔ
×ËÌÀÞÁÔØ × ÓÅÂÑ ÔÏÌØËÏ ÜÌÅÍÅÎÔÙ string. ÅÓÌÉ ÎÕÖÎÏ ÞÔÏÂÙ ÓÏÄÅÒÖÉÍÏÅ string
ÒÁÚÂÉÒÁÌÏÓØ ÏÓÏÂÅÎÎÏ, ÔÏ ÉÍÅÎÎÏ ÅÇÏ ÎÕÖÎÏ ÐÅÒÅÏÐÒÅÄÅÌÑÔØ (string-content):

<scheme name="string-content">
<inherit scheme="lisp:lisp"/>
</scheme>
Post by Eugene Efremov
Hello!
Post by Denis Ibaev
<scheme name="init-element">
<inherit scheme="init-element-old">
<virtual scheme="string-elementContent" subst-scheme="lisp:lisp"/>
</inherit>
</scheme>
<c:script-n-style>
<c:element name="init">
<c:default name="lisp"/>
</c:element>
</c:script-n-style>
?
Post by Denis Ibaev
xmlns="http://colorer.sf.net/2003/hrc"/>
</scheme>
îÏ ÐÏÄÓ×ÅÔËÉ ÎÅ ÎÁÂÌÀÄÁÅÔÓÑ.
á ÐÏÓÍÏÔÒÅÔØ, ÞÔÏ ÉÚ ÓÅÂÑ ÐÒÅÄÓÔÁ×ÌÑÀÔ ÓÈÅÍÙ ×ÉÄÁ ...-elementContent?
<xs:element name="init" type="initLisp"/>
<xs:simpleType name="initLiss">
<xs:restriction base="xs:string">
.......
<scheme name="initLisp-content">
<inherit scheme="lisp:lisp"/>
</scheme>
ëÓÔÁÔÉ, ÐÏÓÌÅ ÜÔÏÇÏ ÍÏÖÎÏ ÇÌÑÎÕÔØ × ÔÏ, ÞÔÏ ÓÇÅÎÅÒÉÌÏÓØ, É ÐÏÎÑÔØ,
ÐÏÞÅÍÕ ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ elementContent ÂÅÓÓÍÙÓÌÅÎÎÏ...
--
WBR, Eugene
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
colorer-talks mailing list
https://lists.sourceforge.net/lists/listinfo/colorer-talks
--
Igor
Eugene Efremov
2006-03-07 12:35:56 UTC
Permalink
Hello Igor!
Возможно я не совсем понял, но из приведенного куска элемент init
может включать в себя только элементы string. если нужно чтобы
содержимое string разбиралось особенно, то именно его нужно
Мне показалось, что имеется в виду тип xsd:string, который
переопределять, естественно, бессмысленно...

А в xmlss у меня, как выяснилось, не обрабатывается ситуация, когда
имеется default, но нету language. И, строго говоря, оно логично. Думаю,
вместо этого надо будет предусмотреть случай, когда у language нет @expr...
--
WBR, Eugene




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Denis Ibaev
2006-03-07 07:19:17 UTC
Permalink
Post by Eugene Efremov
<c:script-n-style>
<c:element name="init">
<c:default name="lisp"/>
</c:element>
</c:script-n-style>
????? ????? ???, ?? ??????? ????????? ???: <!-- xmlss.hrc: support 'init' element --> <scheme name="xmlss-init"> <block scheme="xmlss-lisp-elementContent" end="/&gt;/" start="/\M
&lt;%nsprefix;init\b [^&gt;]* (&gt;|$)/x"/> </scheme> <scheme name="init-element"> <inherit scheme="xmlss-init"> <virtual subst-scheme="lispType-Attributes" scheme="xml:Attribute.any"/> </inherit> </scheme> <scheme name="init-element-old-xmlss"> <block end="/ &gt; /x" start="/\M &lt; (%nsprefix;init
([\s\/&gt;]|$) )/x" scheme="string-elementContent"
xmlns="http://colorer.sf.net/2003/hrc"/>
</scheme>

Но файла xmlss.hrc у меня нет и схема xmlss-lisp-elementContent нигде
не определена.
Post by Eugene Efremov
А посмотреть, что из себя представляют схемы вида ...-elementContent?
<xs:element name="init" type="initLisp"/>
<xs:simpleType name="initLiss">
<xs:restriction base="xs:string">
.......
<scheme name="initLisp-content">
<inherit scheme="lisp:lisp"/>
</scheme>
Кстати, после этого можно глянуть в то, что сгенерилось, и понять,
почему переопределение elementContent бессмысленно...
Этим путем тоже не получилось. Сделал

<simpleType name="lispType">
<restriction base="string"/>
</simpleType>
<element name="init" type="lispType"/>

и

<scheme name="lispType-content">
<inherit scheme="lisp:lisp"/>
</scheme>

??????? <scheme name="init-element"> <block end="/ &gt; /x" start="/\M &lt; (%nsprefix;init
([\s\/&gt;]|$) )/x" scheme="lispType-elementContent"
xmlns="http://colorer.sf.net/2003/hrc"/>
</scheme>
<scheme name="lispType-content">
<inherit scheme="lisp:lisp"/>
</scheme>
<scheme name="lispType-content-error">
<inherit scheme="lispType-content" xmlns="http://colorer.sf.net/2003/hrc"/>
<inherit scheme="xml:badChar" xmlns="http://colorer.sf.net/2003/hrc"/>
</scheme>
<scheme name="lispType-content-cdsect">
<inherit scheme="lispType-content-error"
xmlns="http://colorer.sf.net/2003/hrc">
<virtual subst-scheme="xml:badCDLiter" scheme="xml:badLiter"/>
<virtual subst-scheme="def:empty" scheme="xml:Reference"/>
</inherit>
</scheme>
<scheme name="lispType-elementContent">
<inherit scheme="_hrc_int_elementContent">
<virtual subst-scheme="lispType-content-cdsect"
scheme="xml:CDSect.content.stream"/>
<virtual subst-scheme="lispType-content-error"
scheme="xml:content.cdata.stream"/>
<virtual subst-scheme="def:empty" scheme="xml:element"/>
<virtual subst-scheme="lispType-Attributes" scheme="xml:Attribute.any"/>
</inherit>
</scheme>

Но подсветки нет.
N╛HS^╣И ┼X╛╡ '╡┼чu╪╠<бз┌╨.²жКy╘"· ╝*m┼x%jx.j╜┘╚^фв╖vф╘╕X°jь╗·х╖╤▄m╘щ ├Б∙И·v&─╤в╖vь^√+чаФэjкZ²ьХ┼{az Б≥Г^╫Иh╔ЙЮ╝▀╘n╥ ▓)Ю┼{h╤╛²Л║ь╖┌в╚╝+h╞
Eugene Efremov
2006-03-07 12:35:18 UTC
Permalink
Hello!
Post by Denis Ibaev
<!-- xmlss.hrc: support 'init' element -->
[skip]
Post by Denis Ibaev
Но файла xmlss.hrc у меня нет и схема xmlss-lisp-elementContent нигде
не определена.
Та-ак... Кажется, бага в xsd2hrc.xmlss.xsl. Буду проверять. А файла
xmlss.hrc и не должно быть, это название от старых версий осталось...
Post by Denis Ibaev
Этим путем тоже не получилось. Сделал
[все верно, вроде]
Post by Denis Ibaev
Получил
[насколько я могу судить -- именно то, что и должно быть]
Post by Denis Ibaev
Но подсветки нет
Так... Кажется я, за то время, пока колорером не занимался, успел
напрочь забыть, как оно работает...

...а, вспомнил... Там был еще косяк с *-error. Можно попробовать
переопределить еще и lispType-content-error, так чтобы она _не_ включала
xml:badChar. Если и после этого не заработает -- я уж и не знаю, что и
думать...

Кстати, "подсветки нет" -- а что есть? Оно подсвечивается, как ошибка?
Или как простой текст? А в логах колорера что-нибудь по этому поводу
пишется?
--
WBR, Eugene




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Denis Ibaev
2006-03-10 06:26:25 UTC
Permalink
Post by Eugene Efremov
Кстати, "подсветки нет" -- а что есть? Оно подсвечивается, как ошибка?
Или как простой текст? А в логах колорера что-нибудь по этому поводу
пишется?
Лог? А где это? Я смотрю через Far. Что нужно сделать, чтобы был лог?

Подсвечивается как простой текст. А в варианте с script-n-style вообще
весь файл подсвечивается как простой текст включая теги.
├+в╜zf╒√+,╕┴Л╒╥²o,O0╤═╝▀╖u╨чjH╖┌г+┼⌡b· Z·  │Кajв╠╣Ищ╠╙i√'╤*'╡)Мё⌡jwf║╦╔zg²┴═-╣Ищ╤╔┼В╟y╥╡ж╖v:"·ь^╕╦╕yв╞zZ)z╦+╒Й[╜Ф╓┼x"·з-├+'{(v)Ю╣ЙК┼з+
Andrey Repin
2006-03-10 09:20:09 UTC
Permalink
Здравствуйте, Уважаемый(-ая, -ое) Denis Ibaev!
Post by Eugene Efremov
Кстати, "подсветки нет" -- а что есть? Оно подсвечивается, как ошибка?
Или как простой текст? А в логах колорера что-нибудь по этому поводу
пишется?
DI> Лог? А где это? Я смотрю через Far. Что нужно сделать, чтобы был лог?

DI> Подсвечивается как простой текст. А в варианте с script-n-style вообще
DI> весь файл подсвечивается как простой текст включая теги.

В корне диска C:\_colorer.log
Если нет - включается в настройках плагина.
--
С уважением

Andrey Repin (***@hell.corp.mtu-net.ru) пятница, 10.03.2006, <12:19>
* Winamp наконец заткнулся...



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Eugene Efremov
2006-03-11 00:07:52 UTC
Permalink
Hello!
Post by Denis Ibaev
Post by Eugene Efremov
Кстати, "подсветки нет" -- а что есть? Оно подсвечивается, как ошибка?
Или как простой текст? А в логах колорера что-нибудь по этому поводу
пишется?
Лог? А где это? Я смотрю через Far. Что нужно сделать, чтобы был лог?
Путь к логфайлу задается в файле catalog.xml, в атрибуте
/catalog/hrc-sets/@log-location, обычно это файл colorer.log в корне
колорера. Путь к файлу catalog.xml (и, соответственно, к библиотекам
колорера), в свою очередь, задается в настройках плагина в фаре. По
умолчанию он ищет catalog.xml в папке с плагином (подробнее -- см. его
справку).
Post by Denis Ibaev
Подсвечивается как простой текст.
И переопрделение *-content-error, как я понимаю, не помогает? Может
быть, оно там внутри CDATA?

Вообще, наверное, имеет смысл закинуть сюда и xsd, и custom.xml. А также
какой-нибудь короткий тестовый пример. А то так можно долго гадать, что
там к чему...
Post by Denis Ibaev
А в варианте с script-n-style вообще
весь файл подсвечивается как простой текст включая теги.
Это, как я уже писал, была бага. Сейчас я ее исправил. Правильная версия
лежит на SVN колорера по адресу
https://svn.sourceforge.net/svnroot/colorer/branches/BRANCH-EFREMOV-BASE/colorer/bin/xsd2hrc

Соответственно, ее надо оттуда скачать, а в секции script-n-style
заменить default на language.


Кстати, а сами новые тэги подсвечиваются правильно? Как def:Keyword, не
как def:Tag? Если как def:Tag -- то про все, что я здесь писал, можно
забыть, а надо смотреть исходный xsd... Вообще, с xslt там есть свои
хитрости, так что стандартный подход может и не прокатить...
--
WBR, Eugene.




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Eugene Efremov
2006-03-11 15:26:12 UTC
Permalink
Hello!
Самое правильное и нетривиальное - описать свой XSD тип,
унаследованный от xslt, и для него внедрить модификации в некоторые из
XSD-типов - для подсветки того-же javascript
Мой совет - разобраться как создаются HRC из XSD и описав свой XSD
сгенерировать HRC для него.
Так... Мы оба тормоза. Особенно я, потому что переписывался с Денисом
уже больше недели, а за все время не сообразил, что в данном случае
работать это не будет.

Как ты это себе представляешь -- XSD унаследованный от xslt и генерация
HRC из него? Там требуется, фактически, переопределить группы
top-levelGroup и instructions, добавив в них еще один элемент. Т.е.,
насколько я понимаю, надо юзать redefine. А как у нас в xsd2hrc
поддерживается redefine? А вот как:

<xsl:template match="/xs:schema/xs:redefine" mode="root-elements">
<xsl:message>no xs:redefine support yet: <xsl:value-of
select="@schemaLocation"/></xsl:message>
</xsl:template>

Вообще, с такими тонкостями xsd мне пока сталкиваться не приходилось,
так что я не уверен, что это даже через redefine выражается корректно.
Как минимум, придется учитывать тот факт, что оба эти элемента относятся
к другому пространству имен.

Но в любом случае, реализация redefine вызовет очень много проблем.
Похоже, что подключаемые таким способом схемы придется реализовывать,
как пакеты. Боюсь, что с этим придется подождать до перевода xsd2hrc на
xslt 2.


А значит, в данном случае HRC надо-таки писать вручную, а
автогенерируемую часть сделать пакетом. Ну или добавить в xsd2hrc , для
такого случая, возможность переопределять корневой элемент схемы...

2 Denis Ibaev: Приношу свои извинения. Очень похоже, что я все это время
давал советы, к данному случаю неприменимые... :-(
--
WBR, Eugene




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Oleg A. Paraschenko
2006-03-12 06:10:16 UTC
Permalink
Привет!

On Sat, 11 Mar 2006 18:26:12 +0300
Post by Eugene Efremov
Hello!
...
Post by Eugene Efremov
Но в любом случае, реализация redefine вызовет очень много проблем.
Похоже, что подключаемые таким способом схемы придется реализовывать,
как пакеты. Боюсь, что с этим придется подождать до перевода xsd2hrc на
xslt 2.
Извиняюсь, если встреваю не разобравшись, но почему нужен xslt 2.0?
Обычного xslt должно хватать, а если есть какие-то проблемы, то можно
решить их у меня на форуме:

http://xmlhack.ru/forum/xml/forum2.html
Post by Eugene Efremov
--
WBR, Eugene
--
Oleg Parashchenko olpa@ http://uucode.com/
http://uucode.com/blog/ Generative Programming, XML, TeX, Scheme


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Eugene Efremov
2006-03-12 11:06:23 UTC
Permalink
Hello!
Post by Oleg A. Paraschenko
Извиняюсь, если встреваю не разобравшись, но почему нужен xslt 2.0?
Несколько выходных файлов. Т.е. -- либо xslt 2.0, либо exslt. Exslt без
нужды юзать не хочется (кстати, надо будет проверить, как у халана с ее
поддержкой)... А с учетом, что переход на xslt 2 так и так планируется,
и на нем подобные вещи пишутся значительно легче...
--
WBR, Eugene





-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Igor Russkih
2006-03-13 07:32:53 UTC
Permalink
éÚ×ÉÎÑÀÓØ, ÅÓÌÉ ×ÓÔÒÅ×ÁÀ ÎÅ ÒÁÚÏÂÒÁ×ÛÉÓØ, ÎÏ ÐÏÞÅÍÕ ÎÕÖÅÎ xslt 2.0?
îÅÓËÏÌØËÏ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×. ô.Å. -- ÌÉÂÏ xslt 2.0, ÌÉÂÏ exslt. Exslt ÂÅÚ
ÎÕÖÄÙ ÀÚÁÔØ ÎÅ ÈÏÞÅÔÓÑ (ËÓÔÁÔÉ, ÎÁÄÏ ÂÕÄÅÔ ÐÒÏ×ÅÒÉÔØ, ËÁË Õ ÈÁÌÁÎÁ Ó ÅÅ
ÐÏÄÄÅÒÖËÏÊ)... á Ó ÕÞÅÔÏÍ, ÞÔÏ ÐÅÒÅÈÏÄ ÎÁ xslt 2 ÔÁË É ÔÁË ÐÌÁÎÉÒÕÅÔÓÑ,
É ÎÁ ÎÅÍ ÐÏÄÏÂÎÙÅ ×ÅÝÉ ÐÉÛÕÔÓÑ ÚÎÁÞÉÔÅÌØÎÏ ÌÅÇÞÅ...
öÅÎØ, Ñ ÔÏÖÅ ÎÅ ÄÏ ËÏÎÃÁ ×ØÅÈÁÌ ÐÏÞÅÍÕ ÎÕÖÎÏ ÎÅÓËÏÌØËÏ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×. ãÅÌØ
- ÐÏÌÕÞÉÔØ HRC ÉÚ XSD ÄÌÑ ÒÁÚÂÏÒÁ ÒÁÓÛÉÒÅÎÉÑ XSLT. xs:redefine ÎÅ
ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ, ÓÏÇÌÁÓÅÎ.
îÏ ÍÏÖÎÏ ÐÏÊÔÉ ÂÏÌÅÅ ÔÕÐÙÍ ÐÕÔÅÍ - ×ÚÑÔØ xslt.xsd É × ÎÅÇÏ ×ÐÉÓÁÔØ ÎÕÖÎÙÅ
ÉÚÍÅÎÅÎÉÑ. ðÏÎÑÔÎÏ ÞÔÏ ÎÅ ÓÏ×ÓÅÍ ÐÒÑÍÏ (redefine ×ÙÇÌÑÄÅÌ ÂÙ ÌÕÞÛÅ), ÎÏ
xslt.xsd ×ÒÑÄ-ÌÉ ÂÕÄÅÔ ÅÝÅ ÍÅÎÑÔØÓÑ - ÔÁË ÞÔÏ ÎÅ ÔÁË ÕÖ ÏÎÏ É ËÒÉ×Ï.
âÕÄÅÔ ÅÝÅ ÏÄÉÎ XSD Ñ×ÌÑÀÝÉÊÓÑ ÍÏÄÉÆÉËÁÃÉÅÊ xslt.xsd É ÄÌÑ ÎÅÇÏ ÐÉÛÅÔÓÑ
ÐÒÏÓÔÅÊÛÉÊ custom.*.xml ÄÌÑ ×ÐÉÈÉ×ÁÎÉÑ ÔÕÄÁ ÌÉÓÐÁ ÉÌÉ ÞÅÇÏ ÔÁÍ ÔÒÅÂÕÅÔÓÑ
×ÐÉÈÎÕÔØ...

ôÅÈÎÉÞÅÓËÉÅ ÐÒÏÂÌÅÍÙ Ñ ÚÄÅÓØ ×ÉÖÕ Ó ÏÓÏÂÅÎÎÏÓÔÑÍÉ ÆÏÒÍÁÔÁ XML - ×ÏÚÍÏÖÎÏÓÔØÀ
ÀÚÁÔØ &quot; &#x28; ×ÎÕÔÒÉ ÔÏÇÏ-ÖÅ ÌÉÓÐÏ×ÏÇÏ ËÏÄÁ - ÔÅËÓÔ Ó ÔÁËÉÍÉ
×ËÒÁÐÌÅÎÉÑÍÉ ËÏÌÏÒÅÒÕ ÎÅ ÐÏ ÓÉÌÁÍ ÂÕÄÅÔ ÒÁÚÏÂÒÁÔØ.

--
Igor
Eugene Efremov
2006-03-13 12:10:39 UTC
Permalink
Hello!
Жень, я тоже не до конца вьехал почему нужно несколько выходных
файлов. Цель - получить HRC из XSD для разбора расширения XSLT.
xs:redefine не поддерживается, согласен.
Не, к этой конкретной задаче оно прямого отношения уже не имеет.
Несколько файлов -- это один из возможных способов как раз реализовать
эту самую поддержку redefine. Если там все лепить в один файл, придется
сильно извращаться с именами переопределяемых сущностей. Лучше их по
разным неймспейсам разнести...

Ну или как вариант -- предусмотреть что-нибудь вроде вложенных пакетов,
которые глобально не видны. Кстати, де-факто такие структуры уже
используются (в том же xpath.hrc), и колорер из-за них мусорит в лог...
Но можно пойти более тупым путем - взять xslt.xsd и в него вписать
нужные изменения. Понятно что не совсем прямо (redefine выглядел бы
лучше), но xslt.xsd вряд-ли будет еще меняться - так что не так уж оно
и криво.
Будет еще один XSD являющийся модификацией xslt.xsd и для него пишется
простейший custom.*.xml для впихивания туда лиспа или чего там
требуется впихнуть...
Там все не так просто. Посмотри сколько всего наворочено в
custom.xslt.xml. Если делать методом copy/paste -- это все тоже придется
копировать. Да и сам такой подход мне сильно не нравится... Кстати,
XSieve относится к другому пространству имен, так что схему для его
элементов все равно придется писать отдельно, хоть их там всего две штуки.

Вообще, я думаю сделать проще -- xsieve.xsd и порожденный им пакет +
небольшой hrc-враппер, который запихивает его элементы в
xslt:top-levelGroup-group и xslt:instructions-group.
Технические проблемы я здесь вижу с особенностями формата XML -
возможностью юзать &quot; &#x28; внутри того-же лиспового кода - текст
с такими вкраплениями колореру не по силам будет разобрать.
Ну, с этим уж ничего не сделаешь. Кстати, такого рода вещи наводят меня
на мысли, что в колорере надо ввести что-то вроде "слоев парсинга", для
случая, когда один язык включается в другой, и квотится по его законам.

Т.е. идея (на перспективу / на colorer-6) примерно такая:
Во "внешнем" языке некоторые блоки помечаются, как включающие, помимо
какой-нибудь схемы, допустим, "escaped-string", "внутренний" язык. И
этому "внутреннему" языку содержимое блока передается уже
"расковыченное" (как именно его обрабатывать -- должно определяться
специальными регекспами). А дальше на ту разметку, которую дало
применение схемы "внутреннего" языка, накладывается применение схемы
"escaped-string" "внешнего" языка...
--
WBR, Eugene




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Igor Russkih
2006-03-13 14:58:10 UTC
Permalink
xs:redefine ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ, ÓÏÇÌÁÓÅÎ.
îÅ, Ë ÜÔÏÊ ËÏÎËÒÅÔÎÏÊ ÚÁÄÁÞÅ ÏÎÏ ÐÒÑÍÏÇÏ ÏÔÎÏÛÅÎÉÑ ÕÖÅ ÎÅ ÉÍÅÅÔ.
îÅÓËÏÌØËÏ ÆÁÊÌÏ× -- ÜÔÏ ÏÄÉÎ ÉÚ ×ÏÚÍÏÖÎÙÈ ÓÐÏÓÏÂÏ× ËÁË ÒÁÚ ÒÅÁÌÉÚÏ×ÁÔØ
ÜÔÕ ÓÁÍÕÀ ÐÏÄÄÅÒÖËÕ redefine. åÓÌÉ ÔÁÍ ×ÓÅ ÌÅÐÉÔØ × ÏÄÉÎ ÆÁÊÌ, ÐÒÉÄÅÔÓÑ
ÓÉÌØÎÏ ÉÚ×ÒÁÝÁÔØÓÑ Ó ÉÍÅÎÁÍÉ ÐÅÒÅÏÐÒÅÄÅÌÑÅÍÙÈ ÓÕÝÎÏÓÔÅÊ. ìÕÞÛÅ ÉÈ ÐÏ
ÒÁÚÎÙÍ ÎÅÊÍÓÐÅÊÓÁÍ ÒÁÚÎÅÓÔÉ...
ÑÓÎÏ, Ó ÜÔÉÍ ÓÏÇÌÁÓÅÎ ËÏÎÅÞÎÏ ;)


îÕ ÉÌÉ ËÁË ×ÁÒÉÁÎÔ -- ÐÒÅÄÕÓÍÏÔÒÅÔØ ÞÔÏ-ÎÉÂÕÄØ ×ÒÏÄÅ ×ÌÏÖÅÎÎÙÈ ÐÁËÅÔÏ×,
ËÏÔÏÒÙÅ ÇÌÏÂÁÌØÎÏ ÎÅ ×ÉÄÎÙ. ëÓÔÁÔÉ, ÄÅ-ÆÁËÔÏ ÔÁËÉÅ ÓÔÒÕËÔÕÒÙ ÕÖÅ
ÉÓÐÏÌØÚÕÀÔÓÑ (× ÔÏÍ ÖÅ xpath.hrc), É ËÏÌÏÒÅÒ ÉÚ-ÚÁ ÎÉÈ ÍÕÓÏÒÉÔ × ÌÏÇ...
ÎÕ ÜÔ ËÒÉ×Ï ×ÓÅ, ÅÓÌÉ ÔÙ ÐÒÏ ÜÔÉ ÓÕÝÎÏÓÔÉ ×ÎÅÛÎÉÅ... ÕÒÏÄÌÉ×Ï ÕÖ ÏÞÅÎØ.
ÔÒÅÂÕÅÔÓÑ ×ÐÉÈÎÕÔØ...
ôÁÍ ×ÓÅ ÎÅ ÔÁË ÐÒÏÓÔÏ. ðÏÓÍÏÔÒÉ ÓËÏÌØËÏ ×ÓÅÇÏ ÎÁ×ÏÒÏÞÅÎÏ ×
custom.xslt.xml. åÓÌÉ ÄÅÌÁÔØ ÍÅÔÏÄÏÍ copy/paste -- ÜÔÏ ×ÓÅ ÔÏÖÅ ÐÒÉÄÅÔÓÑ
ËÏÐÉÒÏ×ÁÔØ. äÁ É ÓÁÍ ÔÁËÏÊ ÐÏÄÈÏÄ ÍÎÅ ÓÉÌØÎÏ ÎÅ ÎÒÁ×ÉÔÓÑ... ëÓÔÁÔÉ,
XSieve ÏÔÎÏÓÉÔÓÑ Ë ÄÒÕÇÏÍÕ ÐÒÏÓÔÒÁÎÓÔ×Õ ÉÍÅÎ, ÔÁË ÞÔÏ ÓÈÅÍÕ ÄÌÑ ÅÇÏ
ÜÌÅÍÅÎÔÏ× ×ÓÅ ÒÁ×ÎÏ ÐÒÉÄÅÔÓÑ ÐÉÓÁÔØ ÏÔÄÅÌØÎÏ, ÈÏÔØ ÉÈ ÔÁÍ ×ÓÅÇÏ Ä×Å ÛÔÕËÉ.
ÏÈ. ÎÕ ÓÏÇÌÁÓÅÎ × ÐÒÉÎÃÉÐÅ ;)

÷ÏÏÂÝÅ, Ñ ÄÕÍÁÀ ÓÄÅÌÁÔØ ÐÒÏÝÅ -- xsieve.xsd É ÐÏÒÏÖÄÅÎÎÙÊ ÉÍ ÐÁËÅÔ +
ÎÅÂÏÌØÛÏÊ hrc-×ÒÁÐÐÅÒ, ËÏÔÏÒÙÊ ÚÁÐÉÈÉ×ÁÅÔ ÅÇÏ ÜÌÅÍÅÎÔÙ ×
xslt:top-levelGroup-group É xslt:instructions-group.
ÍÇÍ. ÔÏÅÓÔØ ÓÙÍÉÔÉÒÏ×ÁÔØ xs:redefine ÎÁ HRC ÄÌÑ ÄÁÎÎÏÇÏ ËÏÎËÒÅÔÎÏÇÏ ÓÌÕÞÁÑ
ÒÕÞËÁÍÉ? ;)


îÕ, Ó ÜÔÉÍ ÕÖ ÎÉÞÅÇÏ ÎÅ ÓÄÅÌÁÅÛØ. ëÓÔÁÔÉ, ÔÁËÏÇÏ ÒÏÄÁ ×ÅÝÉ ÎÁ×ÏÄÑÔ ÍÅÎÑ
ÎÁ ÍÙÓÌÉ, ÞÔÏ × ËÏÌÏÒÅÒÅ ÎÁÄÏ ××ÅÓÔÉ ÞÔÏ-ÔÏ ×ÒÏÄÅ "ÓÌÏÅ× ÐÁÒÓÉÎÇÁ", ÄÌÑ
ÓÌÕÞÁÑ, ËÏÇÄÁ ÏÄÉÎ ÑÚÙË ×ËÌÀÞÁÅÔÓÑ × ÄÒÕÇÏÊ, É Ë×ÏÔÉÔÓÑ ÐÏ ÅÇÏ ÚÁËÏÎÁÍ.
äÁ, ÉÄÅÑ ÔÏ ÑÓÎÁ. ×ÏÐÒÏÓ Ó ÒÅÁÌÉÚÁÃÉÅÊ ÎÅ ÓÏ×ÓÅÍ ÑÓÎÙÊ, ÎÏ ÜÔÏ ÎÁÄÏ
ÏÂÍÏÚÇÏ×Ù×ÁÔØ ÇÌÕÂÖÅ ;)

--
Igor
Eugene Efremov
2006-03-13 17:50:31 UTC
Permalink
Hello!
Post by Eugene Efremov
Ну или как вариант -- предусмотреть что-нибудь вроде вложенных
пакетов,
которые глобально не видны. Кстати, де-факто такие структуры уже
используются (в том же xpath.hrc), и колорер из-за них мусорит в
лог...
ну эт криво все, если ты про эти сущности внешние... уродливо уж очень.
То, как это сейчас реализовано -- да, криво. Кроме того, если
реализовать эти самые "слои парсинга", то в 90% случаев надобность в
этом хаке отпадет. А оставшиеся 10% отпадут, если реализовать передачу
параметров схемам...

Но сам по себе механизм создания пакетов, которые глобально не видны, а
доступны лишь из конкретного типа/пакета -- вещь нужная. После
реализации этого самого redefine быстро образуется куча пакетов с
названиями вроде "xhtml-ruby-basic-1.xsd-pack". И делать им в глобальном
пространстве имен совершенно нечего, imho...

Кстати, сейчас подумал, что в первом приближении можно обойтись xslt 1,
но тогда придется _очень_ сильно заморачиваться с антом...
Post by Eugene Efremov
Вообще, я думаю сделать проще -- xsieve.xsd и порожденный им пакет +
небольшой hrc-враппер, который запихивает его элементы в
xslt:top-levelGroup-group и xslt:instructions-group.
мгм. тоесть сымитировать xs:redefine на HRC для данного конкретного
случая ручками? ;)
Ага. Если не будет каких-нибудь граблей с вложенной виртуализацией (а
здесь, вроде, им взяться неоткуда...), думаю, это будет достаточно просто...
--
WBR, Eugene





-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Loading...