Xml 使用Saxon 6.5.5和XLST进行的转换无法正常工作
我要转换此xml:Xml 使用Saxon 6.5.5和XLST进行的转换无法正常工作,xml,stylesheet,transform,saxon,Xml,Stylesheet,Transform,Saxon,我要转换此xml: <?xml version="1.0" encoding="utf-8"?> <KNX xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreatedBy="ETS4" ToolVersion="ETS 4.1.2 (Build 3013)" xmlns="http://knx.org/xml/proj
<?xml version="1.0" encoding="utf-8"?>
<KNX xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreatedBy="ETS4" ToolVersion="ETS 4.1.2 (Build 3013)" xmlns="http://knx.org/xml/project/11">
<Project Id="P-065C">
<Installations>
<Installation InstallationId="0" Name="" BCUKey="4294967295" DefaultLine="P-065C-0_L-2" IPRoutingMulticastAddress="224.0.23.12" SplitType="None" CompletionStatus="Undefined">
<Topology>
<Area Id="P-065C-0_A-0" Name="Backbone Bereich" Address="0" CompletionStatus="Undefined">
<Line Id="P-065C-0_L-0" Name="Bereichslinie" Address="0" MediumTypeRefId="MT-5" DomainAddress="0" DomainAddressIsChecked="0" CompletionStatus="Undefined" IPRoutingMulticastAddress="224.0.23.12" MulticastTTL="16" />
</Area>
<Area Id="P-065C-0_A-1" Name="Neuer Bereich" Address="1" CompletionStatus="Undefined">
<Line Id="P-065C-0_L-1" Name="Hauptlinie" Address="0" MediumTypeRefId="MT-5" DomainAddress="0" DomainAddressIsChecked="0" CompletionStatus="Undefined" IPRoutingMulticastAddress="224.0.23.12" MulticastTTL="16" />
<Line Id="P-065C-0_L-2" Name="Neue Linie" Address="1" MediumTypeRefId="MT-0" DomainAddress="0" DomainAddressIsChecked="0" CompletionStatus="Undefined" IPRoutingMulticastAddress="224.0.23.12" MulticastTTL="16">
<DeviceInstance Id="P-065C-0_DI-1" ProductRefId="M-0002_H-2CDG.20110.20085.20R0011-1_P-2CDG.20110.20085.20R0011" Hardware2ProgramRefId="M-0002_H-2CDG.20110.20085.20R0011-1_HP" CompletionStatus="Undefined" IndividualAddressLoaded="0" ApplicationProgramLoaded="0" ParametersLoaded="0" CommunicationPartLoaded="0" MediumConfigLoaded="0" IsCommunicationObjectVisibilityCalculated="1" Broken="0" />
<DeviceInstance Id="P-065C-0_DI-2" ProductRefId="M-0002_H-2CDG110061R0011-1_P-2CDG.20110.20061.20R0011" Hardware2ProgramRefId="M-0002_H-2CDG110061R0011-1_HP-A035-10-377F" Address="0" CompletionStatus="Undefined" IndividualAddressLoaded="0" ApplicationProgramLoaded="0" ParametersLoaded="0" CommunicationPartLoaded="0" MediumConfigLoaded="0" IsCommunicationObjectVisibilityCalculated="1" Broken="0" />
<DeviceInstance Id="P-065C-0_DI-3" ProductRefId="M-0008_H-8.20.2F.2F.2018500-1-O0001_P-185.2000" Hardware2ProgramRefId="M-0008_H-8.20.2F.2F.2018500-1-O0001_HP-1058-01-D423-O0001" Address="1" LastModified="2012-09-07T14:20:33" CompletionStatus="Undefined" IndividualAddressLoaded="0" ApplicationProgramLoaded="0" ParametersLoaded="0" CommunicationPartLoaded="0" MediumConfigLoaded="0" IsCommunicationObjectVisibilityCalculated="1" Broken="0">
<ComObjectInstanceRefs>
<ComObjectInstanceRef RefId="M-0008_A-1058-01-D423-O0001_O-0_R-5" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-1" />
</Connectors>
</ComObjectInstanceRef>
<ComObjectInstanceRef RefId="M-0008_A-1058-01-D423-O0001_O-1_R-11" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-1" />
</Connectors>
</ComObjectInstanceRef>
<ComObjectInstanceRef RefId="M-0008_A-1058-01-D423-O0001_O-2_R-23" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-2" />
</Connectors>
</ComObjectInstanceRef>
<ComObjectInstanceRef RefId="M-0008_A-1058-01-D423-O0001_O-3_R-26" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-2" />
</Connectors>
</ComObjectInstanceRef>
</ComObjectInstanceRefs>
</DeviceInstance>
<DeviceInstance Id="P-065C-0_DI-6" ProductRefId="M-0048_H-1319201-2_P-1319201" Hardware2ProgramRefId="M-0048_H-1319201-2_HP-131C-12-4C9E" Address="2" LastModified="2012-09-07T12:16:26" CompletionStatus="Undefined" IndividualAddressLoaded="0" ApplicationProgramLoaded="0" ParametersLoaded="0" CommunicationPartLoaded="0" MediumConfigLoaded="0" IsCommunicationObjectVisibilityCalculated="1" Broken="0">
<ComObjectInstanceRefs>
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-12_R-209" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-13_R-13" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-14_R-14" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-15_R-15" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-16_R-63" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-17_R-17" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-4_R-68" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-40_R-215" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-1_R-2" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-3" />
</Connectors>
</ComObjectInstanceRef>
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-0_R-1" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-3" />
</Connectors>
</ComObjectInstanceRef>
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-7_R-8" IsActive="1" />
<ComObjectInstanceRef RefId="M-0048_A-131C-12-4C9E_O-8_R-122" IsActive="1" />
</ComObjectInstanceRefs>
</DeviceInstance>
<DeviceInstance Id="P-065C-0_DI-5" ProductRefId="M-0008_H-8.20.2F.2F.20570.2000-1_P-570.2000" Hardware2ProgramRefId="M-0008_H-8.20.2F.2F.20570.2000-1_HP" Address="3" CompletionStatus="Undefined" IndividualAddressLoaded="0" ApplicationProgramLoaded="0" ParametersLoaded="0" CommunicationPartLoaded="0" MediumConfigLoaded="0" IsCommunicationObjectVisibilityCalculated="1" Broken="0" />
<DeviceInstance Id="P-065C-0_DI-7" ProductRefId="M-0007_H-2CDG.20110.20079.20R0011-1-O0002_P-6197.2F22" Hardware2ProgramRefId="M-0007_H-2CDG.20110.20079.20R0011-1-O0002_HP-A043-12-5DB8-O0002" Address="4" LastModified="2012-09-07T14:20:45" CompletionStatus="Undefined" IndividualAddressLoaded="0" ApplicationProgramLoaded="0" ParametersLoaded="0" CommunicationPartLoaded="0" MediumConfigLoaded="0" IsCommunicationObjectVisibilityCalculated="1" Broken="0">
<ComObjectInstanceRefs>
<ComObjectInstanceRef RefId="M-0007_A-A043-12-5DB8-O0002_O-10_R-2438" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-1" />
</Connectors>
</ComObjectInstanceRef>
<ComObjectInstanceRef RefId="M-0007_A-A043-12-5DB8-O0002_O-12_R-2319" IsActive="1" />
<ComObjectInstanceRef RefId="M-0007_A-A043-12-5DB8-O0002_O-13_R-2443" IsActive="1" />
<ComObjectInstanceRef RefId="M-0007_A-A043-12-5DB8-O0002_O-34_R-2433" IsActive="1" />
<ComObjectInstanceRef RefId="M-0007_A-A043-12-5DB8-O0002_O-35_R-2440" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-2" />
</Connectors>
</ComObjectInstanceRef>
<ComObjectInstanceRef RefId="M-0007_A-A043-12-5DB8-O0002_O-38_R-2450" IsActive="1" />
<ComObjectInstanceRef RefId="M-0007_A-A043-12-5DB8-O0002_O-59_R-2432" IsActive="1" />
<ComObjectInstanceRef RefId="M-0007_A-A043-12-5DB8-O0002_O-37_R-2316" DatapointType="DPST-3-7" IsActive="1" />
</ComObjectInstanceRefs>
</DeviceInstance>
<DeviceInstance Id="P-065C-0_DI-8" ProductRefId="M-0008_H-8.20.2F.2F.20880.20xx-1_P-880.20xx" Hardware2ProgramRefId="M-0008_H-8.20.2F.2F.20880.20xx-1_HP-A003-01-737E" Address="5" LastModified="2012-09-07T12:16:43" CompletionStatus="Undefined" IndividualAddressLoaded="0" ApplicationProgramLoaded="0" ParametersLoaded="0" CommunicationPartLoaded="0" MediumConfigLoaded="0" IsCommunicationObjectVisibilityCalculated="1" Broken="0">
<ComObjectInstanceRefs>
<ComObjectInstanceRef RefId="M-0008_A-A003-01-737E_O-0_R-0" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-4" />
</Connectors>
</ComObjectInstanceRef>
<ComObjectInstanceRef RefId="M-0008_A-A003-01-737E_O-1_R-1" IsActive="1" />
<ComObjectInstanceRef RefId="M-0008_A-A003-01-737E_O-2_R-2" IsActive="1">
<Connectors>
<Send GroupAddressRefId="P-065C-0_GA-4" />
</Connectors>
</ComObjectInstanceRef>
</ComObjectInstanceRefs>
</DeviceInstance>
</Line>
</Area>
</Topology>
<Buildings>
<BuildingPart Id="P-065C-0_BP-0" Name="Hauptgebäude" Type="Building" CompletionStatus="Undefined">
<BuildingPart Id="P-065C-0_BP-1" Name="Vordergebäude" Type="BuildingPart" CompletionStatus="Undefined" />
<BuildingPart Id="P-065C-0_BP-2" Name="Rückgebäude" Type="BuildingPart" CompletionStatus="Undefined">
<BuildingPart Id="P-065C-0_BP-3" Name="Erdgeschoss" Type="Floor" CompletionStatus="Undefined" />
<BuildingPart Id="P-065C-0_BP-4" Name="1.Etage" Type="Floor" CompletionStatus="Undefined">
<BuildingPart Id="P-065C-0_BP-5" Name="Küche" Type="Room" CompletionStatus="Undefined" />
<BuildingPart Id="P-065C-0_BP-6" Name="Büro Poolfahrzeuge" Type="Room" CompletionStatus="Undefined" />
<BuildingPart Id="P-065C-0_BP-7" Name="Büro Studenten" Type="Room" CompletionStatus="Undefined">
<DeviceInstanceRef RefId="P-065C-0_DI-1" />
<DeviceInstanceRef RefId="P-065C-0_DI-2" />
<DeviceInstanceRef RefId="P-065C-0_DI-5" />
<DeviceInstanceRef RefId="P-065C-0_DI-6" />
<DeviceInstanceRef RefId="P-065C-0_DI-8" />
<DeviceInstanceRef RefId="P-065C-0_DI-3" />
<DeviceInstanceRef RefId="P-065C-0_DI-7" />
</BuildingPart>
</BuildingPart>
</BuildingPart>
</BuildingPart>
</Buildings>
<GroupAddresses>
<GroupRanges>
<GroupRange Id="P-065C-0_GR-1" Name="Zentralfunktionen" RangeStart="1" RangeEnd="2047">
<GroupRange Id="P-065C-0_GR-3" Name="Sensorwerte auslesen" RangeStart="256" RangeEnd="511">
<GroupAddress Id="P-065C-0_GA-3" Address="256" Name="Helligkeitssensor" />
<GroupAddress Id="P-065C-0_GA-4" Address="257" Name="Bewegungsmelder" />
</GroupRange>
<GroupRange Id="P-065C-0_GR-2" Name="Licht steuern" RangeStart="1" RangeEnd="255">
<GroupAddress Id="P-065C-0_GA-1" Address="1" Name="Glühbirne 1" />
<GroupAddress Id="P-065C-0_GA-2" Address="2" Name="Glühbirne 2" />
</GroupRange>
</GroupRange>
</GroupRanges>
</GroupAddresses>
</Installation>
</Installations>
</Project>
</KNX>
这两个文件位于正确的目录中,输出如下:
'SAXON 6.5.5 from Michael Kay
Java version 1.6.0_31
Loading com.icl.saxon.sort.Compare_d
Preparation time: 225 milliseconds
Processing file:/C:/Saxon/Saxon6.5.5
Building tree for file:/C:/Saxon/Sax
tree.TinyBuilder
Tree built in 33 milliseconds
Loading java.net.URI
Execution time: 100 milliseconds'
但创建的calimero.xml仅包含以下行:
<?xml version="1.0" encoding="iso-8859-1"?>
有人知道这个问题吗
谢谢,
Mike您的XML输入在xmlns中:
xmlns="http://knx.org/xml/project/11"
而您的xslt正在寻找
xmlns:b="http://knx.org/xml/project/10"
看起来架构版本已经升级了:)这与您的问题无关,尽管这与您似乎对XSLT缺乏经验这一事实有关 首先,如果您使用的是Saxon,那么使用XSLT1.0就没有什么好的理由。(更不用说“XSLT1.1”,它是一个从未完成的废弃工作草案)。您应该转向最近的Saxon版本(当前版本为9.4),并利用使用XSLT2.0的所有好处 其次,即使考虑到XSLT 1.0的局限性,这也是非常糟糕的代码: (a) 它完全是单块编写的-仅一个模板规则 (b) 它使用前一个轴,这是非常低效的 (c) 它不必要地使用xsl:attribute,这非常冗长 等等 为了让您了解差异,可以这样创建datapoint元素及其属性(一些改进,但不是全部,取决于XSLT 2.0):
;-)这是绝对正确的,将xlst更改为xmlns:b=”http://knx.org/xml/project/11“
解决了问题您好,谢谢您提供的信息!我尝试使用最新的Saxon版本,但在尝试转换时出现了以下错误:“使用XSLT 2处理器运行XSLT 1.1样式表”。所以我使用了XLST 1.0处理器。样式表是从这个代码中使用的,我只用于我的学士学位论文。但是谢谢你的提示!这是警告信息,不是错误。您通常可以忽略它,除非您正在做一些非常奇怪的事情。好的,但是创建的文档是空的。在使用XLST 1.0处理器进行转换后,文档具有正确的格式。但是你看,我在这个话题上非常缺乏经验……好吧,这可能是非常简单的事情,但是如果没有任何信息,就不可能告诉你什么。建议你开始一个新的线程,并详细解释问题。是新的线程,希望你能帮助我
xmlns="http://knx.org/xml/project/11"
xmlns:b="http://knx.org/xml/project/10"
<datapoint
stateBased="true"
name="{$verz/@Name}"
mainNumber="{if (../@DatapointType != '')
then if(string-length(../@DatapointType) gt 5)
then $master2/../../@Number
else $master3/@Number
else $master/@Number}"
dptId="{if (../@DatapointType != '')
then if (string-length(../@DatapointType) gt 5)
then concat($master2/../../@Number, '.',format-number($master2/@Number, '000')
else concat($master3/@Number, '.001')
else concat($master/@Number,'.',format-number($master/b:DatapointSubtypes/b:DatapointSubtype/@Number, '000'))}"
priority="{(../@Priority, $verz/@Priority)[1]}"