Hm,


The rule incorrectly outputs the warning when there is no blank in the element, even with the change you're proposing.


All DITA elements seem to have a class attribute. The other Schematron rules I am using are all written with class attributes and they work.


I don't know if the following has to do with this issue. Since today I am always getting the following error when I save a Schematron rule. I then click "Save anyway".

access denied ("java.security.AllPermission" "<all permissions>" "<all actions>")

I don't know what is causing this.




Am 14.02.2024 um 10:02 schrieb David Maus:
Moin!

On Wed, 14 Feb 2024 09:48:18 +0100,
Frank Dissinger wrote:
[1  <multipart/alternative (7bit)>]
[1.1  <text/plain; UTF-8 (8bit)>]
[1.2  <text/html; UTF-8 (8bit)>]
Hi all,

I want to write a Schematron rule which checks whether a keyref'ed element contains a blank character.

WRONG:   <ph keyref="mykey"> </ph>

CORRECT: <ph keyref="mykey"></ph>

I adapted another rule and tried the following, but it does not work as expected.
In addition, it should apply to any keyref'ed element, not only to <ph>.

  <sch:pattern id="Check_blanks" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
    <sch:rule context="*[contains(@class, 'ph')][@keyref]">
      <sch:assert test="not(contains(text(), ' '))">No blank allowed inside keyref'ed ph elements</sch:assert>
    </sch:rule>
  </sch:pattern>
Your rule matches all elements with @keyref and with an @class
attribute that contains 'ph'.

The two examples do not have a @class attribute, thus the rule doesn't
fire.

Maybe rewrite the rule as

sch:rule context="*[@keyref]"?

HTH,
  -- David



Any help would be greatly appreciated.

Regards,

Frank

-- 

Frank Dissinger

Documentation Manager

....................................................................

CGS ORIS GmbH

Email frank.dissinger@cgs-oris.com | Web www.cgs-oris.com

Address Kettelerstr. 24 | D-63512 Hainburg | Germany

Phone +49 6182 9626-27 | Fax +49 6182 9626-99

Commercial register Offenbach, HRB no. 21495

Managing directors Bernd Rückert, Christoph Thommessen
--

Frank Dissinger

Documentation Manager

....................................................................

CGS ORIS GmbH

Email frank.dissinger@cgs-oris.com | Web www.cgs-oris.com

Address Kettelerstr. 24 | D-63512 Hainburg | Germany

Phone +49 6182 9626-27 | Fax +49 6182 9626-99

Commercial register Offenbach, HRB no. 21495

Managing directors Bernd Rückert, Christoph Thommessen


https://www.cgs-oris.com/Signatur.png