XSL-преобразование - необъявленный префикс пространства имен

У меня есть файл XSL, с помощью которого я хотел бы преобразовать файл XML. Этот XML-файл был переименован в исходный файл с расширением .safe. здесь вы можете увидеть его первые строки

<?xml version="1.0" encoding="UTF-8"?>
<xfdu:XFDU xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" 
xmlns:xfdu="urn:ccsds:schema:xfdu:1" xmlns:safe="http://www.esa.int/safe/sentinel-1.0" xmlns:s1="http://www.esa.int/safe/sentinel-1.0/sentinel-1" 
xmlns:s1sar="http://www.esa.int/safe/sentinel-1.0/sentinel-1/sar" xmlns:s1sarl1="http://www.esa.int/safe/sentinel-1.0/sentinel-1/sar/level-1" 
xmlns:s1sarl2="http://www.esa.int/safe/sentinel-1.0/sentinel-1/sar/level-2" xmlns:gx="http://www.google.com/kml/ext/2.2" 
version="esa/safe/sentinel-1.0/sentinel-1/sar/level-1/slc/standard/iwdp">

скажем, я хотел бы извлечь значение по возрастанию

<metadataObject ID="measurementOrbitReference" classification="DESCRIPTION" category="DMD">
  <metadataWrap mimeType="text/xml" vocabularyName="SAFE" textInfo="Orbit Reference">
    <xmlData>
      <safe:orbitReference>
        <safe:orbitNumber type="start">11987</safe:orbitNumber>
        <safe:orbitNumber type="stop">11987</safe:orbitNumber>
        <safe:relativeOrbitNumber type="start">15</safe:relativeOrbitNumber>
        <safe:relativeOrbitNumber type="stop">15</safe:relativeOrbitNumber>
        <safe:cycleNumber>83</safe:cycleNumber>
        <safe:phaseIdentifier>1</safe:phaseIdentifier>
        <safe:extension>
          <s1:orbitProperties>
            <s1:pass>ASCENDING</s1:pass>
            <s1:ascendingNodeTime>2016-07-03T17:02:32.742483</s1:ascendingNodeTime>
          </s1:orbitProperties>
        </safe:extension>
      </safe:orbitReference>
    </xmlData>
  </metadataWrap>
</metadataObject>

Я пытаюсь таким образом

<xsl:template match="/">
<xsl:value-of select="/metadataSection/metadataObject/metadataWrap/xmlData/safe:acquisitionPeriod/safe:startTime" />
</xsl:template>

или (если я назову этот файл внешним XML-файлом)

<xsl:value-of select="document('file:///C:/workspace/S2_XSLtest/S1_XSLtest/NEW_S1manifest.xml')/metadataSection/metadataObject/metadataWrap/xmlData/safe:acquisitionPeriod/safe:startTime" />

в обоих случаях я получаю следующую ошибку:

ОШИБКА [main] JAXPSAXProcessorInvoker - Префикс пространства имен 'safe' не объявлен.

Любые предложения будут очень признательны, потому что я новичок в преобразовании XSL. Я использую машину WINDOWS с версией ECLIPSE: версия Mars.2 (4.5.2)

Ответы на вопрос(1)

Решение Вопроса

Вы должны включить

xmlns:safe="http://www.esa.int/safe/sentinel-1.0"

в вашем xslt, лучше всего на верхнем уровне:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:safe="http://www.esa.int/safe/sentinel-1.0" ...
 sylar_8002 авг. 2016 г., 08:43
Спасибо за предложение! оно работает!

Ваш ответ на вопрос