Язык преобразований XSL


Образцы


[1] Pattern    ::=   
| '|'
[2]    LocationPathPattern    ::=    '/' ?
| (('/' | '//') )?
| '//'?
[3]    IdKeyPattern    ::=    'id' '(' ')'
| 'key' '(' ',' ')'
[4]    RelativePathPattern    ::=   
| '/'
| '//'
[5]    StepPattern    ::=    *
[6]    ChildOrAttributeAxisSpecifier    ::=   
| ('child' | 'attribute') '::'

Считается что узел соответствует образцу тогда и только тогда, когда есть такой возможный контекст, что если с этим контекстом данный образец обрабатывать как выражение, то этот узел будет среди полученного набора узлов. Когда узел соответствует образцу, то для возможных контекстов используется узел контекста, которому соответствует либо сам этот элемент, либо какой-либо предок этого узла, а контекстный набор узлов содержит только этот узел контекста.

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

Замечание: Такой образец соответствует даже элементу p, являющемуся элементом этого документа, поскольку корень документа является родителем элемента документа.

Хотя семантика образцов формулируется косвенно в терминах обработки выражений, смысл образца легко понять сразу, не прибегая к терминологии обработки выражений. Символ | в образце обозначает альтернативу. Соответствие образцу с одним или несколькими символами |, разделяющими альтернативы, засчитывается если есть соответствие одной из этих альтернатив. Для образца, состоящего из последовательности -ов, разделенных / или //, соответствие проверяется справа налево. Соответствие образцу засчитывается только если есть соответствие самому правому , а соответствующий элемент отвечает остальной части образца.


- Начало -  - Назад -  - Вперед -