Как можно сгруппировать TEXT / ELEMENT по элементу xsl: for-each-group в XSLT 2.0

Файл .pgpass в домашнем каталоге пользователя или файл, на который ссылается PGPASSFILE, может содержать пароли, которые будут использоваться, если для соединения требуется пароль (и пароль не указан иначе). В Microsoft Windows файл называется% APPDATA% \ postgresql \ pgpass.conf (где% APPDATA% относится к подкаталогу Application Data в профиле пользователя).

Этот файл должен содержать строки следующего формата:

hostname: port: database: username: password

(Вы можете добавить комментарий к файлу, скопировав строку выше и перед ней с помощью #.) Каждый из первых четырех поля могут быть буквальным значением или *, что соответствует чему-либо. Будет использовано поле пароля из первой строки, которое соответствует текущим параметрам соединения. (Поэтому сначала ставьте более конкретные записи, когда вы используете подстановочные знаки.) Если запись должна содержать: или \, скройте этот символ. Имя хоста localhost соответствует как TCP (имя хоста localhost), так и сокету Unix домена (pghost empty или каталог сокета по умолчанию), исходящие от локальной машины. На резервном сервере имя базы данных репликации соответствует потоковым соединениям репликации, сделанным на главный сервер. Поле базы данных имеет ограниченную полезность, поскольку пользователи имеют одинаковый пароль для всех баз данных в одном кластере.

В системах Unix разрешения на .pgpass должны запрещать любой доступ к миру или группе; это достигается командой chmod 0600 ~ / .pgpass. Если разрешения менее строгие, чем этот, файл будет проигнорирован. В Microsoft Windows предполагается, что файл хранится в безопасном каталоге, поэтому специальная проверка прав доступа не производится.

0
задан Mohd Javed 28 March 2019 в 10:18
поделиться

1 ответ

Как вы упомянули требование в комментариях, я попробовал @Martin Honnen следующим образом:

Предполагая, что входное значение равно:

<?xml version="1.0" encoding="UTF-8"?>
<p>
      <overline-start id="tie1" specific-use="tie-bar"/>PtCl<sub>2</sub>(P((CH<sub>2</sub>)<sub><italic toggle="yes">n</italic></sub>)<sub>3</sub><overline-end rid="tie1"/>
</p>

A 2.0 решение может быть:

<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs">
<xsl:output omit-xml-declaration="yes" indent="no" />

<xsl:template match="node()|@*">
    <xsl:copy>
        <xsl:apply-templates select="node()|@*" />
    </xsl:copy>
</xsl:template>

<xsl:template match="p">
    <overline>
        <xsl:for-each-group select="* | text()" group-starting-with="overline-start">
            <xsl:for-each-group select="current-group()" group-ending-with="overline-end">
                <xsl:apply-templates select="@*" />
                <xsl:sequence select="(current-group() except .) [position() != last()]" />
            </xsl:for-each-group>
        </xsl:for-each-group>
    </overline>
</xsl:template>
</xsl:stylesheet>

http://xsltfiddle.liberty-development.net/bnnZW8/1

0
ответ дан Vebbie 28 March 2019 в 10:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: