├── .gitignore ├── README.md ├── concept-papers ├── out │ ├── html │ │ └── xmlprague-meeting.html │ └── pdf │ │ └── xmlprague-meeting.pdf └── xmlprague-meeting.xml ├── index.html ├── samples ├── SqfOxyUtil │ ├── README.md │ └── java │ │ ├── .classpath │ │ ├── .gitignore │ │ ├── .project │ │ ├── SqfOxyUtil.jar │ │ ├── build.xml │ │ └── src │ │ └── org │ │ └── sqf │ │ └── oxy │ │ └── util │ │ └── StaticFct.java ├── SqfUtil │ ├── README.md │ ├── java │ │ ├── .classpath │ │ ├── .gitignore │ │ ├── .project │ │ ├── SqfOxyUtil.jar │ │ ├── build.xml │ │ └── src │ │ │ └── org │ │ │ └── sqf │ │ │ └── util │ │ │ └── StaticFct.java │ ├── loadDocRaw-test │ │ ├── loadDocRaw-test.xml │ │ ├── loadDocRaw-test.xsd │ │ └── loadDocRaw-test.xsl │ ├── sqfu-copy-of-test │ │ ├── sqfu-copy-of-test.xml │ │ ├── sqfu-copy-of-test.xsd │ │ └── sqfu-copy-of-test.xsl │ └── sqfu-copy-of.xsl ├── add-id │ ├── README.md │ ├── add-id.dita │ └── add-id.sch ├── correct-spacing │ ├── README.md │ ├── correct-spacing.dita │ ├── correct-spacing.sch │ ├── correct-spacing.xsl │ └── topic-with-space-preserve.rng ├── editingRules-DITA │ ├── OutputCodedeblock.xml │ ├── README.md │ ├── Schemas │ │ ├── flowersEditingConsistencyRules.sch │ │ ├── flowersOutputRules.sch │ │ ├── flowersSimpleStylingRules.sch │ │ └── flowersStructureRules.sch │ ├── flowersEditingConsistencyRules.xml │ ├── flowersSimpleStylingRules.xml │ └── flowersStructureRules.xml ├── handle-dita-attributes │ ├── README.md │ ├── handle-dita-attributes.dita │ ├── handle-dita-attributes.sch │ └── handle-dita-attributes.xsl ├── handle-docbook-xincludes │ ├── README.md │ ├── child.xml │ ├── handle-docbook-xincludes.sch │ ├── handle-docbook-xincludes.xml │ └── handle-docbook-xincludes.xsl ├── html-dialog │ ├── README.md │ ├── html-dialog-sch.xpr │ ├── html-dialog-sch.xsl │ ├── html-dialog.sch │ ├── html-dialog.xml │ └── saxon-xsltgui-config.xml ├── ignore-warning │ ├── README.md │ ├── ignore-warning.dita │ └── ignore-warning.sch ├── localization │ ├── java-properties-dynamic │ │ ├── dog.sch │ │ ├── dog_de.xml │ │ └── dog_fr.xml │ ├── java-properties │ │ ├── dog.sch │ │ ├── dog_de.xml │ │ └── dog_fr.xml │ ├── sch-diagnostic-dynamic │ │ └── dog.sch │ └── sch-diagnostic │ │ └── dog.sch ├── merge-dita-sl │ ├── README.md │ ├── merge-dita-sl.dita │ └── merge-dita-sl.sch ├── outsource-dita-topics │ ├── README.md │ ├── oursource-dita-topics-dita-semia.dita │ ├── oursource-dita-topics-dita-semia.xsd │ ├── outsource-dita-topics.dita │ ├── outsource-dita-topics.ditamap │ ├── outsource-dita-topics.sch │ └── outsource-dita-topics.xsl ├── outsource-docbook-chapters-gui │ ├── README.md │ ├── oursourced-chapter.xml │ ├── outsource-docbook-chapters-gui.sch │ ├── outsource-docbook-chapters-gui.xml │ └── outsource-docbook-chapters-gui.xsl ├── outsource-docbook-chapters │ ├── README.md │ ├── oursourced-chapter.xml │ ├── outsource-docbook-chapters.sch │ ├── outsource-docbook-chapters.xml │ └── outsource-docbook-chapters.xsl ├── register-key-oxy │ ├── README.md │ ├── key-list.xml │ ├── register-key.css │ ├── register-key.sch │ └── register-key.xml ├── register-key │ ├── README.md │ ├── key-list.xml │ ├── register-key.sch │ └── register-key.xml ├── sqf-samples.xpr └── user-entry │ ├── README.md │ ├── user-entry.sch │ └── user-entry.xml ├── schemas ├── iso-schematron.xsd ├── schematron-quickFix.xsd ├── sqf.sch └── xml.xsd └── spec ├── SQFSpec.html ├── SQFSpec.xml ├── SQFSpec_Elements.xml └── img ├── svg ├── sqf_activityBase.svg ├── sqf_activityElements.svg ├── sqf_activityManipulate.svg ├── sqf_add.svg ├── sqf_call-fix.svg ├── sqf_copy-of.svg ├── sqf_delete.svg ├── sqf_description.svg ├── sqf_fix.svg ├── sqf_fixElements.svg ├── sqf_fixes.svg ├── sqf_foreign-element.svg ├── sqf_foreign.svg ├── sqf_group.svg ├── sqf_keep.svg ├── sqf_messageAttributes.svg ├── sqf_p.svg ├── sqf_param.svg ├── sqf_parameterAttributes.svg ├── sqf_refAttribute.svg ├── sqf_replace.svg ├── sqf_rootAttributes.svg ├── sqf_stringReplace.svg ├── sqf_templateElements.svg ├── sqf_title.svg ├── sqf_user-entry.svg └── sqf_with-param.svg └── workflow.png /.gitignore: -------------------------------------------------------------------------------- 1 | samples/SqfOxyUtil/java/MANIFEST.MF 2 | samples/SqfUtil/java/MANIFEST.MF 3 | samples/outsource-docbook-chapters/another-chapter.xml 4 | samples/outsource-docbook-chapters/one-chapter.xml 5 | samples/outsource-dita-topics/child-topic.dita 6 | samples/outsource-dita-topics/description.dita 7 | samples/outsource-dita-topics/dosomething.dita 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Schematron Quick Fix (SQF) 2 | 3 | Schematron QuickFix is an extension of the 4 | [ISO Schematron](http://schematron.com/) standard. 5 | 6 | This repository is for editing drafts and discussion of the 7 | [Schematron Quick Fixes](spec/SQFSpec.html) specification. 8 | 9 | Latest published version: http://schematron-quickfix.github.io/sqf 10 | 11 | Latest editor's draft: http://schematron-quickfix.github.io/sqf/spec/SQFSpec.html 12 | 13 | Please discuss your issues in this github project or on the 14 | [public mailing list](mailto:public-quickfix@w3.org) of the w3c commutiy group 15 | [Quick-fix support for XML](https://www.w3.org/community/quickfix/) 16 | 17 | Schematron QuickFix - XML Prague Presentation 18 | 19 | [](https://www.youtube.com/watch?v=RLMc0B0di5s) 20 | 21 | 22 | Sample files: https://github.com/schematron-quickfix/sqf/tree/master/samples 23 | -------------------------------------------------------------------------------- /concept-papers/out/html/xmlprague-meeting.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |Abstract
During the XMLPrague, we discussed in a small group current issues of the Schematron QuickFix language to prepare the second draft version of the specification.
In the following we want to update you by a summary of the discussed issues and our conclusions.
This article is based on some short notes which were made during the 4 | session.
Table of Contents
Everyone was satisfied by using Patrik's example.
Short summary:
Dynamic fixes will be created by sqf:fix
elements with an use-for-each
attribute.
The use-for-each
attribute has an XPath as value. For each return value one fix should be generated.
Context is still the same, with $sqf:current
(build-in
8 | variable)
9 | you can have access to the current returned value.
The current problem was already described in this issue: https://github.com/schematron-quickfix/sqf/issues/2
sqf:description
is optional
10 | and
11 | unbounded, but the language (@xml:lang
)
12 | needs to be unique in one sqf:fix
element
(if possible, auto completion should add it automatically when
13 | creating sqf:fix
elements)
The sqf:fix
must have a description, if there is no or
14 | more than one sqf:call-fix
with a description
15 | inside.
If you have exactly one sqf:call-fix
and no sqf:description
element, the called fix must have a sqf:description
or inherit one.
The languages of the descriptions of the called fix and the calling fix could be different:
Use case: Use sqf:call-fix
to add a different language to an existing fix.
This concept ignores the localisation proposal below.
XSD has limitations, so the schematron-quickfix.xsd would be very lax. The order of the sqf:fix
content would be checked by Schematron (sqf.sch). One suggestion was, to switch the basic schema (schematron-quickfix.xsd) to RELAX NG
The concept above includes a localisation concept:
Multiple descriptions which have to be in different languages.
Concept for adding a description to an existing fix.
There is no concept for referring to descriptions, which are stored in an external file (library).
There was no final concept for this issue, just a couple of proposals:
Use Schematron localisation concept.
Add @diagnostic
to sqf:title
and sqf:p
.
Remove the @xml:lang
from the sqf:description
.
Add @diagnostic
to sqf:description
with maybe multiple ids for localisation.
Multiple sqf:title
with @xml:lang
.
Only one sqf:description
per sqf:fix
element.
Main goal would be to have all
16 | sqf:title
/sqf:p
in one external
17 | document.
Design an own referencing concept for descriptions.
Something like sqf:diagnostic
, but there was no further discussion about that.
Allow to specify global descriptions and refer them.
Allow sqf:description
in sqf:fixes
.
Add ref
and id
attribute to sqf:description
.
An empty sqf:description
element with a ref
attribute refers to a global sch:description
element with an id
attribute.
The different proposals should be discussed.
Maybe a localisation specialist should be called in.
The discussion should be continued in this issue https://github.com/schematron-quickfix/sqf/issues/1
The first question was after a use case for the sqf:keep
element:
The following example shows an Activity Element, which transforms all child elements of an specific namespace in the NULL
namespace:
<sqf:replace match=".//sqf:*" target="{local-name()}" node-type="element"> 18 | <sqf:keep/> 19 | </sqf:replace>
The group agreed, that this is a reasonable use case of sqf:keep
and it is impossible to do this with other SQF structures.
But because this is a very special case, we proposed to remove the sqf:keep
element from the specification.
The use cases are also realizable by embedded XSLT.
Opened a new issue to discuss this https://github.com/schematron-quickfix/sqf/issues/14
The issue resulted by removing the sqf:keep
element.
It was noticed, that there is a huge usage of the xsl:copy-of
element (instead of sqf:keep
).
Introduction of a sqf:copy-of
element, because it (xsl:copy-of
) will be used really often to copy existing nodes.
For non-XSLT user, it is more understandable, if he don't have to change the namespace to copy nodes (like xsl:value-of
-> sch:value-of
).
No default for the select
attribute, because there are two reasonable options (.
and node()
).
This issue popped up, after the session: https://github.com/schematron-quickfix/sqf/issues/9
A paragraph.
11 |Another paragraph.
12 |A paragraph.
16 |Another paragraph.
17 |This text starts with a whitespace.
11 |Text with space at the end – often a sign that the next is not completed and the author wanted to
15 |Text with multiple whitespaces might indicate that the author planned to insert an element there. E.g. an
First paragraph. 23 | Second paragraph. 24 | Third paragraph.
25 |This text contains leading, trailing and multiple whitespaces as well as a 29 | linebreak.
30 |On Linux, the Java command should look like this:
9 |With just a little bit of care and preparation, any flower garden can be a vibrantly 10 | colored environment. Flowers can be selected for specific blooming seasons, colors and 11 | shapes. Both annual and perennial flower gardens can be planted depending on climate and 12 | specific needs.
13 |The various climatic changes that occur in cyclic pattern are termed as 'Seasons'. There 17 | are four general seasons occurring on Earth - Spring, Summer, Autumn and Winter.
18 |With just a little bit of care and preparation, any flower garden can be a vibrantly 10 | colored environment. Flowers can be selected for specific blooming seasons, colors and 11 | shapes. Both annual and perennial flower gardens can be planted depending on climate and 12 | specific needs.
13 |Read more about growing flowers here:
14 |Most of the information was taken from
When caring for your flower garden you want to feed your plants properly, control pests and 10 | weeds. Good soil is a must to successful gardening, landscaping, and healthy flowers. You 11 | have to balance the soil structure with nutrients and regulate the pH to cover your plants' 12 | needs. And above all, remember that many flower gardens fail because they just don't get 13 | enough of your attention.
14 |The various climatic changes that occur in cyclic pattern are termed as 'Seasons'. There 50 | are four general seasons occurring on Earth - Spring, Summer, Autumn and Winter.
51 |Iris - is a genus of between 200-300 species of flowering plants with showy 55 | flowers.
56 |Irises are extensively grown as ornamental plants in home and botanical 59 | gardens.
60 |Some rhizomes are traded as orris root and are used in perfume and medicine, 63 | though more common in ancient times than today.
64 |Snowdrop - is the common name for members of the genus Galanthus, a small genus of 69 | about 20 species in the family Amaryllidaceae.
70 |Gardenia - is a genus of about 250 species of flowering plants in the coffee 75 | family, Rubiaceae, native to the tropical and subtropical regions of Africa, 76 | southern Asia, Australasia and Oceania.
77 |Some text here...
11 |Some more text here...
15 |Edit the text:
18 | 19 |Edit the text:
41 | 42 |Some body text...
16 |Some body text...
29 |Some body text...
72 |Two consecutive
Text...
19 |Specialized
A title with the prefix "Software Component".
35 |A header with some internal information about the software component.
38 |A
A special CSS has been added to highlight content marked as
45 |
Some text here...
9 |Some more text here...
13 | 14 |Some text here...
18 |Some more text here...
22 | 23 |# | 35 |Title | 36 |Filename | 37 |
44 | |
46 |
47 | |
49 |
50 | |
65 |