2016-12-03 22 views
0

私はCLIを構築しようとしています。私はそうするために「陽」を使うことを選ぶ。私はそれが初めてで、既存のモジュルをどのようにインポートするかを見つけることができません。例として、私はgithub(https://github.com/YangModels/yang/blob/master/vendor/cisco/xe/1631/ietf-ospf.yang)にospfモジュールを見つけました。私はそれを自分のmodulでインポートしたいと思います。これはできますか?どうやって?ヤンでモジュールをインポートする方法

EDIT1:

module mininet { 

/* name space */ 
namespace "http://tail-f.com/ns/example/mininet"; 
prefix mininet; 

import ietf-ospf { 
    prefix ospf; 
    revision-date 2015-03-09 
} 

leaf area-id-type { 
    type yang:area-id-type; 
} 
} 

は、だから私はピョートルBabijヘルプを使用して、このようにそれを実行しようとしました。残念ながら、これは動作していません。私は何を変更する必要がありますか? area-id-typeは、ietf-ospfのtypedefです。私が持っているエラーは次のとおりです。

mininet.yang:12:3: error: trailing garbage after module 
mininet.yang:12:3: error: unterminated statement 
+0

'何を変更する必要がありますか?'まあ、あなたは 'revision-date'ステートメントのセミコロン('; ')がありません。あなたが使用しているツールのパーサは、そのために少し混乱しています。あなたにそれらの記述的でないエラーメッセージを与えます。さらに、インポートしたモジュールの型参照に間違った 'prefix'を使っています。 – predi

答えて

3

importステートメントを使用して、他のモジュールを自分のモジュールにインポートすることができます。 YANG1.0についてはRFC 7950に、YANG1.0についてはRFC 6020に記載されています。 YANG 1.1では、同じモジュールの2つの異なるリビジョンをインポートできます。それ以外の場合、importステートメントは両方のバージョンで同じように機能します。

module acme-system { 
    namespace "http://acme.example.com/system"; 
    prefix "acme"; 

    import ietf-yang-types { 
     prefix "yang"; 
     revision-date 2013-07-15; 
    } 

    leaf acme-ip-address { 
     type yang:dotted-quad; 
    } 
} 

オプションのrevision-date文を省略した場合は、未定義のモジュールのリビジョンがインポートされます。

実際には基本的な輸入は、このようになります。だから、一般的に、それを使うのは実用的です。

必須のprefixステートメントでは、インポートしたモジュール内のものを参照できます。この例では、インポートされたietf-yang-typesモジュールの接頭辞はyangであり、そのためにyang:dotted-quadがそのモジュールの型を参照していることが明らかです。あなたの場合、プレフィックスはospfに設定されているので、そのモジュールからの型定義を参照するにはospf:area-id-typeが必要です。複数のモジュールをインポートする場合は、プレフィックスが一意であることを確認する必要があります。

さらに、ietf-ospfモジュールの入手可能な最も古いリビジョンをインポートしています。私はこれがあなたが本当にやりたいことだと願っています。あなたはモジュールをインポートしたら

とにかく、あなたが許可されています。

  • が使用するすべてのgroupingtypedefインポートされたモジュールまたはそのサブモジュールのトップレベルで定義されました。

  • extensionfeature、およびidentityをインポートされたモジュールまたはそのサブモジュールで定義します。

  • は、mustでインポートモジュールのスキーマ・ツリー内の任意のノードを使用path、及びwhen文、又はaugmentdeviation文におけるターゲットノードとして。 ietf-yang-typesからtypedef dotted-quadacme-systemは、モジュールで使用される上記の例で

+0

あなたの助けてくれてありがとうが、それは動作していない、私は元の投稿を編集しています。 – B3th4

+0

私は答えを更新しました。インポートされたモジュール内のものを参照するには、prefixを使用する必要があります。 –

関連する問題