Итак, общая картина в том, что я пытаюсь определить, почему существует «контент в прологе» (что недопустимо).
Похоже, что контент, который включается, исходит из результата этого XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wd="urn:com.workday/bsvc">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*" />
<!-- <xsl:template match="props['xpath_matchHoursDateType']"> -->
<xsl:template match="wd:Report_Data/wd:Report_Entry[1]/wd:Employee_ID">
<Root>
<xsl:copy-of select="."/>
</Root>
</xsl:template>
</xsl:stylesheet>
... который при применении к следующему XML дает удивительный результат:
<wd:Report_Data xmlns:wd="urn:com.workday/bsvc">
<wd:Report_Entry>
<wd:Employee_ID>123456</wd:Employee_ID>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:Employee_ID>234567</wd:Employee_ID>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:Employee_ID>345678</wd:Employee_ID>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:Employee_ID>456789</wd:Employee_ID>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:RBO_Group>
<wd:Date_Worked>12/15/2014</wd:Date_Worked>
<wd:Hours>41.53</wd:Hours>
<wd:Type>TypeA</wd:Type>
<wd:Process_Date>09/20/2019</wd:Process_Date>
</wd:RBO_Group>
<wd:RBO_Group>
<wd:Date_Worked>12/15/2014</wd:Date_Worked>
<wd:Hours>41.53</wd:Hours>
<wd:Type>TypeA</wd:Type>
<wd:Process_Date>01/30/2020</wd:Process_Date>
</wd:RBO_Group>
<wd:Employee_ID>567890</wd:Employee_ID>
</wd:Report_Entry>
</wd:Report_Data>
Результат:
<Root xmlns:wd="urn:com.workday/bsvc"><wd:Employee_ID>123456</wd:Employee_ID></Root>23456734567845678912/15/201441.53TypeA09/20/201912/15/201441.53TypeA01/30/2020567890
Я ожидаю, что шаблон будет соответствовать узлу "wd: Employee_ID" первого найденного им узла "wd: Report_Entry", скопировать его, а затем будет выполнен. Поэтому я удивлен, увидев что-нибудь после закрывающего тега Root. Я не лучший программист XSL, и я только сейчас работаю с потоковым XSL 3.0, так что это может быть частью уравнения.
Я передаю этот результат XML вместе с другим XSL-преобразованием который, как кажется, жалуется на содержание, включаемое в пролог, который я могу себе представить, это дополнительный контент после закрытия root.
Итак, почему остальная часть XML содержание, добавляемое к результату после завершения (AFAIK) шаблона?