2

おはようございます。デコードするドキュメントスキーマを認識するパイプラインコンポーネントを作成することに興味があります。コンポーネント内のスキーマ情報を取得する関数があるようです。

IDocumentSpec spec = pContext.GetDocumentSpecByType("name-of-your-schema");

パイプラインで割り当てられているドキュメントスキーマ名にアクセスできますか?

4

1 に答える 1

4

次のようにメッセージのコンテキストから取得できます。

private static readonly PropertyBase SchemaStrongNameProperty = new BTS.SchemaStrongName();
private static readonly PropertyBase MessageTypeProperty = new BTS.MessageType();

public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
    // Get by schema strong name (.NET type)
    string schemaStrongName = pInMsg.Context.Read(SchemaStrongNameProperty.Name.Name, SchemaStrongNameProperty.Name.Namespace) as string;
    pContext.GetDocumentSpecByName(schemaStrongName);

    // Get by message type (XML NS#Root Node)
    string messageType = pInMsg.Context.Read(MessageTypeProperty.Name.Name, MessageTypeProperty.Name.Namespace) as string;
    pContext.GetDocumentSpecByType(messageType);

    // Rest of your pipeline component's code...
}
于 2013-02-06T18:09:50.733 に答える