SPL 構文

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  AppStore App > SPL テンプレート >

SPL 構文

SPL テンプレートは生成するプログラムコードのプログラミング言語で構成されています。 テンプレートは 生成されたプログラムコードに MobileTogether データを統合するための SPL 命令のスニペットを含みます。 SPL 命令は角かっこで囲まれています。 例えば、ファイルを生成するための SPL 命令が黄色でハイライトされた、(XML で書かれた) XML テンプレートがあるとします。

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

 package="[=$Options.androidPackageName]"

 android:versionCode="[=$Options.appVersion]"

 android:versionName="[=$Options.appVersion]">

 <uses-sdk

         android:minSdkVersion="15"

         android:targetSdkVersion="22"/>

</manifest>

 

複数のステートメント

複数のステートメントは、かっこのペア内に含まれることができます。 追加ステートメントは前のステートメントから新しいラインまたはコロンで区切られる必要があります。有効なサンプルは、以下のとおりです:

 

[$x = 42

$x = $x + 1]

[$x = 42: $x = $x + 1]

 

テキスト

角かっこで囲まれていないテキストは出力に直接書き込まれます。 角かっこを生成するには、バックスラッシュでエスケープします: \[\]。 バックスラッシュを生成するには \\ を使用します。

 

コメント

命令ブロック内のコメントは常に'文字から始まり、次のラインまたは終わりの角かっこで終了します。

 

変数

変数は値を与えることで作成できます。 $ 文字は変数を宣言または使用する場合に使用されます。 変数名は大文字と小文字を区別します。変数には以下の型があります:

 

整数: 0false でその他はすべて true の場合、 ブール値としても使用されます。
文字列: 文字列のメカニズムを参照
オブジェクト: MobileTogether により提供されます。例えば、 $Options オブジェクト

 

変数の型は最初の割り当てで宣言されます:

 

[$x = 0] は x が整数であることを意味します。

[$x = "teststring"] は x が文字列であることを意味します。

 

文字列

文字列は、 2 重引用符はで囲まれています。  2 重引用符内の \n\t  は、新しいラインとタブ、 \"は、リテラルな 2 重引用符、 \\ はバックスラッシュとみなされます。文字列の制約は複数のラインでも示すことができます。文字列の連結は & 文字を使用します:

 

[$BasePath = $outputpath & "/" & $JavaPackageDir]

 

オブジェクト

オブジェクトは、 MobileTogether 構成です。オブジェクトには、 . operator を使用してアクセスすることのできるプロパティがあります。 SPL  内で新しいオブジェクトを作成することはできませんが変数にオブジェクトを割り当てることはできます。

class [=$class.Name]

 

このサンプルの出力単語 class の後には、スペースと $class オブジェクトの Name プロパティの値が続きます。

 

条件子

ELSE を伴うまたは伴わないで IF ステートメントを以下のように使用します。 条件の周りに中かっこを使用しないでください。

 

if condition

      statements

else

      statements

endif

 

 

サンプル

 

[if $namespace.ContainsPublicClasses and $namespace.Prefix <> ""]

  whatever you want ['inserts whatever you want, in the resulting file]

[endif]

 

反復子

FOREACH ステートメントを使用して以下のように反復します:

 

foreach object in collection

          statements

next

 

 

サンプル

 

[foreach $class in $classes

 if not $class.IsInternal

         ]        class [=$class.Name];

[        endif

next]

 


(C) 2019 Altova GmbH