Application properties are similar to element attributes except that:
A property is not part of the document content.
A property cannot be not saved to disk.
The value of a property is not limited to a string but can be any Java™ object.
The name of a property is an XML qualified name, just like for attributes.
A property is not directly editable by the user. A property is added to an XML node by the application (that is, XXE).
Pseudo-function property(property_name
) can be used to insert the value of the property in generated content.
Pattern | Meaning |
---|---|
E:property(ns|foo) | an E element, having a property named ns|foo |
E:property(ns|foo, "bar") or E:property(ns|foo, equals, "bar") | an E element, having a property named ns|foo with a value whose string representation equals "bar" |
E:property(ns|foo, starts-with, "f") | an E element, having a property named ns|foo with a value whose string representation starts with string "f". |
E:property(ns|foo, ends-with, "oo") | an E element, having a property named ns|foo with a value whose string representation ends with string "oo". |
E:property(ns|foo, contains, "o") | an E element, having a property named ns|foo with a value whose string representation contains substring "o". |
An example of application property is {http://www.xmlmind.com/xmleditor/namespace/property}sourceURL
, the location of the file from which an XML node has been loaded. Excerpt of
:XXE_install_dir
/addon/config/common/css/visible_inclusions.imp
@namespace prop "http://www.xmlmind.com/xmleditor/namespace/property"; *:property(prop|sourceURL):before { content: icon(left-half-disc) "sourceURL=" property(prop|sourceURL) icon(right-half-disc); display: inherit; color: red; font-size: small; text-align: center; }
The above rule inserts above any element having a {http://www.xmlmind.com/xmleditor/namespace/property}sourceURL
property, a block or an inline displaying the value of this property.
Another example is property {http://www.xmlmind.com/xmleditor/namespace/property}readOnly
. This property is set on all XML nodes which cannot be modified by the user (e.g. included nodes). Excerpt of the built-in CSS file (automatically included before all the other CSS files):
@namespace prop "http://www.xmlmind.com/xmleditor/namespace/property"; *:property(prop|readOnly, "true") { background-color: #E0F0F0; } *:property(prop|readOnly, "false") { background-color: normal; }