Xml 使用Saxon 6.5.5和XLST进行的转换无法正常工作

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:

    <?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]}"