A. DGP Communication Model

All possible DGP objects are described by the following INTERLIS 2 data model:

INTERLIS 2.2;

MODEL DGP10 =

  DOMAIN
  
    SwissCoord = COORD
      480000.000 .. 850000.000,
      70000.000 .. 310000.000,
      ROTATION 2 -> 1;

    STRUCTURE DataProduct =
      !! name of data product, i.e. INTERLIS1, INTERLIS2
      ProductName: MANDATORY TEXT*20;
      !! data model name
      ModelName: MANDATORY TEXT*80;
      !! selected topics as comma separated list or *
      TopicNames: MANDATORY TEXT*1024; 
      !! geographic range as polygon
      Range: MANDATORY SURFACE WITH (STRAIGHTS) VERTEX SwissCoord;
    END DataProduct;

    STRUCTURE Customer =
      Name1: MANDATORY TEXT*40;
      Name2: TEXT*40;
      Street: MANDATORY TEXT*80;
      Zip: MANDATORY TEXT*20;
      City: MANDATORY TEXT*40;
      EMail: MANDATORY TEXT*40;
    END Customer;

    STRUCTURE Order =
      Customer: MANDATORY Customer;
      Product: MANDATORY DataProduct;
    END Order;

    STRUCTURE MetaData =
      ModelName: MANDATORY TEXT*255;
      !! DatasetName has to be unique for a given DataServer / ModelName.
      DatasetName: MANDATORY TEXT*255;
      !! Range is a bounding polygon around the dataset
      Range: MANDATORY SURFACE WITH (STRAIGHTS) VERTEX SwissCoord;
    END MetaData;

    CLASS Request (ABSTRACT) =
      User: MANDATORY TEXT*20;
      Password: MANDATORY TEXT*20;
    END Request;

    CLASS Response (ABSTRACT) =
    END Response;

  TOPIC DataServer =

    !! CalculatePrice Message
    CLASS CalculatePriceRequest EXTENDS Request =
      Product: MANDATORY DataProduct;
    END CalculatePriceRequest;
    CLASS CalculatePriceResponse EXTENDS Response =
      Price: MANDATORY 0.0 .. 1000000.0;
      Currency: MANDATORY TEXT*3; !! always CHF at the moment
    END CalculatePriceResponse;

    !! ExecuteProduct Message
    CLASS ExecuteOrderRequest EXTENDS Request =
      Order: MANDATORY Order;
    END ExecuteOrderRequest;
    CLASS ExecuteOrderResponse EXTENDS Response =
      !! Dataset contains the dataset zipped and base64 encoded.
      !! Dataset will be modelled by BLACKBOX BINARY with INTERLIS 2.3.
      Dataset: MANDATORY TEXT*1024; 
    END ExecuteOrderResponse;

    !! Error Messages
    CLASS ErrorResponse EXTENDS Response =
      Message: MANDATORY TEXT*1024;
    END ErrorResponse;
 
  END DataServer;

  TOPIC PortalServer =

    !! MetadataUpload Message
    CLASS MetadataUploadRequest EXTENDS Request =
      Metadata: MANDATORY MetaData;
    END MetadataUploadRequest;
    CLASS MetadataUploadResponse EXTENDS Response =
    END MetadataUploadResponse;

    !! MetadataDelete Message
    CLASS MetadataDeleteRequest EXTENDS Request =
      ModelName: MANDATORY TEXT*255;
      DatasetName: MANDATORY TEXT*255;
    END MetadataDeleteRequest;
    CLASS MetadataDeleteResponse EXTENDS Response =
    END MetadataDeleteResponse;

    !! Error Message
    CLASS ErrorResponse EXTENDS Response =
      Message: MANDATORY TEXT*1024;
    END ErrorResponse;
 
  END PortalServer;

END DGP10.