Changeset 151 for trunk/src/xml


Ignore:
Timestamp:
11/25/09 08:39:26 (15 years ago)
Author:
lgiessmann
Message:

restructured some functions of the importer which are responsible for reifcation; adapted the corresponding unit-tests

Location:
trunk/src/xml/xtm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/src/xml/xtm/importer_xtm1.0.lisp

    r148 r151  
    1919    (when (and (stringp reifier-uri)
    2020               (> (length reifier-uri) 0))
    21       (add-reifier reifiable-construct (concatenate 'string "#" reifier-uri) :xtm-version '1.0))
    22     reifiable-construct))
     21      (let ((psi
     22             (elephant:get-instance-by-value 'd:PersistentIdC 'd:uri
     23                                             (concatenate 'string "#" reifier-uri))))
     24        (when psi
     25          (let ((reifier-topic (identified-construct psi)))
     26            (when reifier-topic
     27              (add-reifier reifiable-construct reifier-topic)))))))
     28  reifiable-construct)
    2329
    2430
     
    409415                           member-elem :xtm-id xtm-id))
    410416                      (xpath-child-elems-by-qname assoc-elem *xtm1.0-ns* "member"))))
    411       ;(format t "type: ~A~%themes: ~A~%roles: ~A~%~%" type themes roles)
    412417      (unless roles
    413418        (error "from-association-elem-xtm1.0: roles are missing in association"))
     
    431436                                                      (getf list-role :player))
    432437                                                 (getf list-role :reifier-uri))
    433                                         (add-reifier assoc-role (getf list-role :reifier-uri) :xtm-version '1.0)))
     438                                        (let ((reifier-uri (getf list-role :reifier-uri)))
     439                                          (when (and (stringp reifier-uri)
     440                                                     (> (length reifier-uri) 0))
     441                                            (let ((psi
     442                                                   (elephant:get-instance-by-value 'd:PersistentIdC 'd:uri
     443                                                                                   reifier-uri)))
     444                                              (when psi
     445                                                (let ((reifier-topic (identified-construct psi)))
     446                                                  (when reifier-topic
     447                                                    (add-reifier assoc-role reifier-topic)))))))))
    434448                            roles))
    435449             (roles association))
  • TabularUnified trunk/src/xml/xtm/importer_xtm2.0.lisp

    r148 r151  
    1414  (declare (dom:element reifiable-elem))
    1515  (declare (ReifiableConstructC reifiable-construct))
    16   (let ((reifier-uri (get-attribute reifiable-elem "reifier")))
     16  (let ((reifier-uri (get-attribute reifiable-elem "reifier"))
     17        (err "From set-reifier(): "))
    1718    (when (and (stringp reifier-uri)
    1819               (> (length reifier-uri) 0))
    19       (add-reifier reifiable-construct reifier-uri :xtm-version '2.0))
    20     reifiable-construct))
     20      (let ((ii
     21             (elephant:get-instance-by-value 'd:ItemIdentifierC 'd:uri reifier-uri)))
     22        (if ii
     23            (let ((reifier-topic (identified-construct ii)))
     24              (if reifier-topic
     25                  (add-reifier reifiable-construct reifier-topic)
     26                  (error "~aitem-identifier ~a not found" err reifier-uri)))
     27            (error "~aitem-identifier ~a not found" err reifier-uri)))))
     28    reifiable-construct)
    2129
    2230
     
    368376  (elephant:ensure-transaction (:txn-nosync t)
    369377    (let
    370         ((item-identifiers
     378        ((err "From from-association-elem(): ")
     379         (item-identifiers
    371380          (make-identifiers 'ItemIdentifierC assoc-elem "itemIdentity" start-revision))
    372381         (instance-of
     
    404413                                                      (getf list-role :player))
    405414                                                 (getf list-role :reifier-uri))
    406                                         (add-reifier assoc-role (getf list-role :reifier-uri) :xtm-version '2.0)))
     415                                        (let ((reifier-uri (getf list-role :reifier-uri)))
     416                                          (when (and (stringp reifier-uri)
     417                                                     (> (length reifier-uri) 0))
     418                                            (let ((ii
     419                                                   (elephant:get-instance-by-value 'd:ItemIdentifierC 'd:uri
     420                                                                                   reifier-uri)))
     421                                              (if ii
     422                                                (let ((reifier-topic (identified-construct ii)))
     423                                                  (if reifier-topic
     424                                                      (add-reifier assoc-role reifier-topic)
     425                                                      (error "~aitem-identifier ~a not found" err reifier-uri)))
     426                                                (error "~aitem-identifier ~a not found" err reifier-uri)))))))
    407427                            roles))
    408428             (roles assoc))
Note: See TracChangeset for help on using the changeset viewer.