2017-01-03 6 views
0

eclipseを使用してTTCN-3でテストケースを作成しています。TTCNでXML文字列を解析する

<Templates><Template><Id>1001</Id><Category>refill</Category><Description>Template description</Description><ApplicationId>AIR</ApplicationId><Name>Template name</Name><SchemaVersion>3.3.14</SchemaVersion></Template><Template><Id>1002</Id><Category>refill</Category><Description>Template Description 1</Description><ApplicationId>AIR</ApplicationId><Name>Template name</Name><SchemaVersion>3.3.14</SchemaVersion></Template></Templates> 

、私はこのXML文字列を解析し、そこからテンプレートオブジェクトを取得する必要があります:以下のようにテストケースの一つには、私は、シミュレータからの応答に複数のレコードを含むされたXML文字列を得ましたそれらをテストケースでさらに使用することができます。ここで

は、テンプレートオブジェクトの定義です:

public type record Template 
{ 
    charstring id, 
    charstring category, 
    charstring description, 
    charstring applicationId, 
    charstring name, 
    charstring schemaVersion 
} 
public type record of Template Templates; 

私はTTCNに新しいですので、任意の助けを感謝しています。ありがとう。

答えて

0

あなたはEclipseに言及しました。その場合、SpirentのTTWorkbench独自ソリューション、またはTTCN-3コンパイラとエグゼキュータのEclipse(Ericsson)TITANオープンソース実装のいずれかになります。ここでは、オープンソースのTITANを例として取り上げます。

タイタンはherehereを説明するXMLのための内部コーデックを有しています。 2番目の例でわかるように、

external function enc_AccessControlPolicy(in AccessControlPolicy pdu) return octetstring 
with { extension "prototype (convert) encode(XER:XER_EXTENDED)" } 

external function dec_AccessControlPolicy(in octetstring stream) return AccessControlPolicy 
with { extension "prototype (convert) decode(XER:XER_EXTENDED)" } 

これは、XMLをTTCN-3構造に変換し、その逆も同様です。

上記の方法(関数として 'dec_AccessControlPolicy'と 'enc_AccessControlPolicy'を含む新しいファイルを追加する場合)を使用して、C/C++で新しい関数を定義し、自分でコーデックを書き込むこともできます。これは、いくつかの複雑で(時には)非標準プロトコル(MQTT、CoAP、およびその他のタイタンのコーデックの実装を参照)に役立ちます。