С http://www.w3.org/TR/xpath-functions/#func-doc-available
Если fn: doc ($ uri) возвращает узел документа, эта функция возвращает true.Если $ uri не является допустимым xs: anyURI, возникает ошибка [err: FODC0005].В противном случае эта функция возвращает false.
И из http://www.w3.org/TR/xpath-functions/#func-doc
Одна из возможных моделей обработки для этой функции заключается в следующем.Ресурс, идентифицированный ссылкой URI, извлекается.Если ресурс не может быть получен, возникает ошибка [err: FODC0002].Данные, полученные в результате действия извлечения, затем анализируются как документ XML, и дерево строится в соответствии с [Модель данных XQuery 1.0 и XPath 2.0].Если тип носителя верхнего уровня известен и является «текстовым», содержимое анализируется так же, как если бы тип носителя был text / xml;в противном случае он анализируется так же, как если бы тип носителя был application / xml.Если содержимое не может быть успешно проанализировано, возникает ошибка [err: FODC0002].В противном случае, результатом функции является узел документа в корне результирующего дерева.Затем это дерево необязательно проверяется на соответствие схеме.
Итак, похоже, что вы могли бы сделать это (я осторожен из-за слов "Одна возможная модель обработки" ): Эта таблица стилей:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="pURI" select="'B.xml'"/>
<xsl:template match="/">
<DefaultResult>
<xsl:if test="doc-available($pURI)">
<xsl:apply-templates select="doc($pURI)/*"/>
</xsl:if>
</DefaultResult>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
При любом вводе и B.xml
пустой документ, саксонский вывод:
<DefaultResult/>
И эта альтернативная информация:
Error on line 1 column 1 of B.xml:
SXXP0003: Error reported by XML parser: Premature end of file.
Альтова Выход:
<DefaultResult>
<Entry type="Folder">
<Name/>
<Date/>
<Info>
<URI>B.xml</URI>
<Comment/>
<Files>0</Files>
<CompressedSize>0</CompressedSize>
<UncompressedSize>0</UncompressedSize>
<Ratio>0</Ratio>
<ContainsEncryptedFiles>false</ContainsEncryptedFiles>
</Info>
</Entry>
</DefaultResult>