public void accept(Visitor visitor) {
      if (visitor.visit(this)) {
         if (sour != null) {
            sour.accept(visitor);
         }
         if (date != null) {
            date.accept(visitor);
         }
         if (subm != null) {
            subm.accept(visitor);
         }
         if (subn != null) {
            subn.accept(visitor);
         }
         if (gedc != null) {
            gedc.accept(visitor);
         }
         if (charset != null) {
            charset.accept(visitor);
         }
         super.visitContainedObjects(visitor);
         visitor.endVisit(this);
      }
   }