2

Windows のスケジュールされたタスク構成ファイルを変換するために、Slow Cheetah を使用しようとしています。次のように、単に「繰り返し」ノード情報を追加しようとしています。

オリジナル:

<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-01-02T09:32:12.2196371</Date>
    <Author>xxx</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2013-01-10T01:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
.....
</Task>

必須、追加の XML

<CalendarTrigger>
   <Repetition>
     <Interval>PT300S</Interval>
   </Repetition>
</CalendarTrigger>

これを行うには、次の変換ファイルがあります。

<?xml version="1.0" encoding="utf-16" ?>
<Task version="1.2">
  <Triggers>
    <CalendarTrigger xdt:Transform="Insert">
      <Repetition>
        <Interval>PT300S</Interval>
      </Repetition>
    </CalendarTrigger>
  </Triggers>
</Task>

私が抱えている問題は、CalendarTrigger ノードの外側のすべての属性が削除されることです (したがって、結果の変換構成が無効なスケジュールされたタスク形式になります)。

追加してみました

xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="SetAttributes" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"

Task ノードに追加しますが、属性は CalendarTrigger レベルで生成されます (この属性を元のドキュメントに配置することはできません。「ソース ドキュメントの要素が '/Task/Triggers' に一致する要素がありません」と表示されるためです)。

ポインタはありますか?

アップデート:

問題はxmlns属性に限定されているようです。これを元の「タスク」ノードに含めようとすると、「ソースドキュメントの要素が「/タスク/トリガー」に一致しません」というメッセージが表示されます-しかし、この属性を「xmlns2」に変更すると正常に機能し、必要なものが正確に生成されます(「xmlns2」属性がありますが!)。これは、Slow Cheetah の既知の制限ですか? 潜在的な回避策を知っている人はいますか?

4

1 に答える 1

0

それは、あなたのxdt:Transform="Insert"レベルが 1 つ高いからです。

これはうまくいくはずです:

<?xml version="1.0" encoding="utf-16" ?>
<Task xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
    <Triggers>
      <CalendarTrigger>
        <Repetition xdt:Transform="Insert">
          <Interval>PT300S</Interval>
        </Repetition>
      </CalendarTrigger>
    </Triggers>
</Task>
于 2013-03-12T19:25:25.773 に答える