コード例 #1
0
ファイル: schema.php プロジェクト: pkorduan/xmi2db
    function createExternalDataTypes($dbSchema)
    {
        $this->logger->log('<b>Create external data types:</b>');
        #*******************************
        # SC_CRS
        #*******************************
        $dataType = new DataType('SC_CRS', 'DataType', $this->logger);
        $this->logger->log('<br><b>' . $dataType->name . '</b>');
        $dataType->setSchemas($this, $dbSchema);
        $dataType->setId(0);
        # create Attributes
        $dataTypeAttribute = new Attribute('scope', 'CharacterString', $dataType->name);
        $dataTypeAttribute->setStereoType('CharacterString');
        $dataTypeAttribute->attribute_type = 'ISO 19136 GML Type';
        $dataTypeAttribute->setMultiplicity('1', '-1');
        $this->logger->log('<br>attribute: <b>' . $dataTypeAttribute->name . '</b>
			datatype: <b>' . $dataTypeAttribute->datatype . '</b>
			stereotype: <b>' . $dataTypeAttribute->stereotype . '</b>');
        $dataType->addAttribute($dataTypeAttribute);
        # Create Comments
        $comment = $dataTypeAttribute->attribute_type . ': ' . $dataTypeAttribute->name;
        $comment .= ' ' . $dataTypeAttribute->multiplicity;
        $dataType->addComment($comment);
        # Erzeuge SQL und registriere DataType in Liste
        $dataTypeSql = $dataType->asSql();
        $this->logger->log('<pre>' . $dataTypeSql . '</pre>');
        $sql .= $dataTypeSql;
        $this->dataTypes[$dataType->name] = $dataType;
        #*******************************
        # Query
        #*******************************
        $dataType = new DataType('Query', 'DataType', $this->logger);
        $this->logger->log('<br><b>' . $dataType->name . '</b>');
        $dataType->setSchemas($this, $dbSchema);
        $dataType->setId(0);
        # create Attributes
        $dataTypeAttribute = new Attribute('url', 'CharacterString', $dataType->name);
        $dataTypeAttribute->setStereoType('CharacterString');
        $dataTypeAttribute->attribute_type = 'wfs:Query nach Web Feature Service Specifikation, Version 1.0.0';
        $dataTypeAttribute->setMultiplicity('0', '1');
        $this->logger->log('<br>attribute: <b>' . $dataTypeAttribute->name . '</b>
			datatype: <b>' . $dataTypeAttribute->datatype . '</b>
			stereotype: <b>' . $dataTypeAttribute->stereotype . '</b>');
        $dataType->addAttribute($dataTypeAttribute);
        # Create Comments
        $comment = $dataTypeAttribute->attribute_type . ': ' . $dataTypeAttribute->name;
        $comment .= ' ' . $dataTypeAttribute->multiplicity;
        $dataType->addComment($comment);
        # Erzeuge SQL und registriere DataType in Liste
        $dataTypeSql = $dataType->asSql();
        $this->logger->log('<pre>' . $dataTypeSql . '</pre>');
        $sql .= $dataTypeSql;
        $this->dataTypes[$dataType->name] = $dataType;
        #*******************************
        # Transaction
        #*******************************
        $dataType = new DataType('Transaction', 'DataType', $this->logger);
        $this->logger->log('<br><b>' . $dataType->name . '</b>');
        $dataType->setSchemas($this, $dbSchema);
        $dataType->setId(0);
        # create Attributes
        $dataTypeAttribute = new Attribute('content', 'Text', $dataType->name);
        $dataTypeAttribute->setStereoType('CharacterString');
        $dataTypeAttribute->attribute_type = 'wfs:Transaction nach Web Feature Service Specifikation, Version 1.0.0';
        $dataTypeAttribute->setMultiplicity('0', '1');
        $this->logger->log('<br>attribute: <b>' . $dataTypeAttribute->name . '</b>
			datatype: <b>' . $dataTypeAttribute->datatype . '</b>
			stereotype: <b>' . $dataTypeAttribute->stereotype . '</b>');
        $dataType->addAttribute($dataTypeAttribute);
        # Create Comments
        $comment = $dataTypeAttribute->attribute_type . ': ' . $dataTypeAttribute->name;
        $comment .= ' ' . $dataTypeAttribute->multiplicity;
        $dataType->addComment($comment);
        # Erzeuge SQL und registriere DataType in Liste
        $dataTypeSql = $dataType->asSql();
        $this->logger->log('<pre>' . $dataTypeSql . '</pre>');
        $sql .= $dataTypeSql;
        $this->dataTypes[$dataType->name] = $dataType;
        #*******************************
        # doubleList
        #*******************************
        $dataType = new DataType('doubleList', 'DataType', $this->logger);
        $this->logger->log('<br><b>' . $dataType->name . '</b>');
        $dataType->setSchemas($this, $dbSchema);
        $dataType->setId(0);
        # create Attributes
        $dataTypeAttribute = new Attribute('list', 'Sequence', $dataType->name);
        $dataTypeAttribute->setStereoType('Sequence');
        $dataTypeAttribute->attribute_type = 'ISO 19136 GML Type';
        $dataTypeAttribute->setMultiplicity('0', '1');
        $this->logger->log('<br>attribute: <b>' . $dataTypeAttribute->name . '</b>
			datatype: <b>' . $dataTypeAttribute->datatype . '</b>
			stereotype: <b>' . $dataTypeAttribute->stereotype . '</b>');
        $dataType->addAttribute($dataTypeAttribute);
        # Create Comments
        $comment = $dataTypeAttribute->attribute_type . ': ' . $dataTypeAttribute->name;
        $dataType->addComment($comment);
        # Erzeuge SQL und registriere DataType in Liste
        $dataTypeSql = $dataType->asSql();
        $this->logger->log('<pre>' . $dataTypeSql . '</pre>');
        $sql .= $dataTypeSql;
        $this->dataTypes[$dataType->name] = $dataType;
        #*******************************
        # Measure
        #*******************************
        $dataType = new DataType('Measure', 'DataType', $this->logger);
        $this->logger->log('<br><b>' . $dataType->name . '</b>');
        $dataType->setSchemas($umlSchema, $dbSchema);
        $dataType->setId(0);
        # create Attributes
        $dataTypeAttribute = new Attribute('value', 'Integer', $dataType->name);
        $dataTypeAttribute->setStereoType('DataType');
        $dataTypeAttribute->attribute_type = 'ISO 19136 GML Type';
        $dataTypeAttribute->setMultiplicity('0', '1');
        $this->logger->log('<br>attribute: <b>' . $dataTypeAttribute->name . '</b>
			datatype: <b>' . $dataTypeAttribute->datatype . '</b>
			stereotype: <b>' . $dataTypeAttribute->stereotype . '</b>');
        $dataType->addAttribute($dataTypeAttribute);
        # Create Comments
        $comment = $dataTypeAttribute->attribute_type . ': ' . $dataTypeAttribute->name;
        $dataType->addComment($comment);
        # Erzeuge SQL und registriere DataType in Liste
        $dataTypeSql = $dataType->asSql();
        $this->logger->log('<pre>' . $dataTypeSql . '</pre>');
        $sql .= $dataTypeSql;
        $this->dataTypes[$dataType->name] = $dataType;
        return $sql;
    }