2015-09-15 3 views
2

Я пытаюсь создать DSL, который будет содержать несколько XPaths в качестве параметров. Я новичок в XPath, и мне нужен персонаж, который никогда не используется в синтаксисе XPath, поэтому я могу выделить n число XPaths в одной строке скрипта. Мой вопрос: какие символы НЕ являются частью синтаксиса XPath?Какие символы никогда не используются в xpath?

ответ

1

Пустой символ.

Серьезно. Поскольку XPath должен поддерживать любой XML-документ, он должен быть способен сопоставлять текстовые узлы, содержащие любой допустимый символ Unicode. Однако XML запрещает один символ: нулевой символ.

Хорошо, это не совсем так, но это проще всего. Как и в XML 1.1, поддерживались управляющие символы, за исключением Unicode Null. Однако, согласно XML 1.0 production of Char, есть несколько других символов, которые вы можете выбрать из: суррогатных пар (в качестве символов, а не как правильно закодированных октетов, представляющих символ без BMP) и всего до 0x20, кроме перевода строки, возврата каретки и табуляции.

Другим хорошим догадка является любой персональный персонаж, так как маловероятно, что он используется вашими входными документами, однако это не гарантируется, и вы просили «никогда».

1

Я пытаюсь создать DSL, который будет содержать несколько XPaths в качестве параметров.

Ну, многие люди используют XML для DSL, и это, как вы могли бы сделать это в XML:

<paths> 
    <path>/a/b/c/d</path> 
    <path>/w/x/y/z</path> 
</path> 

Так как же нам примирить это с тем, что «<» может появиться в Выражение XPath? Ответ: если он появится, мы избегаем его:

<paths> 
    <path>/a/b/c/d[e &lt; 3]</path> 
    <path>/w/x/y/z[v &lt; 2]</path> 
</path> 

Итак: не пытайтесь найти символ, который не может появиться в выражении XPath. Используйте символ, который может появиться, и избегайте его, если это произойдет.

Смежные вопросы