Java XSL Transformation抱怨绑定前缀到命名空间

时间:2014-10-09 13:00:40

标签: java xslt

我尝试使用XSL和javax.xml.transform.Transformer转换来自Garmin Watch的TCX文件的XML文档。这是文件(缩短):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2">
    <Activities>
        <Activity Sport="Running">
            <Id>2014-08-23T15:36:15.000Z</Id>
            <Lap StartTime="2014-08-23T11:50:34.000Z">
                <TotalTimeSeconds>3181.0</TotalTimeSeconds>
                <DistanceMeters>7620.0</DistanceMeters>
                <MaximumSpeed>21.887998580932617</MaximumSpeed>
                <Calories>386</Calories>
                <AverageHeartRateBpm>
                    <Value>119</Value>
                </AverageHeartRateBpm>
                <MaximumHeartRateBpm>
                    <Value>167</Value>
                </MaximumHeartRateBpm>
                <Intensity>Active</Intensity>
                <TriggerMethod>Manual</TriggerMethod>
                <Track>
                    <Trackpoint>
                        <Time>2014-08-23T11:50:34.375Z</Time>
                        <Position>
                            <LatitudeDegrees>48.17259333333333</LatitudeDegrees>
                            <LongitudeDegrees>10.191565</LongitudeDegrees>
                        </Position>
                        <AltitudeMeters>542.5505981445312</AltitudeMeters>
                        <DistanceMeters>0.0</DistanceMeters>
                        <HeartRateBpm>
                            <Value>70</Value>
                        </HeartRateBpm>
                        <SensorState>Absent</SensorState>
                    </Trackpoint>              
            [...]  
                </Track>
                <Notes>Note</Notes>
            </Lap>
            <Notes>Note</Notes>
            <Training VirtualPartner="false">
                <Plan Type="Workout" IntervalWorkout="false">
                    <Name>Running</Name>
                    <Extensions/>
                </Plan>
            </Training>
            <Creator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Device_t">
                <Name>Polar V800</Name>
                <UnitId>0</UnitId>
                <ProductID>13</ProductID>
            </Creator>
        </Activity>
    </Activities>
    <Author xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Application_t">
        <Name>no application</Name>
    </Author>
</TrainingCenterDatabase>

我使用javax.xml.transform.Transformer执行此任务并得到一个奇怪的错误。变压器给我以下错误信息:

  

元素“xmlns:xsi”不能将“xmlns”作为其前缀。

它属于以下行:

<Creator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Device_t">

从我的角度来看,这条线是有效的。给定的命名空间仅绑定到前缀xsi。是否有必要将Transformer配置为正确检测它,还是需要在xsl文件中指定某些内容?

由于

0 个答案:

没有答案
相关问题