Святой GNU, после целого дня на этом, мне удалось получить как XSL, так и HTML автозаполнения, работающие над одним и тем же XSL-файлом.
Скачать версия XSD из HTML5
HTML не XML, так что мы должны взглянуть на XHTML5 (HTML сериализованную в XML). Я взял XSD из there
Скажите NetBeans использовать его
пространство имен XHTML http://www.w3.org/1999/xhtml должны использовать XSD мы загрузили. Итак, в Инструменты → DTD & XML-схема → Каталог пользователей, добавьте локальную схему, где System ID
- http://www.w3.org/1999/xhtml
, а URI
- the xhtml5.xsd you've downloaded
.
Возможно, вам потребуется перезапустить netbeans (я на самом деле много раз пересказывал его, я не могу сказать, требуется ли это или нет).
Используйте пространство имен XHTML в XSL
Теперь в XSL, скажите, что вы используете пространство имен XHTML с атрибутом xmlns="http://www.w3.org/1999/xhtml"
на корневом узле.
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
Вы также могли бы добавить этот xmlns
атрибут каждого HTML узла наиболее верхнего уровня (он же, каждый HTML узел, который не имеет HTML-узел в их предков). Вы также можете использовать xmlns:html
на корневом узле и использовать <html:*>
вместо <*>
узлов. Это полезно, если у вас несколько пространств имен, таких как HTML+SVG+MathML+XSL
.
Наслаждайтесь HTML автозаполнения
Затем вы должны иметь завершение для HTML авто. Это требует, чтобы вы явно вводили первый тег html
, но один раз внутри тега html
автоматически завершаете работу (поэтому, если вы делаете table
внутри xsl:template
, вам все равно придется вводить <table>
, но один раз внутри, автоматически полный предложит такие вещи, как <caption>
, <thead>
и т. д.).
насчет автозаполнения XSL внутри HTML?
Это требует редактирования в XSD xhtml. Мы должны объявить пространство имен XSL в XSD, используя xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
на корневом узле XSD. Затем в XSD мы должны указать, что каждый HTML-узел может содержать узел XSL. Это делается с помощью <xs:any namespace="http://www.w3.org/1999/XSL/Transform" processContents="skip"/>
во всех группах элементов <xs:group>
.
После завершения этих изменений XSD сообщает «Каждый узел HTML может содержать элемент из пространства имен XSL», поэтому автозаполнение Netbeans предложит также узлы XSL.
Вы можете скачать отредактированное XSD Я использую здесь: http://xenos.reinom.com/stackoverflow/xhtml5.xsd
В случае, если вам интересно, я сделал длинный подробный ответ, так что вы можете сделать то же самое, если вы хотите смешать XSL и SVG или XSL и любой другой формат XML-XSDed.
Вы узнали, как работать с автозаполнением? – Xenos