From boxbackup-dev at boxbackup.org Thu Apr 2 01:06:08 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Thu, 2 Apr 2009 01:06:08 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2491 - box/trunk/lib/win32 Message-ID: <20090402000608.1E40232501F@www.boxbackup.org> Author: chris Date: 2009-04-02 01:06:07 +0100 (Thu, 02 Apr 2009) New Revision: 2491 Modified: box/trunk/lib/win32/emu.h Log: Fix missing LOG_* defines on Windows. Modified: box/trunk/lib/win32/emu.h =================================================================== --- box/trunk/lib/win32/emu.h 2009-03-31 20:42:31 UTC (rev 2490) +++ box/trunk/lib/win32/emu.h 2009-04-02 00:06:07 UTC (rev 2491) @@ -257,6 +257,15 @@ void closelog(void); void syslog (int loglevel, const char *fmt, ...); +#define LOG_LOCAL0 0 +#define LOG_LOCAL1 0 +#define LOG_LOCAL2 0 +#define LOG_LOCAL3 0 +#define LOG_LOCAL4 0 +#define LOG_LOCAL5 0 +#define LOG_LOCAL6 0 +#define LOG_DAEMON 0 + #ifndef __MINGW32__ #define strtoll _strtoi64 #endif From boxbackup-dev at boxbackup.org Fri Apr 3 01:17:36 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Fri, 3 Apr 2009 01:17:36 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2492 - box/trunk/infrastructure Message-ID: <20090403001736.BEC8932501F@www.boxbackup.org> Author: chris Date: 2009-04-03 01:17:35 +0100 (Fri, 03 Apr 2009) New Revision: 2492 Modified: box/trunk/infrastructure/makeparcels.pl.in Log: Use update copy to speed up rebuilds on windows/cygwin. Modified: box/trunk/infrastructure/makeparcels.pl.in =================================================================== --- box/trunk/infrastructure/makeparcels.pl.in 2009-04-02 00:06:07 UTC (rev 2491) +++ box/trunk/infrastructure/makeparcels.pl.in 2009-04-03 00:17:35 UTC (rev 2492) @@ -25,6 +25,13 @@ return 0; } +my $copy_command = "cp -p"; + +if ($build_os eq 'CYGWIN') +{ + $copy_command = "cp -pu"; # faster +} + open PARCELS,"parcels.txt" or die "Can't open parcels file"; { my $cur_parcel = ''; @@ -168,7 +175,7 @@ print MAKE < Author: chris Date: 2009-04-03 11:52:32 +0100 (Fri, 03 Apr 2009) New Revision: 2493 Modified: box/trunk/bin/bbackupctl/bbackupctl.cpp box/trunk/bin/bbackupobjdump/bbackupobjdump.cpp box/trunk/bin/bbackupquery/bbackupquery.cpp box/trunk/bin/bbstoreaccounts/bbstoreaccounts.cpp box/trunk/lib/backupclient/BackupClientFileAttributes.cpp box/trunk/lib/backupclient/BackupStoreFile.h box/trunk/lib/backupclient/BackupStoreFileDiff.cpp box/trunk/lib/backupclient/BackupStoreFileEncodeStream.cpp box/trunk/lib/common/Configuration.cpp box/trunk/lib/common/DebugMemLeakFinder.cpp box/trunk/lib/common/Logging.cpp box/trunk/lib/common/MemLeakFinder.h box/trunk/lib/common/StreamableMemBlock.cpp box/trunk/lib/common/Test.h box/trunk/lib/common/WaitForEvent.h box/trunk/lib/raidfile/RaidFileRead.h Log: gcc 4.3 and 4.4 compile fixes, thanks to Reinhard Tartler and the Debian project. See also: http://patch-tracking.debian.net/package/boxbackup/0.11~rc2+r2072-1 http://lists.warhead.org.uk/pipermail/boxbackup/2009-April/005159.html Modified: box/trunk/bin/bbackupctl/bbackupctl.cpp =================================================================== --- box/trunk/bin/bbackupctl/bbackupctl.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/bin/bbackupctl/bbackupctl.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -9,7 +9,8 @@ #include "Box.h" -#include +#include +#include #ifdef HAVE_UNISTD_H #include Modified: box/trunk/bin/bbackupobjdump/bbackupobjdump.cpp =================================================================== --- box/trunk/bin/bbackupobjdump/bbackupobjdump.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/bin/bbackupobjdump/bbackupobjdump.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -9,7 +9,8 @@ #include "Box.h" -#include +#include +#include #include "MainHelper.h" #include "FileStream.h" Modified: box/trunk/bin/bbackupquery/bbackupquery.cpp =================================================================== --- box/trunk/bin/bbackupquery/bbackupquery.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/bin/bbackupquery/bbackupquery.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -14,7 +14,8 @@ #endif #include -#include +#include +#include #ifdef HAVE_SYS_TYPES_H #include Modified: box/trunk/bin/bbstoreaccounts/bbstoreaccounts.cpp =================================================================== --- box/trunk/bin/bbstoreaccounts/bbstoreaccounts.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/bin/bbstoreaccounts/bbstoreaccounts.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -36,6 +36,8 @@ #include "MemLeakFindOn.h" +#include + // max size of soft limit as percent of hard limit #define MAX_SOFT_LIMIT_SIZE 97 Modified: box/trunk/lib/backupclient/BackupClientFileAttributes.cpp =================================================================== --- box/trunk/lib/backupclient/BackupClientFileAttributes.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/backupclient/BackupClientFileAttributes.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -28,6 +28,8 @@ #include #endif +#include + #include "BackupClientFileAttributes.h" #include "CommonException.h" #include "FileModificationTime.h" Modified: box/trunk/lib/backupclient/BackupStoreFile.h =================================================================== --- box/trunk/lib/backupclient/BackupStoreFile.h 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/backupclient/BackupStoreFile.h 2009-04-03 10:52:32 UTC (rev 2493) @@ -12,6 +12,7 @@ #include #include +#include #include "BackupClientFileAttributes.h" #include "BackupStoreFilename.h" Modified: box/trunk/lib/backupclient/BackupStoreFileDiff.cpp =================================================================== --- box/trunk/lib/backupclient/BackupStoreFileDiff.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/backupclient/BackupStoreFileDiff.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -35,6 +35,8 @@ #include "MemLeakFindOn.h" +#include + using namespace BackupStoreFileCryptVar; using namespace BackupStoreFileCreation; Modified: box/trunk/lib/backupclient/BackupStoreFileEncodeStream.cpp =================================================================== --- box/trunk/lib/backupclient/BackupStoreFileEncodeStream.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/backupclient/BackupStoreFileEncodeStream.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -26,6 +26,8 @@ #include "MemLeakFindOn.h" +#include + using namespace BackupStoreFileCryptVar; Modified: box/trunk/lib/common/Configuration.cpp =================================================================== --- box/trunk/lib/common/Configuration.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/common/Configuration.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -22,6 +22,8 @@ #include "MemLeakFindOn.h" +#include + // utility whitespace function inline bool iw(int c) { Modified: box/trunk/lib/common/DebugMemLeakFinder.cpp =================================================================== --- box/trunk/lib/common/DebugMemLeakFinder.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/common/DebugMemLeakFinder.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -24,6 +24,7 @@ #include #include #include +#include // for std::atexit #include "MemLeakFinder.h" @@ -130,7 +131,7 @@ { InternalAllocGuard guard; - void *b = ::malloc(size); + void *b = std::malloc(size); if(!memleakfinder_global_enable) return b; if(!memleakfinder_initialised) return b; @@ -146,7 +147,7 @@ if(!memleakfinder_global_enable || !memleakfinder_initialised) { - return ::realloc(ptr, size); + return std::realloc(ptr, size); } // Check it's been allocated @@ -158,7 +159,7 @@ "objects?"); } - void *b = ::realloc(ptr, size); + void *b = std::realloc(ptr, size); if(ptr && i!=sMallocBlocks.end()) { @@ -215,7 +216,7 @@ } //TRACE1("free(), %08x\n", ptr); - ::free(ptr); + std::free(ptr); } @@ -426,7 +427,7 @@ atexit_markertext[sizeof(atexit_markertext)-1] = 0; if(!atexit_registered) { - atexit(memleakfinder_atexit); + std::atexit(memleakfinder_atexit); atexit_registered = true; } } @@ -490,7 +491,7 @@ { InternalAllocGuard guard; - r = ::malloc(size); + r = std::malloc(size); } if (sInternalAllocDepth == 0) @@ -533,7 +534,7 @@ { InternalAllocGuard guard; - ::free(ptr); + std::free(ptr); remove_object_block(ptr); //TRACE1("delete[]() called, %08x\n", ptr); } Modified: box/trunk/lib/common/Logging.cpp =================================================================== --- box/trunk/lib/common/Logging.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/common/Logging.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -11,7 +11,11 @@ #include #include +#include // for stderror +// c.f. http://bugs.debian.org/512510 +#include + #ifdef HAVE_SYSLOG_H #include #endif Modified: box/trunk/lib/common/MemLeakFinder.h =================================================================== --- box/trunk/lib/common/MemLeakFinder.h 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/common/MemLeakFinder.h 2009-04-03 10:52:32 UTC (rev 2493) @@ -12,7 +12,7 @@ #ifdef MEMLEAKFINDER_FULL_MALLOC_MONITORING // include stdlib now, to avoid problems with having the macros defined already - #include + #include #endif // global enable flag Modified: box/trunk/lib/common/StreamableMemBlock.cpp =================================================================== --- box/trunk/lib/common/StreamableMemBlock.cpp 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/common/StreamableMemBlock.cpp 2009-04-03 10:52:32 UTC (rev 2493) @@ -10,7 +10,7 @@ #include "Box.h" #include -#include +#include #include #include "StreamableMemBlock.h" Modified: box/trunk/lib/common/Test.h =================================================================== --- box/trunk/lib/common/Test.h 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/common/Test.h 2009-04-03 10:52:32 UTC (rev 2493) @@ -10,7 +10,7 @@ #ifndef TEST__H #define TEST__H -#include +#include #ifdef WIN32 #define BBACKUPCTL "..\\..\\bin\\bbackupctl\\bbackupctl.exe" Modified: box/trunk/lib/common/WaitForEvent.h =================================================================== --- box/trunk/lib/common/WaitForEvent.h 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/common/WaitForEvent.h 2009-04-03 10:52:32 UTC (rev 2493) @@ -22,6 +22,8 @@ #endif #endif +#include + #include "CommonException.h" #include "MemLeakFindOn.h" Modified: box/trunk/lib/raidfile/RaidFileRead.h =================================================================== --- box/trunk/lib/raidfile/RaidFileRead.h 2009-04-03 00:17:35 UTC (rev 2492) +++ box/trunk/lib/raidfile/RaidFileRead.h 2009-04-03 10:52:32 UTC (rev 2493) @@ -10,7 +10,8 @@ #ifndef RAIDFILEREAD__H #define RAIDFILEREAD__H -#include +#include +#include #include #include From boxbackup-dev at boxbackup.org Sat Apr 4 15:02:58 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sat, 4 Apr 2009 15:02:58 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2494 - box/trunk/infrastructure/m4 Message-ID: <20090404140258.9DF33325020@www.boxbackup.org> Author: chris Date: 2009-04-04 15:02:57 +0100 (Sat, 04 Apr 2009) New Revision: 2494 Modified: box/trunk/infrastructure/m4/ax_check_dirent_d_type.m4 box/trunk/infrastructure/m4/ax_check_syscall_lseek.m4 Log: Blind fix for autoconf problems introduced by earlier attempt to support cross-compiling. Modified: box/trunk/infrastructure/m4/ax_check_dirent_d_type.m4 =================================================================== --- box/trunk/infrastructure/m4/ax_check_dirent_d_type.m4 2009-04-03 10:52:32 UTC (rev 2493) +++ box/trunk/infrastructure/m4/ax_check_dirent_d_type.m4 2009-04-04 14:02:57 UTC (rev 2494) @@ -17,15 +17,17 @@ if test "x$ac_cv_member_struct_dirent_d_type" = "xyes"; then AC_CACHE_CHECK([[whether struct dirent.d_type is valid]], [box_cv_have_valid_dirent_d_type], [AC_TRY_RUN( - [AC_LANG_PROGRAM([[ + [ $ac_includes_default #include - ]], [[ + int main() + { DIR* dir = opendir("."); struct dirent* res = NULL; if(dir) res = readdir(dir); return res ? (res->d_type != DT_FILE && res->d_type != DT_DIR) : 1; - ]])], + } + ], [box_cv_have_valid_dirent_d_type=yes], [box_cv_have_valid_dirent_d_type=no], [box_cv_have_valid_dirent_d_type=cross] Modified: box/trunk/infrastructure/m4/ax_check_syscall_lseek.m4 =================================================================== --- box/trunk/infrastructure/m4/ax_check_syscall_lseek.m4 2009-04-03 10:52:32 UTC (rev 2493) +++ box/trunk/infrastructure/m4/ax_check_syscall_lseek.m4 2009-04-04 14:02:57 UTC (rev 2494) @@ -17,7 +17,7 @@ if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then AC_CACHE_CHECK([[whether syscall lseek requires dummy parameter]], [box_cv_have_lseek_dummy_param], [AC_TRY_RUN( - [AC_LANG_PROGRAM([[ + [ $ac_includes_default #include #include @@ -28,7 +28,8 @@ #undef syscall #define syscall __syscall #endif - ]], [[ + int main() + { int fh = creat("lseektest", 0600); int res = 0; if(fh>=0) @@ -49,7 +50,8 @@ } unlink("lseektest"); return res!=-1; - ]])], + } + ], [box_cv_have_lseek_dummy_param=yes], [box_cv_have_lseek_dummy_param=no], [box_cv_have_lseek_dummy_param=no # assume not for cross-compiling] From boxbackup-dev at boxbackup.org Sat Apr 4 15:05:17 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sat, 4 Apr 2009 15:05:17 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2495 - box/trunk Message-ID: <20090404140517.245E8325020@www.boxbackup.org> Author: chris Date: 2009-04-04 15:05:14 +0100 (Sat, 04 Apr 2009) New Revision: 2495 Modified: box/trunk/configure.ac Log: Hopefully fix another autoconf problem caused by attempt to support cross-compiling. Modified: box/trunk/configure.ac =================================================================== --- box/trunk/configure.ac 2009-04-04 14:02:57 UTC (rev 2494) +++ box/trunk/configure.ac 2009-04-04 14:05:14 UTC (rev 2495) @@ -241,14 +241,20 @@ ## Check for large file support active. AC_SYS_LARGEFILE has already worked ## out how to enable it if necessary, we just use this to report to the user -AC_CACHE_CHECK([if we have large file support enabled], [box_cv_have_large_file_support], - [AC_TRY_RUN([AC_LANG_PROGRAM([[$ac_includes_default]], [[ +AC_CACHE_CHECK([if we have large file support enabled], + [box_cv_have_large_file_support], + [AC_TRY_RUN([ + $ac_includes_default + int main() + { return sizeof(off_t)==4; - ]])], + } + ], [box_cv_have_large_file_support=yes], [box_cv_have_large_file_support=no], [box_cv_have_large_file_support=no # safe for cross-compile] - )]) + ) + ]) if test "x$box_cv_have_large_file_support" = "xyes"; then AC_DEFINE([HAVE_LARGE_FILE_SUPPORT], [1], From boxbackup-dev at boxbackup.org Thu Apr 9 23:45:01 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Thu, 9 Apr 2009 23:45:01 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2496 - in box/trunk: lib/common test/backupstorepatch test/bbackupd Message-ID: <20090409224501.157B7325020@www.boxbackup.org> Author: chris Date: 2009-04-09 23:44:58 +0100 (Thu, 09 Apr 2009) New Revision: 2496 Modified: box/trunk/lib/common/Test.cpp box/trunk/lib/common/Test.h box/trunk/test/backupstorepatch/testbackupstorepatch.cpp box/trunk/test/bbackupd/testbbackupd.cpp Log: Show reasons for waiting during bbackupd and backupstorepatch tests, to help with interpreting test output. When running at Trace level, where extra output from bbackupd etc. is common, log a single line at the start of waiting, instead of progress dots, to help with interpreting output. Show number of seconds waited for on Windows as well as Unixes. Modified: box/trunk/lib/common/Test.cpp =================================================================== --- box/trunk/lib/common/Test.cpp 2009-04-04 14:05:14 UTC (rev 2495) +++ box/trunk/lib/common/Test.cpp 2009-04-09 22:44:58 UTC (rev 2496) @@ -229,7 +229,14 @@ #endif // time for it to start up - ::fprintf(stdout, "Waiting for server to start: "); + if (Logging::GetGlobalLevel() >= Log::TRACE) + { + BOX_TRACE("Waiting for server to start"); + } + else + { + ::fprintf(stdout, "Waiting for server to start: "); + } for (int i = 0; i < 15; i++) { @@ -243,8 +250,12 @@ break; } - ::fprintf(stdout, "."); - ::fflush(stdout); + if (Logging::GetGlobalLevel() < Log::TRACE) + { + ::fprintf(stdout, "."); + ::fflush(stdout); + } + ::sleep(1); } @@ -253,19 +264,42 @@ if (pidIfKnown && !ServerIsAlive(pidIfKnown)) { - ::fprintf(stdout, " server died!\n"); + if (Logging::GetGlobalLevel() >= Log::TRACE) + { + BOX_ERROR("server died!"); + } + else + { + ::fprintf(stdout, " server died!\n"); + } + TEST_FAIL_WITH_MESSAGE("Server died!"); return -1; } if (!TestFileNotEmpty(pidFile)) { - ::fprintf(stdout, " timed out!\n"); + if (Logging::GetGlobalLevel() >= Log::TRACE) + { + BOX_ERROR("timed out!"); + } + else + { + ::fprintf(stdout, " timed out!\n"); + } + TEST_FAIL_WITH_MESSAGE("Server didn't save PID file"); return -1; } - ::fprintf(stdout, " done.\n"); + if (Logging::GetGlobalLevel() >= Log::TRACE) + { + BOX_TRACE("Server started"); + } + else + { + ::fprintf(stdout, " done.\n"); + } // wait a second for the pid to be written to the file ::sleep(1); @@ -278,8 +312,9 @@ if (pidIfKnown && pid != pidIfKnown) { - printf("Server wrote wrong pid to file (%s): expected %d " - "but found %d\n", pidFile, pidIfKnown, pid); + BOX_ERROR("Server wrote wrong pid to file (" << pidFile << + "): expected " << pidIfKnown << " but found " << + pid); TEST_FAIL_WITH_MESSAGE("Server wrote wrong pid to file"); return -1; } @@ -381,22 +416,43 @@ // Wait a given number of seconds for something to complete -void wait_for_operation(int seconds) +void wait_for_operation(int seconds, char* message) { - printf("Waiting: "); - fflush(stdout); + if (Logging::GetGlobalLevel() >= Log::TRACE) + { + BOX_TRACE("Waiting " << seconds << " seconds for " << message); + } + else + { + printf("Waiting for %s: ", message); + fflush(stdout); + } + for(int l = 0; l < seconds; ++l) { sleep(1); - printf("."); + if (Logging::GetGlobalLevel() < Log::TRACE) + { + printf("."); + fflush(stdout); + } + } + + if (Logging::GetGlobalLevel() >= Log::TRACE) + { + BOX_TRACE("Finished waiting for " << message); + } + else + { + printf(" done.\n"); fflush(stdout); } - printf(" done.\n"); - fflush(stdout); } void safe_sleep(int seconds) { + BOX_TRACE("sleeping for " << seconds << " seconds"); + #ifdef WIN32 Sleep(seconds * 1000); #else @@ -404,7 +460,6 @@ memset(&ts, 0, sizeof(ts)); ts.tv_sec = seconds; ts.tv_nsec = 0; - BOX_TRACE("sleeping for " << seconds << " seconds"); while (nanosleep(&ts, &ts) == -1 && errno == EINTR) { BOX_TRACE("safe_sleep interrupted with " << @@ -415,4 +470,3 @@ #endif } - Modified: box/trunk/lib/common/Test.h =================================================================== --- box/trunk/lib/common/Test.h 2009-04-04 14:05:14 UTC (rev 2495) +++ box/trunk/lib/common/Test.h 2009-04-09 22:44:58 UTC (rev 2496) @@ -158,7 +158,7 @@ void terminate_bbackupd(int pid); // Wait a given number of seconds for something to complete -void wait_for_operation(int seconds); +void wait_for_operation(int seconds, char* message); void safe_sleep(int seconds); #endif // TEST__H Modified: box/trunk/test/backupstorepatch/testbackupstorepatch.cpp =================================================================== --- box/trunk/test/backupstorepatch/testbackupstorepatch.cpp 2009-04-04 14:05:14 UTC (rev 2495) +++ box/trunk/test/backupstorepatch/testbackupstorepatch.cpp 2009-04-09 22:44:58 UTC (rev 2496) @@ -578,7 +578,7 @@ #ifdef WIN32 // Cannot signal bbstored to do housekeeping now, // so just wait until we're sure it's done - wait_for_operation(12); + wait_for_operation(12, "housekeeping to run"); #else // Send the server a restart signal, so it does // housekeeping immediately, and wait for it to happen Modified: box/trunk/test/bbackupd/testbbackupd.cpp =================================================================== --- box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-04 14:05:14 UTC (rev 2495) +++ box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-09 22:44:58 UTC (rev 2496) @@ -87,9 +87,9 @@ // two cycles and a bit #define TIME_TO_WAIT_FOR_BACKUP_OPERATION 12 -void wait_for_backup_operation(int seconds = TIME_TO_WAIT_FOR_BACKUP_OPERATION) +void wait_for_backup_operation(char* message) { - wait_for_operation(seconds); + wait_for_operation(TIME_TO_WAIT_FOR_BACKUP_OPERATION, message); } int bbstored_pid = 0; @@ -889,7 +889,7 @@ TEST_THAT(close(fd) == 0); int pid = start_internal_daemon(); - wait_for_backup_operation(); + wait_for_backup_operation("internal daemon to run a sync"); TEST_THAT(stop_internal_daemon(pid)); // two-second delay on the first read() of f1 @@ -910,7 +910,8 @@ "Buffer write"); TEST_THAT(close(fd) == 0); - wait_for_backup_operation(); + wait_for_backup_operation("internal daemon to sync " + "spacetest/f1"); // can't test whether intercept was triggered, because // it's in a different process. // TEST_THAT(intercept_triggered()); @@ -985,7 +986,8 @@ "Buffer write"); TEST_THAT(close(fd) == 0); - wait_for_backup_operation(); + wait_for_backup_operation("internal daemon to sync " + "spacetest/f1 again"); // can't test whether intercept was triggered, because // it's in a different process. // TEST_THAT(intercept_triggered()); @@ -1050,7 +1052,8 @@ "Buffer write"); TEST_THAT(close(fd) == 0); - wait_for_backup_operation(); + wait_for_backup_operation("internal daemon to sync " + "spacetest/f1 again"); // can't test whether intercept was triggered, because // it's in a different process. // TEST_THAT(intercept_triggered()); @@ -1139,7 +1142,8 @@ "Buffer write"); TEST_THAT(close(fd) == 0); - wait_for_backup_operation(); + wait_for_backup_operation("internal dameon to scan " + "spacetest/d1"); // can't test whether intercept was triggered, because // it's in a different process. // TEST_THAT(intercept_triggered()); @@ -1284,10 +1288,10 @@ // housekeeping deleted them, the backup cannot complete // if the limit is 20 blocks. - BOX_TRACE("Waiting for bbackupd to notice that the " + BOX_TRACE("Waiting for sync for bbackupd to notice that the " "store is full"); wait_for_sync_end(); - BOX_TRACE("done."); + BOX_TRACE("Sync finished."); BOX_TRACE("Compare to check that there are differences"); int compareReturnValue = ::system(BBACKUPQUERY " " @@ -1297,7 +1301,7 @@ TEST_RETURN(compareReturnValue, BackupQueries::ReturnCode::Compare_Different); TestRemoteProcessMemLeaks("bbackupquery.memleaks"); - BOX_TRACE("done."); + BOX_TRACE("Compare finished."); // Check that the notify script was run TEST_THAT(TestFileExists("testfiles/notifyran.store-full.1")); @@ -1307,9 +1311,8 @@ // Kill the daemon terminate_bbackupd(bbackupd_pid); - BOX_TRACE("Wait for housekeeping to remove the deleted files"); - wait_for_backup_operation(5); - BOX_TRACE("done."); + wait_for_operation(5, "housekeeping to remove the " + "deleted files"); // This removes f1 and d7, which were previously marked // as deleted, so total usage drops by 4 blocks to 24. @@ -1470,9 +1473,8 @@ return 1; } - BOX_TRACE("Wait for housekeeping to remove the deleted files"); - wait_for_backup_operation(5); - BOX_TRACE("done."); + wait_for_operation(5, "housekeeping to remove the " + "deleted files"); BOX_TRACE("Check that the files were removed"); { @@ -1606,9 +1608,7 @@ "| ( cd testfiles && tar xf - )") == 0); #endif - BOX_TRACE("Wait for bbackupd to upload more files"); - wait_for_backup_operation(); - BOX_TRACE("done."); + wait_for_backup_operation("bbackupd to upload more files"); // Check that the contents of the store are the same // as the contents of the disc @@ -1803,8 +1803,8 @@ // also test symlink-to-self loop does not break restore TEST_THAT(symlink("self", SYM_DIR "/self") == 0); - ::wait_for_operation(4); - ::sync_and_wait(); + wait_for_operation(4, "symlinks to be old enough"); + sync_and_wait(); // Check that the backup was successful, i.e. no differences int compareReturnValue = ::system(BBACKUPQUERY " " @@ -2207,7 +2207,8 @@ fs.Close(); } - wait_for_backup_operation(); + wait_for_backup_operation("upload of file with unicode name"); + // Compare to check that the file was uploaded compareReturnValue = ::system(BBACKUPQUERY " -Wwarning " "-c testfiles/bbackupd.conf \"compare -acQ\" quit"); @@ -2541,7 +2542,8 @@ } // wait for backup daemon to do it's stuff, and compare again - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync the changes"); + compareReturnValue = ::system(BBACKUPQUERY " -Wwarning " "-c testfiles/bbackupd.conf " "-l testfiles/query2.log " @@ -2586,7 +2588,8 @@ TEST_THAT(close(fd1) == 0); } - wait_for_backup_operation(4); + wait_for_operation(4, "bbackupd to try to access the store"); + // Check that an error was reported just once TEST_THAT(TestFileExists("testfiles/notifyran.backup-error.1")); TEST_THAT(!TestFileExists("testfiles/notifyran.backup-error.2")); @@ -2644,9 +2647,11 @@ TEST_THAT(close(fd1) == 0); } - // bbackupd should pause for about 90 seconds from store_fixed_time, - // so check that it hasn't run after 85 seconds from store_fixed_time - wait_for_backup_operation(85 - time(NULL) + store_fixed_time); + // bbackupd should pause for about 90 seconds from + // store_fixed_time, so check that it hasn't run after + // 85 seconds after store_fixed_time + wait_for_operation(85 - time(NULL) + store_fixed_time, + "just before bbackupd recovers"); TEST_THAT(!TestFileExists("testfiles/" "notifyran.backup-start.wait-snapshot.1")); @@ -2660,7 +2665,7 @@ TestRemoteProcessMemLeaks("bbackupquery.memleaks"); // wait another 10 seconds, bbackup should have run - wait_for_backup_operation(10); + wait_for_operation(10, "bbackupd to recover"); TEST_THAT(TestFileExists("testfiles/" "notifyran.backup-start.wait-snapshot.1")); @@ -2742,9 +2747,11 @@ TEST_THAT(close(fd1) == 0); } - // bbackupd should pause for about 90 seconds from store_fixed_time, - // so check that it hasn't run after 85 seconds from store_fixed_time - wait_for_backup_operation(85 - time(NULL) + store_fixed_time); + // bbackupd should pause for about 90 seconds from + // store_fixed_time, so check that it hasn't run after + // 85 seconds from store_fixed_time + wait_for_operation(85 - time(NULL) + store_fixed_time, + "just before bbackupd recovers"); TEST_THAT(!TestFileExists("testfiles/" "notifyran.backup-start.wait-automatic.1")); @@ -2758,7 +2765,7 @@ TestRemoteProcessMemLeaks("bbackupquery.memleaks"); // wait another 10 seconds, bbackup should have run - wait_for_backup_operation(10); + wait_for_operation(10, "bbackupd to recover"); TEST_THAT(TestFileExists("testfiles/" "notifyran.backup-start.wait-automatic.1")); @@ -2801,7 +2808,7 @@ == 0); #endif - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync the changes"); compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3c.log " @@ -2830,7 +2837,8 @@ "testfiles/TestDir1/x1/dir-to-file") == 0); #endif - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync the changes"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3d.log " @@ -2862,7 +2870,8 @@ == 0); #endif - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync the changes"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3e.log " @@ -2894,7 +2903,8 @@ "testfiles/TestDir1/x1/dir-to-file") == 0); #endif - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync the changes"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3f.log " @@ -2924,9 +2934,12 @@ TEST_THAT(close(fd2) == 0); TEST_THAT(TestFileExists("testfiles/TestDir1/untracked-1")); TEST_THAT(TestFileExists("testfiles/TestDir1/untracked-2")); - wait_for_operation(5); + // back up both files - wait_for_backup_operation(); + wait_for_operation(5, "untracked files to be old enough"); + wait_for_backup_operation("bbackupd to sync the " + "untracked files"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3g.log " @@ -2944,7 +2957,10 @@ "testfiles/TestDir1/untracked-2") == 0); TEST_THAT(!TestFileExists("testfiles/TestDir1/untracked-1")); TEST_THAT( TestFileExists("testfiles/TestDir1/untracked-2")); - wait_for_backup_operation(); + + wait_for_backup_operation("bbackupd to sync the untracked " + "files again"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3g.log " @@ -2977,9 +2993,11 @@ TEST_THAT(close(fd2) == 0); TEST_THAT(TestFileExists("testfiles/TestDir1/tracked-1")); TEST_THAT(TestFileExists("testfiles/TestDir1/tracked-2")); - wait_for_operation(5); + // back up both files - wait_for_backup_operation(); + wait_for_operation(5, "tracked files to be old enough"); + wait_for_backup_operation("bbackupd to sync the tracked files"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3h.log " @@ -2997,7 +3015,10 @@ "testfiles/TestDir1/tracked-2") == 0); TEST_THAT(!TestFileExists("testfiles/TestDir1/tracked-1")); TEST_THAT( TestFileExists("testfiles/TestDir1/tracked-2")); - wait_for_backup_operation(); + + wait_for_backup_operation("bbackupd to sync the tracked " + "files again"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3i.log " @@ -3018,7 +3039,8 @@ TEST_THAT(::rename("testfiles/TestDir1/df9834.dsf", "testfiles/TestDir1/x1/dsfdsfs98.fd") == 0); - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3j.log " @@ -3056,7 +3078,8 @@ #endif // Wait and test - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync old files"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3k.log " @@ -3239,7 +3262,8 @@ } // Wait and test... - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to try to sync " + "unreadable file"); compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3o.log " @@ -3343,7 +3367,9 @@ ::chmod("testfiles/TestDir1/df9834.dsf", 0423); // Wait and test - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync deletion " + "of directory"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query4.log " @@ -3544,7 +3570,8 @@ #endif // Wait and test - wait_for_backup_operation(); + wait_for_backup_operation("bbackupd to sync new files"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query5.log " @@ -3562,7 +3589,9 @@ printf("\n==== Rename directory\n"); TEST_THAT(rename("testfiles/TestDir1/sub23/dhsfdss", "testfiles/TestDir1/renamed-dir") == 0); - wait_for_backup_operation(); + + wait_for_backup_operation("bbackupd to sync renamed directory"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query6.log " @@ -3588,7 +3617,9 @@ "testfiles/TestDir1/df324-ren") == 0); TEST_THAT(rename("testfiles/TestDir1/sub23/find2perl", "testfiles/TestDir1/find2perl-ren") == 0); - wait_for_backup_operation(); + + wait_for_backup_operation("bbackupd to sync renamed files"); + compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query6.log " @@ -3631,7 +3662,7 @@ } // Wait and test - wait_for_backup_operation(); + wait_for_backup_operation("bbackup to sync future file"); compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3e.log " @@ -3698,9 +3729,11 @@ ::fclose(f); } - // Wait and test that there *are* differences - wait_for_backup_operation((TIME_TO_WAIT_FOR_BACKUP_OPERATION * - 3) / 2); // little bit longer than usual + // Wait a little bit longer than usual + wait_for_operation((TIME_TO_WAIT_FOR_BACKUP_OPERATION * + 3) / 2, "bbackupd to detect changed store marker"); + + // Test that there *are* differences compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query6.log " @@ -3714,9 +3747,8 @@ if (!ServerIsAlive(bbackupd_pid)) return 1; if (!ServerIsAlive(bbstored_pid)) return 1; - printf("\n==== Waiting for bbackupd to recover\n"); // 100 seconds - (12*3/2) - wait_for_operation(82); + wait_for_operation(82, "bbackupd to recover"); TEST_THAT(ServerIsAlive(bbackupd_pid)); TEST_THAT(ServerIsAlive(bbstored_pid)); @@ -3947,8 +3979,9 @@ if(bbackupd_pid != -1 && bbackupd_pid != 0) { // Wait and compare (a little bit longer than usual) - wait_for_backup_operation( - (TIME_TO_WAIT_FOR_BACKUP_OPERATION*3) / 2); + wait_for_operation( + (TIME_TO_WAIT_FOR_BACKUP_OPERATION*3) / 2, + "bbackupd to sync everything"); compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query4a.log " From boxbackup-dev at boxbackup.org Thu Apr 9 23:45:34 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Thu, 9 Apr 2009 23:45:34 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2497 - box/trunk/test/httpserver Message-ID: <20090409224534.8440E325020@www.boxbackup.org> Author: chris Date: 2009-04-09 23:45:34 +0100 (Thu, 09 Apr 2009) New Revision: 2497 Modified: box/trunk/test/httpserver/testhttpserver.cpp Log: Fix compile error due to misisng signals on Windows. httpserver test still does not pass. Modified: box/trunk/test/httpserver/testhttpserver.cpp =================================================================== --- box/trunk/test/httpserver/testhttpserver.cpp 2009-04-09 22:44:58 UTC (rev 2496) +++ box/trunk/test/httpserver/testhttpserver.cpp 2009-04-09 22:45:34 UTC (rev 2497) @@ -358,7 +358,9 @@ // Run the request script TEST_THAT(::system("perl testfiles/testrequests.pl") == 0); + #ifndef WIN32 signal(SIGPIPE, SIG_IGN); + #endif SocketStream sock; sock.Open(Socket::TypeINET, "localhost", 1080); From boxbackup-dev at boxbackup.org Fri Apr 10 00:05:29 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Fri, 10 Apr 2009 00:05:29 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2498 - in box/trunk: bin/bbackupd bin/bbstored contrib/debian lib/common lib/raidfile lib/server Message-ID: <20090409230529.88AE5325020@www.boxbackup.org> Author: chris Date: 2009-04-10 00:05:28 +0100 (Fri, 10 Apr 2009) New Revision: 2498 Modified: box/trunk/bin/bbackupd/bbackupd-config.in box/trunk/bin/bbstored/bbstored-config.in box/trunk/contrib/debian/bbackupd.in box/trunk/contrib/debian/bbstored.in box/trunk/lib/common/BoxPortsAndFiles.h.in box/trunk/lib/raidfile/RaidFileController.h box/trunk/lib/raidfile/raidfile-config.in box/trunk/lib/server/Daemon.cpp Log: Change default location for config files from /etc/box to /etc/boxbackup, thanks to Reinhard Tartler and the Debian Project. Modified: box/trunk/bin/bbackupd/bbackupd-config.in =================================================================== --- box/trunk/bin/bbackupd/bbackupd-config.in 2009-04-09 22:45:34 UTC (rev 2497) +++ box/trunk/bin/bbackupd/bbackupd-config.in 2009-04-09 23:05:28 UTC (rev 2498) @@ -19,7 +19,7 @@ working-dir [backup directories] Parameters: - config-dir is usually @sysconfdir_expanded@/box + config-dir is usually @sysconfdir_expanded@/boxbackup backup-mode is lazy or snapshot: lazy mode runs continously, uploading files over a specified age snapshot mode uploads a snapshot of the filesystem when instructed @@ -57,7 +57,7 @@ } # default locations -my $default_config_location = '@sysconfdir_expanded@/box/bbackupd.conf'; +my $default_config_location = '@sysconfdir_expanded@/boxbackup/bbackupd.conf'; # command line parameters my ($config_dir,$backup_mode,$account_num,$server,$working_dir, at tobackup) = @ARGV; Modified: box/trunk/bin/bbstored/bbstored-config.in =================================================================== --- box/trunk/bin/bbstored/bbstored-config.in 2009-04-09 22:45:34 UTC (rev 2497) +++ box/trunk/bin/bbstored/bbstored-config.in 2009-04-09 23:05:28 UTC (rev 2498) @@ -19,7 +19,7 @@ bbstored-config config-dir server-hostname username [raidfile-config] Parameters: - config-dir is usually @sysconfdir_expanded@/box + config-dir is usually @sysconfdir_expanded@/boxbackup server-hostname is the hostname that clients will use to connect to this server username is the user to run the server under @@ -47,7 +47,7 @@ } # default locations -my $default_config_location = '@sysconfdir_expanded@/box/bbstored.conf'; +my $default_config_location = '@sysconfdir_expanded@/boxbackup/bbstored.conf'; # command line parameters my ($config_dir,$server,$username,$raidfile_config) = @ARGV; Modified: box/trunk/contrib/debian/bbackupd.in =================================================================== --- box/trunk/contrib/debian/bbackupd.in 2009-04-09 22:45:34 UTC (rev 2497) +++ box/trunk/contrib/debian/bbackupd.in 2009-04-09 23:05:28 UTC (rev 2498) @@ -7,7 +7,7 @@ NAME=bbackupd LONGNAME="Box Backup Client daemon" BINARY=@sbindir_expanded@/$NAME -CONFIG=@sysconfdir_expanded@/box/$NAME.conf +CONFIG=@sysconfdir_expanded@/boxbackup/$NAME.conf PIDFILE=@localstatedir_expanded@/bbackupd/$NAME.pid test -x $BINARY || exit 0 Modified: box/trunk/contrib/debian/bbstored.in =================================================================== --- box/trunk/contrib/debian/bbstored.in 2009-04-09 22:45:34 UTC (rev 2497) +++ box/trunk/contrib/debian/bbstored.in 2009-04-09 23:05:28 UTC (rev 2498) @@ -7,7 +7,7 @@ NAME=bbstored LONGNAME="Box Backup Server daemon" BINARY=@sbindir_expanded@/$NAME -CONFIG=@sysconfdir_expanded@/box/$NAME.conf +CONFIG=@sysconfdir_expanded@/boxbackup/$NAME.conf PIDFILE=@localstatedir_expanded@/run/$NAME.pid test -x $BINARY || exit 0 Modified: box/trunk/lib/common/BoxPortsAndFiles.h.in =================================================================== --- box/trunk/lib/common/BoxPortsAndFiles.h.in 2009-04-09 22:45:34 UTC (rev 2497) +++ box/trunk/lib/common/BoxPortsAndFiles.h.in 2009-04-09 23:05:28 UTC (rev 2498) @@ -31,9 +31,12 @@ #define BOX_GET_DEFAULT_BBSTORED_CONFIG_FILE \ GetDefaultConfigFilePath("bbstored.conf").c_str() #else -#define BOX_FILE_BBACKUPD_DEFAULT_CONFIG "@sysconfdir_expanded@/box/bbackupd.conf" -#define BOX_FILE_RAIDFILE_DEFAULT_CONFIG "@sysconfdir_expanded@/box/raidfile.conf" -#define BOX_FILE_BBSTORED_DEFAULT_CONFIG "@sysconfdir_expanded@/box/bbstored.conf" +#define BOX_FILE_BBACKUPD_DEFAULT_CONFIG "@sysconfdir_expanded@/boxbackup/bbackupd.conf" +#define BOX_FILE_RAIDFILE_DEFAULT_CONFIG "@sysconfdir_expanded@/boxbackup/raidfile.conf" +#define BOX_FILE_BBSTORED_DEFAULT_CONFIG "@sysconfdir_expanded@/boxbackup/bbstored.conf" +#define BOX_FILE_BBACKUPD_OLD_CONFIG "@sysconfdir_expanded@/box/bbackupd.conf" +#define BOX_FILE_RAIDFILE_OLD_CONFIG "@sysconfdir_expanded@/box/raidfile.conf" +#define BOX_FILE_BBSTORED_OLD_CONFIG "@sysconfdir_expanded@/box/bbstored.conf" #endif #endif // BOXPORTSANDFILES__H Modified: box/trunk/lib/raidfile/RaidFileController.h =================================================================== --- box/trunk/lib/raidfile/RaidFileController.h 2009-04-09 22:45:34 UTC (rev 2497) +++ box/trunk/lib/raidfile/RaidFileController.h 2009-04-09 23:05:28 UTC (rev 2498) @@ -82,7 +82,7 @@ public: void Initialise(const std::string& rConfigFilename = - "/etc/box/raidfile.conf"); + "/etc/boxbackup/raidfile.conf"); int GetNumDiscSets() {return mSetList.size();} // -------------------------------------------------------------------------- Modified: box/trunk/lib/raidfile/raidfile-config.in =================================================================== --- box/trunk/lib/raidfile/raidfile-config.in 2009-04-09 22:45:34 UTC (rev 2497) +++ box/trunk/lib/raidfile/raidfile-config.in 2009-04-09 23:05:28 UTC (rev 2498) @@ -19,7 +19,7 @@ raidfile-config config-dir block-size dir0 [dir1 dir2] Parameters: - config-dir is usually @sysconfdir_expanded@/box + config-dir is usually @sysconfdir_expanded@/boxbackup block-size must be a power of two, and usually the block or fragment size of your file system dir0, dir1, dir2 are the directories used as the root of the raid Modified: box/trunk/lib/server/Daemon.cpp =================================================================== --- box/trunk/lib/server/Daemon.cpp 2009-04-09 22:45:34 UTC (rev 2497) +++ box/trunk/lib/server/Daemon.cpp 2009-04-09 23:05:28 UTC (rev 2498) @@ -336,6 +336,7 @@ if (argc > optind && !mHaveConfigFile) { mConfigFileName = argv[optind]; optind++; + mHaveConfigFile = true; } if (argc > optind && ::strcmp(argv[optind], "SINGLEPROCESS") == 0) @@ -375,6 +376,20 @@ try { + if (!FileExists(rConfigFileName.c_str())) + { + BOX_FATAL("The main configuration file for " << + DaemonName() << " was not found: " << + rConfigFileName); + if (!mHaveConfigFile) + { + BOX_WARNING("The default configuration " + "directory has changed from /etc/box " + "to /etc/boxbackup"); + } + return false; + } + apConfig = Configuration::LoadAndVerify(rConfigFileName, GetConfigVerify(), errors); } From boxbackup-dev at boxbackup.org Fri Apr 10 00:06:43 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Fri, 10 Apr 2009 00:06:43 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2499 - box/trunk/test/bbackupd Message-ID: <20090409230643.0DA6A325020@www.boxbackup.org> Author: chris Date: 2009-04-10 00:06:42 +0100 (Fri, 10 Apr 2009) New Revision: 2499 Modified: box/trunk/test/bbackupd/testbbackupd.cpp Log: Fix race conditions where backups happen too slowly and tests fail. Modified: box/trunk/test/bbackupd/testbbackupd.cpp =================================================================== --- box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-09 23:05:28 UTC (rev 2498) +++ box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-09 23:06:42 UTC (rev 2499) @@ -1755,7 +1755,7 @@ return 1; } - test_run_bbstored(); + TEST_THAT(test_run_bbstored() == 0); cmd = BBACKUPD " " + bbackupd_args + " testfiles/bbackupd.conf"; @@ -2541,9 +2541,13 @@ > 1024); } - // wait for backup daemon to do it's stuff, and compare again - wait_for_backup_operation("bbackupd to sync the changes"); + // wait long enough for new files to be old enough to backup + wait_for_operation(5, "new files to be old enough"); + // wait for backup daemon to do it's stuff + sync_and_wait(); + + // compare to make sure that it worked compareReturnValue = ::system(BBACKUPQUERY " -Wwarning " "-c testfiles/bbackupd.conf " "-l testfiles/query2.log " @@ -2994,10 +2998,13 @@ TEST_THAT(TestFileExists("testfiles/TestDir1/tracked-1")); TEST_THAT(TestFileExists("testfiles/TestDir1/tracked-2")); + // wait for them to be old enough to back up + wait_for_operation(5, "tracked files to be old enough"); + // back up both files - wait_for_operation(5, "tracked files to be old enough"); - wait_for_backup_operation("bbackupd to sync the tracked files"); + sync_and_wait(); + // compare to make sure that it worked compareReturnValue = ::system(BBACKUPQUERY " " "-c testfiles/bbackupd.conf " "-l testfiles/query3h.log " @@ -4039,6 +4046,7 @@ if(r != 0) return r; r = test_run_bbstored(); + TEST_THAT(r == 0); if(r != 0) return r; r = test_bbackupd(); From boxbackup-dev at boxbackup.org Fri Apr 10 00:15:43 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Fri, 10 Apr 2009 00:15:43 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2500 - box/trunk/lib/server Message-ID: <20090409231543.0833C325020@www.boxbackup.org> Author: chris Date: 2009-04-10 00:15:42 +0100 (Fri, 10 Apr 2009) New Revision: 2500 Modified: box/trunk/lib/server/Daemon.cpp Log: Include missing Utils.h header, needed for FileExists(). Modified: box/trunk/lib/server/Daemon.cpp =================================================================== --- box/trunk/lib/server/Daemon.cpp 2009-04-09 23:06:42 UTC (rev 2499) +++ box/trunk/lib/server/Daemon.cpp 2009-04-09 23:15:42 UTC (rev 2500) @@ -32,6 +32,7 @@ #include "UnixUser.h" #include "FileModificationTime.h" #include "Logging.h" +#include "Utils.h" #include "MemLeakFindOn.h" From boxbackup-dev at boxbackup.org Fri Apr 10 00:21:21 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Fri, 10 Apr 2009 00:21:21 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2501 - box/trunk/test/bbackupd Message-ID: <20090409232121.52A91325020@www.boxbackup.org> Author: chris Date: 2009-04-10 00:21:20 +0100 (Fri, 10 Apr 2009) New Revision: 2501 Modified: box/trunk/test/bbackupd/testbbackupd.cpp Log: Fix speeling misteak. Modified: box/trunk/test/bbackupd/testbbackupd.cpp =================================================================== --- box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-09 23:15:42 UTC (rev 2500) +++ box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-09 23:21:20 UTC (rev 2501) @@ -1142,7 +1142,7 @@ "Buffer write"); TEST_THAT(close(fd) == 0); - wait_for_backup_operation("internal dameon to scan " + wait_for_backup_operation("internal daemon to scan " "spacetest/d1"); // can't test whether intercept was triggered, because // it's in a different process. From boxbackup-dev at boxbackup.org Fri Apr 10 10:29:37 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Fri, 10 Apr 2009 10:29:37 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2502 - box/trunk/test/httpserver Message-ID: <20090410092937.D3FB1325020@www.boxbackup.org> Author: chris Date: 2009-04-10 10:29:37 +0100 (Fri, 10 Apr 2009) New Revision: 2502 Modified: box/trunk/test/httpserver/testhttpserver.cpp Log: Add missing #include to fix compile on lenny. Modified: box/trunk/test/httpserver/testhttpserver.cpp =================================================================== --- box/trunk/test/httpserver/testhttpserver.cpp 2009-04-09 23:21:20 UTC (rev 2501) +++ box/trunk/test/httpserver/testhttpserver.cpp 2009-04-10 09:29:37 UTC (rev 2502) @@ -9,6 +9,7 @@ #include "Box.h" +#include #include #include #include From boxbackup-dev at boxbackup.org Mon Apr 13 19:39:03 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Mon, 13 Apr 2009 19:39:03 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2503 - box/trunk/lib/common Message-ID: <20090413183903.6FF1F32501F@www.boxbackup.org> Author: chris Date: 2009-04-13 19:39:02 +0100 (Mon, 13 Apr 2009) New Revision: 2503 Modified: box/trunk/lib/common/Test.h Log: Log unexpected test results using logging framework rather than printf. Modified: box/trunk/lib/common/Test.h =================================================================== --- box/trunk/lib/common/Test.h 2009-04-10 09:29:37 UTC (rev 2502) +++ box/trunk/lib/common/Test.h 2009-04-13 18:39:02 UTC (rev 2503) @@ -90,8 +90,8 @@ \ if(_exp_str != _found_str) \ { \ - printf("Expected <%s> but found <%s>\n", \ - _exp_str.c_str(), _found_str.c_str()); \ + BOX_WARNING("Expected <" << _exp_str << "> but found <" << \ + _found_str << ">"); \ \ std::ostringstream _oss3; \ _oss3 << #_found << " != " << #_expected; \ From boxbackup-dev at boxbackup.org Mon Apr 13 19:40:50 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Mon, 13 Apr 2009 19:40:50 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2504 - in box/trunk: . bin bin/s3simulator infrastructure lib/httpserver test/httpserver test/httpserver/testfiles Message-ID: <20090413184050.B2EE932501F@www.boxbackup.org> Author: chris Date: 2009-04-13 19:40:50 +0100 (Mon, 13 Apr 2009) New Revision: 2504 Added: box/trunk/bin/s3simulator/ box/trunk/bin/s3simulator/s3simulator.cpp box/trunk/lib/httpserver/S3Simulator.cpp box/trunk/lib/httpserver/S3Simulator.h box/trunk/test/httpserver/testfiles/s3simulator.conf Modified: box/trunk/infrastructure/makebuildenv.pl.in box/trunk/lib/httpserver/HTTPRequest.cpp box/trunk/lib/httpserver/HTTPRequest.h box/trunk/lib/httpserver/HTTPServer.cpp box/trunk/lib/httpserver/HTTPServer.h box/trunk/modules.txt box/trunk/test/httpserver/testhttpserver.cpp Log: Move S3Simulator into its own class, like S3Client, for reuse elsewhere. Copied: box/trunk/bin/s3simulator/s3simulator.cpp (from rev 2422, box/trunk/bin/bbackupd/bbackupd.cpp) =================================================================== --- box/trunk/bin/s3simulator/s3simulator.cpp (rev 0) +++ box/trunk/bin/s3simulator/s3simulator.cpp 2009-04-13 18:40:50 UTC (rev 2504) @@ -0,0 +1,32 @@ +// -------------------------------------------------------------------------- +// +// File +// Name: s3simulator.cpp +// Purpose: main file for S3 simulator daemon +// Created: 2003/10/11 +// +// -------------------------------------------------------------------------- + +#include "Box.h" +#include "S3Simulator.h" +#include "MainHelper.h" + +#include "MemLeakFindOn.h" + +int main(int argc, const char *argv[]) +{ + int ExitCode = 0; + + MAINHELPER_START + + Logging::SetProgramName("s3simulator"); + Logging::ToConsole(true); + Logging::ToSyslog (true); + + S3Simulator daemon; + ExitCode = daemon.Main("s3simulator.conf", argc, argv); + + MAINHELPER_END + + return ExitCode; +} Modified: box/trunk/infrastructure/makebuildenv.pl.in =================================================================== --- box/trunk/infrastructure/makebuildenv.pl.in 2009-04-13 18:39:02 UTC (rev 2503) +++ box/trunk/infrastructure/makebuildenv.pl.in 2009-04-13 18:40:50 UTC (rev 2504) @@ -431,6 +431,8 @@ echo Killing any running daemons... kill_process bbackupd kill_process bbstored +kill_process httpserver +kill_process s3simulator __E } Modified: box/trunk/lib/httpserver/HTTPRequest.cpp =================================================================== --- box/trunk/lib/httpserver/HTTPRequest.cpp 2009-04-13 18:39:02 UTC (rev 2503) +++ box/trunk/lib/httpserver/HTTPRequest.cpp 2009-04-13 18:40:50 UTC (rev 2504) @@ -535,9 +535,11 @@ { ++dataStart; } - - if(p == sizeof("Content-Length")-1 - && ::strncasecmp(h, "Content-Length", sizeof("Content-Length")-1) == 0) + + std::string header_name(ToLowerCase(std::string(h, + p))); + + if (header_name == "content-length") { // Decode number long len = ::strtol(h + dataStart, NULL, 10); // returns zero in error case, this is OK @@ -545,14 +547,12 @@ // Store mContentLength = len; } - else if(p == sizeof("Content-Type")-1 - && ::strncasecmp(h, "Content-Type", sizeof("Content-Type")-1) == 0) + else if (header_name == "content-type") { // Store rest of string as content type mContentType = h + dataStart; } - else if(p == sizeof("Host")-1 - && ::strncasecmp(h, "Host", sizeof("Host")-1) == 0) + else if (header_name == "host") { // Store host header mHostName = h + dataStart; @@ -572,14 +572,12 @@ "port = " << mHostPort); } } - else if(p == sizeof("Cookie")-1 - && ::strncasecmp(h, "Cookie", sizeof("Cookie")-1) == 0) + else if (header_name == "cookie") { // Parse cookies ParseCookies(header, dataStart); } - else if(p == sizeof("Connection")-1 - && ::strncasecmp(h, "Connection", sizeof("Connection")-1) == 0) + else if (header_name == "connection") { // Connection header, what is required? const char *v = h + dataStart; @@ -595,8 +593,7 @@ } else { - std::string name = header.substr(0, p); - mExtraHeaders.push_back(Header(name, + mExtraHeaders.push_back(Header(header_name, h + dataStart)); } Modified: box/trunk/lib/httpserver/HTTPRequest.h =================================================================== --- box/trunk/lib/httpserver/HTTPRequest.h 2009-04-13 18:39:02 UTC (rev 2503) +++ box/trunk/lib/httpserver/HTTPRequest.h 2009-04-13 18:40:50 UTC (rev 2504) @@ -97,16 +97,19 @@ const std::string &GetCookie(const char *CookieName) const; bool GetHeader(const std::string& rName, std::string* pValueOut) const { + std::string header = ToLowerCase(rName); + for (std::vector
::const_iterator i = mExtraHeaders.begin(); i != mExtraHeaders.end(); i++) { - if (i->first == rName) + if (i->first == header) { *pValueOut = i->second; return true; } } + return false; } std::vector
GetHeaders() { return mExtraHeaders; } @@ -128,7 +131,7 @@ void AddHeader(const std::string& rName, const std::string& rValue) { - mExtraHeaders.push_back(Header(rName, rValue)); + mExtraHeaders.push_back(Header(ToLowerCase(rName), rValue)); } bool IsExpectingContinue() const { return mExpectContinue; } const char* GetVerb() const @@ -168,6 +171,17 @@ bool mExpectContinue; IOStream* mpStreamToReadFrom; std::string mHttpVerb; + + std::string ToLowerCase(const std::string& rInput) const + { + std::string output = rInput; + for (std::string::iterator c = output.begin(); + c != output.end(); c++) + { + *c = tolower(*c); + } + return output; + } }; #endif // HTTPREQUEST__H Modified: box/trunk/lib/httpserver/HTTPServer.cpp =================================================================== --- box/trunk/lib/httpserver/HTTPServer.cpp 2009-04-13 18:39:02 UTC (rev 2503) +++ box/trunk/lib/httpserver/HTTPServer.cpp 2009-04-13 18:40:50 UTC (rev 2504) @@ -153,21 +153,21 @@ // Generate a response HTTPResponse response(&rStream); + try { Handle(request, response); } catch(BoxException &e) { - char exceptionCode[64]; - ::sprintf(exceptionCode, "(%d/%d)", e.GetType(), e.GetSubType()); - SendInternalErrorResponse(exceptionCode, rStream); - return; + char exceptionCode[256]; + ::sprintf(exceptionCode, "%s (%d/%d)", e.what(), + e.GetType(), e.GetSubType()); + SendInternalErrorResponse(exceptionCode, response); } catch(...) { - SendInternalErrorResponse("unknown", rStream); - return; + SendInternalErrorResponse("unknown", response); } // Keep alive? @@ -186,7 +186,7 @@ response.Send(request.GetMethod() == HTTPRequest::Method_HEAD); } - // Notify derived claases + // Notify derived classes HTTPConnectionClosing(); } @@ -194,12 +194,14 @@ // -------------------------------------------------------------------------- // // Function -// Name: HTTPServer::SendInternalErrorResponse(const char *, SocketStream &) -// Purpose: Sends an error response to the remote side +// Name: HTTPServer::SendInternalErrorResponse(const char*, +// HTTPResponse&) +// Purpose: Generates an error message in the provided response // Created: 26/3/04 // // -------------------------------------------------------------------------- -void HTTPServer::SendInternalErrorResponse(const char *Error, SocketStream &rStream) +void HTTPServer::SendInternalErrorResponse(const std::string& rErrorMsg, + HTTPResponse& rResponse) { #define ERROR_HTML_1 "Internal Server Error\n" \ "

Internal Server Error

\n" \ @@ -209,15 +211,11 @@ "\n\n" // Generate the error page - HTTPResponse response(&rStream); - response.SetResponseCode(HTTPResponse::Code_InternalServerError); - response.SetContentType("text/html"); - response.Write(ERROR_HTML_1, sizeof(ERROR_HTML_1) - 1); - response.Write(Error, ::strlen(Error)); - response.Write(ERROR_HTML_2, sizeof(ERROR_HTML_2) - 1); - - // Send the error response - response.Send(); + // rResponse.SetResponseCode(HTTPResponse::Code_InternalServerError); + rResponse.SetContentType("text/html"); + rResponse.Write(ERROR_HTML_1, sizeof(ERROR_HTML_1) - 1); + rResponse.IOStream::Write(rErrorMsg.c_str()); + rResponse.Write(ERROR_HTML_2, sizeof(ERROR_HTML_2) - 1); } Modified: box/trunk/lib/httpserver/HTTPServer.h =================================================================== --- box/trunk/lib/httpserver/HTTPServer.h 2009-04-13 18:39:02 UTC (rev 2503) +++ box/trunk/lib/httpserver/HTTPServer.h 2009-04-13 18:40:50 UTC (rev 2504) @@ -52,15 +52,17 @@ virtual void HTTPConnectionOpening(); virtual void HTTPConnectionClosing(); +protected: + void SendInternalErrorResponse(const std::string& rErrorMsg, + HTTPResponse& rResponse); + int GetTimeout() { return mTimeout; } + private: + int mTimeout; // Timeout for read operations const char *DaemonName() const; const ConfigurationVerify *GetConfigVerify() const; void Run(); void Connection(SocketStream &rStream); - void SendInternalErrorResponse(const char *Error, SocketStream &rStream); - -private: - int mTimeout; // Timeout for read operations }; // Root level Copied: box/trunk/lib/httpserver/S3Simulator.cpp (from rev 2447, box/trunk/lib/httpserver/S3Client.cpp) =================================================================== --- box/trunk/lib/httpserver/S3Simulator.cpp (rev 0) +++ box/trunk/lib/httpserver/S3Simulator.cpp 2009-04-13 18:40:50 UTC (rev 2504) @@ -0,0 +1,308 @@ +// -------------------------------------------------------------------------- +// +// File +// Name: S3Client.cpp +// Purpose: Amazon S3 client helper implementation class +// Created: 09/01/2009 +// +// -------------------------------------------------------------------------- + +#include "Box.h" + +#include + +// #include +// #include + +#include + +#include "HTTPRequest.h" +#include "HTTPResponse.h" +#include "autogen_HTTPException.h" +#include "IOStream.h" +#include "Logging.h" +#include "S3Simulator.h" +#include "decode.h" +#include "encode.h" + +#include "MemLeakFindOn.h" + +// -------------------------------------------------------------------------- +// +// Function +// Name: HTTPServer::GetConfigVerify() +// Purpose: Returns additional configuration options for the +// S3 simulator. Currently the access key, secret key +// and store directory can be configured. +// Created: 09/01/09 +// +// -------------------------------------------------------------------------- +const ConfigurationVerify* S3Simulator::GetConfigVerify() const +{ + static ConfigurationVerifyKey verifyserverkeys[] = + { + HTTPSERVER_VERIFY_SERVER_KEYS(ConfigurationVerifyKey::NoDefaultValue) // no default addresses + }; + + static ConfigurationVerify verifyserver[] = + { + { + "Server", + 0, + verifyserverkeys, + ConfigTest_Exists | ConfigTest_LastEntry, + 0 + } + }; + + static ConfigurationVerifyKey verifyrootkeys[] = + { + ConfigurationVerifyKey("AccessKey", ConfigTest_Exists), + ConfigurationVerifyKey("SecretKey", ConfigTest_Exists), + ConfigurationVerifyKey("StoreDirectory", ConfigTest_Exists), + HTTPSERVER_VERIFY_ROOT_KEYS + }; + + static ConfigurationVerify verify = + { + "root", + verifyserver, + verifyrootkeys, + ConfigTest_Exists | ConfigTest_LastEntry, + 0 + }; + + return &verify; +} + +// -------------------------------------------------------------------------- +// +// Function +// Name: S3Simulator::Handle(HTTPRequest &rRequest, +// HTTPResponse &rResponse) +// Purpose: Handles any incoming S3 request, by checking +// authorization and then dispatching to one of the +// private Handle* methods. +// Created: 09/01/09 +// +// -------------------------------------------------------------------------- + +void S3Simulator::Handle(HTTPRequest &rRequest, HTTPResponse &rResponse) +{ + // if anything goes wrong, return a 500 error + rResponse.SetResponseCode(HTTPResponse::Code_InternalServerError); + rResponse.SetContentType("text/plain"); + + try + { + const Configuration& rConfig(GetConfiguration()); + std::string access_key = rConfig.GetKeyValue("AccessKey"); + std::string secret_key = rConfig.GetKeyValue("SecretKey"); + + std::string md5, date, bucket; + rRequest.GetHeader("content-md5", &md5); + rRequest.GetHeader("date", &date); + + std::string host = rRequest.GetHostName(); + std::string s3suffix = ".s3.amazonaws.com"; + if (host.size() > s3suffix.size()) + { + std::string suffix = host.substr(host.size() - + s3suffix.size(), s3suffix.size()); + if (suffix == s3suffix) + { + bucket = host.substr(0, host.size() - + s3suffix.size()); + } + } + + std::ostringstream data; + data << rRequest.GetVerb() << "\n"; + data << md5 << "\n"; + data << rRequest.GetContentType() << "\n"; + data << date << "\n"; + + // header names are already in lower case, i.e. canonical form + + std::vector headers = rRequest.GetHeaders(); + sort(headers.begin(), headers.end()); + + for (std::vector::iterator + i = headers.begin(); i != headers.end(); i++) + { + if (i->first.substr(0, 5) == "x-amz") + { + data << i->first << ":" << i->second << "\n"; + } + } + + if (! bucket.empty()) + { + data << "/" << bucket; + } + + data << rRequest.GetRequestURI(); + std::string data_string = data.str(); + + unsigned char digest_buffer[EVP_MAX_MD_SIZE]; + unsigned int digest_size = sizeof(digest_buffer); + /* unsigned char* mac = */ HMAC(EVP_sha1(), + secret_key.c_str(), secret_key.size(), + (const unsigned char*)data_string.c_str(), + data_string.size(), digest_buffer, &digest_size); + std::string digest((const char *)digest_buffer, digest_size); + + base64::encoder encoder; + std::string expectedAuth = "AWS " + access_key + ":" + + encoder.encode(digest); + + if (expectedAuth[expectedAuth.size() - 1] == '\n') + { + expectedAuth = expectedAuth.substr(0, + expectedAuth.size() - 1); + } + + std::string actualAuth; + if (!rRequest.GetHeader("authorization", &actualAuth) || + actualAuth != expectedAuth) + { + rResponse.SetResponseCode(HTTPResponse::Code_Unauthorized); + SendInternalErrorResponse("Authentication Failed", + rResponse); + } + else if (rRequest.GetMethod() == HTTPRequest::Method_GET) + { + HandleGet(rRequest, rResponse); + } + else if (rRequest.GetMethod() == HTTPRequest::Method_PUT) + { + HandlePut(rRequest, rResponse); + } + else + { + rResponse.SetResponseCode(HTTPResponse::Code_MethodNotAllowed); + SendInternalErrorResponse("Unsupported Method", + rResponse); + } + } + catch (CommonException &ce) + { + SendInternalErrorResponse(ce.what(), rResponse); + } + catch (std::exception &e) + { + SendInternalErrorResponse(e.what(), rResponse); + } + catch (...) + { + SendInternalErrorResponse("Unknown exception", rResponse); + } + + if (rResponse.GetResponseCode() != 200 && + rResponse.GetSize() == 0) + { + // no error message written, provide a default + std::ostringstream s; + s << rResponse.GetResponseCode(); + SendInternalErrorResponse(s.str().c_str(), rResponse); + } + + return; +} + +// -------------------------------------------------------------------------- +// +// Function +// Name: S3Simulator::HandleGet(HTTPRequest &rRequest, +// HTTPResponse &rResponse) +// Purpose: Handles an S3 GET request, i.e. downloading an +// existing object. +// Created: 09/01/09 +// +// -------------------------------------------------------------------------- + +void S3Simulator::HandleGet(HTTPRequest &rRequest, HTTPResponse &rResponse) +{ + std::string path = GetConfiguration().GetKeyValue("StoreDirectory"); + path += rRequest.GetRequestURI(); + std::auto_ptr apFile; + + try + { + apFile.reset(new FileStream(path)); + } + catch (CommonException &ce) + { + if (ce.GetSubType() == CommonException::OSFileOpenError) + { + rResponse.SetResponseCode(HTTPResponse::Code_NotFound); + } + else if (ce.GetSubType() == CommonException::AccessDenied) + { + rResponse.SetResponseCode(HTTPResponse::Code_Forbidden); + } + throw; + } + + // http://docs.amazonwebservices.com/AmazonS3/2006-03-01/UsingRESTOperations.html + apFile->CopyStreamTo(rResponse); + rResponse.AddHeader("x-amz-id-2", "qBmKRcEWBBhH6XAqsKU/eg24V3jf/kWKN9dJip1L/FpbYr9FDy7wWFurfdQOEMcY"); + rResponse.AddHeader("x-amz-request-id", "F2A8CCCA26B4B26D"); + rResponse.AddHeader("Date", "Wed, 01 Mar 2006 12:00:00 GMT"); + rResponse.AddHeader("Last-Modified", "Sun, 1 Jan 2006 12:00:00 GMT"); + rResponse.AddHeader("ETag", "\"828ef3fdfa96f00ad9f27c383fc9ac7f\""); + rResponse.AddHeader("Server", "AmazonS3"); + rResponse.SetResponseCode(HTTPResponse::Code_OK); +} + +// -------------------------------------------------------------------------- +// +// Function +// Name: S3Simulator::HandlePut(HTTPRequest &rRequest, +// HTTPResponse &rResponse) +// Purpose: Handles an S3 PUT request, i.e. uploading data to +// create or replace an object. +// Created: 09/01/09 +// +// -------------------------------------------------------------------------- + +void S3Simulator::HandlePut(HTTPRequest &rRequest, HTTPResponse &rResponse) +{ + std::string path = GetConfiguration().GetKeyValue("StoreDirectory"); + path += rRequest.GetRequestURI(); + std::auto_ptr apFile; + + try + { + apFile.reset(new FileStream(path, O_CREAT | O_WRONLY)); + } + catch (CommonException &ce) + { + if (ce.GetSubType() == CommonException::OSFileOpenError) + { + rResponse.SetResponseCode(HTTPResponse::Code_NotFound); + } + else if (ce.GetSubType() == CommonException::AccessDenied) + { + rResponse.SetResponseCode(HTTPResponse::Code_Forbidden); + } + throw; + } + + if (rRequest.IsExpectingContinue()) + { + rResponse.SendContinue(); + } + + rRequest.ReadContent(*apFile); + + // http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTObjectPUT.html + rResponse.AddHeader("x-amz-id-2", "LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7"); + rResponse.AddHeader("x-amz-request-id", "F2A8CCCA26B4B26D"); + rResponse.AddHeader("Date", "Wed, 01 Mar 2006 12:00:00 GMT"); + rResponse.AddHeader("Last-Modified", "Sun, 1 Jan 2006 12:00:00 GMT"); + rResponse.AddHeader("ETag", "\"828ef3fdfa96f00ad9f27c383fc9ac7f\""); + rResponse.SetContentType(""); + rResponse.AddHeader("Server", "AmazonS3"); + rResponse.SetResponseCode(HTTPResponse::Code_OK); +} Copied: box/trunk/lib/httpserver/S3Simulator.h (from rev 2447, box/trunk/lib/httpserver/S3Client.h) =================================================================== --- box/trunk/lib/httpserver/S3Simulator.h (rev 0) +++ box/trunk/lib/httpserver/S3Simulator.h 2009-04-13 18:40:50 UTC (rev 2504) @@ -0,0 +1,40 @@ +// -------------------------------------------------------------------------- +// +// File +// Name: S3Simulator.h +// Purpose: Amazon S3 simulation HTTP server for S3 testing +// Created: 09/01/2009 +// +// -------------------------------------------------------------------------- + +#ifndef S3SIMULATOR__H +#define S3SIMULATOR__H + +#include "HTTPServer.h" + +class ConfigurationVerify; +class HTTPRequest; +class HTTPResponse; + +// -------------------------------------------------------------------------- +// +// Class +// Name: S3Simulator +// Purpose: Amazon S3 simulation HTTP server for S3 testing +// Created: 09/01/2009 +// +// -------------------------------------------------------------------------- +class S3Simulator : public HTTPServer +{ +public: + S3Simulator() { } + ~S3Simulator() { } + + const ConfigurationVerify* GetConfigVerify() const; + virtual void Handle(HTTPRequest &rRequest, HTTPResponse &rResponse); + virtual void HandleGet(HTTPRequest &rRequest, HTTPResponse &rResponse); + virtual void HandlePut(HTTPRequest &rRequest, HTTPResponse &rResponse); +}; + +#endif // S3SIMULATOR__H + Modified: box/trunk/modules.txt =================================================================== --- box/trunk/modules.txt 2009-04-13 18:39:02 UTC (rev 2503) +++ box/trunk/modules.txt 2009-04-13 18:40:50 UTC (rev 2504) @@ -44,6 +44,7 @@ # HTTP server system lib/httpserver lib/server test/httpserver lib/httpserver +bin/s3simulator lib/httpserver # END_IF_DISTRIBUTION Copied: box/trunk/test/httpserver/testfiles/s3simulator.conf (from rev 2422, box/trunk/test/httpserver/testfiles/httpserver.conf) =================================================================== --- box/trunk/test/httpserver/testfiles/s3simulator.conf (rev 0) +++ box/trunk/test/httpserver/testfiles/s3simulator.conf 2009-04-13 18:40:50 UTC (rev 2504) @@ -0,0 +1,10 @@ +AccessKey = 0PN5J17HBGZHT7JJ3X82 +SecretKey = uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o +StoreDirectory = testfiles +AddressPrefix = http://localhost:1080 + +Server +{ + PidFile = testfiles/s3simulator.pid + ListenAddresses = inet:localhost:1080 +} Modified: box/trunk/test/httpserver/testhttpserver.cpp =================================================================== --- box/trunk/test/httpserver/testhttpserver.cpp 2009-04-13 18:39:02 UTC (rev 2503) +++ box/trunk/test/httpserver/testhttpserver.cpp 2009-04-13 18:40:50 UTC (rev 2504) @@ -26,6 +26,7 @@ #include "HTTPServer.h" #include "IOStreamGetLine.h" #include "S3Client.h" +#include "S3Simulator.h" #include "ServerControl.h" #include "Test.h" #include "decode.h" @@ -125,213 +126,6 @@ TestWebServer::TestWebServer() {} TestWebServer::~TestWebServer() {} -class S3Simulator : public HTTPServer -{ -public: - S3Simulator() { } - ~S3Simulator() { } - - virtual void Handle(HTTPRequest &rRequest, HTTPResponse &rResponse); - virtual void HandleGet(HTTPRequest &rRequest, HTTPResponse &rResponse); - virtual void HandlePut(HTTPRequest &rRequest, HTTPResponse &rResponse); -}; - -void S3Simulator::Handle(HTTPRequest &rRequest, HTTPResponse &rResponse) -{ - // if anything goes wrong, return a 500 error - rResponse.SetResponseCode(HTTPResponse::Code_InternalServerError); - rResponse.SetContentType("text/plain"); - - try - { - // http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAuthentication.html - std::string access_key = "0PN5J17HBGZHT7JJ3X82"; - std::string secret_key = "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"; - - std::string md5, date, bucket; - rRequest.GetHeader("Content-MD5", &md5); - rRequest.GetHeader("Date", &date); - - std::string host = rRequest.GetHostName(); - std::string s3suffix = ".s3.amazonaws.com"; - if (host.size() > s3suffix.size()) - { - std::string suffix = host.substr(host.size() - - s3suffix.size(), s3suffix.size()); - if (suffix == s3suffix) - { - bucket = host.substr(0, host.size() - - s3suffix.size()); - } - } - - std::ostringstream data; - data << rRequest.GetVerb() << "\n"; - data << md5 << "\n"; - data << rRequest.GetContentType() << "\n"; - data << date << "\n"; - - std::vector headers = rRequest.GetHeaders(); - - for (std::vector::iterator - i = headers.begin(); i != headers.end(); i++) - { - std::string& rHeaderName = i->first; - - for (std::string::iterator c = rHeaderName.begin(); - c != rHeaderName.end() && *c != ':'; c++) - { - *c = tolower(*c); - } - } - - sort(headers.begin(), headers.end()); - - for (std::vector::iterator - i = headers.begin(); i != headers.end(); i++) - { - if (i->first.substr(0, 5) == "x-amz") - { - data << i->first << ":" << i->second << "\n"; - } - } - - if (! bucket.empty()) - { - data << "/" << bucket; - } - - data << rRequest.GetRequestURI(); - std::string data_string = data.str(); - - unsigned char digest_buffer[EVP_MAX_MD_SIZE]; - unsigned int digest_size = sizeof(digest_buffer); - /* unsigned char* mac = */ HMAC(EVP_sha1(), - secret_key.c_str(), secret_key.size(), - (const unsigned char*)data_string.c_str(), - data_string.size(), digest_buffer, &digest_size); - std::string digest((const char *)digest_buffer, digest_size); - - base64::encoder encoder; - std::string expectedAuth = "AWS " + access_key + ":" + - encoder.encode(digest); - - if (expectedAuth[expectedAuth.size() - 1] == '\n') - { - expectedAuth = expectedAuth.substr(0, - expectedAuth.size() - 1); - } - - std::string actualAuth; - if (!rRequest.GetHeader("Authorization", &actualAuth) || - actualAuth != expectedAuth) - { - rResponse.SetResponseCode(HTTPResponse::Code_Unauthorized); - } - else if (rRequest.GetMethod() == HTTPRequest::Method_GET) - { - HandleGet(rRequest, rResponse); - } - else if (rRequest.GetMethod() == HTTPRequest::Method_PUT) - { - HandlePut(rRequest, rResponse); - } - else - { - rResponse.SetResponseCode(HTTPResponse::Code_MethodNotAllowed); - } - } - catch (CommonException &ce) - { - rResponse.IOStream::Write(ce.what()); - } - catch (std::exception &e) - { - rResponse.IOStream::Write(e.what()); - } - catch (...) - { - rResponse.IOStream::Write("Unknown error"); - } - - return; -} - -void S3Simulator::HandleGet(HTTPRequest &rRequest, HTTPResponse &rResponse) -{ - std::string path = "testfiles"; - path += rRequest.GetRequestURI(); - std::auto_ptr apFile; - - try - { - apFile.reset(new FileStream(path)); - } - catch (CommonException &ce) - { - if (ce.GetSubType() == CommonException::OSFileOpenError) - { - rResponse.SetResponseCode(HTTPResponse::Code_NotFound); - } - else if (ce.GetSubType() == CommonException::AccessDenied) - { - rResponse.SetResponseCode(HTTPResponse::Code_Forbidden); - } - throw; - } - - // http://docs.amazonwebservices.com/AmazonS3/2006-03-01/UsingRESTOperations.html - apFile->CopyStreamTo(rResponse); - rResponse.AddHeader("x-amz-id-2", "qBmKRcEWBBhH6XAqsKU/eg24V3jf/kWKN9dJip1L/FpbYr9FDy7wWFurfdQOEMcY"); - rResponse.AddHeader("x-amz-request-id", "F2A8CCCA26B4B26D"); - rResponse.AddHeader("Date", "Wed, 01 Mar 2006 12:00:00 GMT"); - rResponse.AddHeader("Last-Modified", "Sun, 1 Jan 2006 12:00:00 GMT"); - rResponse.AddHeader("ETag", "\"828ef3fdfa96f00ad9f27c383fc9ac7f\""); - rResponse.AddHeader("Server", "AmazonS3"); - rResponse.SetResponseCode(HTTPResponse::Code_OK); -} - -void S3Simulator::HandlePut(HTTPRequest &rRequest, HTTPResponse &rResponse) -{ - std::string path = "testfiles"; - path += rRequest.GetRequestURI(); - std::auto_ptr apFile; - - try - { - apFile.reset(new FileStream(path, O_CREAT | O_WRONLY)); - } - catch (CommonException &ce) - { - if (ce.GetSubType() == CommonException::OSFileOpenError) - { - rResponse.SetResponseCode(HTTPResponse::Code_NotFound); - } - else if (ce.GetSubType() == CommonException::AccessDenied) - { - rResponse.SetResponseCode(HTTPResponse::Code_Forbidden); - } - throw; - } - - if (rRequest.IsExpectingContinue()) - { - rResponse.SendContinue(); - } - - rRequest.ReadContent(*apFile); - - // http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTObjectPUT.html - rResponse.AddHeader("x-amz-id-2", "LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7"); - rResponse.AddHeader("x-amz-request-id", "F2A8CCCA26B4B26D"); - rResponse.AddHeader("Date", "Wed, 01 Mar 2006 12:00:00 GMT"); - rResponse.AddHeader("Last-Modified", "Sun, 1 Jan 2006 12:00:00 GMT"); - rResponse.AddHeader("ETag", "\"828ef3fdfa96f00ad9f27c383fc9ac7f\""); - rResponse.SetContentType(""); - rResponse.AddHeader("Server", "AmazonS3"); - rResponse.SetResponseCode(HTTPResponse::Code_OK); -} - int test(int argc, const char *argv[]) { if(argc >= 2 && ::strcmp(argv[1], "server") == 0) @@ -446,16 +240,17 @@ TEST_THAT(KillServer(pid)); TestRemoteProcessMemLeaks("generic-httpserver.memleaks"); - // correct, official signature should succeed + // correct, official signature should succeed, with lower-case header { // http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAuthentication.html HTTPRequest request(HTTPRequest::Method_GET, "/photos/puppy.jpg"); request.SetHostName("johnsmith.s3.amazonaws.com"); - request.AddHeader("Date", "Tue, 27 Mar 2007 19:36:42 +0000"); - request.AddHeader("Authorization", + request.AddHeader("date", "Tue, 27 Mar 2007 19:36:42 +0000"); + request.AddHeader("authorization", "AWS 0PN5J17HBGZHT7JJ3X82:xXjDGYUmKxnwqr5KXNPGldn5LbA="); S3Simulator simulator; + simulator.Configure("testfiles/s3simulator.conf"); CollectInBufferStream response_buffer; HTTPResponse response(&response_buffer); @@ -473,11 +268,12 @@ // http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAuthentication.html HTTPRequest request(HTTPRequest::Method_GET, "/photos/puppy.jpg"); request.SetHostName("johnsmith.s3.amazonaws.com"); - request.AddHeader("Date", "Tue, 27 Mar 2007 19:36:42 +0000"); - request.AddHeader("Authorization", + request.AddHeader("date", "Tue, 27 Mar 2007 19:36:42 +0000"); + request.AddHeader("authorization", "AWS 0PN5J17HBGZHT7JJ3X82:xXjDGYUmKxnwqr5KXNPGldn5LbB="); S3Simulator simulator; + simulator.Configure("testfiles/s3simulator.conf"); CollectInBufferStream response_buffer; HTTPResponse response(&response_buffer); @@ -487,12 +283,19 @@ std::string response_data((const char *)response.GetBuffer(), response.GetSize()); - TEST_EQUAL("", response_data); + TEST_EQUAL("" + "Internal Server Error\n" + "

Internal Server Error

\n" + "

An error, type Authentication Failed occured " + "when processing the request.

" + "

Please try again later.

\n" + "\n", response_data); } // S3Client tests { S3Simulator simulator; + simulator.Configure("testfiles/s3simulator.conf"); S3Client client(&simulator, "johnsmith.s3.amazonaws.com", "0PN5J17HBGZHT7JJ3X82", "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"); @@ -527,8 +330,8 @@ HTTPRequest request(HTTPRequest::Method_PUT, "/newfile"); request.SetHostName("quotes.s3.amazonaws.com"); - request.AddHeader("Date", "Wed, 01 Mar 2006 12:00:00 GMT"); - request.AddHeader("Authorization", "AWS 0PN5J17HBGZHT7JJ3X82:XtMYZf0hdOo4TdPYQknZk0Lz7rw="); + request.AddHeader("date", "Wed, 01 Mar 2006 12:00:00 GMT"); + request.AddHeader("authorization", "AWS 0PN5J17HBGZHT7JJ3X82:XtMYZf0hdOo4TdPYQknZk0Lz7rw="); request.AddHeader("Content-Type", "text/plain"); FileStream fs("testfiles/testrequests.pl"); @@ -539,6 +342,7 @@ HTTPResponse response(&response_buffer); S3Simulator simulator; + simulator.Configure("testfiles/s3simulator.conf"); simulator.Handle(request, response); TEST_EQUAL(200, response.GetResponseCode()); @@ -558,8 +362,8 @@ } // Start the S3Simulator server - pid = LaunchServer("./test s3server testfiles/httpserver.conf", - "testfiles/httpserver.pid"); + pid = LaunchServer("./test s3server testfiles/s3simulator.conf", + "testfiles/s3simulator.pid"); TEST_THAT(pid != -1 && pid != 0); if(pid <= 0) { From boxbackup-dev at boxbackup.org Thu Apr 23 01:01:11 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Thu, 23 Apr 2009 01:01:11 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2505 - box/trunk/contrib/rpm Message-ID: <20090423000111.69E52325020@www.boxbackup.org> Author: martin Date: 2009-04-23 01:01:10 +0100 (Thu, 23 Apr 2009) New Revision: 2505 Modified: box/trunk/contrib/rpm/boxbackup.spec Log: Use dist tag in version for rpm spec Modified: box/trunk/contrib/rpm/boxbackup.spec =================================================================== --- box/trunk/contrib/rpm/boxbackup.spec 2009-04-13 18:40:50 UTC (rev 2504) +++ box/trunk/contrib/rpm/boxbackup.spec 2009-04-23 00:01:10 UTC (rev 2505) @@ -25,18 +25,18 @@ %if %{is_suse} %define init_dir %{_sysconfdir}/init.d -%define dist suse +%define distribution suse %define rc_start rc %else %define init_dir %{_sysconfdir}/rc.d/init.d -%define dist redhat +%define distribution redhat %define rc_start "service " %endif Summary: An automatic on-line backup system for UNIX. Name: boxbackup Version: ###DISTRIBUTION-VERSION-NUMBER### -Release: 1 +Release: 1%{?dist} License: BSD Group: Applications/Archiving Packager: boxbackup-dev at boxbackup.org @@ -129,7 +129,7 @@ # Client touch $RPM_BUILD_ROOT%{_sysconfdir}/box/bbackupd.conf -install -m 755 contrib/%{dist}/bbackupd $RPM_BUILD_ROOT%{init_dir} +install -m 755 contrib/%{distribution}/bbackupd $RPM_BUILD_ROOT%{init_dir} %if %{is_suse} ln -s ../../%{init_dir}/bbackupd $RPM_BUILD_ROOT%{_sbindir}/rcbbackupd %endif @@ -142,7 +142,7 @@ # Server touch $RPM_BUILD_ROOT%{_sysconfdir}/box/bbstored.conf touch $RPM_BUILD_ROOT%{_sysconfdir}/box/raidfile.conf -install -m 755 contrib/%{dist}/bbstored $RPM_BUILD_ROOT%{init_dir} +install -m 755 contrib/%{distribution}/bbstored $RPM_BUILD_ROOT%{init_dir} %if %{is_suse} ln -s ../../%{init_dir}/bbstored $RPM_BUILD_ROOT%{_sbindir}/rcbbstored %endif @@ -225,6 +225,9 @@ %doc %{_docdir}/%{ident}/bbreporter %changelog +* Thu Apr 23 2009 Martin Ebourne +- Use dist tag in version + * Thu May 29 2008 Martin Ebourne - Fix paths to bbreporter files From boxbackup-dev at boxbackup.org Thu Apr 23 01:38:40 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Thu, 23 Apr 2009 01:38:40 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2506 - in box/trunk: lib/common lib/raidfile lib/server test/backupdiff test/bbackupd test/common test/raidfile Message-ID: <20090423003840.E0D4A325020@www.boxbackup.org> Author: martin Date: 2009-04-23 01:38:39 +0100 (Thu, 23 Apr 2009) New Revision: 2506 Modified: box/trunk/lib/common/Test.cpp box/trunk/lib/common/Test.h box/trunk/lib/raidfile/RaidFileUtil.h box/trunk/lib/server/ServerControl.cpp box/trunk/test/backupdiff/difftestfiles.cpp box/trunk/test/bbackupd/testbbackupd.cpp box/trunk/test/common/testcommon.cpp box/trunk/test/raidfile/testraidfile.cpp Log: Fixes for gcc 4.4. Modified: box/trunk/lib/common/Test.cpp =================================================================== --- box/trunk/lib/common/Test.cpp 2009-04-23 00:01:10 UTC (rev 2505) +++ box/trunk/lib/common/Test.cpp 2009-04-23 00:38:39 UTC (rev 2506) @@ -416,7 +416,7 @@ // Wait a given number of seconds for something to complete -void wait_for_operation(int seconds, char* message) +void wait_for_operation(int seconds, const char* message) { if (Logging::GetGlobalLevel() >= Log::TRACE) { Modified: box/trunk/lib/common/Test.h =================================================================== --- box/trunk/lib/common/Test.h 2009-04-23 00:01:10 UTC (rev 2505) +++ box/trunk/lib/common/Test.h 2009-04-23 00:38:39 UTC (rev 2506) @@ -158,7 +158,7 @@ void terminate_bbackupd(int pid); // Wait a given number of seconds for something to complete -void wait_for_operation(int seconds, char* message); +void wait_for_operation(int seconds, const char* message); void safe_sleep(int seconds); #endif // TEST__H Modified: box/trunk/lib/raidfile/RaidFileUtil.h =================================================================== --- box/trunk/lib/raidfile/RaidFileUtil.h 2009-04-23 00:01:10 UTC (rev 2505) +++ box/trunk/lib/raidfile/RaidFileUtil.h 2009-04-23 00:38:39 UTC (rev 2506) @@ -37,7 +37,7 @@ AsRaidWithMissingNotRecoverable = 4 } ExistType; - typedef enum + enum { Stripe1Exists = 1, Stripe2Exists = 2, Modified: box/trunk/lib/server/ServerControl.cpp =================================================================== --- box/trunk/lib/server/ServerControl.cpp 2009-04-23 00:01:10 UTC (rev 2505) +++ box/trunk/lib/server/ServerControl.cpp 2009-04-23 00:38:39 UTC (rev 2506) @@ -1,6 +1,7 @@ #include "Box.h" #include +#include #ifdef HAVE_SYS_TYPES_H #include Modified: box/trunk/test/backupdiff/difftestfiles.cpp =================================================================== --- box/trunk/test/backupdiff/difftestfiles.cpp 2009-04-23 00:01:10 UTC (rev 2505) +++ box/trunk/test/backupdiff/difftestfiles.cpp 2009-04-23 00:38:39 UTC (rev 2506) @@ -10,6 +10,7 @@ #include "Box.h" #include +#include #include "FileStream.h" #include "PartialReadStream.h" Modified: box/trunk/test/bbackupd/testbbackupd.cpp =================================================================== --- box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-23 00:01:10 UTC (rev 2505) +++ box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-23 00:38:39 UTC (rev 2506) @@ -87,7 +87,7 @@ // two cycles and a bit #define TIME_TO_WAIT_FOR_BACKUP_OPERATION 12 -void wait_for_backup_operation(char* message) +void wait_for_backup_operation(const char* message) { wait_for_operation(TIME_TO_WAIT_FOR_BACKUP_OPERATION, message); } Modified: box/trunk/test/common/testcommon.cpp =================================================================== --- box/trunk/test/common/testcommon.cpp 2009-04-23 00:01:10 UTC (rev 2505) +++ box/trunk/test/common/testcommon.cpp 2009-04-23 00:38:39 UTC (rev 2506) @@ -368,7 +368,7 @@ // Leave timers initialised for rest of test. // Test main() will cleanup after test finishes. - static char *testfilelines[] = + static const char *testfilelines[] = { "First line", "Second line", Modified: box/trunk/test/raidfile/testraidfile.cpp =================================================================== --- box/trunk/test/raidfile/testraidfile.cpp 2009-04-23 00:01:10 UTC (rev 2505) +++ box/trunk/test/raidfile/testraidfile.cpp 2009-04-23 00:38:39 UTC (rev 2506) @@ -11,6 +11,7 @@ #include #include +#include #include #ifdef HAVE_SYSCALL From boxbackup-dev at boxbackup.org Thu Apr 23 01:50:42 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Thu, 23 Apr 2009 01:50:42 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2507 - box/trunk/lib/httpserver Message-ID: <20090423005042.8AB50325020@www.boxbackup.org> Author: martin Date: 2009-04-23 01:50:42 +0100 (Thu, 23 Apr 2009) New Revision: 2507 Modified: box/trunk/lib/httpserver/S3Simulator.cpp Log: Fixes for gcc 4.4. Modified: box/trunk/lib/httpserver/S3Simulator.cpp =================================================================== --- box/trunk/lib/httpserver/S3Simulator.cpp 2009-04-23 00:38:39 UTC (rev 2506) +++ box/trunk/lib/httpserver/S3Simulator.cpp 2009-04-23 00:50:42 UTC (rev 2507) @@ -9,6 +9,7 @@ #include "Box.h" +#include #include // #include @@ -125,7 +126,7 @@ // header names are already in lower case, i.e. canonical form std::vector headers = rRequest.GetHeaders(); - sort(headers.begin(), headers.end()); + std::sort(headers.begin(), headers.end()); for (std::vector::iterator i = headers.begin(); i != headers.end(); i++) From boxbackup-dev at boxbackup.org Sun Apr 26 12:55:16 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 12:55:16 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2508 - box/trunk/lib/common Message-ID: <20090426115516.E938232501F@www.boxbackup.org> Author: chris Date: 2009-04-26 12:55:14 +0100 (Sun, 26 Apr 2009) New Revision: 2508 Modified: box/trunk/lib/common/Test.h Log: Show expected and actual return codes from shell commands in tests. Modified: box/trunk/lib/common/Test.h =================================================================== --- box/trunk/lib/common/Test.h 2009-04-23 00:50:42 UTC (rev 2507) +++ box/trunk/lib/common/Test.h 2009-04-26 11:55:14 UTC (rev 2508) @@ -18,14 +18,14 @@ #define BBSTORED "..\\..\\bin\\bbstored\\bbstored.exe" #define BBACKUPQUERY "..\\..\\bin\\bbackupquery\\bbackupquery.exe" #define BBSTOREACCOUNTS "..\\..\\bin\\bbstoreaccounts\\bbstoreaccounts.exe" -#define TEST_RETURN(actual, expected) TEST_THAT(actual == expected); +#define TEST_RETURN(actual, expected) TEST_EQUAL(expected, actual); #else #define BBACKUPCTL "../../bin/bbackupctl/bbackupctl" #define BBACKUPD "../../bin/bbackupd/bbackupd" #define BBSTORED "../../bin/bbstored/bbstored" #define BBACKUPQUERY "../../bin/bbackupquery/bbackupquery" #define BBSTOREACCOUNTS "../../bin/bbstoreaccounts/bbstoreaccounts" -#define TEST_RETURN(actual, expected) TEST_THAT(actual == expected*256); +#define TEST_RETURN(actual, expected) TEST_EQUAL(expected << 8, actual); #endif extern int failures; From boxbackup-dev at boxbackup.org Sun Apr 26 12:55:58 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 12:55:58 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2509 - box/trunk/test/bbackupd/testfiles Message-ID: <20090426115558.7829E32501F@www.boxbackup.org> Author: chris Date: 2009-04-26 12:55:58 +0100 (Sun, 26 Apr 2009) New Revision: 2509 Modified: box/trunk/test/bbackupd/testfiles/extcheck1.pl.in Log: Improve debugging output from external check script. Modified: box/trunk/test/bbackupd/testfiles/extcheck1.pl.in =================================================================== --- box/trunk/test/bbackupd/testfiles/extcheck1.pl.in 2009-04-26 11:55:14 UTC (rev 2508) +++ box/trunk/test/bbackupd/testfiles/extcheck1.pl.in 2009-04-26 11:55:58 UTC (rev 2509) @@ -8,7 +8,7 @@ "-l testfiles/query4.log " . "\"compare -ac$flags\" quit 2>&1 |") { - print "Couldn't open compare utility\n"; + print "FAIL: opening compare utility\n"; exit 2; } @@ -48,7 +48,11 @@ close IN; -$ret = 2 unless $seen; +unless ($seen) +{ + print "FAIL: missing line matching continousupdate\n"; + $ret = 2; +} exit $ret; From boxbackup-dev at boxbackup.org Sun Apr 26 15:39:22 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 15:39:22 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2510 - box/trunk/test/bbackupd Message-ID: <20090426143922.605B632501F@www.boxbackup.org> Author: chris Date: 2009-04-26 15:39:21 +0100 (Sun, 26 Apr 2009) New Revision: 2510 Modified: box/trunk/test/bbackupd/testbbackupd.cpp Log: Log while sleeping in test/bbackupd. Only show warning about diff test time taken if it's out of bounds. Modified: box/trunk/test/bbackupd/testbbackupd.cpp =================================================================== --- box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-26 11:55:58 UTC (rev 2509) +++ box/trunk/test/bbackupd/testbbackupd.cpp 2009-04-26 14:39:21 UTC (rev 2510) @@ -2443,10 +2443,10 @@ // next poll should happen within the next // 5 seconds (normally about 3 seconds) - safe_sleep(1); // 2 seconds before + wait_for_operation(1, "2 seconds before next run"); TEST_THAT(stat("testfiles" DIRECTORY_SEPARATOR "syncallowscript.notifyran.1", &st) != 0); - safe_sleep(4); // 2 seconds after + wait_for_operation(4, "2 seconds after run"); TEST_THAT(stat("testfiles" DIRECTORY_SEPARATOR "syncallowscript.notifyran.1", &st) == 0); TEST_THAT(stat("testfiles" DIRECTORY_SEPARATOR @@ -2455,10 +2455,10 @@ // next poll should happen within the next // 10 seconds (normally about 8 seconds) - safe_sleep(6); // 2 seconds before + wait_for_operation(6, "2 seconds before next run"); TEST_THAT(stat("testfiles" DIRECTORY_SEPARATOR "syncallowscript.notifyran.2", &st) != 0); - safe_sleep(4); // 2 seconds after + wait_for_operation(4, "2 seconds after run"); TEST_THAT(stat("testfiles" DIRECTORY_SEPARATOR "syncallowscript.notifyran.2", &st) == 0); @@ -2481,9 +2481,14 @@ long end_time = time(NULL); long wait_time = end_time - start_time + 2; + // should be about 10 seconds - printf("Waited for %ld seconds, should have been %s", - wait_time, control_string); + if (wait_time < 8 || wait_time > 12) + { + printf("Waited for %ld seconds, should have " + "been %s", wait_time, control_string); + } + TEST_THAT(wait_time >= 8); TEST_THAT(wait_time <= 12); From boxbackup-dev at boxbackup.org Sun Apr 26 15:40:19 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 15:40:19 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2511 - box/trunk/lib/win32 Message-ID: <20090426144019.4D02532501F@www.boxbackup.org> Author: chris Date: 2009-04-26 15:40:17 +0100 (Sun, 26 Apr 2009) New Revision: 2511 Modified: box/trunk/lib/win32/emu.h Log: Provide a function to close a file handle on Windows, analogous to openfile(). Modified: box/trunk/lib/win32/emu.h =================================================================== --- box/trunk/lib/win32/emu.h 2009-04-26 14:39:21 UTC (rev 2510) +++ box/trunk/lib/win32/emu.h 2009-04-26 14:40:17 UTC (rev 2511) @@ -117,7 +117,7 @@ #ifndef __MINGW32__ //not sure if these are correct //S_IWRITE - writing permitted - //_S_IREAD - reading permitted + //_S_IREAD - reading permitted //_S_IREAD | _S_IWRITE - #define S_IRUSR S_IWRITE #define S_IWUSR S_IREAD @@ -242,6 +242,15 @@ extern DWORD winerrno; /* used to report errors from openfile() */ HANDLE openfile(const char *filename, int flags, int mode); +inline int closefile(HANDLE handle) +{ + if (CloseHandle(handle) != TRUE) + { + errno = EINVAL; + return -1; + } + return 0; +} #define LOG_DEBUG LOG_INFO #define LOG_INFO 6 From boxbackup-dev at boxbackup.org Sun Apr 26 15:41:24 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 15:41:24 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2512 - box/trunk/lib/common Message-ID: <20090426144124.89C1332501F@www.boxbackup.org> Author: chris Date: 2009-04-26 15:41:24 +0100 (Sun, 26 Apr 2009) New Revision: 2512 Modified: box/trunk/lib/common/BoxPlatform.h box/trunk/lib/common/FileStream.h Log: Move definition of INVALID_HANDLE_VALUE and tOSFileHandle to BoxPlatform.h, to make them available in other files. Modified: box/trunk/lib/common/BoxPlatform.h =================================================================== --- box/trunk/lib/common/BoxPlatform.h 2009-04-26 14:40:17 UTC (rev 2511) +++ box/trunk/lib/common/BoxPlatform.h 2009-04-26 14:41:24 UTC (rev 2512) @@ -176,6 +176,14 @@ #include "emu.h" +#ifdef WIN32 + #define INVALID_FILE INVALID_HANDLE_VALUE + typedef HANDLE tOSFileHandle; +#else + #define INVALID_FILE -1 + typedef int tOSFileHandle; +#endif + // Solaris has no dirfd(x) macro or function, and we need one for // intercept tests. We cannot define macros with arguments directly // using AC_DEFINE, so do it here instead of in configure.ac. Modified: box/trunk/lib/common/FileStream.h =================================================================== --- box/trunk/lib/common/FileStream.h 2009-04-26 14:40:17 UTC (rev 2511) +++ box/trunk/lib/common/FileStream.h 2009-04-26 14:41:24 UTC (rev 2512) @@ -20,14 +20,6 @@ #include #endif -#ifdef WIN32 - #define INVALID_FILE INVALID_HANDLE_VALUE - typedef HANDLE tOSFileHandle; -#else - #define INVALID_FILE -1 - typedef int tOSFileHandle; -#endif - class FileStream : public IOStream { public: From boxbackup-dev at boxbackup.org Sun Apr 26 19:41:42 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 19:41:42 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2513 - box/trunk/test/httpserver Message-ID: <20090426184142.A10B032501F@www.boxbackup.org> Author: chris Date: 2009-04-26 19:41:41 +0100 (Sun, 26 Apr 2009) New Revision: 2513 Modified: box/trunk/test/httpserver/testhttpserver.cpp Log: Fix httpserver tests on win32. Modified: box/trunk/test/httpserver/testhttpserver.cpp =================================================================== --- box/trunk/test/httpserver/testhttpserver.cpp 2009-04-26 14:41:24 UTC (rev 2512) +++ box/trunk/test/httpserver/testhttpserver.cpp 2009-04-26 18:41:41 UTC (rev 2513) @@ -238,8 +238,13 @@ // Kill it TEST_THAT(KillServer(pid)); - TestRemoteProcessMemLeaks("generic-httpserver.memleaks"); + #ifdef WIN32 + TEST_THAT(unlink("testfiles/httpserver.pid") == 0); + #else + TestRemoteProcessMemLeaks("generic-httpserver.memleaks"); + #endif + // correct, official signature should succeed, with lower-case header { // http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAuthentication.html @@ -387,6 +392,7 @@ TEST_EQUAL(404, response.GetResponseCode()); } + #ifndef WIN32 // much harder to make files inaccessible on WIN32 // Make file inaccessible, should cause server to return a 403 error, // unless of course the test is run as root :) { @@ -405,6 +411,7 @@ TEST_EQUAL(403, response.GetResponseCode()); TEST_THAT(chmod("testfiles/testrequests.pl", 0755) == 0); } + #endif { HTTPRequest request(HTTPRequest::Method_GET, @@ -461,8 +468,13 @@ // Kill it TEST_THAT(KillServer(pid)); - TestRemoteProcessMemLeaks("generic-httpserver.memleaks"); + #ifdef WIN32 + TEST_THAT(unlink("testfiles/s3simulator.pid") == 0); + #else + TestRemoteProcessMemLeaks("generic-httpserver.memleaks"); + #endif + return 0; } From boxbackup-dev at boxbackup.org Sun Apr 26 20:26:08 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 20:26:08 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2514 - box/trunk/infrastructure Message-ID: <20090426192608.8053632501F@www.boxbackup.org> Author: chris Date: 2009-04-26 20:26:07 +0100 (Sun, 26 Apr 2009) New Revision: 2514 Modified: box/trunk/infrastructure/makebuildenv.pl.in Log: Put the shell script that kills all running daemons into a shell function to avoid repetition. Modified: box/trunk/infrastructure/makebuildenv.pl.in =================================================================== --- box/trunk/infrastructure/makebuildenv.pl.in 2009-04-26 18:41:41 UTC (rev 2513) +++ box/trunk/infrastructure/makebuildenv.pl.in 2009-04-26 19:26:07 UTC (rev 2514) @@ -428,11 +428,16 @@ if (-d "$module/testfiles") { print TESTFILE <<__E; +kill_daemons() +{ + kill_process bbackupd + kill_process bbstored + kill_process httpserver + kill_process s3simulator +} + echo Killing any running daemons... -kill_process bbackupd -kill_process bbstored -kill_process httpserver -kill_process s3simulator +kill_daemons __E } @@ -459,8 +464,7 @@ if (-d "$module/testfiles") { print TESTFILE <<__E; -kill_process bbackupd -kill_process bbstored +kill_daemons __E } From boxbackup-dev at boxbackup.org Sun Apr 26 21:01:17 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 21:01:17 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2515 - in box/trunk/docs: . docbook xsl-generic xsl-generic/common xsl-generic/highlighting xsl-generic/html xsl-generic/lib xsl-generic/manpages Message-ID: <20090426200117.E385A32501F@www.boxbackup.org> Author: chris Date: 2009-04-26 21:01:15 +0100 (Sun, 26 Apr 2009) New Revision: 2515 Added: box/trunk/docs/docbook/bb-man.xsl box/trunk/docs/xsl-generic/ box/trunk/docs/xsl-generic/VERSION box/trunk/docs/xsl-generic/common/ box/trunk/docs/xsl-generic/common/af.xml box/trunk/docs/xsl-generic/common/am.xml box/trunk/docs/xsl-generic/common/ar.xml box/trunk/docs/xsl-generic/common/autoidx-kimber.xsl box/trunk/docs/xsl-generic/common/autoidx-kosek.xsl box/trunk/docs/xsl-generic/common/az.xml box/trunk/docs/xsl-generic/common/bg.xml box/trunk/docs/xsl-generic/common/bn.xml box/trunk/docs/xsl-generic/common/bs.xml box/trunk/docs/xsl-generic/common/ca.xml box/trunk/docs/xsl-generic/common/charmap.xml box/trunk/docs/xsl-generic/common/charmap.xsl box/trunk/docs/xsl-generic/common/common.xml box/trunk/docs/xsl-generic/common/common.xsl box/trunk/docs/xsl-generic/common/cs.xml box/trunk/docs/xsl-generic/common/cy.xml box/trunk/docs/xsl-generic/common/da.xml box/trunk/docs/xsl-generic/common/de.xml box/trunk/docs/xsl-generic/common/el.xml box/trunk/docs/xsl-generic/common/en.xml box/trunk/docs/xsl-generic/common/entities.ent box/trunk/docs/xsl-generic/common/eo.xml box/trunk/docs/xsl-generic/common/es.xml box/trunk/docs/xsl-generic/common/et.xml box/trunk/docs/xsl-generic/common/eu.xml box/trunk/docs/xsl-generic/common/fa.xml box/trunk/docs/xsl-generic/common/fi.xml box/trunk/docs/xsl-generic/common/fr.xml box/trunk/docs/xsl-generic/common/ga.xml box/trunk/docs/xsl-generic/common/gentext.xsl box/trunk/docs/xsl-generic/common/gu.xml box/trunk/docs/xsl-generic/common/he.xml box/trunk/docs/xsl-generic/common/hi.xml box/trunk/docs/xsl-generic/common/hr.xml box/trunk/docs/xsl-generic/common/hu.xml box/trunk/docs/xsl-generic/common/id.xml box/trunk/docs/xsl-generic/common/insertfile.xsl box/trunk/docs/xsl-generic/common/it.xml box/trunk/docs/xsl-generic/common/ja.xml box/trunk/docs/xsl-generic/common/kn.xml box/trunk/docs/xsl-generic/common/ko.xml box/trunk/docs/xsl-generic/common/l10n.dtd box/trunk/docs/xsl-generic/common/l10n.xml box/trunk/docs/xsl-generic/common/l10n.xsl box/trunk/docs/xsl-generic/common/la.xml box/trunk/docs/xsl-generic/common/labels.xsl box/trunk/docs/xsl-generic/common/lt.xml box/trunk/docs/xsl-generic/common/lv.xml box/trunk/docs/xsl-generic/common/mn.xml box/trunk/docs/xsl-generic/common/nl.xml box/trunk/docs/xsl-generic/common/nn.xml box/trunk/docs/xsl-generic/common/no.xml box/trunk/docs/xsl-generic/common/olink.xsl box/trunk/docs/xsl-generic/common/or.xml box/trunk/docs/xsl-generic/common/pa.xml box/trunk/docs/xsl-generic/common/pi.xsl box/trunk/docs/xsl-generic/common/pl.xml box/trunk/docs/xsl-generic/common/pt.xml box/trunk/docs/xsl-generic/common/pt_br.xml box/trunk/docs/xsl-generic/common/refentry.xml box/trunk/docs/xsl-generic/common/refentry.xsl box/trunk/docs/xsl-generic/common/ro.xml box/trunk/docs/xsl-generic/common/ru.xml box/trunk/docs/xsl-generic/common/sk.xml box/trunk/docs/xsl-generic/common/sl.xml box/trunk/docs/xsl-generic/common/sq.xml box/trunk/docs/xsl-generic/common/sr.xml box/trunk/docs/xsl-generic/common/sr_Latn.xml box/trunk/docs/xsl-generic/common/stripns.xsl box/trunk/docs/xsl-generic/common/subtitles.xsl box/trunk/docs/xsl-generic/common/sv.xml box/trunk/docs/xsl-generic/common/ta.xml box/trunk/docs/xsl-generic/common/table.xsl box/trunk/docs/xsl-generic/common/targetdatabase.dtd box/trunk/docs/xsl-generic/common/targets.xsl box/trunk/docs/xsl-generic/common/th.xml box/trunk/docs/xsl-generic/common/titles.xsl box/trunk/docs/xsl-generic/common/tl.xml box/trunk/docs/xsl-generic/common/tr.xml box/trunk/docs/xsl-generic/common/uk.xml box/trunk/docs/xsl-generic/common/utility.xml box/trunk/docs/xsl-generic/common/utility.xsl box/trunk/docs/xsl-generic/common/vi.xml box/trunk/docs/xsl-generic/common/xh.xml box/trunk/docs/xsl-generic/common/zh_cn.xml box/trunk/docs/xsl-generic/common/zh_tw.xml box/trunk/docs/xsl-generic/highlighting/ box/trunk/docs/xsl-generic/highlighting/c-hl.xml box/trunk/docs/xsl-generic/highlighting/common.xsl box/trunk/docs/xsl-generic/highlighting/delphi-hl.xml box/trunk/docs/xsl-generic/highlighting/ini-hl.xml box/trunk/docs/xsl-generic/highlighting/java-hl.xml box/trunk/docs/xsl-generic/highlighting/m2-hl.xml box/trunk/docs/xsl-generic/highlighting/myxml-hl.xml box/trunk/docs/xsl-generic/highlighting/php-hl.xml box/trunk/docs/xsl-generic/highlighting/xslthl-config.xml box/trunk/docs/xsl-generic/html/ box/trunk/docs/xsl-generic/html/admon.xsl box/trunk/docs/xsl-generic/html/annotations.xsl box/trunk/docs/xsl-generic/html/autoidx-kimber.xsl box/trunk/docs/xsl-generic/html/autoidx-kosek.xsl box/trunk/docs/xsl-generic/html/autoidx-ng.xsl box/trunk/docs/xsl-generic/html/autoidx.xsl box/trunk/docs/xsl-generic/html/autotoc.xsl box/trunk/docs/xsl-generic/html/biblio-iso690.xsl box/trunk/docs/xsl-generic/html/biblio.xsl box/trunk/docs/xsl-generic/html/block.xsl box/trunk/docs/xsl-generic/html/callout.xsl box/trunk/docs/xsl-generic/html/changebars.xsl box/trunk/docs/xsl-generic/html/chunk-code.xsl box/trunk/docs/xsl-generic/html/chunk-common.xsl box/trunk/docs/xsl-generic/html/chunk.xsl box/trunk/docs/xsl-generic/html/chunker.xsl box/trunk/docs/xsl-generic/html/chunkfast.xsl box/trunk/docs/xsl-generic/html/chunktoc.xsl box/trunk/docs/xsl-generic/html/component.xsl box/trunk/docs/xsl-generic/html/division.xsl box/trunk/docs/xsl-generic/html/docbook.xsl box/trunk/docs/xsl-generic/html/ebnf.xsl box/trunk/docs/xsl-generic/html/footnote.xsl box/trunk/docs/xsl-generic/html/formal.xsl box/trunk/docs/xsl-generic/html/glossary.xsl box/trunk/docs/xsl-generic/html/graphics.xsl box/trunk/docs/xsl-generic/html/highlight.xsl box/trunk/docs/xsl-generic/html/html-rtf.xsl box/trunk/docs/xsl-generic/html/html.xsl box/trunk/docs/xsl-generic/html/htmltbl.xsl box/trunk/docs/xsl-generic/html/index.xsl box/trunk/docs/xsl-generic/html/info.xsl box/trunk/docs/xsl-generic/html/inline.xsl box/trunk/docs/xsl-generic/html/keywords.xsl box/trunk/docs/xsl-generic/html/lists.xsl box/trunk/docs/xsl-generic/html/maketoc.xsl box/trunk/docs/xsl-generic/html/manifest.xsl box/trunk/docs/xsl-generic/html/math.xsl box/trunk/docs/xsl-generic/html/oldchunker.xsl box/trunk/docs/xsl-generic/html/onechunk.xsl box/trunk/docs/xsl-generic/html/param.xsl box/trunk/docs/xsl-generic/html/pi.xsl box/trunk/docs/xsl-generic/html/profile-chunk-code.xsl box/trunk/docs/xsl-generic/html/profile-chunk.xsl box/trunk/docs/xsl-generic/html/profile-docbook.xsl box/trunk/docs/xsl-generic/html/profile-onechunk.xsl box/trunk/docs/xsl-generic/html/qandaset.xsl box/trunk/docs/xsl-generic/html/refentry.xsl box/trunk/docs/xsl-generic/html/sections.xsl box/trunk/docs/xsl-generic/html/synop.xsl box/trunk/docs/xsl-generic/html/table.xsl box/trunk/docs/xsl-generic/html/task.xsl box/trunk/docs/xsl-generic/html/titlepage.templates.xml box/trunk/docs/xsl-generic/html/titlepage.templates.xsl box/trunk/docs/xsl-generic/html/titlepage.xsl box/trunk/docs/xsl-generic/html/toc.xsl box/trunk/docs/xsl-generic/html/verbatim.xsl box/trunk/docs/xsl-generic/html/xref.xsl box/trunk/docs/xsl-generic/lib/ box/trunk/docs/xsl-generic/lib/lib.xsl box/trunk/docs/xsl-generic/manpages/ box/trunk/docs/xsl-generic/manpages/block.xsl box/trunk/docs/xsl-generic/manpages/charmap.groff.xsl box/trunk/docs/xsl-generic/manpages/docbook.xsl box/trunk/docs/xsl-generic/manpages/endnotes.xsl box/trunk/docs/xsl-generic/manpages/html-synop.xsl box/trunk/docs/xsl-generic/manpages/info.xsl box/trunk/docs/xsl-generic/manpages/inline.xsl box/trunk/docs/xsl-generic/manpages/lists.xsl box/trunk/docs/xsl-generic/manpages/other.xsl box/trunk/docs/xsl-generic/manpages/param.xsl box/trunk/docs/xsl-generic/manpages/profile-docbook.xsl box/trunk/docs/xsl-generic/manpages/refentry.xsl box/trunk/docs/xsl-generic/manpages/synop.xsl box/trunk/docs/xsl-generic/manpages/table.xsl box/trunk/docs/xsl-generic/manpages/utility.xsl Removed: box/trunk/docs/docbook/bb-man.xsl.tmpl Modified: box/trunk/docs/Makefile Log: Add a local copy of the XSL stylesheets needed to build Box Backup docs, as remote copies are slow and prone to failure and weird behaviour with different versions of xsltproc (e.g. on Cygwin). Modified: box/trunk/docs/Makefile =================================================================== --- box/trunk/docs/Makefile 2009-04-26 19:26:07 UTC (rev 2514) +++ box/trunk/docs/Makefile 2009-04-26 20:01:15 UTC (rev 2515) @@ -41,20 +41,6 @@ manpages: man-dirs man-nroff man-html -xslt: $(MANXSL) - -$(MANXSL): $(MANXSL).tmpl - @if [ -f /usr/local/share/xsl/docbook/manpages/docbook.xsl ]; then \ - DOCBOOK=file:///usr/local/share/xsl/docbook/manpages/docbook.xsl; \ - elif [ -f /opt/local/share/xsl/docbook-xsl/manpages/docbook.xsl ]; then \ - DOCBOOK=file:///opt/local/share/xsl/docbook-xsl/manpages/docbook.xsl; \ - elif [ -f /usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl ]; then \ - DOCBOOK=file:///usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl; \ - else \ - DOCBOOK=http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl; \ - fi; \ - sed -e "s,%%DOCBOOK%%,$${DOCBOOK}," $(MANXSL).tmpl > $(MANXSL) - man-dirs: man/.there $(HTML_DIR)/man-html/.there $(HTML_DIR)/man-html/.there: @@ -84,22 +70,13 @@ $(HTML_DIR)/man-html/%.html: $(DOCBOOK_DIR)/%.xml $(NOCHUNKBOOKXSL) $(DBPROC) -o $@ $(NOCHUNKBOOKXSL) $< -# Before running xsltproc to generate manual pages, we need to check -# that $(MANXSL) has been built. We don't want to add it to dependencies, -# because that would cause # the man pages to try to be rebuilt even if -# they already exist if the date of the xslt file changes, and that -# requires xsltproc, which negates the point of precompiling them for -# distribution users. - # GNU make $(MAN_DIR)/%.8.gz: $(DOCBOOK_DIR)/%.xml - $(MAKE) xslt $(DBPROC) -o $(@:.gz=) $(MANXSL) $< gzip $(@:.gz=) # GNU make $(MAN_DIR)/%.5.gz: $(DOCBOOK_DIR)/%.xml - $(MAKE) xslt $(DBPROC) -o $(@:.gz=) $(MANXSL) $< gzip $(@:.gz=) @@ -109,7 +86,6 @@ .for MAN_PAGE in $(NROFF_PAGES) : $(MAN_DIR)/$(MAN_PAGE).gz: $(DOCBOOK_DIR)/$(MAN_PAGE:R).xml - $(MAKE) xslt $(DBPROC) -o $(.TARGET:.gz=) $(MANXSL) $> gzip $(@:.gz=) @@ -125,5 +101,4 @@ rm -f $(NROFF_FILES) rm -f $(DOCBOOK_DIR)/ExceptionCodes.xml rm -f documentation-kit-0.10.tar.gz - rm -f $(MANXSL) Added: box/trunk/docs/docbook/bb-man.xsl =================================================================== --- box/trunk/docs/docbook/bb-man.xsl (rev 0) +++ box/trunk/docs/docbook/bb-man.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,9 @@ + + + + + + + + Deleted: box/trunk/docs/docbook/bb-man.xsl.tmpl =================================================================== --- box/trunk/docs/docbook/bb-man.xsl.tmpl 2009-04-26 19:26:07 UTC (rev 2514) +++ box/trunk/docs/docbook/bb-man.xsl.tmpl 2009-04-26 20:01:15 UTC (rev 2515) @@ -1,9 +0,0 @@ - - - - - - - - Added: box/trunk/docs/xsl-generic/VERSION =================================================================== --- box/trunk/docs/xsl-generic/VERSION (rev 0) +++ box/trunk/docs/xsl-generic/VERSION 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,113 @@ + + + + + + + + + + + +docbook-xsl +1.72.0 +6549 +$Revision: 7388 $ +$URL: https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/xsl/VERSION $ + + + + + DocBook + XSL Stylesheets + 1.73.2 + + + + + + + +Minor bugfixes + + + + + http://sourceforge.net/projects/docbook/ + http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.tar.gz?download + http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.zip?download + http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.bz2?download + http://sourceforge.net/project/shownotes.php?release_id={SFRELID} + http://docbook.svn.sourceforge.net/viewvc/docbook/ + http://lists.oasis-open.org/archives/docbook-apps/ + This is a bug-fix update to the 1.73.1 release. + + + + + + + + + + + + + + + + + + + + + You must specify the sf-relid as a parameter. + + + + + + + + + + + + + + + + + + : + + + + + + + + + : + + + + + + + + + : + + + + + Added: box/trunk/docs/xsl-generic/common/af.xml =================================================================== --- box/trunk/docs/xsl-generic/common/af.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/af.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/am.xml =================================================================== --- box/trunk/docs/xsl-generic/common/am.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/am.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +??????????????? +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/ar.xml =================================================================== --- box/trunk/docs/xsl-generic/common/ar.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/ar.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/autoidx-kimber.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/autoidx-kimber.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/autoidx-kimber.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,43 @@ + + + + + + +]> + + + + + + + + + + ERROR: the 'kimber' index method requires the + Saxon version 6 or 8 XSLT processor. + + + 1 + + + + + + + + Added: box/trunk/docs/xsl-generic/common/autoidx-kosek.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/autoidx-kosek.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/autoidx-kosek.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,150 @@ + + + +]> + + + + + + + + + + ERROR: the 'kosek' index method does not + work with the xsltproc XSLT processor. + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + No " + + " localization of index grouping letters exists + + + . + + + ; using "en". + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + No " + + " localization of index grouping letters exists + + + . + + + ; using "en". + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/az.xml =================================================================== --- box/trunk/docs/xsl-generic/common/az.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/az.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,666 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +????ar??l??r +A +a +B +b +C +c +?? +?? +D +d +E +e +e +e +?? +?? +G +g +?? +?? +H +h +X +x +I +?? +?? +i +J +j +K +k +Q +q +L +l +M +m +N +n +O +o +?? +?? +P +p +R +r +S +s +?? +?? +T +t +U +u +?? +?? +V +v +Y +y +Z +z + + Added: box/trunk/docs/xsl-generic/common/bg.xml =================================================================== --- box/trunk/docs/xsl-generic/common/bg.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/bg.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,718 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +?????????? ?? ?????????? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +A +a +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +Q +q +R +r +S +s +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z + + Added: box/trunk/docs/xsl-generic/common/bn.xml =================================================================== --- box/trunk/docs/xsl-generic/common/bn.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/bn.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/bs.xml =================================================================== --- box/trunk/docs/xsl-generic/common/bs.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/bs.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,656 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Simboli +A +a +B +b +C +c +?? +?? +?? +?? +D +d +?? +?? +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +R +r +S +s +?? +?? +T +t +U +u +V +v +Z +z +?? +?? + + Added: box/trunk/docs/xsl-generic/common/ca.xml =================================================================== --- box/trunk/docs/xsl-generic/common/ca.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/ca.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/charmap.xml =================================================================== --- box/trunk/docs/xsl-generic/common/charmap.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/charmap.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,185 @@ + + + + + Common ?? Character-Map Template Reference + + $Id: charmap.xsl 7266 2007-08-22 11:58:42Z xmldoc $ + + + + + Introduction + +This is technical reference documentation for the + character-map templates in the DocBook XSL Stylesheets. + + + +These templates are defined in a separate file from the set + of ???common??? templates because some of the common templates + reference DocBook XSL stylesheet parameters, requiring the + entire set of parameters to be imported/included in any + stylesheet that imports/includes the common templates. + + +The character-map templates don???t import or include + any DocBook XSL stylesheet parameters, so the + character-map templates can be used without importing the + whole set of parameters. + + + +This is not intended to be user documentation. It is + provided for developers writing customization layers for the + stylesheets. + + + + + +apply-character-map +Applies an XSLT character map + + +<xsl:template name="apply-character-map"> +<xsl:param name="content"/> +<xsl:param name="map.contents"/> + ... +</xsl:template> + + + +<para>This template applies an <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character map</link>; that is, it causes certain + individual characters to be substituted with strings of one + or more characters. It is useful mainly for replacing + multiple ???special??? characters or symbols in the same target + content. It uses the value of + <parameter>map.contents</parameter> to do substitution on + <parameter>content</parameter>, and then returns the + modified contents.</para> + + <note> + +<para>This template is a very slightly modified version of + Jeni Tennison???s <function>replace_strings</function> + template in the <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/StringReplace.html#d9351e13">multiple string replacements</link> section of Dave Pawson???s + <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT FAQ</link>.</para> + + +<para>The <function>apply-string-subst-map</function> + template is essentially the same template as the + <function>apply-character-map</function> template; the + only difference is that in the map that + <function>apply-string-subst-map</function> expects, <tag class="attribute">oldstring</tag> and <tag class="attribute">newstring</tag> attributes are used + instead of <tag class="attribute">character</tag> and <tag class="attribute">string</tag> attributes.</para> + + </note> + </refsect1><refsect1><title>Parameters + + + content + + +The content on which to perform the character-map + substitution. + + + + map.contents + + +A node set of elements, with each element having + the following attributes: + + + + character, a + character to be replaced + + + string, a + string with which to replace character + + + + + + + + + + + + + +read-character-map +Reads in all or part of an XSLT character map + + +<xsl:template name="read-character-map"> +<xsl:param name="use.subset"/> +<xsl:param name="subset.profile"/> +<xsl:param name="uri"/> + ... +</xsl:template> + + + +<para>The XSLT 2.0 specification describes <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">character maps</link> and explains how they may be used + to allow a specific character appearing in a text or + attribute node in a final result tree to be substituted by + a specified string of characters during serialization. The + <function>read-character-map</function> template provides a + means for reading and using character maps with XSLT + 1.0-based tools.</para> + + +<para>This template reads the character-map contents from + <parameter>uri</parameter> (in full or in part, depending on + the value of the <parameter>use.subset</parameter> + parameter), then passes those contents to the + <function>apply-character-map</function> template, along with + <parameter>content</parameter>, the data on which to perform + the character substitution.</para> + + +<para>Using the character map ???in part??? means that it uses only + those <tag>output-character</tag> elements that match the + XPath expression given in the value of the + <parameter>subset.profile</parameter> parameter. The current + implementation of that capability here relies on the + <function>evaluate</function> extension XSLT function.</para> + + </refsect1><refsect1><title>Parameters + + + use.subset + + +Specifies whether to use a subset of the character + map instead of the whole map; boolean + 0 or 1 + + + + subset.profile + + +XPath expression that specifies what subset of the + character map to use + + + + uri + + +URI for a character map + + + + + + + + Added: box/trunk/docs/xsl-generic/common/charmap.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/charmap.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/charmap.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,221 @@ + + + + + + + Common ?? Character-Map Template Reference + + $Id: charmap.xsl 7266 2007-08-22 11:58:42Z xmldoc $ + + + + + Introduction + This is technical reference documentation for the + character-map templates in the DocBook XSL Stylesheets. + + These templates are defined in a separate file from the set + of ???common??? templates because some of the common templates + reference DocBook XSL stylesheet parameters, requiring the + entire set of parameters to be imported/included in any + stylesheet that imports/includes the common templates. + The character-map templates don???t import or include + any DocBook XSL stylesheet parameters, so the + character-map templates can be used without importing the + whole set of parameters. + + This is not intended to be user documentation. It is + provided for developers writing customization layers for the + stylesheets. + + + + + + Applies an XSLT character map + + This template applies an XSLT character map; that is, it causes certain + individual characters to be substituted with strings of one + or more characters. It is useful mainly for replacing + multiple ???special??? characters or symbols in the same target + content. It uses the value of + map.contents to do substitution on + content, and then returns the + modified contents. + + This template is a very slightly modified version of + Jeni Tennison???s replace_strings + template in the multiple string replacements section of Dave Pawson???s + XSLT FAQ. + The apply-string-subst-map + template is essentially the same template as the + apply-character-map template; the + only difference is that in the map that + apply-string-subst-map expects, oldstring and newstring attributes are used + instead of character and string attributes. + + + + + content + + The content on which to perform the character-map + substitution. + + + map.contents + + A node set of elements, with each element having + the following attributes: + + + character, a + character to be replaced + + + string, a + string with which to replace character + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reads in all or part of an XSLT character map + + The XSLT 2.0 specification describes character maps and explains how they may be used + to allow a specific character appearing in a text or + attribute node in a final result tree to be substituted by + a specified string of characters during serialization. The + read-character-map template provides a + means for reading and using character maps with XSLT + 1.0-based tools. + This template reads the character-map contents from + uri (in full or in part, depending on + the value of the use.subset + parameter), then passes those contents to the + apply-character-map template, along with + content, the data on which to perform + the character substitution. + Using the character map ???in part??? means that it uses only + those output-character elements that match the + XPath expression given in the value of the + subset.profile parameter. The current + implementation of that capability here relies on the + evaluate extension XSLT function. + + + + use.subset + + Specifies whether to use a subset of the character + map instead of the whole map; boolean + 0 or 1 + + + subset.profile + + XPath expression that specifies what subset of the + character map to use + + + uri + + URI for a character map + + + + + + + + + + + + + + + + + + + + + + + +Error: To process character-map subsets, you must use an XSLT engine +that supports the evaluate() XSLT extension function. Your XSLT engine +does not support it. + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/common.xml =================================================================== --- box/trunk/docs/xsl-generic/common/common.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/common.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,622 @@ + + + + + Common ?? Base Template Reference + + $Id: common.xsl 7056 2007-07-17 13:56:09Z xmldoc $ + + + + + Introduction + +This is technical reference documentation for the ???base??? + set of common templates in the DocBook XSL Stylesheets. + + +This is not intended to be user documentation. It is + provided for developers writing customization layers for the + stylesheets. + + + + + +is.component +Tests if a given node is a component-level element + + +<xsl:template name="is.component"> +<xsl:param name="node" select="."/> + ... +</xsl:template> + + + +<para>This template returns '1' if the specified node is a component +(Chapter, Appendix, etc.), and '0' otherwise.</para> + +</refsect1><refsect1><title>Parameters + + +node + + +The node which is to be tested. + + + + + +Returns + +This template returns '1' if the specified node is a component +(Chapter, Appendix, etc.), and '0' otherwise. + + + + + +is.section +Tests if a given node is a section-level element + + +<xsl:template name="is.section"> +<xsl:param name="node" select="."/> + ... +</xsl:template> + + + +<para>This template returns '1' if the specified node is a section +(Section, Sect1, Sect2, etc.), and '0' otherwise.</para> + +</refsect1><refsect1><title>Parameters + + +node + + +The node which is to be tested. + + + + + +Returns + +This template returns '1' if the specified node is a section +(Section, Sect1, Sect2, etc.), and '0' otherwise. + + + + + +section.level +Returns the hierarchical level of a section + + +<xsl:template name="section.level"> +<xsl:param name="node" select="."/> + ... +</xsl:template> + + + +<para>This template calculates the hierarchical level of a section. +The element <tag>sect1</tag> is at level 1, <tag>sect2</tag> is +at level 2, etc.</para> + + + +<para>Recursive sections are calculated down to the fifth level.</para> + +</refsect1><refsect1><title>Parameters + + +node + + +The section node for which the level should be calculated. +Defaults to the context node. + + + + + +Returns + +The section level, 1, 2, etc. + + + + + + +qanda.section.level +Returns the hierarchical level of a QandASet + + +<xsl:template name="qanda.section.level"/> + + + +<para>This template calculates the hierarchical level of a QandASet. +</para> + +</refsect1><refsect1><title>Returns + +The level, 1, 2, etc. + + + + + + +select.mediaobject +Selects and processes an appropriate media object from a list + + +<xsl:template name="select.mediaobject"> +<xsl:param name="olist" select="imageobject|imageobjectco |videoobject|audioobject|textobject"/> + ... +</xsl:template> + + + +<para>This template takes a list of media objects (usually the +children of a mediaobject or inlinemediaobject) and processes +the "right" object.</para> + + + +<para>This template relies on a template named +"select.mediaobject.index" to determine which object +in the list is appropriate.</para> + + + +<para>If no acceptable object is located, nothing happens.</para> + +</refsect1><refsect1><title>Parameters + + +olist + + +The node list of potential objects to examine. + + + + + +Returns + +Calls <xsl:apply-templates> on the selected object. + + + + + +select.mediaobject.index +Selects the position of the appropriate media object from a list + + +<xsl:template name="select.mediaobject.index"> +<xsl:param name="olist" select="imageobject|imageobjectco |videoobject|audioobject|textobject"/> +<xsl:param name="count">1</xsl:param> + ... +</xsl:template> + + + +<para>This template takes a list of media objects (usually the +children of a mediaobject or inlinemediaobject) and determines +the "right" object. It returns the position of that object +to be used by the calling template.</para> + + + +<para>If the parameter <parameter>use.role.for.mediaobject</parameter> +is nonzero, then it first checks for an object with +a role attribute of the appropriate value. It takes the first +of those. Otherwise, it takes the first acceptable object +through a recursive pass through the list.</para> + + + +<para>This template relies on a template named "is.acceptable.mediaobject" +to determine if a given object is an acceptable graphic. The semantics +of media objects is that the first acceptable graphic should be used. +</para> + + + +<para>If no acceptable object is located, no index is returned.</para> + +</refsect1><refsect1><title>Parameters + + +olist + + +The node list of potential objects to examine. + + + +count + + +The position in the list currently being considered by the +recursive process. + + + + + +Returns + +Returns the position in the original list of the selected object. + + + + + +is.acceptable.mediaobject +Returns '1' if the specified media object is recognized + + +<xsl:template name="is.acceptable.mediaobject"> +<xsl:param name="object"/> + ... +</xsl:template> + + + +<para>This template examines a media object and returns '1' if the +object is recognized as a graphic.</para> + +</refsect1><refsect1><title>Parameters + + +object + + +The media object to consider. + + + + + +Returns + +0 or 1 + + + + + +check.id.unique +Warn users about references to non-unique IDs + + +<xsl:template name="check.id.unique"> +<xsl:param name="linkend"/> + ... +</xsl:template> + + + +<para>If passed an ID in <varname>linkend</varname>, +<function>check.id.unique</function> prints +a warning message to the user if either the ID does not exist or +the ID is not unique.</para> + +</refsect1></refentry> + +<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.check.idref.targets"> +<refnamediv> +<refname>check.idref.targets</refname> +<refpurpose>Warn users about incorrectly typed references</refpurpose> +</refnamediv> +<refsynopsisdiv> +<synopsis><xsl:template name="check.idref.targets"> +<xsl:param name="linkend"/> +<xsl:param name="element-list"/> + ... +</xsl:template></synopsis> +</refsynopsisdiv> +<refsect1><title/> + +<para>If passed an ID in <varname>linkend</varname>, +<function>check.idref.targets</function> makes sure that the element +pointed to by the link is one of the elements listed in +<varname>element-list</varname> and warns the user otherwise.</para> + +</refsect1></refentry> + +<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.copyright.years"> +<refnamediv> +<refname>copyright.years</refname> +<refpurpose>Print a set of years with collapsed ranges</refpurpose> +</refnamediv> +<refsynopsisdiv> +<synopsis><xsl:template name="copyright.years"> +<xsl:param name="years"/> +<xsl:param name="print.ranges" select="1"/> +<xsl:param name="single.year.ranges" select="0"/> +<xsl:param name="firstyear" select="0"/> +<xsl:param name="nextyear" select="0"/> + ... +</xsl:template></synopsis> +</refsynopsisdiv> +<refsect1><title/> + +<para>This template prints a list of year elements with consecutive +years printed as a range. In other words:</para> + + +<screen><year>1992</year> +<year>1993</year> +<year>1994</year></screen> + + +<para>is printed <quote>1992-1994</quote>, whereas:</para> + + +<screen><year>1992</year> +<year>1994</year></screen> + + +<para>is printed <quote>1992, 1994</quote>.</para> + + + +<para>This template assumes that all the year elements contain only +decimal year numbers, that the elements are sorted in increasing +numerical order, that there are no duplicates, and that all the years +are expressed in full <quote>century+year</quote> +(<quote>1999</quote> not <quote>99</quote>) notation.</para> + +</refsect1><refsect1><title>Parameters + + +years + + +The initial set of year elements. + + + +print.ranges + + +If non-zero, multi-year ranges are collapsed. If zero, all years +are printed discretely. + + + +single.year.ranges + + +If non-zero, two consecutive years will be printed as a range, +otherwise, they will be printed discretely. In other words, a single +year range is 1991-1992 but discretely it's +1991, 1992. + + + + + +Returns + +This template returns the formatted list of years. + + + + + +find.path.params +Search in a table for the "best" match for the node + + +<xsl:template name="find.path.params"> +<xsl:param name="node" select="."/> +<xsl:param name="table" select="''"/> +<xsl:param name="location"> + <xsl:call-template name="xpath.location"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + </xsl:param> + ... +</xsl:template> + + + +<para>This template searches in a table for the value that most-closely +(in the typical best-match sense of XSLT) matches the current (element) +node location.</para> + +</refsect1></refentry> + +<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.string.upper"> +<refnamediv> +<refname>string.upper</refname> +<refpurpose>Converts a string to all uppercase letters</refpurpose> +</refnamediv> +<refsynopsisdiv> +<synopsis><xsl:template name="string.upper"> +<xsl:param name="string" select="''"/> + ... +</xsl:template></synopsis> +</refsynopsisdiv> +<refsect1><title/> + +<para>Given a string, this template does a language-aware conversion +of that string to all uppercase letters, based on the values of the +<literal>lowercase.alpha</literal> and +<literal>uppercase.alpha</literal> gentext keys for the current +locale. It affects only those characters found in the values of +<literal>lowercase.alpha</literal> and +<literal>uppercase.alpha</literal>. All other characters are left +unchanged.</para> + +</refsect1><refsect1><title>Parameters + + +string + + +The string to convert to uppercase. + + + + + + + + + +string.lower +Converts a string to all lowercase letters + + +<xsl:template name="string.lower"> +<xsl:param name="string" select="''"/> + ... +</xsl:template> + + + +<para>Given a string, this template does a language-aware conversion +of that string to all lowercase letters, based on the values of the +<literal>uppercase.alpha</literal> and +<literal>lowercase.alpha</literal> gentext keys for the current +locale. It affects only those characters found in the values of +<literal>uppercase.alpha</literal> and +<literal>lowercase.alpha</literal>. All other characters are left +unchanged.</para> + +</refsect1><refsect1><title>Parameters + + +string + + +The string to convert to lowercase. + + + + + + + + + +select.choice.separator +Returns localized choice separator + + +<xsl:template name="select.choice.separator"/> + + + +<para>This template enables auto-generation of an appropriate + localized "choice" separator (for example, "and" or "or") before + the final item in an inline list (though it could also be useful + for generating choice separators for non-inline lists).</para> + + +<para>It currently works by evaluating a processing instruction + (PI) of the form <?dbchoice??choice="foo"?> : + +<itemizedlist> + <listitem> + <simpara>if the value of the <tag>choice</tag> + pseudo-attribute is "and" or "or", returns a localized "and" + or "or"</simpara> + </listitem> + <listitem> + <simpara>otherwise returns the literal value of the + <tag>choice</tag> pseudo-attribute</simpara> + </listitem> + </itemizedlist> + + The latter is provided only as a temporary workaround because the + locale files do not currently have translations for the word + <wordasword>or</wordasword>. So if you want to generate a a + logical "or" separator in French (for example), you currently need + to do this: + <literallayout><?dbchoice choice="ou"?></literallayout> + </para> + + <warning> + +<para>The <tag>dbchoice</tag> processing instruction is + an unfortunate hack; support for it may disappear in the future + (particularly if and when a more appropriate means for marking + up "choice" lists becomes available in DocBook).</para> + + </warning> + </refsect1></refentry> + +<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.evaluate.info.profile"> +<refnamediv> +<refname>evaluate.info.profile</refname> +<refpurpose>Evaluates an info profile</refpurpose> +</refnamediv> +<refsynopsisdiv> +<synopsis><xsl:template name="evaluate.info.profile"> +<xsl:param name="profile"/> +<xsl:param name="info"/> + ... +</xsl:template></synopsis> +</refsynopsisdiv> +<refsect1><title/> + +<para>This template evaluates an "info profile" matching the XPath + expression given by the <parameter>profile</parameter> + parameter. It relies on the XSLT <function>evaluate()</function> + extension function.</para> + + + +<para>The value of the <parameter>profile</parameter> parameter + can include the literal string <literal>$info</literal>. If found + in the value of the <parameter>profile</parameter> parameter, the + literal string <literal>$info</literal> string is replaced with + the value of the <parameter>info</parameter> parameter, which + should be a set of <replaceable>*info</replaceable> nodes; the + expression is then evaluated using the XSLT + <function>evaluate()</function> extension function.</para> + + </refsect1><refsect1><title>Parameters + + + + profile + + +A string representing an XPath expression + + + + + info + + +A set of *info nodes + + + + + + Returns + +Returns a node (the result of evaluating the + profile parameter) + + + + Added: box/trunk/docs/xsl-generic/common/common.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/common.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/common.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1981 @@ + + + + + + + + Common ?? Base Template Reference + + $Id: common.xsl 7056 2007-07-17 13:56:09Z xmldoc $ + + + + + Introduction + This is technical reference documentation for the ???base??? + set of common templates in the DocBook XSL Stylesheets. + This is not intended to be user documentation. It is + provided for developers writing customization layers for the + stylesheets. + + + + + + + + + + + + +Tests if a given node is a component-level element + + +This template returns '1' if the specified node is a component +(Chapter, Appendix, etc.), and '0' otherwise. + + + + +node + +The node which is to be tested. + + + + + + +This template returns '1' if the specified node is a component +(Chapter, Appendix, etc.), and '0' otherwise. + + + + + + + 1 + 0 + + + + + + +Tests if a given node is a section-level element + + +This template returns '1' if the specified node is a section +(Section, Sect1, Sect2, etc.), and '0' otherwise. + + + + +node + +The node which is to be tested. + + + + + + +This template returns '1' if the specified node is a section +(Section, Sect1, Sect2, etc.), and '0' otherwise. + + + + + + + 1 + 0 + + + + + + +Returns the hierarchical level of a section + + +This template calculates the hierarchical level of a section. +The element sect1 is at level 1, sect2 is +at level 2, etc. + +Recursive sections are calculated down to the fifth level. + + + + +node + +The section node for which the level should be calculated. +Defaults to the context node. + + + + + + +The section level, 1, 2, etc. + + + + + + + + 1 + 2 + 3 + 4 + 5 + + + 6 + 5 + 4 + 3 + 2 + 1 + + + + + + + + + + 2 + 3 + 4 + 5 + 5 + + + 5 + 4 + 3 + 2 + + + 1 + + + 1 + + + + +Returns the hierarchical level of a QandASet + + +This template calculates the hierarchical level of a QandASet. + + + + +The level, 1, 2, etc. + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + 2 + 3 + + + 5 + 4 + 3 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + question + answer + qandadiv + qandaset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [FAMILY Given] + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[ +] +{ +} + + +[ +] +... + + + | +4pi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Selects and processes an appropriate media object from a list + + +This template takes a list of media objects (usually the +children of a mediaobject or inlinemediaobject) and processes +the "right" object. + +This template relies on a template named +"select.mediaobject.index" to determine which object +in the list is appropriate. + +If no acceptable object is located, nothing happens. + + + + +olist + +The node list of potential objects to examine. + + + + + + +Calls <xsl:apply-templates> on the selected object. + + + + + + + + + + + + + + + + + + + + + +Selects the position of the appropriate media object from a list + + +This template takes a list of media objects (usually the +children of a mediaobject or inlinemediaobject) and determines +the "right" object. It returns the position of that object +to be used by the calling template. + +If the parameter use.role.for.mediaobject +is nonzero, then it first checks for an object with +a role attribute of the appropriate value. It takes the first +of those. Otherwise, it takes the first acceptable object +through a recursive pass through the list. + +This template relies on a template named "is.acceptable.mediaobject" +to determine if a given object is an acceptable graphic. The semantics +of media objects is that the first acceptable graphic should be used. + + +If no acceptable object is located, no index is returned. + + + + +olist + +The node list of potential objects to examine. + + +count + +The position in the list currently being considered by the +recursive process. + + + + + + +Returns the position in the original list of the selected object. + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 0 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Returns '1' if the specified media object is recognized + + +This template examines a media object and returns '1' if the +object is recognized as a graphic. + + + + +object + +The media object to consider. + + + + + + +0 or 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + + + + + + + + + + + . + + + + + + + + + + + + + + + + +Warn users about references to non-unique IDs + +If passed an ID in linkend, +check.id.unique prints +a warning message to the user if either the ID does not exist or +the ID is not unique. + + + + + + + + + + + + Error: no ID for constraint linkend: + + . + + + + + + + Warning: multiple "IDs" for constraint linkend: + + . + + + + + + +Warn users about incorrectly typed references + +If passed an ID in linkend, +check.idref.targets makes sure that the element +pointed to by the link is one of the elements listed in +element-list and warns the user otherwise. + + + + + + + + + + + + + + Error: linkend ( + + ) points to " + + " not (one of): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unexpected context in procedure.step.numeration: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + loweralpha + lowerroman + upperalpha + upperroman + arabic + arabic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + circle + square + disc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Print a set of years with collapsed ranges + + +This template prints a list of year elements with consecutive +years printed as a range. In other words: + +1992 +1993 +1994]]> + +is printed 1992-1994, whereas: + +1992 +1994]]> + +is printed 1992, 1994. + +This template assumes that all the year elements contain only +decimal year numbers, that the elements are sorted in increasing +numerical order, that there are no duplicates, and that all the years +are expressed in full century+year +(1999 not 99) notation. + + + + +years + +The initial set of year elements. + + +print.ranges + +If non-zero, multi-year ranges are collapsed. If zero, all years +are printed discretely. + + +single.year.ranges + +If non-zero, two consecutive years will be printed as a range, +otherwise, they will be printed discretely. In other words, a single +year range is 1991-1992 but discretely it's +1991, 1992. + + + + + + +This template returns the formatted list of years. + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + , + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + , + + , + + + + - + + , + + + + + + + + + + + + + + + + +Search in a table for the "best" match for the node + + +This template searches in a table for the value that most-closely +(in the typical best-match sense of XSLT) matches the current (element) +node location. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + +Converts a string to all uppercase letters + + +Given a string, this template does a language-aware conversion +of that string to all uppercase letters, based on the values of the +lowercase.alpha and +uppercase.alpha gentext keys for the current +locale. It affects only those characters found in the values of +lowercase.alpha and +uppercase.alpha. All other characters are left +unchanged. + + + + +string + +The string to convert to uppercase. + + + + + + + + + + + + + + + + + + + + + + + +Converts a string to all lowercase letters + + +Given a string, this template does a language-aware conversion +of that string to all lowercase letters, based on the values of the +uppercase.alpha and +lowercase.alpha gentext keys for the current +locale. It affects only those characters found in the values of +uppercase.alpha and +lowercase.alpha. All other characters are left +unchanged. + + + + +string + +The string to convert to lowercase. + + + + + + + + + + + + + + + + + + + + + + + + Returns localized choice separator + + This template enables auto-generation of an appropriate + localized "choice" separator (for example, "and" or "or") before + the final item in an inline list (though it could also be useful + for generating choice separators for non-inline lists). + It currently works by evaluating a processing instruction + (PI) of the form <?dbchoice choice="foo"?> : + + + if the value of the choice + pseudo-attribute is "and" or "or", returns a localized "and" + or "or" + + + otherwise returns the literal value of the + choice pseudo-attribute + + + The latter is provided only as a temporary workaround because the + locale files do not currently have translations for the word + or. So if you want to generate a a + logical "or" separator in French (for example), you currently need + to do this: + <?dbchoice choice="ou"?> + + + The dbchoice processing instruction is + an unfortunate hack; support for it may disappear in the future + (particularly if and when a more appropriate means for marking + up "choice" lists becomes available in DocBook). + + + + + + + + + + + + + + + + + + + + + + + + + + Evaluates an info profile + + This template evaluates an "info profile" matching the XPath + expression given by the profile + parameter. It relies on the XSLT evaluate() + extension function. + + The value of the profile parameter + can include the literal string $info. If found + in the value of the profile parameter, the + literal string $info string is replaced with + the value of the info parameter, which + should be a set of *info nodes; the + expression is then evaluated using the XSLT + evaluate() extension function. + + + + + profile + + A string representing an XPath expression + + + + info + + A set of *info nodes + + + + + + + Returns a node (the result of evaluating the + profile parameter) + + + + + + + + + + + + + + + + +Error: The "info profiling" mechanism currently requires an XSLT +engine that supports the evaluate() XSLT extension function. Your XSLT +engine does not support it. + + + + + Added: box/trunk/docs/xsl-generic/common/cs.xml =================================================================== --- box/trunk/docs/xsl-generic/common/cs.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/cs.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,694 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symboly +A +a +?? +?? +B +b +C +c +?? +?? +D +d +?? +?? +E +e +?? +?? +?? +?? +?? +?? +F +f +G +g +H +h +Ch +ch +cH +CH +I +i +?? +?? +J +j +K +k +L +l +M +m +N +n +?? +?? +O +o +?? +?? +?? +?? +P +p +Q +q +R +r +?? +?? +S +s +?? +?? +T +t +?? +?? +U +u +?? +?? +?? +?? +?? +?? +V +v +W +w +X +x +Y +y +?? +?? +Z +z +?? +?? + + Added: box/trunk/docs/xsl-generic/common/cy.xml =================================================================== --- box/trunk/docs/xsl-generic/common/cy.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/cy.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +Ch +ch +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Dd +dd +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +Ff +ff +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +Ng +ng +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +Ll +ll +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Ph +ph +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +Rh +rh +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Th +th +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/da.xml =================================================================== --- box/trunk/docs/xsl-generic/common/da.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/da.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,658 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +A +a +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +Q +q +R +r +S +s +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z +?? +?? +?? +?? +?? +?? + + Added: box/trunk/docs/xsl-generic/common/de.xml =================================================================== --- box/trunk/docs/xsl-generic/common/de.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/de.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,660 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbole +A +a +?? +?? +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +?? +?? +P +p +Q +q +R +r +S +s +T +t +U +u +?? +?? +V +v +W +w +X +x +Y +y +Z +z + + Added: box/trunk/docs/xsl-generic/common/el.xml =================================================================== --- box/trunk/docs/xsl-generic/common/el.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/el.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/en.xml =================================================================== --- box/trunk/docs/xsl-generic/common/en.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/en.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/entities.ent =================================================================== --- box/trunk/docs/xsl-generic/common/entities.ent (rev 0) +++ box/trunk/docs/xsl-generic/common/entities.ent 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + normalize.sort.input + + + + + + normalize.sort.output + + +'> Added: box/trunk/docs/xsl-generic/common/eo.xml =================================================================== --- box/trunk/docs/xsl-generic/common/eo.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/eo.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/es.xml =================================================================== --- box/trunk/docs/xsl-generic/common/es.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/es.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,670 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +S??mbolos +A +a +?? +?? +B +b +C +c +CH +ch +D +d +E +e +?? +?? +F +f +G +g +H +h +I +i +?? +?? +J +j +K +k +L +l +LL +ll +M +m +N +n +?? +?? +O +o +?? +?? +P +p +Q +q +R +r +S +s +T +t +U +u +?? +?? +V +v +W +w +X +x +Y +y +Z +z + + Added: box/trunk/docs/xsl-generic/common/et.xml =================================================================== --- box/trunk/docs/xsl-generic/common/et.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/et.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/eu.xml =================================================================== --- box/trunk/docs/xsl-generic/common/eu.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/eu.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/fa.xml =================================================================== --- box/trunk/docs/xsl-generic/common/fa.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/fa.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/fi.xml =================================================================== --- box/trunk/docs/xsl-generic/common/fi.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/fi.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,664 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbole +A +a +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +Q +q +R +r +S +s +?? +?? +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z +?? +?? +?? +?? +?? +?? +?? +?? + + Added: box/trunk/docs/xsl-generic/common/fr.xml =================================================================== --- box/trunk/docs/xsl-generic/common/fr.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/fr.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,684 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symboles +A +a +?? +?? +?? +?? +?? +?? +B +b +C +c +?? +D +d +E +e +?? +?? +?? +?? +?? +?? +?? +?? +??? +F +f +G +g +H +h +I +i +?? +?? +?? +?? +J +j +K +k +L +l +M +m +N +n +O +o +?? +?? +?? +?? +P +p +Q +q +R +r +S +s +T +t +U +u +?? +?? +?? +?? +?? +?? +V +v +W +w +X +x +Y +y +Z +z + + Added: box/trunk/docs/xsl-generic/common/ga.xml =================================================================== --- box/trunk/docs/xsl-generic/common/ga.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/ga.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Siombail?? +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/gentext.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/gentext.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/gentext.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,831 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .formal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + object.xref.markup: empty xref template + for linkend=" + + " and @xrefstyle=" + + " + + + + + + + + + + + + + + + + + + + + + + + + + + + Xref is only supported to listitems in an + orderedlist: + + + ??? + + + + + + + + + + + + + + + + + + + + + + + + %n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + Attempt to use %d in gentext with no referrer! + + + + + + + % + + + % + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + labelnumber + + + labelname + + + label + + + + + + + + quotedtitle + + + title + + + + + + + + + + + + + + nopage + + + pagenumber + + + pageabbrev + + + Page + + + page + + + + + + + + + + + nodocname + + + docnamelong + + + docname + + + + + + + + + + + + + + + + + + + + + + %n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %t + + + + + + %t + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %p + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/gu.xml =================================================================== --- box/trunk/docs/xsl-generic/common/gu.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/gu.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/he.xml =================================================================== --- box/trunk/docs/xsl-generic/common/he.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/he.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/hi.xml =================================================================== --- box/trunk/docs/xsl-generic/common/hi.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/hi.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/hr.xml =================================================================== --- box/trunk/docs/xsl-generic/common/hr.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/hr.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/hu.xml =================================================================== --- box/trunk/docs/xsl-generic/common/hu.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/hu.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/id.xml =================================================================== --- box/trunk/docs/xsl-generic/common/id.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/id.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/insertfile.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/insertfile.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/insertfile.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/it.xml =================================================================== --- box/trunk/docs/xsl-generic/common/it.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/it.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/ja.xml =================================================================== --- box/trunk/docs/xsl-generic/common/ja.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/ja.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/kn.xml =================================================================== --- box/trunk/docs/xsl-generic/common/kn.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/kn.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/ko.xml =================================================================== --- box/trunk/docs/xsl-generic/common/ko.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/ko.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/l10n.dtd =================================================================== --- box/trunk/docs/xsl-generic/common/l10n.dtd (rev 0) +++ box/trunk/docs/xsl-generic/common/l10n.dtd 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/l10n.xml =================================================================== --- box/trunk/docs/xsl-generic/common/l10n.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/l10n.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + +⁡ +&am; +&ar; +&az; +&bg; +&bn; +&bs; +&ca; +&cs; +&cy; +&da; +&de; +⪙ +&en; +&eo; +&es; +&et; +&eu; +&fa; +&fi; +&fr; +&ga; +&gu; +&he; +&hi; +&hr; +&hu; +&id; +⁢ +&ja; +&kn; +&ko; +&la; +&lit; +&lv; +&mn; +&nl; +&nn; +&no; +∨ +&pa; +&pl; +&pt; +&pt_br; +&ro; +&ru; +&sk; +&sl; +&sq; +&sr; +&sr_Latn; +&sv; +&ta; +&th; +&tl; +&tr; +&uk; +&vi; +&xh; +&zh_cn; +&zh_tw; + Added: box/trunk/docs/xsl-generic/common/l10n.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/l10n.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/l10n.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _ + + + + + + + + + + + + + + + + + + + + No localization exists for " + + " or " + + ". Using default " + + ". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No " + + " localization of " + + " exists + + + . + + + ; using "en". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bullet + + + + + + + + + + + + + + + + + + No " + + " localization of dingbat + + exists; using "en". + + + + + + + + + + startquote + + + + + + endquote + + + + + + nestedstartquote + + + + + + nestedendquote + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No " + + " localization exists. + + + + + + + + + + No context named " + + " exists in the " + + " localization. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No template for " + + " (or any of its leaves) exists +in the context named " + + " in the " + + " localization. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + + + + + Added: box/trunk/docs/xsl-generic/common/la.xml =================================================================== --- box/trunk/docs/xsl-generic/common/la.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/la.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/labels.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/labels.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/labels.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,869 @@ + + + + + + + + + + +Provides access to element labels + +Processing an element in the +label.markup mode produces the +element label. +Trailing punctuation is not added to the label. + + + + + + . + + + + + + + Request for label of unexpected element: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + label.markup: this can't happen! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + a + i + A + I + + + + Unexpected numeration: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + +Returns true if $section should be labelled + +Returns true if the specified section should be labelled. +By default, this template returns zero unless +the section level is less than or equal to the value of the +$section.autolabel.max.depth parameter, in +which case it returns +$section.autolabel. +Custom stylesheets may override it to get more selective behavior. + + + + + + + + + + + + + + + 1 + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + Unexpected .autolabel value: + ; using default. + + + + + + + + + +Returns format for autolabel parameters + +Returns format passed as parameter if non zero. Supported + format are 'arabic' or '1', 'loweralpha' or 'a', 'lowerroman' or 'i', + 'upperlapha' or 'A', 'upperroman' or 'I', 'arabicindic' or '١'. + If its not one of these then + returns the default format. + + + + + + Added: box/trunk/docs/xsl-generic/common/lt.xml =================================================================== --- box/trunk/docs/xsl-generic/common/lt.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/lt.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Simboliai +A +a +?? +?? +B +b +C +c +?? +?? +D +d +E +e +?? +?? +?? +?? +F +f +G +g +H +h +I +i +?? +?? +Y +y +J +j +K +k +L +l +M +m +N +n +O +o +P +p +R +r +S +s +?? +?? +T +t +U +u +?? +?? +?? +?? +V +v +Z +z +?? +?? +Q +q +W +w +X +x + + Added: box/trunk/docs/xsl-generic/common/lv.xml =================================================================== --- box/trunk/docs/xsl-generic/common/lv.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/lv.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/mn.xml =================================================================== --- box/trunk/docs/xsl-generic/common/mn.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/mn.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,724 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +???????????????????? +A +a +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +Q +q +R +r +S +s +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? + + Added: box/trunk/docs/xsl-generic/common/nl.xml =================================================================== --- box/trunk/docs/xsl-generic/common/nl.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/nl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/nn.xml =================================================================== --- box/trunk/docs/xsl-generic/common/nn.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/nn.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/no.xml =================================================================== --- box/trunk/docs/xsl-generic/common/no.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/no.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/olink.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/olink.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/olink.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Olinks not processed: must specify a + $target.database.document parameter + when using olinks with targetdoc + and targetptr attributes. + + + + + + Olink error: could not open target database ' + + '. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Olink debug: cases for targetdoc=' + + ' and targetptr=' + + ' in language ' + + '. + + + + + + + + + + + + + + Olink debug: CaseA matched. + + + + Olink debug: CaseA NOT matched + + + + + + + + + + + + + + + + Olink debug: CaseB matched. + + + + Olink debug: CaseB NOT matched + + + + + + + + + + + + + + + + + Olink debug: CaseC matched. + + + + Olink debug: CaseC NOT matched. + + + + + + + + + + + + + + + + + Olink debug: CaseD matched. + + + + Olink debug: CaseD NOT matched + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Olink debug: CaseE matched. + + + + Olink debug: CaseE NOT matched. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Olink debug: CaseF matched. + + + + Olink debug: CaseF NOT matched. + + + + + + + + + + + + + + Olink debug: CaseB key is the final selection: + + + + + + + + + Olink debug: CaseA key is the final selection: + + + + + + + + + Olink debug: CaseC key is the final selection: + + + + + + + + + Olink debug: CaseD key is the final selection: + + + + + + + + + Olink debug: CaseF key is the final selection: + + + + + + + + + Olink debug: CaseE key is the final selection: + + + + + + + + Olink debug: No case matched for lang ' + + '. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Olink error: cannot compute relative + sitemap path because $current.docid ' + + ' not found in target database. + + + + + + + Olink warning: cannot compute relative + sitemap path without $current.docid parameter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xrefstyle is ' + + '. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Olink error: no gentext template + exists for xrefstyle ' + + ' for element ' + + ' in language ' + + ' in context 'xref-number-and-title + '. Using template without @style. + + + + + + + + Olink error: no gentext template + exists for xrefstyle ' + + ' for element ' + + ' in language ' + + ' in context 'xref-number + '. Using template without @style. + + + + + + + + Olink error: no gentext template + exists for xrefstyle ' + + ' for element ' + + ' in language ' + + ' in context 'xref + '. Using template without @style. + + + + + + Olink error: no gentext template + exists for xrefstyle ' + + ' for element ' + + ' in language ' + + '. Trying '%t'. + + + + + + + + + + + Olink debug: xrefstyle template is ' + + '. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Olink error: no generated text for + targetdoc/targetptr/lang = ' + + '. + + ???? + + + + + + + Olink error: no generated text for + targetdoc/targetptr/lang = ' + + '. + + + ???? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Olink error: cannot locate targetdoc in sitemap + + + + + + + / + + + + + + + + + + + ../ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/or.xml =================================================================== --- box/trunk/docs/xsl-generic/common/or.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/or.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/pa.xml =================================================================== --- box/trunk/docs/xsl-generic/common/pa.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/pa.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/pi.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/pi.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/pi.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,346 @@ + + + + + +Common Processing Instruction Reference + + $Id: pi.xsl 7107 2007-07-22 10:22:06Z xmldoc $ + + + + Introduction + This is generated reference documentation for all + user-specifiable processing instructions (PIs) in the + ???common??? part of the DocBook XSL stylesheets. + + You add these PIs at particular points in a document to + cause specific ???exceptions??? to formatting/output behavior. To + make global changes in formatting/output behavior across an + entire document, it???s better to do it by setting an + appropriate stylesheet parameter (if there is one). + + + + + + + + Generates a localized choice separator + + Use the dbchoice choice PI to + generate an appropriate localized ???choice??? separator (for + example, and or or) + before the final item in an inline simplelist + + This PI is a less-than-ideal hack; support for it may + disappear in the future (particularly if and when a more + appropriate means for marking up "choice" lists becomes + available in DocBook). + + + + dbchoice choice="and"|"or"|string" + + + + choice="and" + + generates a localized and separator + + + choice="or" + + generates a localized or separator + + + choice="string" + + generates a literal string separator + + + + + + + + + + choice + + + + + Inserts a date timestamp + + Use the dbtimestamp PI at any point in a + source document to cause a date timestamp (a formatted + string representing the current date and time) to be + inserted in output of the document. + + + dbtimestamp format="formatstring" [padding="0"|"1"] + + + + format="formatstring" + + Specifies format in which the date and time are + output + + For details of the content of the format string, + see Date and time. + + + + padding="0"|"1" + + Specifies padding behavior; if non-zero, padding is is added + + + + + + + + + + + format + + + + + + + + + + + + + + + + + + + padding + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + Timestamp processing requires XSLT processor with EXSLT date support. + + + + + + + Generates delimiters around embedded TeX equations + in output + + Use the dbtex delims PI as a + child of a textobject containing embedded TeX + markup, to cause that markup to be surrounded by + $ delimiter characters in output. + + + dbtex delims="no"|"yes" + + + + dbtex delims="no"|"yes" + + Specifies whether delimiters are output + + + + + + tex.math.delims + + + DBTeXMath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 0 + + + + + + + 0 + + + + 0 + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + Timestamp processing requires an XSLT processor with support + for the EXSLT node-set() function. + + + + + + + Added: box/trunk/docs/xsl-generic/common/pl.xml =================================================================== --- box/trunk/docs/xsl-generic/common/pl.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/pl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/pt.xml =================================================================== --- box/trunk/docs/xsl-generic/common/pt.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/pt.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/pt_br.xml =================================================================== --- box/trunk/docs/xsl-generic/common/pt_br.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/pt_br.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/refentry.xml =================================================================== --- box/trunk/docs/xsl-generic/common/refentry.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/refentry.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,781 @@ + + + + + Common ?? Refentry Metadata Template Reference + + $Id: refentry.xsl 7056 2007-07-17 13:56:09Z xmldoc $ + + + + + Introduction + +This is technical reference documentation for the ???refentry + metadata??? templates in the DocBook XSL Stylesheets. + + +This is not intended to be user documentation. It is provided + for developers writing customization layers for the stylesheets. + + + +Currently, only the manpages stylesheets make use of these + templates. They are, however, potentially useful elsewhere. + + + + + + +get.refentry.metadata +Gathers metadata from a refentry and its ancestors + + +<xsl:template name="get.refentry.metadata"> +<xsl:param name="refname"/> +<xsl:param name="info"/> +<xsl:param name="prefs"/> + ... +</xsl:template> + + + +<para>Reference documentation for particular commands, functions, + etc., is sometimes viewed in isolation from its greater "context". For + example, users view Unix man pages as, well, individual pages, not as + part of a "book" of some kind. Therefore, it is sometimes necessary to + embed "context" information in output for each <tag>refentry</tag>.</para> + + + +<para>However, one problem is that different users mark up that + context information in different ways. Often (usually), the + context information is not actually part of the content of the + <tag>refentry</tag> itself, but instead part of the content of a + parent or ancestor element to the the <tag>refentry</tag>. And + even then, DocBook provides a variety of elements that users might + potentially use to mark up the same kind of information. One user + might use the <tag>productnumber</tag> element to mark up version + information about a particular product, while another might use + the <tag>releaseinfo</tag> element.</para> + + + +<para>Taking all that in mind, the + <function>get.refentry.metadata</function> template tries to gather + metadata from a <tag>refentry</tag> element and its ancestor + elements in an intelligent and user-configurable way. The basic + mechanism used in the XPath expressions throughout this stylesheet + is to select the relevant metadata from the *info element that is + closest to the actual <tag>refentry</tag>????? either on the + <tag>refentry</tag> itself, or on its nearest ancestor.</para> + + + <note> + +<para>The <function>get.refentry.metadata</function> + template is actually just sort of a "driver" template; it + calls other templates that do the actual data collection, + then returns the data as a set.</para> + + </note> + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + info + + +A set of info nodes (from a refentry + element and its ancestors) + + + + + prefs + + +A node containing user preferences (from global + stylesheet parameters) + + + + + + Returns + +Returns a node set with the following elements. The + descriptions are verbatim from the man(7) man + page. + + + + title + + +the title of the man page (e.g., MAN) + + + + + section + + +the section number the man page should be placed in (e.g., + 7) + + + + + date + + +the date of the last revision + + + + + source + + +the source of the command + + + + + manual + + +the title of the manual (e.g., Linux + Programmer's Manual) + + + + + + + + + + + +get.refentry.title +Gets title metadata for a refentry + + +<xsl:template name="get.refentry.title"> +<xsl:param name="refname"/> + ... +</xsl:template> + + + +<para>The <literal>man(7)</literal> man page describes this as "the + title of the man page (e.g., <literal>MAN</literal>). This differs + from <tag>refname</tag> in that, if the <tag>refentry</tag> has a + <tag>refentrytitle</tag>, we use that as the <tag>title</tag>; + otherwise, we just use first <tag>refname</tag> in the first + <tag>refnamediv</tag> in the source.</para> + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + + Returns + +Returns a title node. + + + + +get.refentry.section +Gets section metadata for a refentry + + +<xsl:template name="get.refentry.section"> +<xsl:param name="refname"/> +<xsl:param name="quiet" select="0"/> + ... +</xsl:template> + + + +<para>The <literal>man(7)</literal> man page describes this as "the + section number the man page should be placed in (e.g., + <literal>7</literal>)". If we do not find a <tag>manvolnum</tag> + specified in the source, and we find that the <tag>refentry</tag> is + for a function, we use the section number <literal>3</literal> + ["Library calls (functions within program libraries)"]; otherwise, we + default to using <literal>1</literal> ["Executable programs or shell + commands"].</para> + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + quiet + + +If non-zero, no "missing" message is emitted + + + + + + Returns + +Returns a string representing a section number. + + + + +get.refentry.date +Gets date metadata for a refentry + + +<xsl:template name="get.refentry.date"> +<xsl:param name="refname"/> +<xsl:param name="info"/> +<xsl:param name="prefs"/> + ... +</xsl:template> + + + +<para>The <literal>man(7)</literal> man page describes this as "the + date of the last revision". If we cannot find a date in the source, we + generate one.</para> + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + info + + +A set of info nodes (from a refentry + element and its ancestors) + + + + + prefs + + +A node containing users preferences (from global stylesheet parameters) + + + + + + Returns + +Returns a date node. + + + + + +get.refentry.source +Gets source metadata for a refentry + + +<xsl:template name="get.refentry.source"> +<xsl:param name="refname"/> +<xsl:param name="info"/> +<xsl:param name="prefs"/> + ... +</xsl:template> + + + +<para>The <literal>man(7)</literal> man page describes this as "the + source of the command", and provides the following examples: + +<itemizedlist> + <listitem> + +<para>For binaries, use something like: GNU, NET-2, SLS + Distribution, MCC Distribution.</para> + + </listitem> + <listitem> + +<para>For system calls, use the version of the kernel that you are + currently looking at: Linux 0.99.11.</para> + + </listitem> + <listitem> + +<para>For library calls, use the source of the function: GNU, BSD + 4.3, Linux DLL 4.4.1.</para> + + </listitem> + </itemizedlist> + + </para> + + + +<para>The <literal>solbook(5)</literal> man page describes + something very much like what <literal>man(7)</literal> calls + "source", except that <literal>solbook(5)</literal> names it + "software" and describes it like this: + <blockquote> + +<para>This is the name of the software product that the topic + discussed on the reference page belongs to. For example UNIX + commands are part of the <literal>SunOS x.x</literal> + release.</para> + + </blockquote> + </para> + + + +<para>In practice, there are many pages that simply have a version + number in the "source" field. So, it looks like what we have is a + two-part field, + <replaceable>Name</replaceable>??<replaceable>Version</replaceable>, + where: + +<variablelist> + <varlistentry> + <term>Name</term> + <listitem> + +<para>product name (e.g., BSD) or org. name (e.g., GNU)</para> + + </listitem> + </varlistentry> + <varlistentry> + <term>Version</term> + <listitem> + +<para>version name</para> + + </listitem> + </varlistentry> + </variablelist> + + Each part is optional. If the <replaceable>Name</replaceable> is a + product name, then the <replaceable>Version</replaceable> is probably + the version of the product. Or there may be no + <replaceable>Name</replaceable>, in which case, if there is a + <replaceable>Version</replaceable>, it is probably the version of the + item itself, not the product it is part of. Or, if the + <replaceable>Name</replaceable> is an organization name, then there + probably will be no <replaceable>Version</replaceable>. + </para> + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + info + + +A set of info nodes (from a refentry + element and its ancestors) + + + + + prefs + + +A node containing users preferences (from global + stylesheet parameters) + + + + + + Returns + +Returns a source node. + + + + + +get.refentry.source.name +Gets source-name metadata for a refentry + + +<xsl:template name="get.refentry.source.name"> +<xsl:param name="refname"/> +<xsl:param name="info"/> +<xsl:param name="prefs"/> + ... +</xsl:template> + + + +<para>A "source name" is one part of a (potentially) two-part + <replaceable>Name</replaceable>??<replaceable>Version</replaceable> + source field. For more details, see the documentation for the + <function>get.refentry.source</function> template.</para> + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + info + + +A set of info nodes (from a refentry + element and its ancestors) + + + + + prefs + + +A node containing users preferences (from global + stylesheet parameters) + + + + + + Returns + +Depending on what output method is used for the + current stylesheet, either returns a text node or possibly an element + node, containing "source name" data. + + + + + +get.refentry.version +Gets version metadata for a refentry + + +<xsl:template name="get.refentry.version"> +<xsl:param name="refname"/> +<xsl:param name="info"/> +<xsl:param name="prefs"/> + ... +</xsl:template> + + + +<para>A "version" is one part of a (potentially) two-part + <replaceable>Name</replaceable>??<replaceable>Version</replaceable> + source field. For more details, see the documentation for the + <function>get.refentry.source</function> template.</para> + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + info + + +A set of info nodes (from a refentry + element and its ancestors) + + + + + prefs + + +A node containing users preferences (from global + stylesheet parameters) + + + + + + Returns + +Depending on what output method is used for the + current stylesheet, either returns a text node or possibly an element + node, containing "version" data. + + + + + +get.refentry.manual +Gets source metadata for a refentry + + +<xsl:template name="get.refentry.manual"> +<xsl:param name="refname"/> +<xsl:param name="info"/> +<xsl:param name="prefs"/> + ... +</xsl:template> + + + +<para>The <literal>man(7)</literal> man page describes this as "the + title of the manual (e.g., <citetitle>Linux Programmer's + Manual</citetitle>)". Here are some examples from existing man pages: + +<itemizedlist> + <listitem> + +<para><citetitle>dpkg utilities</citetitle> + (<command>dpkg-name</command>)</para> + + </listitem> + <listitem> + +<para><citetitle>User Contributed Perl Documentation</citetitle> + (<command>GET</command>)</para> + + </listitem> + <listitem> + +<para><citetitle>GNU Development Tools</citetitle> + (<command>ld</command>)</para> + + </listitem> + <listitem> + +<para><citetitle>Emperor Norton Utilities</citetitle> + (<command>ddate</command>)</para> + + </listitem> + <listitem> + +<para><citetitle>Debian GNU/Linux manual</citetitle> + (<command>faked</command>)</para> + + </listitem> + <listitem> + +<para><citetitle>GIMP Manual Pages</citetitle> + (<command>gimp</command>)</para> + + </listitem> + <listitem> + +<para><citetitle>KDOC Documentation System</citetitle> + (<command>qt2kdoc</command>)</para> + + </listitem> + </itemizedlist> + + </para> + + + +<para>The <literal>solbook(5)</literal> man page describes + something very much like what <literal>man(7)</literal> calls + "manual", except that <literal>solbook(5)</literal> names it + "sectdesc" and describes it like this: + <blockquote> + +<para>This is the section title of the reference page; for + example <literal>User Commands</literal>.</para> + + </blockquote> + </para> + + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + info + + +A set of info nodes (from a refentry + element and its ancestors) + + + + + prefs + + +A node containing users preferences (from global + stylesheet parameters) + + + + + + Returns + +Returns a manual node. + + + + + +get.refentry.metadata.prefs +Gets user preferences for refentry metadata gathering + + +<xsl:template name="get.refentry.metadata.prefs"/> + + + +<para>The DocBook XSL stylesheets include several user-configurable + global stylesheet parameters for controlling <tag>refentry</tag> + metadata gathering. Those parameters are not read directly by the + other <tag>refentry</tag> metadata-gathering + templates. Instead, they are read only by the + <function>get.refentry.metadata.prefs</function> template, + which assembles them into a structure that is then passed to + the other <tag>refentry</tag> metadata-gathering + templates.</para> + + + +<para>So the, <function>get.refentry.metadata.prefs</function> + template is the only interface to collecting stylesheet parameters for + controlling <tag>refentry</tag> metadata gathering.</para> + + </refsect1><refsect1><title>Parameters + +There are no local parameters for this template; however, it + does rely on a number of global parameters. + + Returns + +Returns a manual node. + + + + + +set.refentry.metadata +Sets content of a refentry metadata item + + +<xsl:template name="set.refentry.metadata"> +<xsl:param name="refname"/> +<xsl:param name="info"/> +<xsl:param name="contents"/> +<xsl:param name="context"/> +<xsl:param name="preferred"/> + ... +</xsl:template> + + + +<para>The <function>set.refentry.metadata</function> template is + called each time a suitable source element is found for a certain + metadata field.</para> + + </refsect1><refsect1><title>Parameters + + + + refname + + +The first refname in the refentry + + + + + info + + +A single *info node that contains the selected source element. + + + + + contents + + +A node containing the selected source element. + + + + + context + + +A string describing the metadata context in which the + set.refentry.metadata template was + called: either "date", "source", "version", or "manual". + + + + + + Returns + +Returns formatted contents of a selected source element. + + + Added: box/trunk/docs/xsl-generic/common/refentry.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/refentry.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/refentry.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1277 @@ + + + + + + + + + Common ?? Refentry Metadata Template Reference + + $Id: refentry.xsl 7056 2007-07-17 13:56:09Z xmldoc $ + + + + + Introduction + This is technical reference documentation for the ???refentry + metadata??? templates in the DocBook XSL Stylesheets. + This is not intended to be user documentation. It is provided + for developers writing customization layers for the stylesheets. + + Currently, only the manpages stylesheets make use of these + templates. They are, however, potentially useful elsewhere. + + + + + + + Gathers metadata from a refentry and its ancestors + + Reference documentation for particular commands, functions, + etc., is sometimes viewed in isolation from its greater "context". For + example, users view Unix man pages as, well, individual pages, not as + part of a "book" of some kind. Therefore, it is sometimes necessary to + embed "context" information in output for each refentry. + + However, one problem is that different users mark up that + context information in different ways. Often (usually), the + context information is not actually part of the content of the + refentry itself, but instead part of the content of a + parent or ancestor element to the the refentry. And + even then, DocBook provides a variety of elements that users might + potentially use to mark up the same kind of information. One user + might use the productnumber element to mark up version + information about a particular product, while another might use + the releaseinfo element. + + Taking all that in mind, the + get.refentry.metadata template tries to gather + metadata from a refentry element and its ancestor + elements in an intelligent and user-configurable way. The basic + mechanism used in the XPath expressions throughout this stylesheet + is to select the relevant metadata from the *info element that is + closest to the actual refentry ??? either on the + refentry itself, or on its nearest ancestor. + + + The get.refentry.metadata + template is actually just sort of a "driver" template; it + calls other templates that do the actual data collection, + then returns the data as a set. + + + + + + + refname + + The first refname in the refentry + + + + info + + A set of info nodes (from a refentry + element and its ancestors) + + + + prefs + + A node containing user preferences (from global + stylesheet parameters) + + + + + + Returns a node set with the following elements. The + descriptions are verbatim from the man(7) man + page. + + + title + + the title of the man page (e.g., MAN) + + + + section + + the section number the man page should be placed in (e.g., + 7) + + + + date + + the date of the last revision + + + + source + + the source of the command + + + + manual + + the title of the manual (e.g., Linux + Programmer's Manual) + + + + + + + + + + + + <xsl:call-template name="get.refentry.title"> + <xsl:with-param name="refname" select="$refname"/> + </xsl:call-template> + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + Gets title metadata for a refentry + + The man(7) man page describes this as "the + title of the man page (e.g., MAN). This differs + from refname in that, if the refentry has a + refentrytitle, we use that as the title; + otherwise, we just use first refname in the first + refnamediv in the source. + + + + + refname + + The first refname in the refentry + + + + + + Returns a title node. + + + + + + + + + + + + + + + + + + Gets section metadata for a refentry + + The man(7) man page describes this as "the + section number the man page should be placed in (e.g., + 7)". If we do not find a manvolnum + specified in the source, and we find that the refentry is + for a function, we use the section number 3 + ["Library calls (functions within program libraries)"]; otherwise, we + default to using 1 ["Executable programs or shell + commands"]. + + + + + refname + + The first refname in the refentry + + + + quiet + + If non-zero, no "missing" message is emitted + + + + + + Returns a string representing a section number. + + + + + + + + + + + + + Note + + meta manvol + + no refentry/refmeta/manvolnum + + + + Note + + meta manvol + + see http://docbook.sf.net/el/manvolnum + + + + + + + + + + Note + + meta manvol + + Setting man section to 3 + + + + + 3 + + + 1 + + + + + + + + + Gets date metadata for a refentry + + The man(7) man page describes this as "the + date of the last revision". If we cannot find a date in the source, we + generate one. + + + + + refname + + The first refname in the refentry + + + + info + + A set of info nodes (from a refentry + element and its ancestors) + + + + prefs + + A node containing users preferences (from global stylesheet parameters) + + + + + + Returns a date node. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Note + + meta date + + no date; using generated date + + + + Note + + meta date + + see http://docbook.sf.net/el/date + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets source metadata for a refentry + + The man(7) man page describes this as "the + source of the command", and provides the following examples: + + + For binaries, use something like: GNU, NET-2, SLS + Distribution, MCC Distribution. + + + For system calls, use the version of the kernel that you are + currently looking at: Linux 0.99.11. + + + For library calls, use the source of the function: GNU, BSD + 4.3, Linux DLL 4.4.1. + + + + + The solbook(5) man page describes + something very much like what man(7) calls + "source", except that solbook(5) names it + "software" and describes it like this: +
+ This is the name of the software product that the topic + discussed on the reference page belongs to. For example UNIX + commands are part of the SunOS x.x + release. +
+
+ + In practice, there are many pages that simply have a version + number in the "source" field. So, it looks like what we have is a + two-part field, + Name Version, + where: + + + Name + + product name (e.g., BSD) or org. name (e.g., GNU) + + + + Version + + version name + + + + Each part is optional. If the Name is a + product name, then the Version is probably + the version of the product. Or there may be no + Name, in which case, if there is a + Version, it is probably the version of the + item itself, not the product it is part of. Or, if the + Name is an organization name, then there + probably will be no Version. + +
+ + + + refname + + The first refname in the refentry + + + + info + + A set of info nodes (from a refentry + element and its ancestors) + + + + prefs + + A node containing users preferences (from global + stylesheet parameters) + + + + + + Returns a source node. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Warn + + meta source + + no valid fallback for source; leaving empty + + + + + + + + + + Warn + + meta source + + no source fallback specified; leaving empty + + + + + + + + + + Gets source-name metadata for a refentry + + A "source name" is one part of a (potentially) two-part + Name Version + source field. For more details, see the documentation for the + get.refentry.source template. + + + + + refname + + The first refname in the refentry + + + + info + + A set of info nodes (from a refentry + element and its ancestors) + + + + prefs + + A node containing users preferences (from global + stylesheet parameters) + + + + + + Depending on what output method is used for the + current stylesheet, either returns a text node or possibly an element + node, containing "source name" data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + source + + + + + + + + source + productname + + + + + + + + source + productname + + + + + + + + source + productname + + + + + + + + source + productname + + + + + + + + source + productname + + + + + + Note + + meta source + + no *info/productname or alternative + + + + Note + + meta source + + see http://docbook.sf.net/el/productname + + + + Note + + meta source + + no refentry/refmeta/refmiscinfo at class=source + + + + Note + + meta source + + see http://docbook.sf.net/el/refmiscinfo + + + + + + + + + + + + + + Gets version metadata for a refentry + + A "version" is one part of a (potentially) two-part + Name Version + source field. For more details, see the documentation for the + get.refentry.source template. + + + + + refname + + The first refname in the refentry + + + + info + + A set of info nodes (from a refentry + element and its ancestors) + + + + prefs + + A node containing users preferences (from global + stylesheet parameters) + + + + + + Depending on what output method is used for the + current stylesheet, either returns a text node or possibly an element + node, containing "version" data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + version + + + + + + + + version + productnumber + + + + + + + + version + productnumber + + + + + + Note + + meta version + + no *info/productnumber or alternative + + + + Note + + meta version + + see http://docbook.sf.net/el/productnumber + + + + Note + + meta version + + no refentry/refmeta/refmiscinfo at class=version + + + + Note + + meta version + + see http://docbook.sf.net/el/refmiscinfo + + + + + + + + + + + + + + Gets source metadata for a refentry + + The man(7) man page describes this as "the + title of the manual (e.g., Linux Programmer's + Manual)". Here are some examples from existing man pages: + + + dpkg utilities + (dpkg-name) + + + User Contributed Perl Documentation + (GET) + + + GNU Development Tools + (ld) + + + Emperor Norton Utilities + (ddate) + + + Debian GNU/Linux manual + (faked) + + + GIMP Manual Pages + (gimp) + + + KDOC Documentation System + (qt2kdoc) + + + + + The solbook(5) man page describes + something very much like what man(7) calls + "manual", except that solbook(5) names it + "sectdesc" and describes it like this: +
+ This is the section title of the reference page; for + example User Commands. +
+
+ +
+ + + + refname + + The first refname in the refentry + + + + info + + A set of info nodes (from a refentry + element and its ancestors) + + + + prefs + + A node containing users preferences (from global + stylesheet parameters) + + + + + + Returns a manual node. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + manual + + + + + + + + manual + + + + + + Note + + meta manual + + no titled ancestor of refentry + + + + Note + + meta manual + + no refentry/refmeta/refmiscinfo at class=manual + + + + Note + + meta manual + + see http://docbook.sf.net/el/refmiscinfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Warn + + meta manual + + no valid fallback for manual; leaving empty + + + + + + + + + + + Warn + + meta manual + + no manual fallback specified; leaving empty + + + + + + + + + + Gets user preferences for refentry metadata gathering + + The DocBook XSL stylesheets include several user-configurable + global stylesheet parameters for controlling refentry + metadata gathering. Those parameters are not read directly by the + other refentry metadata-gathering + templates. Instead, they are read only by the + get.refentry.metadata.prefs template, + which assembles them into a structure that is then passed to + the other refentry metadata-gathering + templates. + + So the, get.refentry.metadata.prefs + template is the only interface to collecting stylesheet parameters for + controlling refentry metadata gathering. + + + There are no local parameters for this template; however, it + does rely on a number of global parameters. + + + Returns a manual node. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets content of a refentry metadata item + + The set.refentry.metadata template is + called each time a suitable source element is found for a certain + metadata field. + + + + + refname + + The first refname in the refentry + + + + info + + A single *info node that contains the selected source element. + + + + contents + + A node containing the selected source element. + + + + context + + A string describing the metadata context in which the + set.refentry.metadata template was + called: either "date", "source", "version", or "manual". + + + + + + Returns formatted contents of a selected source element. + + + + + + + + + + + Note + + + + + + Note + + + + no refentry/refmeta/refmiscinfo at class= + + + + + Note + + + + + + + + + +
Added: box/trunk/docs/xsl-generic/common/ro.xml =================================================================== --- box/trunk/docs/xsl-generic/common/ro.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/ro.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/ru.xml =================================================================== --- box/trunk/docs/xsl-generic/common/ru.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/ru.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,720 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +A +a +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +Q +q +R +r +S +s +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? + + Added: box/trunk/docs/xsl-generic/common/sk.xml =================================================================== --- box/trunk/docs/xsl-generic/common/sk.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/sk.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/sl.xml =================================================================== --- box/trunk/docs/xsl-generic/common/sl.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/sl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/sq.xml =================================================================== --- box/trunk/docs/xsl-generic/common/sq.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/sq.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/sr.xml =================================================================== --- box/trunk/docs/xsl-generic/common/sr.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/sr.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,714 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +?????????????? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +A +a +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +Q +Q +R +r +S +s +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z + + Added: box/trunk/docs/xsl-generic/common/sr_Latn.xml =================================================================== --- box/trunk/docs/xsl-generic/common/sr_Latn.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/sr_Latn.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,673 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Simboli +A +a +B +b +C +c +?? +?? +?? +?? +D +d +D?? +D?? +d?? +?? +?? +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +LJ +Lj +lj +M +m +N +n +NJ +Nj +nj +O +o +P +p +Q +Q +R +r +S +s +?? +?? +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z +?? +?? + + Added: box/trunk/docs/xsl-generic/common/stripns.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/stripns.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/stripns.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + info + + + objectinfo + + blockinfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WARNING: cannot add @xml:base to node + set root element. + Relative paths may not work. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + Stripping namespace from DocBook 5 document. + + + + Processing stripped document. + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/subtitles.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/subtitles.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/subtitles.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,155 @@ + + + + + + + + + + +Provides access to element subtitles + +Processing an element in the +subtitle.markup mode produces the +subtitle of the element. + + + + + + + Request for subtitle of unexpected element: + + + ???SUBTITLE??? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/sv.xml =================================================================== --- box/trunk/docs/xsl-generic/common/sv.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/sv.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,658 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +A +a +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +Q +q +R +r +S +s +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z +?? +?? +?? +?? +?? +?? + + Added: box/trunk/docs/xsl-generic/common/ta.xml =================================================================== --- box/trunk/docs/xsl-generic/common/ta.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/ta.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/table.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/table.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/table.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,514 @@ + + + + + + + + + + + 0: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0: + + + : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + +Determine the column number in which a given entry occurs + +If an entry has a +colname or +namest attribute, this template +will determine the number of the column in which the entry should occur. +For other entrys, nothing is returned. + + + +entry + +The entry-element which is to be tested. + + + + + + +This template returns the column number if it can be determined, +or 0 (the empty string) + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/targetdatabase.dtd =================================================================== --- box/trunk/docs/xsl-generic/common/targetdatabase.dtd (rev 0) +++ box/trunk/docs/xsl-generic/common/targetdatabase.dtd 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/targets.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/targets.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/targets.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,272 @@ + + + + + + + + + + +Collects information for potential cross reference targets + +Processing the root element in the +collect.targets mode produces +a set of target database elements that can be used by +the olink mechanism to resolve external cross references. +The collection process is controlled by the +collect.xref.targets parameter, which can be +yes to collect targets and process +the document for output, only to +only collect the targets, and no +(default) to not collect the targets and only process the document. + + +A targets.filename parameter must be +specified to receive the output if +collect.xref.targets is +set to yes so as to +redirect the target data to a file separate from the +document output. + + + + + + + + + + + Must specify a $targets.filename parameter when + $collect.xref.targets is set to 'yes'. + The xref targets were not collected. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Added: box/trunk/docs/xsl-generic/common/th.xml =================================================================== --- box/trunk/docs/xsl-generic/common/th.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/th.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/titles.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/titles.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/titles.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,740 @@ + + + + + + + + + + +Provides access to element titles + +Processing an element in the +title.markup mode produces the +title of the element. This does not include the label. + + + + + + + + + + + + + + + + + + + + + + + Request for title of element with no title: + + + + (id=" + + ") + + + (xml:id=" + + ") + + + + + ???TITLE??? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + REFENTRY WITHOUT TITLE??? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ERROR: glossdiv missing its required title + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Note + Important + Caution + Warning + Tip + + + + + + + + + + Question + + + + + Answer + + + + + Question + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XRef to nonexistent id: + + + ??? + + + + + + + + + + Endterm points to nonexistent ID: + + + ??? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/tl.xml =================================================================== --- box/trunk/docs/xsl-generic/common/tl.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/tl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/tr.xml =================================================================== --- box/trunk/docs/xsl-generic/common/tr.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/tr.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,660 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Semboller +A +a +B +b +C +c +?? +?? +D +d +E +e +F +f +G +g +?? +?? +H +h +I +?? +?? +i +J +j +K +k +L +l +M +m +N +n +O +o +?? +?? +P +p +R +r +S +s +?? +?? +T +t +U +u +?? +?? +V +v +Y +y +Z +z + + Added: box/trunk/docs/xsl-generic/common/uk.xml =================================================================== --- box/trunk/docs/xsl-generic/common/uk.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/uk.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/utility.xml =================================================================== --- box/trunk/docs/xsl-generic/common/utility.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/utility.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,259 @@ + + + + + Common ?? Utility Template Reference + + $Id: utility.xsl 7101 2007-07-20 15:32:12Z xmldoc $ + + + + + Introduction + +This is technical reference documentation for the + miscellaneous utility templates in the DocBook XSL + Stylesheets. + + + +These templates are defined in a separate file from the set + of ???common??? templates because some of the common templates + reference DocBook XSL stylesheet parameters, requiring the + entire set of parameters to be imported/included in any + stylesheet that imports/includes the common templates. + + +The utility templates don???t import or include any DocBook + XSL stylesheet parameters, so the utility templates can be used + without importing the whole set of parameters. + + + +This is not intended to be user documentation. It is + provided for developers writing customization layers for the + stylesheets. + + + + + +log.message +Logs/emits formatted notes and warnings + + +<xsl:template name="log.message"> +<xsl:param name="level"/> +<xsl:param name="source"/> +<xsl:param name="context-desc"/> +<xsl:param name="context-desc-field-length">12</xsl:param> +<xsl:param name="context-desc-padded"> + <xsl:if test="not($context-desc = '')"> + <xsl:call-template name="pad-string"> + <xsl:with-param name="leftRight">right</xsl:with-param> + <xsl:with-param name="padVar" select="substring($context-desc, 1, $context-desc-field-length)"/> + <xsl:with-param name="length" select="$context-desc-field-length"/> + </xsl:call-template> + </xsl:if> + </xsl:param> +<xsl:param name="message"/> +<xsl:param name="message-field-length" select="45"/> +<xsl:param name="message-padded"> + <xsl:variable name="spaces-for-blank-level"> + <!-- * if the level field is blank, we'll need to pad out --> + <!-- * the message field with spaces to compensate --> + <xsl:choose> + <xsl:when test="$level = ''"> + <xsl:value-of select="4 + 2"/> + <!-- * 4 = hard-coded length of comment text ("Note" or "Warn") --> + <!-- * + 2 = length of colon-plus-space separator ": " --> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="0"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="spaces-for-blank-context-desc"> + <!-- * if the context-description field is blank, we'll need --> + <!-- * to pad out the message field with spaces to compensate --> + <xsl:choose> + <xsl:when test="$context-desc = ''"> + <xsl:value-of select="$context-desc-field-length + 2"/> + <!-- * + 2 = length of colon-plus-space separator ": " --> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="0"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="extra-spaces" select="$spaces-for-blank-level + $spaces-for-blank-context-desc"/> + <xsl:call-template name="pad-string"> + <xsl:with-param name="leftRight">right</xsl:with-param> + <xsl:with-param name="padVar" select="substring($message, 1, ($message-field-length + $extra-spaces))"/> + <xsl:with-param name="length" select="$message-field-length + $extra-spaces"/> + </xsl:call-template> + </xsl:param> + ... +</xsl:template> + + + +<para>The <function>log.message</function> template is a utility + template for logging/emitting formatted messages????? that is, + notes and warnings, along with a given log ???level??? and an + identifier for the ???source??? that the message relates to.</para> + + </refsect1><refsect1><title>Parameters + + + level + + +Text to log/emit in the message-level field to + indicate the message level + (Note or + Warning) + + + + source + + +Text to log/emit in the source field to identify the + ???source??? to which the notification/warning relates. + This can be any arbitrary string, but because the + message lacks line and column numbers to identify the + exact part of the source document to which it + relates, the intention is that the value you pass + into the source parameter should + give the user some way to identify the portion of + their source document on which to take potentially + take action in response to the log message (for + example, to edit, change, or add content). + + +So the source value should be, + for example, an ID, book/chapter/article title, title + of some formal object, or even a string giving an + XPath expression. + + + + context-desc + + +Text to log/emit in the context-description field to + describe the context for the message. + + + + context-desc-field-length + + +Specifies length of the context-description field + (in characters); default is 12 + + +If the text specified by the + context-desc parameter is longer + than the number of characters specified in + context-desc-field-length, it is + truncated to context-desc-field-length + (12 characters by default). + + +If the specified text is shorter than + context-desc-field-length, + it is right-padded out to + context-desc-field-length (12 by + default). + + +If no value has been specified for the + context-desc parameter, the field is + left empty and the text of the log message begins with + the value of the message + parameter. + + + + message + + +Text to log/emit in the actual message field + + + + message-field-length + + +Specifies length of the message + field (in characters); default is 45 + + + + + + Returns + +Outputs a message (generally, to standard error). + + + + +get.doc.title +Gets a title from the current document + + +<xsl:template name="get.doc.title"/> + + + +<para>The <function>get.doc.title</function> template is a + utility template for returning the first title found in the + current document.</para> + + </refsect1><refsect1><title>Returns + +Returns a string containing some identifying title for the + current document . + + + + +pad-string +Right-pads or left-pads a string out to a certain length + + +<xsl:template name="pad-string"> +<xsl:param name="padChar" select="' '"/> +<xsl:param name="leftRight">left</xsl:param> +<xsl:param name="padVar"/> +<xsl:param name="length"/> + ... +</xsl:template> + + + +<para>This function takes string <parameter>padVar</parameter> and + pads it out in the direction <parameter>rightLeft</parameter> to + the string-length <parameter>length</parameter>, using string + <parameter>padChar</parameter> (a space character by default) as + the padding string (note that <parameter>padChar</parameter> can + be a string; it is not limited to just being a single + character).</para> + + <note> + +<para>This function began as a copy of Nate Austin's + <function>prepend-pad</function> function in the <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/padding.html">Padding + Content</link> section of Dave Pawson's <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT + FAQ</link>.</para> + + </note> + </refsect1><refsect1><title>Returns + +Returns a (padded) string. + + + Added: box/trunk/docs/xsl-generic/common/utility.xsl =================================================================== --- box/trunk/docs/xsl-generic/common/utility.xsl (rev 0) +++ box/trunk/docs/xsl-generic/common/utility.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,290 @@ + + + + + + + Common ?? Utility Template Reference + + $Id: utility.xsl 7101 2007-07-20 15:32:12Z xmldoc $ + + + + + Introduction + This is technical reference documentation for the + miscellaneous utility templates in the DocBook XSL + Stylesheets. + + These templates are defined in a separate file from the set + of ???common??? templates because some of the common templates + reference DocBook XSL stylesheet parameters, requiring the + entire set of parameters to be imported/included in any + stylesheet that imports/includes the common templates. + The utility templates don???t import or include any DocBook + XSL stylesheet parameters, so the utility templates can be used + without importing the whole set of parameters. + + This is not intended to be user documentation. It is + provided for developers writing customization layers for the + stylesheets. + + + + + + + Logs/emits formatted notes and warnings + + + The log.message template is a utility + template for logging/emitting formatted messages ??? that is, + notes and warnings, along with a given log ???level??? and an + identifier for the ???source??? that the message relates to. + + + + + level + + Text to log/emit in the message-level field to + indicate the message level + (Note or + Warning) + + + source + + Text to log/emit in the source field to identify the + ???source??? to which the notification/warning relates. + This can be any arbitrary string, but because the + message lacks line and column numbers to identify the + exact part of the source document to which it + relates, the intention is that the value you pass + into the source parameter should + give the user some way to identify the portion of + their source document on which to take potentially + take action in response to the log message (for + example, to edit, change, or add content). + So the source value should be, + for example, an ID, book/chapter/article title, title + of some formal object, or even a string giving an + XPath expression. + + + context-desc + + Text to log/emit in the context-description field to + describe the context for the message. + + + context-desc-field-length + + Specifies length of the context-description field + (in characters); default is 12 + If the text specified by the + context-desc parameter is longer + than the number of characters specified in + context-desc-field-length, it is + truncated to context-desc-field-length + (12 characters by default). + If the specified text is shorter than + context-desc-field-length, + it is right-padded out to + context-desc-field-length (12 by + default). + If no value has been specified for the + context-desc parameter, the field is + left empty and the text of the log message begins with + the value of the message + parameter. + + + message + + Text to log/emit in the actual message field + + + message-field-length + + Specifies length of the message + field (in characters); default is 45 + + + + + + Outputs a message (generally, to standard error). + + + + + + 12 + + + + right + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + right + + + + + + + + + : + + + + : + + + + + + + + + + Gets a title from the current document + + The get.doc.title template is a + utility template for returning the first title found in the + current document. + + + Returns a string containing some identifying title for the + current document . + + + + + + + + + + + + + + + Right-pads or left-pads a string out to a certain length + + This function takes string padVar and + pads it out in the direction rightLeft to + the string-length length, using string + padChar (a space character by default) as + the padding string (note that padChar can + be a string; it is not limited to just being a single + character). + + This function began as a copy of Nate Austin's + prepend-pad function in the Padding + Content section of Dave Pawson's XSLT + FAQ. + + + + Returns a (padded) string. + + + + + + left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/common/vi.xml =================================================================== --- box/trunk/docs/xsl-generic/common/vi.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/vi.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/xh.xml =================================================================== --- box/trunk/docs/xsl-generic/common/xh.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/xh.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/common/zh_cn.xml =================================================================== --- box/trunk/docs/xsl-generic/common/zh_cn.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/zh_cn.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,654 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +?????? +A +a +B +b +C +c +D +d +E +e +F +f +G +g +H +h +I +i +J +j +K +k +L +l +M +m +N +n +O +o +P +p +Q +q +R +r +S +s +T +t +U +u +V +v +W +w +X +x +Y +y +Z +z + + Added: box/trunk/docs/xsl-generic/common/zh_tw.xml =================================================================== --- box/trunk/docs/xsl-generic/common/zh_tw.xml (rev 0) +++ box/trunk/docs/xsl-generic/common/zh_tw.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symbols +A +a +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +B +b +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +C +c +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +D +d +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +E +e +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +F +f +?? +?? +??? +??? +G +g +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +H +h +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +I +i +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +J +j +?? +?? +?? +?? +K +k +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +L +l +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +M +m +?? +??? +??? +??? +??? +??? +??? +N +n +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +O +o +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +P +p +?? +?? +??? +??? +??? +??? +Q +q +?? +R +r +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +S +s +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +T +t +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +U +u +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +V +v +?? +?? +??? +??? +??? +??? +W +w +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +X +x +??? +??? +??? +??? +Y +y +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +??? +Z +z +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +?? +??? +??? +??? +??? +??? +??? + + Added: box/trunk/docs/xsl-generic/highlighting/c-hl.xml =================================================================== --- box/trunk/docs/xsl-generic/highlighting/c-hl.xml (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/c-hl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,105 @@ + + + + + /* + */ + + + + // + + + + # + + + + " + \ + + + + ' + \ + + + + <<< + + + + and + auto + break + case + char + class + __CLASS__ + const + continue + declare + default + do + double + else + enum + exit + extern + __FILE__ + float + for + global + goto + if + include + int + __LINE__ + long + new + or + private + protected + public + register + return + short + signed + sizeof + static + struct + switch + typedef + union + unsigned + void + volatile + while + + + + + \ No newline at end of file Added: box/trunk/docs/xsl-generic/highlighting/common.xsl =================================================================== --- box/trunk/docs/xsl-generic/highlighting/common.xsl (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/common.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/highlighting/delphi-hl.xml =================================================================== --- box/trunk/docs/xsl-generic/highlighting/delphi-hl.xml (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/delphi-hl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,174 @@ + + + + + { + } + + + + (* + *) + + + + // + + + + ' + + + + + + + and + else + inherited + packed + then + array + end + initialization + procedure + threadvar + as + except + inline + program + to + asm + exports + interface + property + try + begin + file + is + raise + type + case + final + label + record + unit + class + finalization + library + repeat + unsafe + const + finally + mod + resourcestring + until + constructor + for + nil + sealed + uses + destructor + function + not + set + var + dispinterface + goto + object + shl + while + div + if + of + shr + with + do + implementation + or + static + xor + downto + in + out + string + + + at + on + + + absolute + dynamic + local + platform + requires + abstract + export + message + private + resident + assembler + external + name + protected + safecall + automated + far + near + public + stdcall + cdecl + forward + nodefault + published + stored + contains + implements + overload + read + varargs + default + index + override + readonly + virtual + deprecated + inline + package + register + write + dispid + library + pascal + reintroduce + writeonly + + + + + + Added: box/trunk/docs/xsl-generic/highlighting/ini-hl.xml =================================================================== --- box/trunk/docs/xsl-generic/highlighting/ini-hl.xml (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/ini-hl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,43 @@ + + + + + (?m)(;.*)$ + + + + + (?m)^(\[.+\]\s*)$ + + + + + (?m)^(.+=) + + + + + Added: box/trunk/docs/xsl-generic/highlighting/java-hl.xml =================================================================== --- box/trunk/docs/xsl-generic/highlighting/java-hl.xml (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/java-hl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,98 @@ + + + + + /* + */ + + + + // + + + + " + \ + + + + ' + \ + + + + abstract + boolean + break + byte + case + catch + char + class + const + continue + default + do + double + else + extends + final + finally + float + for + goto + if + implements + import + instanceof + int + interface + long + native + new + package + private + protected + public + return + short + static + strictfp + super + switch + synchronized + this + throw + throws + transient + try + void + volatile + while + + + + Added: box/trunk/docs/xsl-generic/highlighting/m2-hl.xml =================================================================== --- box/trunk/docs/xsl-generic/highlighting/m2-hl.xml (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/m2-hl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,86 @@ + + + + + (* + *) + + + + " + + + + ' + + + + and + array + begin + by + case + const + definition + div + do + else + elsif + end + exit + export + for + from + if + implementation + import + in + loop + mod + module + not + of + or + pointer + procedure + qualified + record + repeat + return + set + then + to + type + until + var + while + with + + + + + + Added: box/trunk/docs/xsl-generic/highlighting/myxml-hl.xml =================================================================== --- box/trunk/docs/xsl-generic/highlighting/myxml-hl.xml (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/myxml-hl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,131 @@ + + + + + + + A + ABBR + ACRONYM + ADDRESS + APPLET + AREA + B + BASE + BASEFONT + BDO + BIG + BLOCKQUOTE + BODY + BR + BUTTON + CAPTION + CENTER + CITE + CODE + COL + COLGROUP + DD + DEL + DFN + DIR + DIV + DL + DT + EM + FIELDSET + FONT + FORM + FRAME + FRAMESET + H1 + H2 + H3 + H4 + H5 + H6 + HEAD + HR + HTML + I + IFRAME + IMG + INPUT + INS + ISINDEX + KBD + LABEL + LEGEND + LI + LINK + MAP + MENU + META + NOFRAMES + NOSCRIPT + OBJECT + OL + OPTGROUP + OPTION + P + PARAM + PRE + Q + S + SAMP + SCRIPT + SELECT + SMALL + SPAN + STRIKE + STRONG + STYLE + SUB + SUP + TABLE + TBODY + TD + TEXTAREA + TFOOT + TH + THEAD + TITLE + TR + TT + U + UL + VAR + XMP + + + + + xsl: + + + + + Added: box/trunk/docs/xsl-generic/highlighting/php-hl.xml =================================================================== --- box/trunk/docs/xsl-generic/highlighting/php-hl.xml (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/php-hl.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,127 @@ + + + + + /* + */ + + + + // + + + + # + + + + " + \ + + + + ' + \ + + + + <<< + + + + and + or + xor + __FILE__ + exception + __LINE__ + array + as + break + case + class + const + continue + declare + default + die + do + echo + else + elseif + empty + enddeclare + endfor + endforeach + endif + endswitch + endwhile + eval + exit + extends + for + foreach + function + global + if + include + include_once + isset + list + new + print + require + require_once + return + static + switch + unset + use + var + while + __FUNCTION__ + __CLASS__ + __METHOD__ + final + php_user_filter + interface + implements + extends + public + private + protected + abstract + clone + try + catch + throw + cfunction + old_function + + + + + Added: box/trunk/docs/xsl-generic/highlighting/xslthl-config.xml =================================================================== --- box/trunk/docs/xsl-generic/highlighting/xslthl-config.xml (rev 0) +++ box/trunk/docs/xsl-generic/highlighting/xslthl-config.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,11 @@ + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/admon.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/admon.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/admon.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,132 @@ + + + + + + + + 25 + + + + + + + + + + + + + + + + + + note + warning + caution + tip + important + note + + + + + + + + Note + Warning + Caution + Tip + Important + Note + + + + + + + + + +
+ + + + + + + + + + + + : + + + + + + + + + + +
+ + + + [{$alt}] + + + + + + + + + +
+ +
+
+
+ + +
+ + + + + + + + +

+ + +

+
+ + +
+
+ + + + + + + +
Added: box/trunk/docs/xsl-generic/html/annotations.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/annotations.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/annotations.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Note + + + namesp. cut + + + stripped namespace before processing + + + + + + + + Note + + + namesp. cut + + + processing stripped document + + + + + + + + Unable to strip the namespace from DB5 document, + cannot proceed. + + + + + + + + + ID ' + + ' not found in document. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + Added: box/trunk/docs/xsl-generic/html/ebnf.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/ebnf.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/ebnf.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,329 @@ + + + + + + + + +$Id: ebnf.xsl 6910 2007-06-28 23:23:30Z xmldoc $ + +Walsh +Norman +19992000 +Norman Walsh + + +HTML EBNF Reference + + +
Introduction + +This is technical reference documentation for the DocBook XSL +Stylesheets; it documents (some of) the parameters, templates, and +other elements of the stylesheets. + +This reference describes the templates and parameters relevant +to formatting EBNF markup. + +This is not intended to be user documentation. +It is provided for developers writing customization layers for the +stylesheets, and for anyone who's interested in how it +works. + +Although I am trying to be thorough, this documentation is known +to be incomplete. Don't forget to read the source, too :-) +
+
+
+ + + + + + + + + + + + 1 + + + + + + EBNF + + for + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + EBNF productions + +
+
+
+ + + + + + + + + + [ + + ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + Error: no ID for productionrecap linkend: + + . + + + + + + Warning: multiple "IDs" for productionrecap linkend: + + . + + + + + + + + + + + + + + + + | +
+
+
+ + + + + + + + + + + + + + + production + + + + + + + + + Non-terminals with no content must point to + production elements in the current document. + + + Invalid xpointer for empty nt: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ??? + + + + + + + + + + + + + /*  + +  */ +
+
+ + + + + + + + + constraintdef + + + + + + + + + + + + + + + + : + + + + + + + : + + + + + + + + + +  ] + +
+
+
+ + +
+ + + +
+
+ + +

+
+ + + +
Added: box/trunk/docs/xsl-generic/html/footnote.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/footnote.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/footnote.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,299 @@ + + + + + + + + + + + #ftn. + + + + + + + [ + + + + + ] + + + + + [ + + + + + ] + + + + + + + + + + + + + + + + + + #ftn. + + + + + [ + + + + + ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ftn. + + + + + + # + + + + +

+ + + + + + + [ + + + + + ] + + +

+
+ + + + + + ftn. + + + + + + # + + + + + + + [ + + + + + ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ + +
+
+

The following annotations are from this essay. You are seeing + them here because your browser doesn???t support the user-interface + techniques used to make them appear as ???popups??? on modern browsers.

+
+ + +
+
+
+ + + + + + + + +
+ + +
+
+ + +
+ + + +
+
+ + + + Warning: footnote number may not be generated + correctly; + + unexpected as first child of footnote. + +
+ + +
+
+
+
+ + + + + + + + +
Added: box/trunk/docs/xsl-generic/html/formal.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/formal.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/formal.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,400 @@ + + + + + +1 + + + + + + + + + + +
+ + + + + + + +
+ +
+ + + + + +

+ + +

+

+ + + + + + + +
+
+ +
+
+
+ + + + + + + + + -float + + + + + + + + + +
+ + + + + + + + + +

+ + + +

+
+ + + + + +
+

+ + + + + + + + +

+

+
+ + + + + + + + + -float + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + before + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Broken table: tr descendent of CALS Table. + + + + + + + + + + before + + + + + + + + + + + + + + + + + + + + + + + + + Broken table: row descendent of HTML table. + + + + + + + + + + + + + + before + + + + + + + + + + + + + + + + + + + + + before + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + float: + + ; + + + +
+
+ +
Added: box/trunk/docs/xsl-generic/html/glossary.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/glossary.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/glossary.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,482 @@ + + +%common.entities; +]> + + + + + + + + &setup-language-variable; + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+ + + +
+ + + + +
+
+ + + + + + + + + + + &setup-language-variable; +
+ + + + + +
+ + + + + + + + + + +
+
+
+ + + + + &setup-language-variable; + + +
+ + + +
+ + + + + + + + + + +
+
+
+ + +

+ + +

+
+ + + + + + + + +
+ + + + 0 + 1 + + + + + + + + ( + + ) + + + + + +
+
+ +
+ + + + 0 + 1 + + + + + + + + ( + + ) + +
+
+ +
+ + + + 0 + 1 + + + + + +
+
+
+ + +
+ + + + , + + + + + , + + + + + , + + + + + + + + + + +
+

+ + + + + + + + + + + + + + + + + + + + + + + Warning: glosssee @otherterm reference not found: + + + + + + + + + + + + + + + . +

+
+
+ + +
+ + +

+ + + + + + + + + + + + + +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + Warning: glossseealso @otherterm reference not found: + + + + + + + + + + + + . + + + , + + + + + + + + + + &setup-language-variable; + + + + + + + + Warning: processing automatic glossary + without a glossary.collection file. + + + + + + Warning: processing automatic glossary but unable to + open glossary.collection file ' + + ' + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
+
+ + + + + + + + + + &setup-language-variable; + +
+ + + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
Added: box/trunk/docs/xsl-generic/html/graphics.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/graphics.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/graphics.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1489 @@ + + + + + + + + + + + + + + 1 + + + + + + 1 + + + + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + + 1 + 0 + + + + + + 1.0 + 1.0 + + + + 1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + px + + + + + + + + + + + px + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + px + + + + + + + + + + + px + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + middle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Warning: imagemaps not supported + on scaled images + + + + 0 + + + + + + + + + + + + + + + + + + + + middle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + height: + + px + + + + + + + + + + + +
+ + + + + background-color: + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + calspair + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + , + + , + + + + + + + + + + + + Warning: only calspair or + otherunits='imagemap' supported + in imageobjectco + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + middle + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + No insertfile extension available. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No insertfile extension available. + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No insertfile extension available. + + + + + + + + + + + + + +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Added: box/trunk/docs/xsl-generic/html/highlight.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/highlight.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/highlight.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/html-rtf.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/html-rtf.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/html-rtf.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + +
+
+ + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Added: box/trunk/docs/xsl-generic/html/html.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/html.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/html.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + # + + + + + + + + + # + + + + + + + + + + + + + + + + + + + bullet + + + + + + + + + bullet + + + © + + + ® + (SM) +   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID recommended on + + + : + + + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/htmltbl.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/htmltbl.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/htmltbl.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/index.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/index.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/index.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + + + + + + + + +
+
+
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+
+
+ + +

+ + +

+
+ + + + + + + + + +
+ + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+ +
+ + +
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+ +
+ +
+
+ +
+
+
+
+ + +
+ +
+
+ + Added: box/trunk/docs/xsl-generic/html/info.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/info.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/info.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/inline.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/inline.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/inline.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1439 @@ + + +]> + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + + + + + + + + + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + XLink to nonexistent id: + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + span + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ( + + ) + + + + + + + + + + + , + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + abbr + + + + + + acronym + + + + + + + + + + + + + + + + + + + + + + + + + + http://example.com/cgi-bin/man.cgi? + + ( + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Warning: glossary.collection specified, but there are + + automatic glossaries + + + + + + + + + + + + + + + + + + + + + + + + There's no entry for + + in + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Error: no glossentry for glossterm: + + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + element + + + + + + + + + + + + + + + + </ + + > + + + & + + ; + + + &# + + ; + + + % + + ; + + + <? + + > + + + <? + + ?> + + + < + + > + + + < + + /> + + + <!-- + + --> + + + + + + + + + + + + + + + + + + + + + + + < + + + + + mailto: + + + + + + > + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + ( + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [ + + + + + + + + + + + + + + + + + + + ] + + + [ + + ] + + + + + + + + + + + + +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/keywords.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/keywords.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/keywords.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + , + + + + + Added: box/trunk/docs/xsl-generic/html/lists.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/lists.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/lists.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1103 @@ + + + + + + + + +
+ + + + + + + + + +
    + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + circle + disc + square + + + + + + +
  • + + + list-style-type: + + + + + + + + + + + +
    + +
    +
    + + + +
    +
  • +
    + + + + + + + + + + + + + 1 + a + i + A + I + + + + Unexpected numeration: + + + + + + + +
    + + + + + + + + + + +
      + + + + + + + + + + + + + + + + +
    +
    +
    + + + + + + +
  • + + + + + + + + + + + + + +
    + +
    +
    + + + +
    +
  • +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + +

    +
    +
    +
    + + +
    + + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + +
    + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + + +
    + +
    +
    + + + +
    +
    + + + + + + + + + + + + + + 1 + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + 1 + + + +
    +
    + + + + + + + + + + + 1 + + + +
    +
    + + + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + + 1 + + + + + + + + +   + + + + + + + + + + + + + + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + + 1 + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + before + + + + + + + + + +
    + + + + + 0 + 1 + + + + + + + + + + + + +
      + +
    +
    + +
      + + + + +
    +
    +
    + + + + +
    +
    + + + + + + + + + + + + +
      + +
    +
    + + +
  • + + +
  • +
    + + + +
      + +
    +
    + + +

    + + + +

    +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    +
    + + + + + + + + + +
    + + +
    +
    + + + + + + + + +
    + + + + : + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    +
    + +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + +

    + + + + +

    + + + + + +
    + +
    + + + + +
    +
    +
    +
    +
    + + + + + + + + + +

    + + + + + + + + +

    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ??? + + + + + # + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ??? + + + + + + + + + + + + + + + + + + + +
    Added: box/trunk/docs/xsl-generic/html/maketoc.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/maketoc.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/maketoc.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + filename=" + + " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/manifest.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/manifest.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/manifest.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,22 @@ + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/math.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/math.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/math.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsupported TeX math notation: + + + + + + + + + + + + + \nopagenumbers + + + + \bye + + + + + + + + + + + + + + + + + + + + + + + \special{dvi2bitmap outputfile + + } + + $ + + + + $ + + \vfill\eject + + + + + + + + + + + + + + + + + + + + + + + + \special{dvi2bitmap outputfile + + } + + $$ + + + + $$ + + \vfill\eject + + + + + + + + + \documentclass{article} + \pagestyle{empty} + \begin{document} + + + + \end{document} + + + + + + + + + + + + + + + + + + + + + + + \special{dvi2bitmap outputfile + + } + + $ + + + + $ + + \newpage + + + + + + + + + + + + + + + + + + + + + + + + \special{dvi2bitmap outputfile + + } + + $$ + + + + $$ + + \newpage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + Added: box/trunk/docs/xsl-generic/html/oldchunker.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/oldchunker.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/oldchunker.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,202 @@ + + + + + + + + + + + + + +Encoding used in generated HTML pages + +This encoding is used in files generated by chunking stylesheet. Currently +only Saxon is able to change output encoding. + + + + + + + + + +Saxon character representation used in generated HTML pages + +This character representation is used in files generated by chunking stylesheet. If +you want to suppress entity references for characters with direct representation +in default.encoding, set this parameter to value native. + + + + + + + + + + + + + + + + + + + + + + + + Chunking isn't supported with + + + + + + + + + + + + + + + Writing + + + for + + + ( + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Can't make chunks with + + 's processor. + + + + + + + + + + + + + + + + Writing + + + for + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Can't make chunks with + + 's processor. + + + + + + Added: box/trunk/docs/xsl-generic/html/onechunk.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/onechunk.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/onechunk.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + +1 + + + + # + + + + + + Added: box/trunk/docs/xsl-generic/html/param.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/param.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/param.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,412 @@ + + + + + + +.png + +images/ + + margin-left: 0.5in; margin-right: 0.5in; + + + + +/* ====================================================================== + Annotations +*/ + +div.annotation-list { visibility: hidden; + } + +div.annotation-nocss { position: absolute; + visibility: hidden; + } + +div.annotation-popup { position: absolute; + z-index: 4; + visibility: hidden; + padding: 0px; + margin: 2px; + border-style: solid; + border-width: 1px; + width: 200px; + background-color: white; + } + +div.annotation-title { padding: 1px; + font-weight: bold; + border-bottom-style: solid; + border-bottom-width: 1px; + color: white; + background-color: black; + } + +div.annotation-body { padding: 2px; + } + +div.annotation-body p { margin-top: 0px; + padding-top: 0px; + } + +div.annotation-close { position: absolute; + top: 2px; + right: 2px; + } + + + +http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js + +http://docbook.sourceforge.net/release/images/annot-open.png + +http://docbook.sourceforge.net/release/images/annot-close.png + +A + +. + + +. +http://docbook.sourceforge.net/release/bibliography/bibliography.xml + + +normal + + +60 +.png + + +15 + +images/callouts/ + + +10 +10102 + + + + + + + + + + + +no + +1 + + + + + left + before + + + + +all +maybe +http://docbook.sourceforge.net/release/images/draft.png +#F5DCB3 + + +::= + + + + + +DocBook Online Help Sample +com.example.help +Example provider +1 + + + + + +1 + + + +figure before +example before +equation before +table before +procedure before +task before + + +kr +40 + + + + + + + + + +appendix toc,title +article/appendix nop +article toc,title +book toc,title,figure,table,example,equation +chapter toc,title +part toc,title +preface toc,title +qandadiv toc +qandaset toc +reference toc,title +sect1 toc +sect2 toc +sect3 toc +sect4 toc +sect5 toc +section toc +set toc,title + + + + +no + + + + + + + + + + + + +.html + +copyright + + + + +text/css +alias.h + + + + + + + +User1 + + +User2 + + + + + + + + + +htmlhelp.chm + + +iso-8859-1 + + + + + +toc.hhc +5 + + +index.hhk +htmlhelp.hhp + +Main + +context.h + + + + + + + + + + + +basic + + + + + + + + +no +iso-8859-1 + + +en + + + + +5 + + +3 + + + + + + HTML.manifest + + + + ++ +.gif + +images/ +1 + + +6in + + + + replace + +no + + + +no +fragid= +.olink +pubid + /cgi-bin/olink +sysid + +0 + +I + +90 +10 + + + + + + + + + + + + + + + +; + + + + + +. +number + + + + + + + + + I + +index + +. +.!?: + +8 + + + + + 0 + #E0E0E0 + + + + + + +0 + + + + + +solid +0.5pt +a + + + +solid +0.5pt + + olinkdb.xml +target.db + + +tex-math-equations.tex + + +dl +2 +8 +_top + + + + + + + + +, +0 + +: + + + + Added: box/trunk/docs/xsl-generic/html/pi.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/pi.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/pi.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1240 @@ + + + + + +HTML Processing Instruction Reference + + $Id: pi.xsl 7250 2007-08-18 10:19:00Z xmldoc $ + + + + Introduction + This is generated reference documentation for all + user-specifiable processing instructions (PIs) in the DocBook + XSL stylesheets for HTML output. + + You add these PIs at particular points in a document to + cause specific ???exceptions??? to formatting/output behavior. To + make global changes in formatting/output behavior across an + entire document, it???s better to do it by setting an + appropriate stylesheet parameter (if there is one). + + + + + + + + + Sets background color for an image + + Use the dbhtml background-color PI before or + after an image (graphic, inlinegraphic, + imagedata, or videodata element) as a + sibling to the element, to set a background color for the + image. + + + dbhtml background-color="color" + + + + background-color="color" + + An HTML color value + + + + + + Background color + + + + + + + + + + + + Sets background color on a table row or table cell + + Use the dbhtml bgcolor PI as child of a table row + or cell to set a background color for that table row or cell. + + + dbhtml bgcolor="color" + + + + bgcolor="color" + + An HTML color value + + + + + + Cell background color + + + + + + + + + + + + Specifies cellpadding in table or qandaset output + + Use the dbhtml cellpadding PI as a child of a + table or qandaset to specify the value + for the HTML cellpadding attribute in the + output HTML table. + + + dbhtml cellpadding="number" + + + + cellpadding="number" + + Specifies the cellpadding + + + + + + html.cellpadding + + + Cell spacing and cell padding, + Q and A formatting + + + + + + + + + + + + Specifies cellspacing in table or qandaset output + + Use the dbhtml cellspacing PI as a child of a + table or qandaset to specify the value + for the HTML cellspacing attribute in the + output HTML table. + + + dbhtml cellspacing="number" + + + + cellspacing="number" + + Specifies the cellspacing + + + + + + html.cellspacing + + + Cell spacing and cell padding, + Q and A formatting + + + + + + + + + + + + Set value of the class attribute for a table row + + Use the dbhtml class PI as a child of a + row to specify a class + attribute and value in the HTML output for that row. + + + dbhtml class="name" + + + + class="name" + + Specifies the class name + + + + + + Table styles in HTML output + + + + + + + + + + + + Specifies a directory name in which to write files + + When chunking output, use the dbhtml dir PI + as a child of a chunk source to cause the output of that + chunk to be written to the specified directory; also, use it + as a child of a mediaobject to specify a + directory into which any long-description files for that + mediaobject will be written. + + + dbhtml dir="path" + + + + dir="path" + + Specifies the pathname for the directory + + + + + + base.dir + + + dbhtml dir processing instruction + + + + + + + + + + + + Specifies a filename for a chunk + + When chunking output, use the dbhtml filename + PI as a child of a chunk source to specify a filename for + the output file for that chunk. + + + dbhtml filename="filename" + + + + filename="path" + + Specifies the filename for the file + + + + + + use.id.as.filename + + + dbhtml filenames + + + + + + + + + + + + Specifies presentation style for a funcsynopsis + + Use the dbhtml funcsynopsis-style PI as a child of + a funcprototype or anywhere within a funcprototype + control the presentation style for the funcsynopsis + in output. + + + dbhtml funcsynopsis-style="kr"|"ansi" + + + + funcsynopsis-style="kr" + + Displays the funcprototype in K&R style + + + funcsynopsis-style="ansi" + + Displays the funcprototype in ANSI style + + + + + + funcsynopsis.style + + + + + + + + + + + + Specifies a path to the location of an image file + + Use the dbhtml img.src.path PI before or + after an image (graphic, + inlinegraphic, imagedata, or + videodata element) as a sibling to the element, + to specify a path to the location of the image; in HTML + output, the value specified for the + img.src.path attribute is prepended to the + filename. + + + dbhtml img.src.path="path" + + + + img.src.path="path" + + Specifies the pathname to prepend to the name of the image file + + + + + + img.src.path + + + Using fileref + + + + + + + + + + + + Specifies the label width for a qandaset + + Use the dbhtml label-width PI as a child of a + qandaset to specify the width of labels. + + + dbhtml label-width="width" + + + + label-width="width" + + Specifies the label width (including units) + + + + + + Q and A formatting + + + + + + + + + + + + Specifies interval for lines numbers in verbatims + + Use the dbhtml linenumbering.everyNth PI as a child + of a ???verbatim??? element ??? programlisting, + screen, synopsis ??? to specify + the interval at which lines are numbered. + + + dbhtml linenumbering.everyNth="N" + + + + linenumbering.everyNth="N" + + Specifies numbering interval; a number is output + before every Nth line + + + + + + linenumbering.everyNth + + + Line numbering + + + + + + + + + + + + Specifies separator text for line numbers in verbatims + + Use the dbhtml linenumbering.separator PI as a child + of a ???verbatim??? element ??? programlisting, + screen, synopsis ??? to specify + the separator text output between the line numbers and content. + + + dbhtml linenumbering.separator="text" + + + + linenumbering.separator="text" + + Specifies the text (zero or more characters) + + + + + + linenumbering.separator + + + Line numbering + + + + + + + + + + + + Specifies width for line numbers in verbatims + + Use the dbhtml linenumbering.width PI as a child + of a ???verbatim??? element ??? programlisting, + screen, synopsis ??? to specify + the width set aside for line numbers. + + + dbhtml linenumbering.width="width" + + + + linenumbering.width="width" + + Specifies the width (inluding units) + + + + + + linenumbering.width + + + Line numbering + + + + + + + + + + + + Specifies presentation style for a variablelist or + segmentedlist + + Use the dbhtml list-presentation PI as a child of + a variablelist or segmentedlist to + control the presentation style for the list (to cause it, for + example, to be displayed as a table). + + + dbhtml list-presentation="list"|"table" + + + + list-presentation="list" + + Displays the list as a list + + + list-presentation="table" + + Displays the list as a table + + + + + + + + variablelist.as.table + + + segmentedlist.as.table + + + + + Variable list formatting in HTML + + + + + + + + + + + + Specifies the width of a variablelist or simplelist + + Use the dbhtml list-width PI as a child of a + variablelist or a simplelist presented + as a table, to specify the output width. + + + dbhtml list-width="width" + + + + list-width="width" + + Specifies the output width (including units) + + + + + + Variable list formatting in HTML + + + + + + + + + + + + Specifies the height for a table row + + Use the dbhtml row-height PI as a child of a + row to specify the height of the row. + + + dbhtml row-height="height" + + + + row-height="height" + + Specifies the label height (including units) + + + + + + Row height + + + + + + + + + + + + (obsolete) Sets the starting number on an ordered list + + This PI is obsolete. The intent of + this PI was to provide a means for setting a specific starting + number for an ordered list. Instead of this PI, set a value + for the override attribute on the first + listitem in the list; that will have the same + effect as what this PI was intended for. + + + dbhtml start="character" + + + + start="character" + + Specifies the character to use as the starting + number; use 0-9, a-z, A-Z, or lowercase or uppercase + Roman numerals + + + + + + List starting number + + + + + + + + + + + + Specifies summary for table, variablelist, segmentedlist, or qandaset output + + Use the dbhtml table-summary PI as a child of + a table, variablelist, + segmentedlist, or qandaset to specify + the text for the HTML summary attribute + in the output HTML table. + + + dbhtml table-summary="text" + + + + table-summary="text" + + Specifies the summary text (zero or more characters) + + + + + + Variable list formatting in HTML, + Table summary text + + + + + + + + + + + + Specifies the width for a table + + Use the dbhtml table-width PI as a child of a + table to specify the width of the table in + output. + + + dbhtml table-width="width" + + + + table-width="width" + + Specifies the table width (including units or as a percentage) + + + + + + default.table.width + + + Table width + + + + + + + + + + + + Sets character formatting for terms in a variablelist + + Use the dbhtml term-presentation PI as a child + of a variablelist to set character formatting for + the term output of the list. + + + dbhtml term-presentation="bold"|"italic"|"bold-italic" + + + + term-presentation="bold" + + Specifies that terms are displayed in bold + + + term-presentation="italic" + + Specifies that terms are displayed in italic + + + term-presentation="bold-italic" + + Specifies that terms are displayed in bold-italic + + + + + + Variable list formatting in HTML + + + + + + + + + + + + Specifies separator text among terms in a varlistentry + + Use the dbhtml term-separator PI as a child + of a variablelist to specify the separator text + among term instances. + + + dbhtml term-separator="text" + + + + term-separator="text" + + Specifies the text (zero or more characters) + + + + + + variablelist.term.separator + + + Variable list formatting in HTML + + + + + + + + + + + + Specifies the term width for a variablelist + + Use the dbhtml term-width PI as a child of a + variablelist to specify the width for + term output. + + + dbhtml term-width="width" + + + + term-width="width" + + Specifies the term width (including units) + + + + + + Variable list formatting in HTML + + + + + + + + + + + + Specifies whether a TOC should be generated for a qandaset + + Use the dbhtml toc PI as a child of a + qandaset to specify whether a table of contents + (TOC) is generated for the qandaset. + + + dbhtml toc="0"|"1" + + + + toc="0" + + If zero, no TOC is generated + + + toc="1" + + If 1 (or any non-zero value), + a TOC is generated + + + + + + Q and A list of questions, + Q and A formatting + + + + + + + + + + + + Generates a hyperlinked list of commands + + Use the dbcmdlist PI as the child of any + element (for example, refsynopsisdiv) containing multiple + cmdsynopsis instances; a hyperlinked navigational + ???command list??? will be generated at the top of output for that + element, enabling users to quickly jump + to each command synopsis. + + + dbcmdlist + + + [No parameters] + + + + + + No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep? + + +
    + + + +
    +
    + + + Generates a hyperlinked list of functions + + Use the dbfunclist PI as the child of any + element (for example, refsynopsisdiv) containing multiple + funcsynopsis instances; a hyperlinked + navigational ???function list??? will be generated at the top of + output for that element, enabling users to quickly + jump to to each function synopsis. + + + dbfunclist + + + [No parameters] + + + + + + No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep? + + +
    + + + +
    +
    + + + Copies an external well-formed HTML/XML file into current doc + + Use the dbhtml-include href PI anywhere in a + document to cause the contents of the file referenced by the + href pseudo-attribute to be copied/inserted ???as + is??? into your HTML output at the point in document order + where the PI occurs in the source. + + The referenced file may contain plain text (as long as + it is ???wrapped??? in an html element ??? see the + note below) or markup in any arbitrary vocabulary, + including HTML ??? but it must conform to XML + well-formedness constraints (because the feature in XSLT + 1.0 for opening external files, the + document() function, can only handle + files that meet XML well-formedness constraints). + Among other things, XML well-formedness constraints + require a document to have a single root + element. So if the content you want to + include is plain text or is markup that does + not have a single root element, + wrap the content in an + html element. The stylesheets will + strip out that surrounding html ???wrapper??? when + they find it, leaving just the content you want to + insert. + + + + dbhtml-include href="URI" + + + + href="URI" + + Specifies the URI for the file to include; the URI + can be, for example, a remote http: + URI, or a local filesystem file: + URI + + + + + + textinsert.extension + + + Inserting external HTML code, + External code files + + + + + + + href + + + + + + + + + + + + + + + + + + + + ERROR: dbhtml-include processing instruction + href has no content. + + + + + + + ERROR: dbhtml-include processing instruction has + missing or empty href value. + + + + + + + + + + + + filename + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + # + + + + + + + + + + + + + + + + + + +
    + + + + + +
    +
    +
    + + + + + + + + + + + + + + + +
    + + + # + + + + + + + + + + + + + + + + + + +
    + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + / + + + + + + + Sets topic name and topic id for context-sensitive HTML Help + + Use the dbhh PI as a child of components + that should be used as targets for context-sensitive help requests. + + + dbhh topicname="name" topicid="id" + + + + topicname="name" + + Specifies a unique string constant that identifies a help topic + + + topicid="id" + + Specifies a unique integer value for the topicname string + + + + + + Context-sensitive help + + + + +
    Added: box/trunk/docs/xsl-generic/html/profile-chunk-code.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/profile-chunk-code.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/profile-chunk-code.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bk + + + + + + + + + + + + + + + ar + + + + + + + + + + + + + + + pr + + + + + + + + + + + + + + + ch + + + + + + + + + + + + + + + ap + + + + + + + + + + + + + + + + + + + pt + + + + + + + + + + + + + + + + + + + rn + + + + + + + + + + + + + + + + + + re + + + + + + + + + + + + + + + + + + + co + + + + + + + + + + + s + + + + + + + + + + + + + + + + + + + bi + + + + + + + + + + + + + + + + + + + go + + + + + + + + + + + + + + + + + + + ix + + + + + + + + si + + + + + + + + chunk-filename-error- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Note: namesp. cut : stripped namespace before processingNote: namesp. cut : processing stripped document + + + + + + + + + + + + + + + + + + ID ' + + ' not found in document. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/profile-chunk.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/profile-chunk.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/profile-chunk.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + Added: box/trunk/docs/xsl-generic/html/profile-docbook.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/profile-docbook.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/profile-docbook.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Element + + in namespace ' + + ' encountered + + in + + + , but no template matches. + + + + < + + > + + </ + + > + + + + + + + + + white + black + #0000FF + #840084 + #0000FF + + + + + + + + + + <xsl:copy-of select="$title"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Note: namesp. cut : stripped namespace before processingNote: namesp. cut : processing stripped document + + + + + + + + + + + + + + + + + + ID ' + + ' not found in document. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + Added: box/trunk/docs/xsl-generic/html/profile-onechunk.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/profile-onechunk.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/profile-onechunk.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + +1 + + + + # + + + + + + Added: box/trunk/docs/xsl-generic/html/qandaset.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/qandaset.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/qandaset.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + +

    +
    + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + +

    + +

    +
    + + + + + + + + + + +
    + + + + + + + + + + +
    + + +
    +
    + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1% + + + + + + +
    +
    + + + + + + + + + +
    Added: box/trunk/docs/xsl-generic/html/refentry.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/refentry.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/refentry.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,309 @@ + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + +

    +
    + + + + +
    + + + + + + +
    +
    +
    +
    + + + + + + +
    +
    + + + + + + + + + + + + + + ( + + ) + + + + + + + + + + + +
    + + + + + + + + + + + +

    + + + +

    +
    + +

    + + + + + + + + +

    +
    +
    + +

    + +

    +
    +
    + + + + + + , + + + + + + + + + em-dash + + + + + + + + + + + + +

    + + + + : + + + +

    +
    +
    + + +
    + + + + + +

    + + + + + + + + + + +

    + +
    +
    + + + + + + + + + + + +
    + + + + + + + + + + + +
    +
    + + + + + + 0 + 1 + + + + 6 + + + + + + + + + + + + +

    + +

    +
    + + + +

    + +

    +
    + + + +

    + +

    +
    + + + + + + + + + +
    Added: box/trunk/docs/xsl-generic/html/sections.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/sections.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/sections.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,622 @@ + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 + + + + + + + + + + clear: both + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + 1 + + + + + + + 2 + 3 + 4 + 5 + 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Added: box/trunk/docs/xsl-generic/html/synop.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/synop.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/synop.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1596 @@ + + +]> + + + + + + + + + + + +
    + +

    + + + + + + + + + + + + +

    +
    +
    + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + ( + + ) + +   + + + + + + + + + + + + +

    + + + + + ( + + ) + + + +

    +
    + + + + + + + + + + + + + + + + + +
    +    
    +    
    +  
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + +
    + +
    +

    +
    + + + + + + ( + + + + + + + + + + + + + + + + ) + ; + + + + ... + ) + ; + + + + + + + , + + + ) + ; + + + + + + + + + + + + + + + + + + + + +
    + + + + ; +
    + + + + + + + + + + + + + + + + + + ( + + ) + + + + + + + + + + + + + + + + + +
    + +
     
    + + + + padding-bottom: 1em + + +
    +
    +
    + + + + + + ( + + + + + + + + + + + + + + + + + ) + ; + +   + + + + + ... + ) + ; + +   + + + + + + + + , + + + ) + ; + + + +   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + ; + + + + + + + + + + + + + + + + + + + + + + + + ( + + ) + ; + + + + + + +

    + +

    +
    + + + + + + ( + + + + + + + + + + + + + + + + void) + ; + + + + ... + ) + ; + + + + + + + , + + + ) + ; + + + + + + + + + + + + + + + + + + + + + ( + + ) + + + + + + + + + padding-bottom: 1em + + + + + + + + + + + +
    + +
     
    +
    + + + + + + ( + + + + + + + + + + + + + + + + + void) + ; + +   + + + + + ... + ) + ; + +   + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + , + + + ) + ; + + + + + + + +   + + + + + + + , + + + ) + ; + + + + + + + + + + + + + + + + + + + + + + + + ( + + ) + + + + +java + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unrecognized language on + + : + + + + + + + + + + + +
    +
    +
    + + + + + +
    +    
    +    
    +    
    +       extends
    +      
    +      
    +        
    +      +
    +
    + + implements + + +
    +      +
    +
    + + throws + + +  { +
    + + } +
    +
    + + + + + + + + + , + + + + + + + + + + + + + + + + +   + + + + + + + , + + + + + + + + + + , + + + + + + + + + + , + + + + + + + + + + + +    + + + ; + + + + + + + + +   + + + + + + + +   + + + + + + + + + + + + + + + void  + + + + + + + + + + + + 0 + + , +
    + + +   + + + +
    + + + + +
    + + + + + + + + + + + + + + +    + + + + + + + + + + + + + + + ( + + + + ) + +
    +     throws  + +
    + + + + + ; +
    + +
    + + + + +
    +    
    +    
    +    
    +      : 
    +      
    +      
    +        
    +      +
    +
    + + implements + + +
    +      +
    +
    + + throws + + +  { +
    + + } +
    +
    + + + + + + + + , + + + + + + + + + + + + +   + + + + + + + , + + + + + + + + + + , + + + + + + + + + + , + + + + + + + + + + + +    + + + ; + + + + + + + + +   + + + + + + + +   + + + + + + + + + + + + + + + void  + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + +    + + + + + + + + + + ( + + ) + +
    +     throws  + +
    + + + + + ; +
    + +
    + + + + +
    +    
    +    interface 
    +    
    +    
    +      : 
    +      
    +      
    +        
    +      +
    +
    + + implements + + +
    +      +
    +
    + + throws + + +  { +
    + + } +
    +
    + + + + + + + + , + + + + + + + + + + + + +   + + + + + + + , + + + + + + + + + + , + + + + + + + + + + , + + + + + + + + + + + +    + + + ; + + + + + + + + +   + + + + + + + +   + + + + + + + + + + + + + + + void  + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + +    + + + + + + + + + + ( + + ) + +
    +     raises( + + ) +
    + + + + + ; +
    + +
    + + + + +
    +    
    +    package 
    +    
    +    ;
    +    
    + + + @ISA = ( + + ); +
    +
    + + +
    +
    + + + + + + + + , + + + + + + + + + + + + +   + + + + + + + , + + + + + + + + + + , + + + + + + + + + + , + + + + + + + + + + + +    + + + ; + + + + + + + + +   + + + + + + + +   + + + + + + + + + + + + + + + void  + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + sub + + + { ... }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added: box/trunk/docs/xsl-generic/html/table.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/table.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/table.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + border- + + : + + + + + + ; + + + + + border- + + -width: + + ; + + + + border- + + -style: + + ; + + + + border- + + -color: + + ; + + + + + + + + + + + Error: CALS tables must specify the number of columns. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100% + + + + + + + + border-collapse: collapse; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + border-collapse: collapse; + + + + + + + + + + + + + + + + + border-collapse: collapse; + + + + + + + + + + + border-collapse: collapse; + + + + + + + + + + + border-collapse: collapse; + + + + + + + + + + + + + + + + + border: none; + + + + + border-collapse: collapse; + + + + + + + 0 + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + 100% + + + + + + + + + + + + + + + + + + + + + + + + No convertLength function available. + + + + + + + + + + + + + + + + + + + + + + + + + + No adjustColumnWidths function available. + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Warning: overlapped row contains content! + + + This row intentionally left blank + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + th + th + td + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + : + + + + + + + + 0: + + + + + + + + + + + + + + + 0 + + : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Added: box/trunk/docs/xsl-generic/html/task.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/task.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/task.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + before + + + + + + + + +
    + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Added: box/trunk/docs/xsl-generic/html/titlepage.templates.xml =================================================================== --- box/trunk/docs/xsl-generic/html/titlepage.templates.xml (rev 0) +++ box/trunk/docs/xsl-generic/html/titlepage.templates.xml 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,662 @@ + + + + + + + + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <hr/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="set" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <hr/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="book" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <hr/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="part" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="division.title" + param:node="ancestor-or-self::part[1]"/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="partintro" t:wrapper="div"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="reference" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <hr/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="refentry" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> +<!-- uncomment this if you want refentry titlepages + <title t:force="1" + t:named-template="refentry.title" + param:node="ancestor-or-self::refentry[1]"/> +--> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator/> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="dedication" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::dedication[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="preface" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="chapter" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="appendix" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="section" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect1" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect2" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect3" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect4" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect5" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="simplesect" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="bibliography" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::bibliography[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="glossary" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::glossary[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="index" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::index[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="setindex" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::setindex[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +</t:templates> Added: box/trunk/docs/xsl-generic/html/titlepage.templates.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/titlepage.templates.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/titlepage.templates.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,3622 @@ +<?xml version="1.0"?> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" version="1.0" exclude-result-prefixes="exsl"> + +<!-- This stylesheet was created by template/titlepage.xsl--> + +<xsl:template name="article.titlepage.recto"> + <xsl:choose> + <xsl:when test="articleinfo/title"> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/> + </xsl:when> + <xsl:when test="artheader/title"> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="articleinfo/subtitle"> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/> + </xsl:when> + <xsl:when test="artheader/subtitle"> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/> + <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="article.titlepage.verso"> +</xsl:template> + +<xsl:template name="article.titlepage.separator"><hr/> +</xsl:template> + +<xsl:template name="article.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="article.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="article.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="article.titlepage.before.recto"/> + <xsl:call-template name="article.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="article.titlepage.before.verso"/> + <xsl:call-template name="article.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="article.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="article.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="article.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="set.titlepage.recto"> + <xsl:choose> + <xsl:when test="setinfo/title"> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="setinfo/subtitle"> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/> + <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="set.titlepage.verso"> +</xsl:template> + +<xsl:template name="set.titlepage.separator"><hr/> +</xsl:template> + +<xsl:template name="set.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="set.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="set.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="set.titlepage.before.recto"/> + <xsl:call-template name="set.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="set.titlepage.before.verso"/> + <xsl:call-template name="set.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="set.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="set.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="set.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="book.titlepage.recto"> + <xsl:choose> + <xsl:when test="bookinfo/title"> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="bookinfo/subtitle"> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/> + <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="book.titlepage.verso"> +</xsl:template> + +<xsl:template name="book.titlepage.separator"><hr/> +</xsl:template> + +<xsl:template name="book.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="book.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="book.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="book.titlepage.before.recto"/> + <xsl:call-template name="book.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="book.titlepage.before.verso"/> + <xsl:call-template name="book.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="book.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="book.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="book.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="part.titlepage.recto"> + <div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:call-template name="division.title"> +<xsl:with-param name="node" select="ancestor-or-self::part[1]"/> +</xsl:call-template></div> + <xsl:choose> + <xsl:when test="partinfo/subtitle"> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/> + <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="part.titlepage.verso"> +</xsl:template> + +<xsl:template name="part.titlepage.separator"> +</xsl:template> + +<xsl:template name="part.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="part.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="part.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="part.titlepage.before.recto"/> + <xsl:call-template name="part.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="part.titlepage.before.verso"/> + <xsl:call-template name="part.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="part.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="part.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="part.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="partintro.titlepage.recto"> + <xsl:choose> + <xsl:when test="partintroinfo/title"> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/> + </xsl:when> + <xsl:when test="docinfo/title"> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="partintroinfo/subtitle"> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/> + <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="partintro.titlepage.verso"> +</xsl:template> + +<xsl:template name="partintro.titlepage.separator"> +</xsl:template> + +<xsl:template name="partintro.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="partintro.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="partintro.titlepage"> + <div> + <xsl:variable name="recto.content"> + <xsl:call-template name="partintro.titlepage.before.recto"/> + <xsl:call-template name="partintro.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="partintro.titlepage.before.verso"/> + <xsl:call-template name="partintro.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="partintro.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="partintro.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="partintro.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="reference.titlepage.recto"> + <xsl:choose> + <xsl:when test="referenceinfo/title"> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/> + </xsl:when> + <xsl:when test="docinfo/title"> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="referenceinfo/subtitle"> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/> + <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="reference.titlepage.verso"> +</xsl:template> + +<xsl:template name="reference.titlepage.separator"><hr/> +</xsl:template> + +<xsl:template name="reference.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="reference.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="reference.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="reference.titlepage.before.recto"/> + <xsl:call-template name="reference.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="reference.titlepage.before.verso"/> + <xsl:call-template name="reference.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="reference.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="reference.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="reference.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="refentry.titlepage.recto"> +</xsl:template> + +<xsl:template name="refentry.titlepage.verso"> +</xsl:template> + +<xsl:template name="refentry.titlepage.separator"> +</xsl:template> + +<xsl:template name="refentry.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="refentry.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="refentry.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="refentry.titlepage.before.recto"/> + <xsl:call-template name="refentry.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="refentry.titlepage.before.verso"/> + <xsl:call-template name="refentry.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="refentry.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="refentry.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="refentry.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template name="dedication.titlepage.recto"> + <div xsl:use-attribute-sets="dedication.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/> +</xsl:call-template></div> + <xsl:choose> + <xsl:when test="dedicationinfo/subtitle"> + <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + +</xsl:template> + +<xsl:template name="dedication.titlepage.verso"> +</xsl:template> + +<xsl:template name="dedication.titlepage.separator"> +</xsl:template> + +<xsl:template name="dedication.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="dedication.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="dedication.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="dedication.titlepage.before.recto"/> + <xsl:call-template name="dedication.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="dedication.titlepage.before.verso"/> + <xsl:call-template name="dedication.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="dedication.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="dedication.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="dedication.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="dedication.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="dedication.titlepage.recto.style"> +<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="preface.titlepage.recto"> + <xsl:choose> + <xsl:when test="prefaceinfo/title"> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/> + </xsl:when> + <xsl:when test="docinfo/title"> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="prefaceinfo/subtitle"> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/> + <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="preface.titlepage.verso"> +</xsl:template> + +<xsl:template name="preface.titlepage.separator"> +</xsl:template> + +<xsl:template name="preface.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="preface.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="preface.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="preface.titlepage.before.recto"/> + <xsl:call-template name="preface.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="preface.titlepage.before.verso"/> + <xsl:call-template name="preface.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="preface.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="preface.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="preface.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="chapter.titlepage.recto"> + <xsl:choose> + <xsl:when test="chapterinfo/title"> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/> + </xsl:when> + <xsl:when test="docinfo/title"> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="chapterinfo/subtitle"> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/> + <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="chapter.titlepage.verso"> +</xsl:template> + +<xsl:template name="chapter.titlepage.separator"> +</xsl:template> + +<xsl:template name="chapter.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="chapter.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="chapter.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="chapter.titlepage.before.recto"/> + <xsl:call-template name="chapter.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="chapter.titlepage.before.verso"/> + <xsl:call-template name="chapter.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="chapter.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="chapter.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="chapter.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="appendix.titlepage.recto"> + <xsl:choose> + <xsl:when test="appendixinfo/title"> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/> + </xsl:when> + <xsl:when test="docinfo/title"> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="appendixinfo/subtitle"> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/> + <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="appendix.titlepage.verso"> +</xsl:template> + +<xsl:template name="appendix.titlepage.separator"> +</xsl:template> + +<xsl:template name="appendix.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="appendix.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="appendix.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="appendix.titlepage.before.recto"/> + <xsl:call-template name="appendix.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="appendix.titlepage.before.verso"/> + <xsl:call-template name="appendix.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="appendix.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="appendix.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="appendix.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="section.titlepage.recto"> + <xsl:choose> + <xsl:when test="sectioninfo/title"> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="sectioninfo/subtitle"> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/> + <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="section.titlepage.verso"> +</xsl:template> + +<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="section.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="section.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="section.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="section.titlepage.before.recto"/> + <xsl:call-template name="section.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="section.titlepage.before.verso"/> + <xsl:call-template name="section.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="section.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="section.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="section.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect1.titlepage.recto"> + <xsl:choose> + <xsl:when test="sect1info/title"> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="sect1info/subtitle"> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/> + <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect1.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect1.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect1.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect1.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="sect1.titlepage.before.recto"/> + <xsl:call-template name="sect1.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="sect1.titlepage.before.verso"/> + <xsl:call-template name="sect1.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="sect1.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="sect1.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect1.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect2.titlepage.recto"> + <xsl:choose> + <xsl:when test="sect2info/title"> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="sect2info/subtitle"> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/> + <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect2.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect2.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect2.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect2.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="sect2.titlepage.before.recto"/> + <xsl:call-template name="sect2.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="sect2.titlepage.before.verso"/> + <xsl:call-template name="sect2.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="sect2.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="sect2.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect2.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect3.titlepage.recto"> + <xsl:choose> + <xsl:when test="sect3info/title"> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="sect3info/subtitle"> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/> + <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect3.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect3.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect3.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect3.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="sect3.titlepage.before.recto"/> + <xsl:call-template name="sect3.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="sect3.titlepage.before.verso"/> + <xsl:call-template name="sect3.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="sect3.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="sect3.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect3.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect4.titlepage.recto"> + <xsl:choose> + <xsl:when test="sect4info/title"> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="sect4info/subtitle"> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/> + <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect4.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect4.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect4.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect4.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="sect4.titlepage.before.recto"/> + <xsl:call-template name="sect4.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="sect4.titlepage.before.verso"/> + <xsl:call-template name="sect4.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="sect4.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="sect4.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect4.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect5.titlepage.recto"> + <xsl:choose> + <xsl:when test="sect5info/title"> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="sect5info/subtitle"> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/> + <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect5.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect5.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect5.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect5.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="sect5.titlepage.before.recto"/> + <xsl:call-template name="sect5.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="sect5.titlepage.before.verso"/> + <xsl:call-template name="sect5.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="sect5.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="sect5.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect5.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="simplesect.titlepage.recto"> + <xsl:choose> + <xsl:when test="simplesectinfo/title"> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/> + </xsl:when> + <xsl:when test="docinfo/title"> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/> + </xsl:when> + <xsl:when test="info/title"> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/> + </xsl:when> + </xsl:choose> + + <xsl:choose> + <xsl:when test="simplesectinfo/subtitle"> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/> + <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="simplesect.titlepage.verso"> +</xsl:template> + +<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="simplesect.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="simplesect.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="simplesect.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="simplesect.titlepage.before.recto"/> + <xsl:call-template name="simplesect.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="simplesect.titlepage.before.verso"/> + <xsl:call-template name="simplesect.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="simplesect.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="simplesect.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="simplesect.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="bibliography.titlepage.recto"> + <div xsl:use-attribute-sets="bibliography.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/> +</xsl:call-template></div> + <xsl:choose> + <xsl:when test="bibliographyinfo/subtitle"> + <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + +</xsl:template> + +<xsl:template name="bibliography.titlepage.verso"> +</xsl:template> + +<xsl:template name="bibliography.titlepage.separator"> +</xsl:template> + +<xsl:template name="bibliography.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="bibliography.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="bibliography.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="bibliography.titlepage.before.recto"/> + <xsl:call-template name="bibliography.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="bibliography.titlepage.before.verso"/> + <xsl:call-template name="bibliography.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="bibliography.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="bibliography.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="bibliography.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="bibliography.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="bibliography.titlepage.recto.style"> +<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="glossary.titlepage.recto"> + <div xsl:use-attribute-sets="glossary.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/> +</xsl:call-template></div> + <xsl:choose> + <xsl:when test="glossaryinfo/subtitle"> + <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + +</xsl:template> + +<xsl:template name="glossary.titlepage.verso"> +</xsl:template> + +<xsl:template name="glossary.titlepage.separator"> +</xsl:template> + +<xsl:template name="glossary.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="glossary.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="glossary.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="glossary.titlepage.before.recto"/> + <xsl:call-template name="glossary.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="glossary.titlepage.before.verso"/> + <xsl:call-template name="glossary.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="glossary.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="glossary.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="glossary.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="glossary.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="glossary.titlepage.recto.style"> +<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="index.titlepage.recto"> + <div xsl:use-attribute-sets="index.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::index[1]"/> +</xsl:call-template></div> + <xsl:choose> + <xsl:when test="indexinfo/subtitle"> + <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + +</xsl:template> + +<xsl:template name="index.titlepage.verso"> +</xsl:template> + +<xsl:template name="index.titlepage.separator"> +</xsl:template> + +<xsl:template name="index.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="index.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="index.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="index.titlepage.before.recto"/> + <xsl:call-template name="index.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="index.titlepage.before.verso"/> + <xsl:call-template name="index.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="index.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="index.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="index.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="index.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="index.titlepage.recto.style"> +<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="setindex.titlepage.recto"> + <div xsl:use-attribute-sets="setindex.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/> +</xsl:call-template></div> + <xsl:choose> + <xsl:when test="setindexinfo/subtitle"> + <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/> + </xsl:when> + <xsl:when test="docinfo/subtitle"> + <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/> + </xsl:when> + <xsl:when test="info/subtitle"> + <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/> + </xsl:when> + <xsl:when test="subtitle"> + <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/> + </xsl:when> + </xsl:choose> + +</xsl:template> + +<xsl:template name="setindex.titlepage.verso"> +</xsl:template> + +<xsl:template name="setindex.titlepage.separator"> +</xsl:template> + +<xsl:template name="setindex.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="setindex.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="setindex.titlepage"> + <div class="titlepage"> + <xsl:variable name="recto.content"> + <xsl:call-template name="setindex.titlepage.before.recto"/> + <xsl:call-template name="setindex.titlepage.recto"/> + </xsl:variable> + <xsl:variable name="recto.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> + <div><xsl:copy-of select="$recto.content"/></div> + </xsl:if> + <xsl:variable name="verso.content"> + <xsl:call-template name="setindex.titlepage.before.verso"/> + <xsl:call-template name="setindex.titlepage.verso"/> + </xsl:variable> + <xsl:variable name="verso.elements.count"> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> + <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> + <div><xsl:copy-of select="$verso.content"/></div> + </xsl:if> + <xsl:call-template name="setindex.titlepage.separator"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="setindex.titlepage.recto.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="setindex.titlepage.verso.mode"> + <!-- if an element isn't found in this mode, --> + <!-- try the generic titlepage.mode --> + <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="setindex.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="setindex.titlepage.recto.style"> +<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/> +</div> +</xsl:template> + +</xsl:stylesheet> + Added: box/trunk/docs/xsl-generic/html/titlepage.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/titlepage.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/titlepage.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1031 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version='1.0'> + +<!-- ******************************************************************** + $Id: titlepage.xsl 7253 2007-08-18 16:49:39Z mzjn $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:attribute-set name="book.titlepage.recto.style"/> +<xsl:attribute-set name="book.titlepage.verso.style"/> + +<xsl:attribute-set name="article.titlepage.recto.style"/> +<xsl:attribute-set name="article.titlepage.verso.style"/> + +<xsl:attribute-set name="set.titlepage.recto.style"/> +<xsl:attribute-set name="set.titlepage.verso.style"/> + +<xsl:attribute-set name="part.titlepage.recto.style"/> +<xsl:attribute-set name="part.titlepage.verso.style"/> + +<xsl:attribute-set name="partintro.titlepage.recto.style"/> +<xsl:attribute-set name="partintro.titlepage.verso.style"/> + +<xsl:attribute-set name="reference.titlepage.recto.style"/> +<xsl:attribute-set name="reference.titlepage.verso.style"/> + +<xsl:attribute-set name="refentry.titlepage.recto.style"/> +<xsl:attribute-set name="refentry.titlepage.verso.style"/> + +<xsl:attribute-set name="dedication.titlepage.recto.style"/> +<xsl:attribute-set name="dedication.titlepage.verso.style"/> + +<xsl:attribute-set name="preface.titlepage.recto.style"/> +<xsl:attribute-set name="preface.titlepage.verso.style"/> + +<xsl:attribute-set name="chapter.titlepage.recto.style"/> +<xsl:attribute-set name="chapter.titlepage.verso.style"/> + +<xsl:attribute-set name="appendix.titlepage.recto.style"/> +<xsl:attribute-set name="appendix.titlepage.verso.style"/> + +<xsl:attribute-set name="bibliography.titlepage.recto.style"/> +<xsl:attribute-set name="bibliography.titlepage.verso.style"/> + +<xsl:attribute-set name="glossary.titlepage.recto.style"/> +<xsl:attribute-set name="glossary.titlepage.verso.style"/> + +<xsl:attribute-set name="index.titlepage.recto.style"/> +<xsl:attribute-set name="index.titlepage.verso.style"/> + +<xsl:attribute-set name="setindex.titlepage.recto.style"/> +<xsl:attribute-set name="setindex.titlepage.verso.style"/> + +<xsl:attribute-set name="section.titlepage.recto.style"/> +<xsl:attribute-set name="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect1.titlepage.recto.style" + use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect1.titlepage.verso.style" + use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect2.titlepage.recto.style" + use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect2.titlepage.verso.style" + use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect3.titlepage.recto.style" + use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect3.titlepage.verso.style" + use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect4.titlepage.recto.style" + use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect4.titlepage.verso.style" + use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect5.titlepage.recto.style" + use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect5.titlepage.verso.style" + use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="simplesect.titlepage.recto.style" + use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="simplesect.titlepage.verso.style" + use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/> +<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="titlepage.mode"> + <!-- if an element isn't found in this mode, try the default mode --> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="abbrev" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="abstract" mode="titlepage.mode"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="anchor"/> + <xsl:if test="$abstract.notitle.enabled = 0"> + <xsl:call-template name="formal.object.heading"> + <xsl:with-param name="title"> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + <xsl:apply-templates mode="titlepage.mode"/> + <xsl:call-template name="process.footnotes"/> + </div> +</xsl:template> + +<xsl:template match="abstract/title" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="address" mode="titlepage.mode"> + <xsl:param name="suppress-numbers" select="'0'"/> + + <xsl:variable name="rtf"> + <xsl:apply-templates mode="titlepage.mode"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$suppress-numbers = '0' + and @linenumbering = 'numbered' + and $use.extensions != '0' + and $linenumbering.extension != '0'"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="paragraph"> + <xsl:with-param name="content"> + <xsl:call-template name="number.rtf.lines"> + <xsl:with-param name="rtf" select="$rtf"/> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + </div> + </xsl:when> + + <xsl:otherwise> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="paragraph"> + <xsl:with-param name="content"> + <xsl:call-template name="make-verbatim"> + <xsl:with-param name="rtf" select="$rtf"/> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + </div> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="affiliation" mode="titlepage.mode"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </div> +</xsl:template> + +<xsl:template match="artpagenums" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="author|editor" mode="titlepage.mode"> + <xsl:call-template name="credits.div"/> +</xsl:template> + +<xsl:template name="credits.div"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="self::editor[position()=1] and not($editedby.enabled = 0)"> + <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4> + </xsl:if> + <h3> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:choose> + <xsl:when test="orgname"> + <xsl:apply-templates/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="person.name"/> + </xsl:otherwise> + </xsl:choose> + </h3> + <xsl:if test="not($contrib.inline.enabled = 0)"> + <xsl:apply-templates mode="titlepage.mode" select="contrib"/> + </xsl:if> + <xsl:apply-templates mode="titlepage.mode" select="affiliation"/> + <xsl:apply-templates mode="titlepage.mode" select="email"/> + <xsl:if test="not($blurb.on.titlepage.enabled = 0)"> + <xsl:choose> + <xsl:when test="$contrib.inline.enabled = 0"> + <xsl:apply-templates mode="titlepage.mode" + select="contrib|authorblurb|personblurb"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="titlepage.mode" + select="authorblurb|personblurb"/> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </div> +</xsl:template> + +<xsl:template match="authorblurb|personblurb" mode="titlepage.mode"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </div> +</xsl:template> + +<xsl:template match="authorgroup" mode="titlepage.mode"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="anchor"/> + <xsl:apply-templates mode="titlepage.mode"/> + </div> +</xsl:template> + +<xsl:template match="authorinitials" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="bibliomisc" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="bibliomset" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="collab" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="collabname" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </span> +</xsl:template> + +<xsl:template match="confgroup" mode="titlepage.mode"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </div> +</xsl:template> + +<xsl:template match="confdates" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="confsponsor" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="conftitle" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="confnum" mode="titlepage.mode"> + <!-- suppress --> +</xsl:template> + +<xsl:template match="contractnum" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="contractsponsor" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="contrib" mode="titlepage.mode"> + <xsl:choose> + <xsl:when test="not($contrib.inline.enabled = 0)"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </span><xsl:text> </xsl:text> + </xsl:when> + <xsl:otherwise> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <p><xsl:apply-templates mode="titlepage.mode"/></p> + </div> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="copyright" mode="titlepage.mode"> + <p> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Copyright'"/> + </xsl:call-template> + <xsl:call-template name="gentext.space"/> + <xsl:call-template name="dingbat"> + <xsl:with-param name="dingbat">copyright</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="gentext.space"/> + <xsl:call-template name="copyright.years"> + <xsl:with-param name="years" select="year"/> + <xsl:with-param name="print.ranges" select="$make.year.ranges"/> + <xsl:with-param name="single.year.ranges" + select="$make.single.year.ranges"/> + </xsl:call-template> + <xsl:call-template name="gentext.space"/> + <xsl:apply-templates select="holder" mode="titlepage.mode"/> + </p> +</xsl:template> + +<xsl:template match="year" mode="titlepage.mode"> + <xsl:choose> + <xsl:when test="$show.revisionflag != 0 and @revisionflag"> + <span class="{@revisionflag}"> + <xsl:apply-templates mode="titlepage.mode"/> + </span> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="titlepage.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="holder" mode="titlepage.mode"> + <xsl:choose> + <xsl:when test="$show.revisionflag != 0 and @revisionflag"> + <span class="{@revisionflag}"> + <xsl:apply-templates mode="titlepage.mode"/> + </span> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="titlepage.mode"/> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="position() < last()"> + <xsl:text>, </xsl:text> + </xsl:if> +</xsl:template> + +<xsl:template match="corpauthor" mode="titlepage.mode"> + <h3> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </h3> +</xsl:template> + +<xsl:template match="corpcredit" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="corpname" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="date" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="edition" mode="titlepage.mode"> + <p> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <xsl:call-template name="gentext.space"/> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Edition'"/> + </xsl:call-template> + </p> +</xsl:template> + +<xsl:template match="email" mode="titlepage.mode"> + <!-- use the normal e-mail handling code --> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="firstname" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="graphic" mode="titlepage.mode"> + <!-- use the normal graphic handling code --> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="honorific" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="isbn" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="issn" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="biblioid" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="itermset" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="invpartnumber" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="issuenum" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="jobtitle" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="keywordset" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="legalnotice" mode="titlepage.mode"> + <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable> + + <xsl:choose> + <xsl:when test="$generate.legalnotice.link != 0"> + + <!-- Compute name of legalnotice file --> + <xsl:variable name="file"> + <xsl:call-template name="ln.or.rh.filename"/> + </xsl:variable> + + <xsl:variable name="filename"> + <xsl:call-template name="make-relative-filename"> + <xsl:with-param name="base.dir" select="$base.dir"/> + <xsl:with-param name="base.name" select="$file"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="title"> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:variable> + + <a href="{$file}"> + <xsl:copy-of select="$title"/> + </a> + + <xsl:call-template name="write.chunk"> + <xsl:with-param name="filename" select="$filename"/> + <xsl:with-param name="quiet" select="$chunk.quietly"/> + <xsl:with-param name="content"> + <xsl:call-template name="user.preroot"/> + <html> + <head> + <xsl:call-template name="system.head.content"/> + <xsl:call-template name="head.content"/> + <xsl:call-template name="user.head.content"/> + </head> + <body> + <xsl:call-template name="body.attributes"/> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </div> + </body> + </html> + <xsl:value-of select="$chunk.append"/> + </xsl:with-param> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <a name="{$id}"/> + <xsl:apply-templates mode="titlepage.mode"/> + </div> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="legalnotice/title" mode="titlepage.mode"> + <p class="legalnotice-title"><b><xsl:apply-templates/></b></p> +</xsl:template> + +<xsl:template match="lineage" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="modespec" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="orgdiv" mode="titlepage.mode"> + <xsl:if test="preceding-sibling::*[1][self::orgname]"> + <xsl:text> </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="orgname" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="othercredit" mode="titlepage.mode"> +<xsl:choose> + <xsl:when test="not($othercredit.like.author.enabled = 0)"> + <xsl:variable name="contrib" select="string(contrib)"/> + <xsl:choose> + <xsl:when test="contrib"> + <xsl:if test="not(preceding-sibling::othercredit[string(contrib)=$contrib])"> + <xsl:call-template name="paragraph"> + <xsl:with-param name="class" select="local-name(.)"/> + <xsl:with-param name="content"> + <xsl:apply-templates mode="titlepage.mode" select="contrib"/> + <xsl:text>: </xsl:text> + <xsl:call-template name="person.name"/> + <xsl:apply-templates mode="titlepage.mode" select="affiliation"/> + <xsl:apply-templates select="following-sibling::othercredit[string(contrib)=$contrib]" mode="titlepage.othercredits"/> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="paragraph"> + <xsl:with-param name="class" select="local-name(.)"/> + <xsl:with-param name="content"> + <xsl:call-template name="person.name"/> + </xsl:with-param> + </xsl:call-template> + <xsl:apply-templates mode="titlepage.mode" select="affiliation"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="credits.div"/> + </xsl:otherwise> +</xsl:choose> +</xsl:template> + +<xsl:template match="othercredit" mode="titlepage.othercredits"> + <xsl:text>, </xsl:text> + <xsl:call-template name="person.name"/> +</xsl:template> + +<xsl:template match="othername" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="pagenums" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="printhistory" mode="titlepage.mode"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </div> +</xsl:template> + +<xsl:template match="productname" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="productnumber" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="pubdate" mode="titlepage.mode"> + <xsl:call-template name="paragraph"> + <xsl:with-param name="class" select="local-name(.)"/> + <xsl:with-param name="content"> + <xsl:apply-templates mode="titlepage.mode"/> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template match="publisher" mode="titlepage.mode"> + <xsl:call-template name="paragraph"> + <xsl:with-param name="class" select="local-name(.)"/> + <xsl:with-param name="content"> + <xsl:apply-templates mode="titlepage.mode"/> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template match="publishername" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="pubsnumber" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="releaseinfo" mode="titlepage.mode"> + <xsl:call-template name="paragraph"> + <xsl:with-param name="class" select="local-name(.)"/> + <xsl:with-param name="content"> + <xsl:apply-templates mode="titlepage.mode"/> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template match="revhistory" mode="titlepage.mode"> + <xsl:variable name="numcols"> + <xsl:choose> + <xsl:when test=".//authorinitials|.//author">3</xsl:when> + <xsl:otherwise>2</xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable> + + <xsl:variable name="title"> + <xsl:call-template name="gentext"> + <xsl:with-param name="key">RevHistory</xsl:with-param> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="contents"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <table border="1" width="100%" summary="Revision history"> + <tr> + <th align="left" valign="top" colspan="{$numcols}"> + <b> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'RevHistory'"/> + </xsl:call-template> + </b> + </th> + </tr> + <xsl:apply-templates mode="titlepage.mode"> + <xsl:with-param name="numcols" select="$numcols"/> + </xsl:apply-templates> + </table> + </div> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$generate.revhistory.link != 0"> + + <!-- Compute name of revhistory file --> + <xsl:variable name="file"> + <xsl:call-template name="ln.or.rh.filename"> + <xsl:with-param name="is.ln" select="false()"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="filename"> + <xsl:call-template name="make-relative-filename"> + <xsl:with-param name="base.dir" select="$base.dir"/> + <xsl:with-param name="base.name" select="$file"/> + </xsl:call-template> + </xsl:variable> + + <a href="{$file}"> + <xsl:copy-of select="$title"/> + </a> + + <xsl:call-template name="write.chunk"> + <xsl:with-param name="filename" select="$filename"/> + <xsl:with-param name="quiet" select="$chunk.quietly"/> + <xsl:with-param name="content"> + <xsl:call-template name="user.preroot"/> + <html> + <head> + <xsl:call-template name="system.head.content"/> + <xsl:call-template name="head.content"> + <xsl:with-param name="title"> + <xsl:value-of select="$title"/> + <xsl:if test="../../title"> + <xsl:value-of select="concat(' (', ../../title, ')')"/> + </xsl:if> + </xsl:with-param> + </xsl:call-template> + <xsl:call-template name="user.head.content"/> + </head> + <body> + <xsl:call-template name="body.attributes"/> + <xsl:copy-of select="$contents"/> + </body> + </html> + <xsl:text> </xsl:text> + </xsl:with-param> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$contents"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="revhistory/revision" mode="titlepage.mode"> + <xsl:param name="numcols" select="'3'"/> + <xsl:variable name="revnumber" select="revnumber"/> + <xsl:variable name="revdate" select="date"/> + <xsl:variable name="revauthor" select="authorinitials|author"/> + <xsl:variable name="revremark" select="revremark|revdescription"/> + <tr> + <td align="left"> + <xsl:if test="$revnumber"> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Revision'"/> + </xsl:call-template> + <xsl:call-template name="gentext.space"/> + <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/> + </xsl:if> + </td> + <td align="left"> + <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/> + </td> + <xsl:choose> + <xsl:when test="$revauthor"> + <td align="left"> + <xsl:for-each select="$revauthor"> + <xsl:apply-templates select="." mode="titlepage.mode"/> + <xsl:if test="position() != last()"> + <xsl:text>, </xsl:text> + </xsl:if> + </xsl:for-each> + </td> + </xsl:when> + <xsl:when test="$numcols > 2"> + <td> </td> + </xsl:when> + <xsl:otherwise></xsl:otherwise> + </xsl:choose> + </tr> + <xsl:if test="$revremark"> + <tr> + <td align="left" colspan="{$numcols}"> + <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/> + </td> + </tr> + </xsl:if> +</xsl:template> + +<xsl:template match="revision/revnumber" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/date" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/authorinitials" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/author" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/revremark" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/revdescription" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="seriesvolnums" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="shortaffil" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="subjectset" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="subtitle" mode="titlepage.mode"> + <h2> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + </h2> +</xsl:template> + +<xsl:template match="surname" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<xsl:template match="title" mode="titlepage.mode"> + <xsl:variable name="id"> + <xsl:choose> + <!-- if title is in an *info wrapper, get the grandparent --> + <xsl:when test="contains(local-name(..), 'info')"> + <xsl:call-template name="object.id"> + <xsl:with-param name="object" select="../.."/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="object.id"> + <xsl:with-param name="object" select=".."/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <h1> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="$generate.id.attributes = 0"> + <a name="{$id}"/> + </xsl:if> + <xsl:choose> + <xsl:when test="$show.revisionflag != 0 and @revisionflag"> + <span class="{@revisionflag}"> + <xsl:apply-templates mode="titlepage.mode"/> + </span> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="titlepage.mode"/> + </xsl:otherwise> + </xsl:choose> + </h1> +</xsl:template> + +<xsl:template match="titleabbrev" mode="titlepage.mode"> + <!-- nop; title abbreviations don't belong on the title page! --> +</xsl:template> + +<xsl:template match="volumenum" mode="titlepage.mode"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="titlepage.mode"/> + <br/> + </span> +</xsl:template> + +<!-- This template computes the filename for legalnotice and revhistory chunks --> +<xsl:template name="ln.or.rh.filename"> + <xsl:param name="node" select="."/> + <xsl:param name="is.ln" select="true()"/> + + <xsl:variable name="dbhtml-filename"> + <xsl:call-template name="pi.dbhtml_filename"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + </xsl:variable> + + <xsl:choose> + <!-- 1. If there is a dbhtml_filename PI, use that --> + <xsl:when test="$dbhtml-filename != ''"> + <xsl:value-of select="$dbhtml-filename"/> + </xsl:when> + <xsl:when test="($node/@id or $node/@xml:id) and not($use.id.as.filename = 0)"> + <!-- * 2. If this legalnotice/revhistory has an ID, then go ahead and use --> + <!-- * just the value of that ID as the basename for the file --> + <!-- * (that is, without prepending an "ln-" or "rh-" to it) --> + <xsl:value-of select="($node/@id|$node/@xml:id)[1]"/> + <xsl:value-of select="$html.ext"/> + </xsl:when> + <xsl:when test="not ($node/@id or $node/@xml:id) or $use.id.as.filename = 0"> + <!-- * 3. Otherwise, if this legalnotice/revhistory does not have an ID, or --> + <!-- * if $use.id.as.filename = 0 --> + <!-- * then we generate an ID... --> + <xsl:variable name="id"> + <xsl:value-of select="generate-id($node)"/> + </xsl:variable> + <!-- * ...and then we take that generated ID, prepend a --> + <!-- * prefix to it, and use that as the basename for the file --> + <xsl:choose> + <xsl:when test="$is.ln"> + <xsl:value-of select="concat('ln-',$id,$html.ext)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="concat('rh-',$id,$html.ext)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/html/toc.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/toc.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/toc.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,173 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version='1.0'> + +<!-- ******************************************************************** + $Id: toc.xsl 6910 2007-06-28 23:23:30Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="toc"> + <xsl:choose> + <xsl:when test="*"> + <xsl:if test="$process.source.toc != 0"> + <!-- if the toc isn't empty, process it --> + <xsl:element name="{$toc.list.type}"> + <xsl:apply-templates/> + </xsl:element> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:if test="$process.empty.source.toc != 0"> + <xsl:choose> + <xsl:when test="parent::section + or parent::sect1 + or parent::sect2 + or parent::sect3 + or parent::sect4 + or parent::sect5"> + <xsl:apply-templates select="parent::*" + mode="toc.for.section"/> + </xsl:when> + <xsl:when test="parent::article"> + <xsl:apply-templates select="parent::*" + mode="toc.for.component"/> + </xsl:when> + <xsl:when test="parent::book + or parent::part"> + <xsl:apply-templates select="parent::*" + mode="toc.for.division"/> + </xsl:when> + <xsl:when test="parent::set"> + <xsl:apply-templates select="parent::*" + mode="toc.for.set"/> + </xsl:when> + <!-- there aren't any other contexts that allow toc --> + <xsl:otherwise> + <xsl:message> + <xsl:text>I don't know how to make a TOC in this context!</xsl:text> + </xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="tocpart|tocchap + |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"> + <xsl:variable name="sub-toc"> + <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"> + <xsl:choose> + <xsl:when test="$toc.list.type = 'dl'"> + <dd> + <xsl:element name="{$toc.list.type}"> + <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/> + </xsl:element> + </dd> + </xsl:when> + <xsl:otherwise> + <xsl:element name="{$toc.list.type}"> + <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/> + </xsl:element> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:variable> + + <xsl:apply-templates select="tocentry[position() != last()]"/> + + <xsl:choose> + <xsl:when test="$toc.list.type = 'dl'"> + <dt> + <xsl:apply-templates select="tocentry[position() = last()]"/> + </dt> + <xsl:copy-of select="$sub-toc"/> + </xsl:when> + <xsl:otherwise> + <li> + <xsl:apply-templates select="tocentry[position() = last()]"/> + <xsl:copy-of select="$sub-toc"/> + </li> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="tocentry|tocfront|tocback"> + <xsl:choose> + <xsl:when test="$toc.list.type = 'dl'"> + <dt> + <xsl:call-template name="tocentry-content"/> + </dt> + </xsl:when> + <xsl:otherwise> + <li> + <xsl:call-template name="tocentry-content"/> + </li> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="tocentry[position() = last()]" priority="2"> + <xsl:call-template name="tocentry-content"/> +</xsl:template> + +<xsl:template name="tocentry-content"> + <xsl:variable name="targets" select="key('id', at linkend)"/> + <xsl:variable name="target" select="$targets[1]"/> + + <xsl:choose> + <xsl:when test="@linkend"> + <xsl:call-template name="check.id.unique"> + <xsl:with-param name="linkend" select="@linkend"/> + </xsl:call-template> + <a> + <xsl:attribute name="href"> + <xsl:call-template name="href.target"> + <xsl:with-param name="object" select="$target"/> + </xsl:call-template> + </xsl:attribute> + <xsl:apply-templates/> + </a> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="toc.for.section"> + <xsl:call-template name="section.toc"/> +</xsl:template> + +<xsl:template match="*" mode="toc.for.component"> + <xsl:call-template name="component.toc"/> +</xsl:template> + +<xsl:template match="*" mode="toc.for.section"> + <xsl:call-template name="section.toc"/> +</xsl:template> + +<xsl:template match="*" mode="toc.for.division"> + <xsl:call-template name="division.toc"/> +</xsl:template> + +<xsl:template match="*" mode="toc.for.set"> + <xsl:call-template name="set.toc"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="lot|lotentry"> +</xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/html/verbatim.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/verbatim.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/verbatim.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,376 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim" + xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim" + xmlns:lxslt="http://xml.apache.org/xslt" + xmlns:exsl="http://exslt.org/common" + exclude-result-prefixes="sverb xverb lxslt exsl" + version='1.0'> + +<!-- ******************************************************************** + $Id: verbatim.xsl 6946 2007-07-04 10:21:57Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<xsl:include href="../highlighting/common.xsl"/> +<xsl:include href="highlight.xsl"/> + +<lxslt:component prefix="xverb" + functions="numberLines"/> + +<xsl:template match="programlisting|screen|synopsis"> + <xsl:param name="suppress-numbers" select="'0'"/> + <xsl:variable name="id"> + <xsl:call-template name="object.id"/> + </xsl:variable> + + <xsl:call-template name="anchor"/> + + <xsl:if test="$shade.verbatim != 0"> + <xsl:message> + <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text> + <xsl:text>Use CSS instead,</xsl:text> + </xsl:message> + <xsl:message> + <xsl:text>for example: pre.</xsl:text> + <xsl:value-of select="local-name(.)"/> + <xsl:text> { background-color: #E0E0E0; }</xsl:text> + </xsl:message> + </xsl:if> + + <xsl:choose> + <xsl:when test="$suppress-numbers = '0' + and @linenumbering = 'numbered' + and $use.extensions != '0' + and $linenumbering.extension != '0'"> + <xsl:variable name="rtf"> + <xsl:call-template name="apply-highlighting"/> + </xsl:variable> + <pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="number.rtf.lines"> + <xsl:with-param name="rtf" select="$rtf"/> + </xsl:call-template> + </pre> + </xsl:when> + <xsl:otherwise> + <pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="apply-highlighting"/> + </pre> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="literallayout"> + <xsl:param name="suppress-numbers" select="'0'"/> + + <xsl:variable name="rtf"> + <xsl:apply-templates/> + </xsl:variable> + + <xsl:if test="$shade.verbatim != 0 and @class='monospaced'"> + <xsl:message> + <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text> + <xsl:text>Use CSS instead,</xsl:text> + </xsl:message> + <xsl:message> + <xsl:text>for example: pre.</xsl:text> + <xsl:value-of select="local-name(.)"/> + <xsl:text> { background-color: #E0E0E0; }</xsl:text> + </xsl:message> + </xsl:if> + + <xsl:choose> + <xsl:when test="$suppress-numbers = '0' + and @linenumbering = 'numbered' + and $use.extensions != '0' + and $linenumbering.extension != '0'"> + <xsl:choose> + <xsl:when test="@class='monospaced'"> + <pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="number.rtf.lines"> + <xsl:with-param name="rtf" select="$rtf"/> + </xsl:call-template> + </pre> + </xsl:when> + <xsl:otherwise> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <p> + <xsl:call-template name="number.rtf.lines"> + <xsl:with-param name="rtf" select="$rtf"/> + </xsl:call-template> + </p> + </div> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="@class='monospaced'"> + <pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:copy-of select="$rtf"/> + </pre> + </xsl:when> + <xsl:otherwise> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <p> + <xsl:call-template name="make-verbatim"> + <xsl:with-param name="rtf" select="$rtf"/> + </xsl:call-template> + </p> + </div> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="address"> + <xsl:param name="suppress-numbers" select="'0'"/> + + <xsl:variable name="rtf"> + <xsl:apply-templates/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$suppress-numbers = '0' + and @linenumbering = 'numbered' + and $use.extensions != '0' + and $linenumbering.extension != '0'"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <p> + <xsl:call-template name="number.rtf.lines"> + <xsl:with-param name="rtf" select="$rtf"/> + </xsl:call-template> + </p> + </div> + </xsl:when> + + <xsl:otherwise> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <p> + <xsl:call-template name="make-verbatim"> + <xsl:with-param name="rtf" select="$rtf"/> + </xsl:call-template> + </p> + </div> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="number.rtf.lines"> + <xsl:param name="rtf" select="''"/> + <xsl:param name="pi.context" select="."/> + + <!-- Save the global values --> + <xsl:variable name="global.linenumbering.everyNth" + select="$linenumbering.everyNth"/> + + <xsl:variable name="global.linenumbering.separator" + select="$linenumbering.separator"/> + + <xsl:variable name="global.linenumbering.width" + select="$linenumbering.width"/> + + <!-- Extract the <?dbhtml linenumbering.*?> PI values --> + <xsl:variable name="pi.linenumbering.everyNth"> + <xsl:call-template name="pi.dbhtml_linenumbering.everyNth"> + <xsl:with-param name="node" select="$pi.context"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="pi.linenumbering.separator"> + <xsl:call-template name="pi.dbhtml_linenumbering.separator"> + <xsl:with-param name="node" select="$pi.context"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="pi.linenumbering.width"> + <xsl:call-template name="pi.dbhtml_linenumbering.width"> + <xsl:with-param name="node" select="$pi.context"/> + </xsl:call-template> + </xsl:variable> + + <!-- Construct the 'in-context' values --> + <xsl:variable name="linenumbering.everyNth"> + <xsl:choose> + <xsl:when test="$pi.linenumbering.everyNth != ''"> + <xsl:value-of select="$pi.linenumbering.everyNth"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$global.linenumbering.everyNth"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="linenumbering.separator"> + <xsl:choose> + <xsl:when test="$pi.linenumbering.separator != ''"> + <xsl:value-of select="$pi.linenumbering.separator"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$global.linenumbering.separator"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="linenumbering.width"> + <xsl:choose> + <xsl:when test="$pi.linenumbering.width != ''"> + <xsl:value-of select="$pi.linenumbering.width"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$global.linenumbering.width"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="linenumbering.startinglinenumber"> + <xsl:choose> + <xsl:when test="$pi.context/@startinglinenumber"> + <xsl:value-of select="$pi.context/@startinglinenumber"/> + </xsl:when> + <xsl:when test="$pi.context/@continuation='continues'"> + <xsl:variable name="lastLine"> + <xsl:choose> + <xsl:when test="$pi.context/self::programlisting"> + <xsl:call-template name="lastLineNumber"> + <xsl:with-param name="listings" + select="preceding::programlisting[@linenumbering='numbered']"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$pi.context/self::screen"> + <xsl:call-template name="lastLineNumber"> + <xsl:with-param name="listings" + select="preceding::screen[@linenumbering='numbered']"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$pi.context/self::literallayout"> + <xsl:call-template name="lastLineNumber"> + <xsl:with-param name="listings" + select="preceding::literallayout[@linenumbering='numbered']"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$pi.context/self::address"> + <xsl:call-template name="lastLineNumber"> + <xsl:with-param name="listings" + select="preceding::address[@linenumbering='numbered']"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$pi.context/self::synopsis"> + <xsl:call-template name="lastLineNumber"> + <xsl:with-param name="listings" + select="preceding::synopsis[@linenumbering='numbered']"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:message> + <xsl:text>Unexpected verbatim environment: </xsl:text> + <xsl:value-of select="local-name($pi.context)"/> + </xsl:message> + <xsl:value-of select="0"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:value-of select="$lastLine + 1"/> + </xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:choose> + <xsl:when test="function-available('sverb:numberLines')"> + <xsl:copy-of select="sverb:numberLines($rtf)"/> + </xsl:when> + <xsl:when test="function-available('xverb:numberLines')"> + <xsl:copy-of select="xverb:numberLines($rtf)"/> + </xsl:when> + <xsl:otherwise> + <xsl:message terminate="yes"> + <xsl:text>No numberLines function available.</xsl:text> + </xsl:message> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="make-verbatim"> + <xsl:param name="rtf"/> + + <!-- I want to make this RTF verbatim. There are two possibilities: either + I have access to the exsl:node-set extension function and I can "do it right" + or I have to rely on CSS. --> + + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"> + <xsl:apply-templates select="exsl:node-set($rtf)" mode="make.verbatim.mode"/> + </xsl:when> + <xsl:otherwise> + <span style="white-space: pre;"> + <xsl:copy-of select="$rtf"/> + </span> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================== --> + +<xsl:template name="lastLineNumber"> + <xsl:param name="listings"/> + <xsl:param name="number" select="0"/> + + <xsl:variable name="lines"> + <xsl:call-template name="countLines"> + <xsl:with-param name="listing" select="string($listings[1])"/> + </xsl:call-template> + </xsl:variable> + + <xsl:choose> + <xsl:when test="not($listings)"> + <xsl:value-of select="$number"/> + </xsl:when> + <xsl:when test="$listings[1]/@startinglinenumber"> + <xsl:value-of select="$number + $listings[1]/@startinglinenumber + $lines - 1"/> + </xsl:when> + <xsl:when test="$listings[1]/@continuation='continues'"> + <xsl:call-template name="lastLineNumber"> + <xsl:with-param name="listings" select="listings[position() > 1]"/> + <xsl:with-param name="number" select="$number + $lines"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$lines"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="countLines"> + <xsl:param name="listing"/> + <xsl:param name="count" select="1"/> + + <xsl:choose> + <xsl:when test="contains($listing, ' ')"> + <xsl:call-template name="countLines"> + <xsl:with-param name="listing" select="substring-after($listing, ' ')"/> + <xsl:with-param name="count" select="$count + 1"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$count"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/html/xref.xsl =================================================================== --- box/trunk/docs/xsl-generic/html/xref.xsl (rev 0) +++ box/trunk/docs/xsl-generic/html/xref.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1348 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks" + xmlns:exsl="http://exslt.org/common" + xmlns:xlink='http://www.w3.org/1999/xlink' + exclude-result-prefixes="suwl exsl xlink" + version='1.0'> + +<!-- ******************************************************************** + $Id: xref.xsl 7107 2007-07-22 10:22:06Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- Use internal variable for olink xlink role for consistency --> +<xsl:variable + name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable> + +<!-- ==================================================================== --> + +<xsl:template match="anchor"> + <xsl:call-template name="anchor"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="xref" name="xref"> + <xsl:param name="xhref" select="@xlink:href"/> + <!-- is the @xlink:href a local idref link? --> + <xsl:param name="xlink.idref"> + <xsl:if test="starts-with($xhref,'#') + and (not(contains($xhref,'(')) + or starts-with($xhref, '#xpointer(id('))"> + <xsl:call-template name="xpointer.idref"> + <xsl:with-param name="xpointer" select="$xhref"/> + </xsl:call-template> + </xsl:if> + </xsl:param> + <xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/> + <xsl:param name="linkend.targets" select="key('id', at linkend)"/> + <xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/> + + <xsl:variable name="xrefstyle"> + <xsl:choose> + <xsl:when test="@role and not(@xrefstyle) + and $use.role.as.xrefstyle != 0"> + <xsl:value-of select="@role"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@xrefstyle"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:call-template name="anchor"/> + + <xsl:variable name="content"> + <xsl:choose> + + <xsl:when test="@endterm"> + <xsl:variable name="etargets" select="key('id', at endterm)"/> + <xsl:variable name="etarget" select="$etargets[1]"/> + <xsl:choose> + <xsl:when test="count($etarget) = 0"> + <xsl:message> + <xsl:value-of select="count($etargets)"/> + <xsl:text>Endterm points to nonexistent ID: </xsl:text> + <xsl:value-of select="@endterm"/> + </xsl:message> + <xsl:text>???</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="$etarget" mode="endterm"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + + <xsl:when test="$target/@xreflabel"> + <xsl:call-template name="xref.xreflabel"> + <xsl:with-param name="target" select="$target"/> + </xsl:call-template> + </xsl:when> + + <xsl:when test="$target"> + <xsl:if test="not(parent::citation)"> + <xsl:apply-templates select="$target" mode="xref-to-prefix"/> + </xsl:if> + + <xsl:apply-templates select="$target" mode="xref-to"> + <xsl:with-param name="referrer" select="."/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + </xsl:apply-templates> + + <xsl:if test="not(parent::citation)"> + <xsl:apply-templates select="$target" mode="xref-to-suffix"/> + </xsl:if> + </xsl:when> + + <xsl:otherwise> + <xsl:message> + <xsl:text>ERROR: xref linking to </xsl:text> + <xsl:value-of select="@linkend|@xlink:href"/> + <xsl:text> has no generated link text.</xsl:text> + </xsl:message> + <xsl:text>???</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:call-template name="simple.xlink"> + <xsl:with-param name="content" select="$content"/> + </xsl:call-template> + +</xsl:template> + +<!-- ==================================================================== --> + +<!-- biblioref handled largely like an xref --> +<!-- To be done: add support for begin, end, and units attributes --> +<xsl:template match="biblioref"> + <xsl:variable name="targets" select="key('id', at linkend)"/> + <xsl:variable name="target" select="$targets[1]"/> + <xsl:variable name="refelem" select="local-name($target)"/> + + <xsl:call-template name="check.id.unique"> + <xsl:with-param name="linkend" select="@linkend"/> + </xsl:call-template> + + <xsl:call-template name="anchor"/> + + <xsl:choose> + <xsl:when test="count($target) = 0"> + <xsl:message> + <xsl:text>XRef to nonexistent id: </xsl:text> + <xsl:value-of select="@linkend"/> + </xsl:message> + <xsl:text>???</xsl:text> + </xsl:when> + + <xsl:when test="@endterm"> + <xsl:variable name="href"> + <xsl:call-template name="href.target"> + <xsl:with-param name="object" select="$target"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="etargets" select="key('id', at endterm)"/> + <xsl:variable name="etarget" select="$etargets[1]"/> + <xsl:choose> + <xsl:when test="count($etarget) = 0"> + <xsl:message> + <xsl:value-of select="count($etargets)"/> + <xsl:text>Endterm points to nonexistent ID: </xsl:text> + <xsl:value-of select="@endterm"/> + </xsl:message> + <a href="{$href}"> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>???</xsl:text> + </a> + </xsl:when> + <xsl:otherwise> + <a href="{$href}"> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates select="$etarget" mode="endterm"/> + </a> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + + <xsl:when test="$target/@xreflabel"> + <a> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:attribute name="href"> + <xsl:call-template name="href.target"> + <xsl:with-param name="object" select="$target"/> + </xsl:call-template> + </xsl:attribute> + <xsl:call-template name="xref.xreflabel"> + <xsl:with-param name="target" select="$target"/> + </xsl:call-template> + </a> + </xsl:when> + + <xsl:otherwise> + <xsl:variable name="href"> + <xsl:call-template name="href.target"> + <xsl:with-param name="object" select="$target"/> + </xsl:call-template> + </xsl:variable> + + <xsl:if test="not(parent::citation)"> + <xsl:apply-templates select="$target" mode="xref-to-prefix"/> + </xsl:if> + + <a href="{$href}"> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="$target/title or $target/*/title"> + <xsl:attribute name="title"> + <xsl:apply-templates select="$target" mode="xref-title"/> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates select="$target" mode="xref-to"> + <xsl:with-param name="referrer" select="."/> + <xsl:with-param name="xrefstyle"> + <xsl:choose> + <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0"> + <xsl:value-of select="@role"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@xrefstyle"/> + </xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:apply-templates> + </a> + + <xsl:if test="not(parent::citation)"> + <xsl:apply-templates select="$target" mode="xref-to-suffix"/> + </xsl:if> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="endterm"> + <!-- Process the children of the endterm element --> + <xsl:variable name="endterm"> + <xsl:apply-templates select="child::node()"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"> + <xsl:apply-templates select="exsl:node-set($endterm)" mode="remove-ids"/> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$endterm"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="remove-ids"> + <xsl:choose> + <!-- handle html or xhtml --> + <xsl:when test="local-name(.) = 'a' + and (namespace-uri(.) = '' + or namespace-uri(.) = 'http://www.w3.org/1999/xhtml')"> + <xsl:choose> + <xsl:when test="(@name and count(@*) = 1) + or (@id and count(@*) = 1) + or (@xml:id and count(@*) = 1) + or (@xml:id and @name and count(@*) = 2) + or (@id and @name and count(@*) = 2)"> + <xsl:message>suppress anchor</xsl:message> + <!-- suppress the whole thing --> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:for-each select="@*"> + <xsl:choose> + <xsl:when test="local-name(.) != 'name' and local-name(.) != 'id'"> + <xsl:copy/> + </xsl:when> + <xsl:otherwise> + <xsl:message>removing <xsl:value-of + select="local-name(.)"/></xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:copy> + <xsl:apply-templates mode="remove-ids"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:for-each select="@*"> + <xsl:choose> + <xsl:when test="local-name(.) != 'id'"> + <xsl:copy/> + </xsl:when> + <xsl:otherwise> + <xsl:message>removing <xsl:value-of + select="local-name(.)"/></xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:apply-templates mode="remove-ids"/> + </xsl:copy> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="xref-to-prefix"/> +<xsl:template match="*" mode="xref-to-suffix"/> + +<xsl:template match="*" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:if test="$verbose"> + <xsl:message> + <xsl:text>Don't know what gentext to create for xref to: "</xsl:text> + <xsl:value-of select="name(.)"/> + <xsl:text>", ("</xsl:text> + <xsl:value-of select="(@id|@xml:id)[1]"/> + <xsl:text>")</xsl:text> + </xsl:message> + </xsl:if> + <xsl:text>???</xsl:text> +</xsl:template> + +<xsl:template match="title" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <!-- if you xref to a title, xref to the parent... --> + <xsl:choose> + <!-- FIXME: how reliable is this? --> + <xsl:when test="contains(local-name(parent::*), 'info')"> + <xsl:apply-templates select="parent::*[2]" mode="xref-to"> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="parent::*" mode="xref-to"> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="abstract|authorblurb|personblurb|bibliodiv|bibliomset + |biblioset|blockquote|calloutlist|caution|colophon + |constraintdef|formalpara|glossdiv|important|indexdiv + |itemizedlist|legalnotice|lot|msg|msgexplan|msgmain + |msgrel|msgset|msgsub|note|orderedlist|partintro + |productionset|qandadiv|refsynopsisdiv|segmentedlist + |set|setindex|sidebar|tip|toc|variablelist|warning" + mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <!-- catch-all for things with (possibly optional) titles --> + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="author|editor|othercredit|personname" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + + <xsl:call-template name="person.name"/> +</xsl:template> + +<xsl:template match="authorgroup" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + + <xsl:call-template name="person.name.list"/> +</xsl:template> + +<xsl:template match="figure|example|table|equation" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="procedure" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="task" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="cmdsynopsis" mode="xref-to"> + <xsl:apply-templates select="(.//command)[1]" mode="xref"/> +</xsl:template> + +<xsl:template match="funcsynopsis" mode="xref-to"> + <xsl:apply-templates select="(.//function)[1]" mode="xref"/> +</xsl:template> + +<xsl:template match="dedication|preface|chapter|appendix|article" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="bibliography" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="xref-to-prefix"> + <xsl:text>[</xsl:text> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="xref-to-suffix"> + <xsl:text>]</xsl:text> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <!-- handles both biblioentry and bibliomixed --> + <xsl:choose> + <xsl:when test="string(.) = ''"> + <xsl:variable name="bib" select="document($bibliography.collection,.)"/> + <xsl:variable name="id" select="(@id|@xml:id)[1]"/> + <xsl:variable name="entry" select="$bib/bibliography/ + *[@id=$id or @xml:id=$id][1]"/> + <xsl:choose> + <xsl:when test="$entry"> + <xsl:choose> + <xsl:when test="$bibliography.numbered != 0"> + <xsl:number from="bibliography" count="biblioentry|bibliomixed" + level="any" format="1"/> + </xsl:when> + <xsl:when test="local-name($entry/*[1]) = 'abbrev'"> + <xsl:apply-templates select="$entry/*[1]"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="(@id|@xml:id)[1]"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:message> + <xsl:text>No bibliography entry: </xsl:text> + <xsl:value-of select="$id"/> + <xsl:text> found in </xsl:text> + <xsl:value-of select="$bibliography.collection"/> + </xsl:message> + <xsl:value-of select="(@id|@xml:id)[1]"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="$bibliography.numbered != 0"> + <xsl:number from="bibliography" count="biblioentry|bibliomixed" + level="any" format="1"/> + </xsl:when> + <xsl:when test="local-name(*[1]) = 'abbrev'"> + <xsl:apply-templates select="*[1]"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="(@id|@xml:id)[1]"/> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="glossary" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="glossentry" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + <xsl:choose> + <xsl:when test="$glossentry.show.acronym = 'primary'"> + <xsl:choose> + <xsl:when test="acronym|abbrev"> + <xsl:apply-templates select="(acronym|abbrev)[1]"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="glossterm[1]" mode="xref-to"> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="glossterm[1]" mode="xref-to"> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="glossterm" mode="xref-to"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="index" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="listitem" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="section|simplesect + |sect1|sect2|sect3|sect4|sect5 + |refsect1|refsect2|refsect3|refsection" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> + <!-- FIXME: What about "in Chapter X"? --> +</xsl:template> + +<xsl:template match="bridgehead" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> + <!-- FIXME: What about "in Chapter X"? --> +</xsl:template> + +<xsl:template match="qandaset" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="qandadiv" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="qandaentry" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="question[1]" mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="question|answer" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="part|reference" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="refentry" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + + <xsl:choose> + <xsl:when test="refmeta/refentrytitle"> + <xsl:apply-templates select="refmeta/refentrytitle"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="refnamediv/refname[1]"/> + </xsl:otherwise> + </xsl:choose> + <xsl:apply-templates select="refmeta/manvolnum"/> +</xsl:template> + +<xsl:template match="refnamediv" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="refname[1]" mode="xref-to"> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="refname" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates mode="xref-to"/> +</xsl:template> + +<xsl:template match="step" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Step'"/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:apply-templates select="." mode="number"/> +</xsl:template> + +<xsl:template match="varlistentry" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="term[1]" mode="xref-to"> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="varlistentry/term" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + + <!-- to avoid the comma that will be generated if there are several terms --> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="co" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + + <xsl:apply-templates select="." mode="callout-bug"/> +</xsl:template> + +<xsl:template match="area|areaset" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + + <xsl:call-template name="callout-bug"> + <xsl:with-param name="conum"> + <xsl:apply-templates select="." mode="conumber"/> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template match="book" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:apply-templates select="." mode="object.xref.markup"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="para" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + + <xsl:variable name="context" select="(ancestor::simplesect + |ancestor::section + |ancestor::sect1 + |ancestor::sect2 + |ancestor::sect3 + |ancestor::sect4 + |ancestor::sect5 + |ancestor::refsection + |ancestor::refsect1 + |ancestor::refsect2 + |ancestor::refsect3 + |ancestor::chapter + |ancestor::appendix + |ancestor::preface + |ancestor::partintro + |ancestor::dedication + |ancestor::colophon + |ancestor::bibliography + |ancestor::index + |ancestor::glossary + |ancestor::glossentry + |ancestor::listitem + |ancestor::varlistentry)[last()]"/> + + <xsl:apply-templates select="$context" mode="xref-to"> + <xsl:with-param name="purpose" select="'xref'"/> + <xsl:with-param name="xrefstyle" select="$xrefstyle"/> + <xsl:with-param name="referrer" select="$referrer"/> + <xsl:with-param name="verbose" select="$verbose"/> + </xsl:apply-templates> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="xref-title"> + <xsl:variable name="title"> + <xsl:apply-templates select="." mode="object.title.markup"/> + </xsl:variable> + + <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="author" mode="xref-title"> + <xsl:variable name="title"> + <xsl:call-template name="person.name"/> + </xsl:variable> + + <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="authorgroup" mode="xref-title"> + <xsl:variable name="title"> + <xsl:call-template name="person.name.list"/> + </xsl:variable> + + <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="cmdsynopsis" mode="xref-title"> + <xsl:variable name="title"> + <xsl:apply-templates select="(.//command)[1]" mode="xref"/> + </xsl:variable> + + <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="funcsynopsis" mode="xref-title"> + <xsl:variable name="title"> + <xsl:apply-templates select="(.//function)[1]" mode="xref"/> + </xsl:variable> + + <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="xref-title"> + <!-- handles both biblioentry and bibliomixed --> + <xsl:variable name="title"> + <xsl:text>[</xsl:text> + <xsl:choose> + <xsl:when test="local-name(*[1]) = 'abbrev'"> + <xsl:apply-templates select="*[1]"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="(@id|@xml:id)[1]"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text>]</xsl:text> + </xsl:variable> + + <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="step" mode="xref-title"> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Step'"/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:apply-templates select="." mode="number"/> +</xsl:template> + +<xsl:template match="step[not(./title)]" mode="title.markup"> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Step'"/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:apply-templates select="." mode="number"/> +</xsl:template> + +<xsl:template match="co" mode="xref-title"> + <xsl:variable name="title"> + <xsl:apply-templates select="." mode="callout-bug"/> + </xsl:variable> + + <xsl:value-of select="$title"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="link" name="link"> + <xsl:param name="linkend" select="@linkend"/> + <xsl:param name="a.target"/> + <xsl:param name="xhref" select="@xlink:href"/> + + <xsl:variable name="content"> + <xsl:call-template name="anchor"/> + <xsl:choose> + <xsl:when test="count(child::node()) > 0"> + <!-- If it has content, use it --> + <xsl:apply-templates/> + </xsl:when> + <!-- else look for an endterm --> + <xsl:when test="@endterm"> + <xsl:variable name="etargets" select="key('id', at endterm)"/> + <xsl:variable name="etarget" select="$etargets[1]"/> + <xsl:choose> + <xsl:when test="count($etarget) = 0"> + <xsl:message> + <xsl:value-of select="count($etargets)"/> + <xsl:text>Endterm points to nonexistent ID: </xsl:text> + <xsl:value-of select="@endterm"/> + </xsl:message> + <xsl:text>???</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="$etarget" mode="endterm"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <!-- Use the xlink:href if no other text --> + <xsl:when test="@xlink:href"> + <xsl:value-of select="@xlink:href"/> + </xsl:when> + <xsl:otherwise> + <xsl:message> + <xsl:text>Link element has no content and no Endterm. </xsl:text> + <xsl:text>Nothing to show in the link to </xsl:text> + <xsl:value-of select="(@xlink:href|@linkend)[1]"/> + </xsl:message> + <xsl:text>???</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:call-template name="simple.xlink"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="linkend" select="$linkend"/> + <xsl:with-param name="content" select="$content"/> + <xsl:with-param name="a.target" select="$a.target"/> + <xsl:with-param name="xhref" select="$xhref"/> + </xsl:call-template> + +</xsl:template> + +<xsl:template match="ulink" name="ulink"> + <xsl:param name="url" select="@url"/> + <xsl:variable name="link"> + <a> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="@id or @xml:id"> + <xsl:attribute name="name"> + <xsl:value-of select="(@id|@xml:id)[1]"/> + </xsl:attribute> + </xsl:if> + <xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute> + <xsl:if test="$ulink.target != ''"> + <xsl:attribute name="target"> + <xsl:value-of select="$ulink.target"/> + </xsl:attribute> + </xsl:if> + <xsl:choose> + <xsl:when test="count(child::node())=0"> + <xsl:value-of select="$url"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </a> + </xsl:variable> + + <xsl:choose> + <xsl:when test="function-available('suwl:unwrapLinks')"> + <xsl:copy-of select="suwl:unwrapLinks($link)"/> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$link"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="olink" name="olink"> + <!-- olink content may be passed in from xlink olink --> + <xsl:param name="content" select="NOTANELEMENT"/> + + <xsl:call-template name="anchor"/> + + <xsl:variable name="localinfo" select="@localinfo"/> + + <xsl:choose> + <!-- olinks resolved by stylesheet and target database --> + <xsl:when test="@targetdoc or @targetptr or + (@xlink:role=$xolink.role and + contains(@xlink:href, '#') )" > + + <xsl:variable name="targetdoc.att"> + <xsl:choose> + <xsl:when test="@targetdoc != ''"> + <xsl:value-of select="@targetdoc"/> + </xsl:when> + <xsl:when test="@xlink:role=$xolink.role and + contains(@xlink:href, '#')" > + <xsl:value-of select="substring-before(@xlink:href, '#')"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="targetptr.att"> + <xsl:choose> + <xsl:when test="@targetptr != ''"> + <xsl:value-of select="@targetptr"/> + </xsl:when> + <xsl:when test="@xlink:role=$xolink.role and + contains(@xlink:href, '#')" > + <xsl:value-of select="substring-after(@xlink:href, '#')"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="olink.lang"> + <xsl:call-template name="l10n.language"> + <xsl:with-param name="xref-context" select="true()"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="target.database.filename"> + <xsl:call-template name="select.target.database"> + <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/> + <xsl:with-param name="targetptr.att" select="$targetptr.att"/> + <xsl:with-param name="olink.lang" select="$olink.lang"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="target.database" + select="document($target.database.filename,/)"/> + + <xsl:if test="$olink.debug != 0"> + <xsl:message> + <xsl:text>Olink debug: root element of target.database '</xsl:text> + <xsl:value-of select="$target.database.filename"/> + <xsl:text>' is '</xsl:text> + <xsl:value-of select="local-name($target.database/*[1])"/> + <xsl:text>'.</xsl:text> + </xsl:message> + </xsl:if> + + <xsl:variable name="olink.key"> + <xsl:call-template name="select.olink.key"> + <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/> + <xsl:with-param name="targetptr.att" select="$targetptr.att"/> + <xsl:with-param name="olink.lang" select="$olink.lang"/> + <xsl:with-param name="target.database" select="$target.database"/> + </xsl:call-template> + </xsl:variable> + + <xsl:if test="string-length($olink.key) = 0"> + <xsl:message> + <xsl:text>Error: unresolved olink: </xsl:text> + <xsl:text>targetdoc/targetptr = '</xsl:text> + <xsl:value-of select="$targetdoc.att"/> + <xsl:text>/</xsl:text> + <xsl:value-of select="$targetptr.att"/> + <xsl:text>'.</xsl:text> + </xsl:message> + </xsl:if> + + <xsl:variable name="href"> + <xsl:call-template name="make.olink.href"> + <xsl:with-param name="olink.key" select="$olink.key"/> + <xsl:with-param name="target.database" select="$target.database"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="hottext"> + <xsl:choose> + <xsl:when test="$content"> + <xsl:copy-of select="$content"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="olink.hottext"> + <xsl:with-param name="olink.key" select="$olink.key"/> + <xsl:with-param name="olink.lang" select="$olink.lang"/> + <xsl:with-param name="target.database" select="$target.database"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="olink.docname.citation"> + <xsl:call-template name="olink.document.citation"> + <xsl:with-param name="olink.key" select="$olink.key"/> + <xsl:with-param name="target.database" select="$target.database"/> + <xsl:with-param name="olink.lang" select="$olink.lang"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="olink.page.citation"> + <xsl:call-template name="olink.page.citation"> + <xsl:with-param name="olink.key" select="$olink.key"/> + <xsl:with-param name="target.database" select="$target.database"/> + <xsl:with-param name="olink.lang" select="$olink.lang"/> + </xsl:call-template> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$href != ''"> + <a href="{$href}"> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:copy-of select="$hottext"/> + </a> + <xsl:copy-of select="$olink.page.citation"/> + <xsl:copy-of select="$olink.docname.citation"/> + </xsl:when> + <xsl:otherwise> + <span class="olink"><xsl:copy-of select="$hottext"/></span> + <xsl:copy-of select="$olink.page.citation"/> + <xsl:copy-of select="$olink.docname.citation"/> + </xsl:otherwise> + </xsl:choose> + + </xsl:when> + + <!-- Or use old olink mechanism --> + <xsl:otherwise> + <xsl:variable name="href"> + <xsl:choose> + <xsl:when test="@linkmode"> + <!-- use the linkmode to get the base URI, use localinfo as fragid --> + <xsl:variable name="modespec" select="key('id', at linkmode)"/> + <xsl:if test="count($modespec) != 1 + or local-name($modespec) != 'modespec'"> + <xsl:message>Warning: olink linkmode pointer is wrong.</xsl:message> + </xsl:if> + <xsl:value-of select="$modespec"/> + <xsl:if test="@localinfo"> + <xsl:text>#</xsl:text> + <xsl:value-of select="@localinfo"/> + </xsl:if> + </xsl:when> + <xsl:when test="@type = 'href'"> + <xsl:call-template name="olink.outline"> + <xsl:with-param name="outline.base.uri" + select="unparsed-entity-uri(@targetdocent)"/> + <xsl:with-param name="localinfo" select="@localinfo"/> + <xsl:with-param name="return" select="'href'"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$olink.resolver"/> + <xsl:text>?</xsl:text> + <xsl:value-of select="$olink.sysid"/> + <xsl:value-of select="unparsed-entity-uri(@targetdocent)"/> + <!-- XSL gives no access to the public identifier (grumble...) --> + <xsl:if test="@localinfo"> + <xsl:text>&</xsl:text> + <xsl:value-of select="$olink.fragid"/> + <xsl:value-of select="@localinfo"/> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$href != ''"> + <a href="{$href}"> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:call-template name="olink.hottext"/> + </a> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="olink.hottext"/> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="pagenumber.markup"> + <!-- no-op in HTML --> +</xsl:template> + + +<xsl:template name="olink.outline"> + <xsl:param name="outline.base.uri"/> + <xsl:param name="localinfo"/> + <xsl:param name="return" select="href"/> + + <xsl:variable name="outline-file" + select="concat($outline.base.uri, + $olink.outline.ext)"/> + + <xsl:variable name="outline" select="document($outline-file,.)/div"/> + + <xsl:variable name="node-href"> + <xsl:choose> + <xsl:when test="$localinfo != ''"> + <xsl:variable name="node" select="$outline// + *[@id=$localinfo or @xml:id=$localinfo]"/> + <xsl:value-of select="$node/@href"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$outline/@href"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="node-xref"> + <xsl:choose> + <xsl:when test="$localinfo != ''"> + <xsl:variable name="node" select="$outline// + *[@id=$localinfo or @xml:id=$localinfo]"/> + <xsl:copy-of select="$node/xref"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$outline/xref"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$return = 'href'"> + <xsl:value-of select="$node-href"/> + </xsl:when> + <xsl:when test="$return = 'xref'"> + <xsl:value-of select="$node-xref"/> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$node-xref"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="xref.xreflabel"> + <!-- called to process an xreflabel...you might use this to make --> + <!-- xreflabels come out in the right font for different targets, --> + <!-- for example. --> + <xsl:param name="target" select="."/> + <xsl:value-of select="$target/@xreflabel"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="title" mode="xref"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="command" mode="xref"> + <xsl:call-template name="inline.boldseq"/> +</xsl:template> + +<xsl:template match="function" mode="xref"> + <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="insert.title.markup"> + <xsl:param name="purpose"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="title"/> + + <xsl:choose> + <!-- FIXME: what about the case where titleabbrev is inside the info? --> + <xsl:when test="$purpose = 'xref' and titleabbrev"> + <xsl:apply-templates select="." mode="titleabbrev.markup"/> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$title"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="chapter|appendix" mode="insert.title.markup"> + <xsl:param name="purpose"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="title"/> + + <xsl:choose> + <xsl:when test="$purpose = 'xref'"> + <i> + <xsl:copy-of select="$title"/> + </i> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$title"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="insert.subtitle.markup"> + <xsl:param name="purpose"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="subtitle"/> + + <xsl:copy-of select="$subtitle"/> +</xsl:template> + +<xsl:template match="*" mode="insert.label.markup"> + <xsl:param name="purpose"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="label"/> + + <xsl:copy-of select="$label"/> +</xsl:template> + +<xsl:template match="*" mode="insert.pagenumber.markup"> + <xsl:param name="purpose"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="pagenumber"/> + + <xsl:copy-of select="$pagenumber"/> +</xsl:template> + +<xsl:template match="*" mode="insert.direction.markup"> + <xsl:param name="purpose"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="direction"/> + + <xsl:copy-of select="$direction"/> +</xsl:template> + +<xsl:template match="*" mode="insert.olink.docname.markup"> + <xsl:param name="purpose"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="docname"/> + + <span class="olinkdocname"> + <xsl:copy-of select="$docname"/> + </span> + +</xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/lib/lib.xsl =================================================================== --- box/trunk/docs/xsl-generic/lib/lib.xsl (rev 0) +++ box/trunk/docs/xsl-generic/lib/lib.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,480 @@ +<?xml version="1.0" encoding="ASCII"?> +<!-- ******************************************************************** + $Id: lib.xweb 7102 2007-07-20 15:35:24Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + This module implements DTD-independent functions + + ******************************************************************** --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<xsl:template name="dot.count"> + <!-- Returns the number of "." characters in a string --> + <xsl:param name="string"/> + <xsl:param name="count" select="0"/> + <xsl:choose> + <xsl:when test="contains($string, '.')"> + <xsl:call-template name="dot.count"> + <xsl:with-param name="string" select="substring-after($string, '.')"/> + <xsl:with-param name="count" select="$count+1"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$count"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="copy-string"> + <!-- returns 'count' copies of 'string' --> + <xsl:param name="string"/> + <xsl:param name="count" select="0"/> + <xsl:param name="result"/> + + <xsl:choose> + <xsl:when test="$count>0"> + <xsl:call-template name="copy-string"> + <xsl:with-param name="string" select="$string"/> + <xsl:with-param name="count" select="$count - 1"/> + <xsl:with-param name="result"> + <xsl:value-of select="$result"/> + <xsl:value-of select="$string"/> + </xsl:with-param> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$result"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="string.subst"> + <xsl:param name="string"/> + <xsl:param name="target"/> + <xsl:param name="replacement"/> + + <xsl:choose> + <xsl:when test="contains($string, $target)"> + <xsl:variable name="rest"> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="substring-after($string, $target)"/> + <xsl:with-param name="target" select="$target"/> + <xsl:with-param name="replacement" select="$replacement"/> + </xsl:call-template> + </xsl:variable> + <xsl:value-of select="concat(substring-before($string, $target), $replacement, $rest)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$string"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="xpointer.idref"> + <xsl:param name="xpointer">http://...</xsl:param> + <xsl:choose> + <xsl:when test="starts-with($xpointer, '#xpointer(id(')"> + <xsl:variable name="rest" select="substring-after($xpointer, '#xpointer(id(')"/> + <xsl:variable name="quote" select="substring($rest, 1, 1)"/> + <xsl:value-of select="substring-before(substring-after($xpointer, $quote), $quote)"/> + </xsl:when> + <xsl:when test="starts-with($xpointer, '#')"> + <xsl:value-of select="substring-after($xpointer, '#')"/> + </xsl:when> + <!-- otherwise it's a pointer to some other document --> + </xsl:choose> +</xsl:template> +<xsl:template name="length-magnitude"> + <xsl:param name="length" select="'0pt'"/> + + <xsl:choose> + <xsl:when test="string-length($length) = 0"/> + <xsl:when test="substring($length,1,1) = '0' or substring($length,1,1) = '1' or substring($length,1,1) = '2' or substring($length,1,1) = '3' or substring($length,1,1) = '4' or substring($length,1,1) = '5' or substring($length,1,1) = '6' or substring($length,1,1) = '7' or substring($length,1,1) = '8' or substring($length,1,1) = '9' or substring($length,1,1) = '.'"> + <xsl:value-of select="substring($length,1,1)"/> + <xsl:call-template name="length-magnitude"> + <xsl:with-param name="length" select="substring($length,2)"/> + </xsl:call-template> + </xsl:when> + </xsl:choose> +</xsl:template> +<xsl:template name="length-units"> + <xsl:param name="length" select="'0pt'"/> + <xsl:param name="default.units" select="'px'"/> + <xsl:variable name="magnitude"> + <xsl:call-template name="length-magnitude"> + <xsl:with-param name="length" select="$length"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="units"> + <xsl:value-of select="substring($length, string-length($magnitude)+1)"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$units = ''"> + <xsl:value-of select="$default.units"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$units"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="length-spec"> + <xsl:param name="length" select="'0pt'"/> + <xsl:param name="default.units" select="'px'"/> + + <xsl:variable name="magnitude"> + <xsl:call-template name="length-magnitude"> + <xsl:with-param name="length" select="$length"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="units"> + <xsl:value-of select="substring($length, string-length($magnitude)+1)"/> + </xsl:variable> + + <xsl:value-of select="$magnitude"/> + <xsl:choose> + <xsl:when test="$units='cm' or $units='mm' or $units='in' or $units='pt' or $units='pc' or $units='px' or $units='em'"> + <xsl:value-of select="$units"/> + </xsl:when> + <xsl:when test="$units = ''"> + <xsl:value-of select="$default.units"/> + </xsl:when> + <xsl:otherwise> + <xsl:message> + <xsl:text>Unrecognized unit of measure: </xsl:text> + <xsl:value-of select="$units"/> + <xsl:text>.</xsl:text> + </xsl:message> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="length-in-points"> + <xsl:param name="length" select="'0pt'"/> + <xsl:param name="em.size" select="10"/> + <xsl:param name="pixels.per.inch" select="90"/> + + <xsl:variable name="magnitude"> + <xsl:call-template name="length-magnitude"> + <xsl:with-param name="length" select="$length"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="units"> + <xsl:value-of select="substring($length, string-length($magnitude)+1)"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$units = 'pt'"> + <xsl:value-of select="$magnitude"/> + </xsl:when> + <xsl:when test="$units = 'cm'"> + <xsl:value-of select="$magnitude div 2.54 * 72.0"/> + </xsl:when> + <xsl:when test="$units = 'mm'"> + <xsl:value-of select="$magnitude div 25.4 * 72.0"/> + </xsl:when> + <xsl:when test="$units = 'in'"> + <xsl:value-of select="$magnitude * 72.0"/> + </xsl:when> + <xsl:when test="$units = 'pc'"> + <xsl:value-of select="$magnitude * 12.0"/> + </xsl:when> + <xsl:when test="$units = 'px'"> + <xsl:value-of select="$magnitude div $pixels.per.inch * 72.0"/> + </xsl:when> + <xsl:when test="$units = 'em'"> + <xsl:value-of select="$magnitude * $em.size"/> + </xsl:when> + <xsl:otherwise> + <xsl:message> + <xsl:text>Unrecognized unit of measure: </xsl:text> + <xsl:value-of select="$units"/> + <xsl:text>.</xsl:text> + </xsl:message> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="pi-attribute"> + <xsl:param name="pis" select="processing-instruction('BOGUS_PI')"/> + <xsl:param name="attribute">filename</xsl:param> + <xsl:param name="count">1</xsl:param> + + <xsl:choose> + <xsl:when test="$count>count($pis)"> + <!-- not found --> + </xsl:when> + <xsl:otherwise> + <xsl:variable name="pi"> + <xsl:value-of select="$pis[$count]"/> + </xsl:variable> + <xsl:variable name="pivalue"> + <xsl:value-of select="concat(' ', normalize-space($pi))"/> + </xsl:variable> + <xsl:choose> + <xsl:when test="contains($pivalue,concat(' ', $attribute, '='))"> + <xsl:variable name="rest" select="substring-after($pivalue,concat(' ', $attribute,'='))"/> + <xsl:variable name="quote" select="substring($rest,1,1)"/> + <xsl:value-of select="substring-before(substring($rest,2),$quote)"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="pi-attribute"> + <xsl:with-param name="pis" select="$pis"/> + <xsl:with-param name="attribute" select="$attribute"/> + <xsl:with-param name="count" select="$count + 1"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="lookup.key"> + <xsl:param name="key" select="''"/> + <xsl:param name="table" select="''"/> + + <xsl:if test="contains($table, ' ')"> + <xsl:choose> + <xsl:when test="substring-before($table, ' ') = $key"> + <xsl:variable name="rest" select="substring-after($table, ' ')"/> + <xsl:choose> + <xsl:when test="contains($rest, ' ')"> + <xsl:value-of select="substring-before($rest, ' ')"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$rest"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="lookup.key"> + <xsl:with-param name="key" select="$key"/> + <xsl:with-param name="table" select="substring-after(substring-after($table,' '), ' ')"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:if> +</xsl:template> +<xsl:template name="xpath.location"> + <xsl:param name="node" select="."/> + <xsl:param name="path" select="''"/> + + <xsl:variable name="next.path"> + <xsl:value-of select="local-name($node)"/> + <xsl:if test="$path != ''">/</xsl:if> + <xsl:value-of select="$path"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$node/parent::*"> + <xsl:call-template name="xpath.location"> + <xsl:with-param name="node" select="$node/parent::*"/> + <xsl:with-param name="path" select="$next.path"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:text>/</xsl:text> + <xsl:value-of select="$next.path"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="comment-escape-string"> + <xsl:param name="string" select="''"/> + + <xsl:if test="starts-with($string, '-')"> + <xsl:text> </xsl:text> + </xsl:if> + + <xsl:call-template name="comment-escape-string.recursive"> + <xsl:with-param name="string" select="$string"/> + </xsl:call-template> + + <xsl:if test="substring($string, string-length($string), 1) = '-'"> + <xsl:text> </xsl:text> + </xsl:if> +</xsl:template> +<xsl:template name="comment-escape-string.recursive"> + <xsl:param name="string" select="''"/> + <xsl:choose> + <xsl:when test="contains($string, '--')"> + <xsl:value-of select="substring-before($string, '--')"/> + <xsl:value-of select="'- -'"/> + <xsl:call-template name="comment-escape-string.recursive"> + <xsl:with-param name="string" select="substring-after($string, '--')"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$string"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + <xsl:template name="str.tokenize.keep.delimiters"> + <xsl:param name="string" select="''"/> + <xsl:param name="delimiters" select="' '"/> + <xsl:choose> + <xsl:when test="not($string)"/> + <xsl:when test="not($delimiters)"> + <xsl:call-template name="str.tokenize.keep.delimiters-characters"> + <xsl:with-param name="string" select="$string"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="str.tokenize.keep.delimiters-delimiters"> + <xsl:with-param name="string" select="$string"/> + <xsl:with-param name="delimiters" select="$delimiters"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:template name="str.tokenize.keep.delimiters-characters"> + <xsl:param name="string"/> + <xsl:if test="$string"> + <ssb:token xmlns:ssb="http://sideshowbarker.net/ns"><xsl:value-of select="substring($string, 1, 1)"/></ssb:token> + <xsl:call-template name="str.tokenize.keep.delimiters-characters"> + <xsl:with-param name="string" select="substring($string, 2)"/> + </xsl:call-template> + </xsl:if> + </xsl:template> + <xsl:template name="str.tokenize.keep.delimiters-delimiters"> + <xsl:param name="string"/> + <xsl:param name="delimiters"/> + <xsl:variable name="delimiter" select="substring($delimiters, 1, 1)"/> + <xsl:choose> + <xsl:when test="not($delimiter)"> + <ssb:token xmlns:ssb="http://sideshowbarker.net/ns"><xsl:value-of select="$string"/></ssb:token> + </xsl:when> + <xsl:when test="contains($string, $delimiter)"> + <xsl:if test="not(starts-with($string, $delimiter))"> + <xsl:call-template name="str.tokenize.keep.delimiters-delimiters"> + <xsl:with-param name="string" select="substring-before($string, $delimiter)"/> + <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/> + </xsl:call-template> + </xsl:if> + <!-- output each delimiter --> + <xsl:value-of select="$delimiter"/> + <xsl:call-template name="str.tokenize.keep.delimiters-delimiters"> + <xsl:with-param name="string" select="substring-after($string, $delimiter)"/> + <xsl:with-param name="delimiters" select="$delimiters"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="str.tokenize.keep.delimiters-delimiters"> + <xsl:with-param name="string" select="$string"/> + <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:template name="apply-string-subst-map"> + <xsl:param name="content"/> + <xsl:param name="map.contents"/> + <xsl:variable name="replaced_text"> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$content"/> + <xsl:with-param name="target" select="$map.contents[1]/@oldstring"/> + <xsl:with-param name="replacement" select="$map.contents[1]/@newstring"/> + </xsl:call-template> + </xsl:variable> + <xsl:choose> + <xsl:when test="$map.contents[2]"> + <xsl:call-template name="apply-string-subst-map"> + <xsl:with-param name="content" select="$replaced_text"/> + <xsl:with-param name="map.contents" select="$map.contents[position() > 1]"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$replaced_text"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +<xsl:template name="count.uri.path.depth"> + <xsl:param name="filename" select="''"/> + <xsl:param name="count" select="0"/> + + <xsl:choose> + <xsl:when test="contains($filename, '/')"> + <xsl:call-template name="count.uri.path.depth"> + <xsl:with-param name="filename" select="substring-after($filename, '/')"/> + <xsl:with-param name="count" select="$count + 1"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$count"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<xsl:template name="trim.common.uri.paths"> + <xsl:param name="uriA" select="''"/> + <xsl:param name="uriB" select="''"/> + <xsl:param name="return" select="'A'"/> + + <xsl:choose> + <xsl:when test="contains($uriA, '/') and contains($uriB, '/') and substring-before($uriA, '/') = substring-before($uriB, '/')"> + <xsl:call-template name="trim.common.uri.paths"> + <xsl:with-param name="uriA" select="substring-after($uriA, '/')"/> + <xsl:with-param name="uriB" select="substring-after($uriB, '/')"/> + <xsl:with-param name="return" select="$return"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="$return = 'A'"> + <xsl:value-of select="$uriA"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$uriB"/> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + + <xsl:template name="trim.text"> + <xsl:param name="contents" select="."/> + <xsl:variable name="contents-left-trimmed"> + <xsl:call-template name="trim-left"> + <xsl:with-param name="contents" select="$contents"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="contents-trimmed"> + <xsl:call-template name="trim-right"> + <xsl:with-param name="contents" select="$contents-left-trimmed"/> + </xsl:call-template> + </xsl:variable> + <xsl:value-of select="$contents-trimmed"/> + </xsl:template> + + <xsl:template name="trim-left"> + <xsl:param name="contents"/> + <xsl:choose> + <xsl:when test="starts-with($contents,' ') or starts-with($contents,' ') or starts-with($contents,' ') or starts-with($contents,' ')"> + <xsl:call-template name="trim-left"> + <xsl:with-param name="contents" select="substring($contents, 2)"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$contents"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="trim-right"> + <xsl:param name="contents"/> + <xsl:variable name="last-char"> + <xsl:value-of select="substring($contents, string-length($contents), 1)"/> + </xsl:variable> + <xsl:choose> + <xsl:when test="($last-char = ' ') or ($last-char = ' ') or ($last-char = ' ') or ($last-char = ' ')"> + <xsl:call-template name="trim-right"> + <xsl:with-param name="contents" select="substring($contents, 1, string-length($contents) - 1)"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$contents"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/block.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/block.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/block.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,296 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + exclude-result-prefixes="exsl" + version='1.0'> + +<!-- ******************************************************************** + $Id: block.xsl 6843 2007-06-20 12:21:13Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="caution|important|note|tip|warning"> + <xsl:call-template name="nested-section-title"/> + <xsl:apply-templates/> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="formalpara"> + <xsl:variable name="title.wrapper"> + <xsl:value-of select="normalize-space(title[1])"/> + </xsl:variable> + <xsl:text>.PP </xsl:text> + <!-- * don't put linebreak after head; instead render it as a "run in" --> + <!-- * head, that is, inline, with a period and space following it --> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="exsl:node-set($title.wrapper)"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <xsl:text>. </xsl:text> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="formalpara/para"> + <xsl:call-template name="mixed-block"/> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="para"> + <!-- * FIXME: Need to extract the ancestor::footnote, etc. checking and --> + <!-- * move to named template so that we can call it from templates for --> + <!-- * other block elements also --> + <xsl:choose> + <!-- * If a para is a descendant of a footnote, etc., then indent it --> + <!-- * (unless it is the first child, in which case don't generate --> + <!-- * anything at all to mark its start). --> + <!-- * FIXME: *blurb checking should not be munged in here the way --> + <!-- * it currently is; this probably breaks blurb indenting. --> + <xsl:when test="ancestor::footnote or + ancestor::annotation or + ancestor::authorblurb or + ancestor::personblurb"> + <xsl:if test="preceding-sibling::*[not(name() ='')]"> + <xsl:text>.sp</xsl:text> + <xsl:text> </xsl:text> + <xsl:text>.RS 4n</xsl:text> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:text>.PP</xsl:text> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:call-template name="mixed-block"/> + <xsl:if test="ancestor::footnote or + ancestor::annotation or + ancestor::authorblurb or + ancestor::personblurb"> + <xsl:if test="preceding-sibling::*[not(name() ='')]"> + <xsl:text> </xsl:text> + <xsl:text>.RE</xsl:text> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:if> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="simpara"> + <xsl:variable name="content"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($content)"/> + <xsl:text> </xsl:text> + <xsl:if test="not(ancestor::authorblurb) and + not(ancestor::personblurb)"> + <xsl:text>.sp </xsl:text> + </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- * Yes, address, synopsis, and funcsynopsisinfo are verbatim environments. --> +<xsl:template match="literallayout|programlisting|screen| + address|synopsis|funcsynopsisinfo"> + <xsl:param name="indent"> + <!-- * Only indent this verbatim if $man.indent.verbatims is --> + <!-- * non-zero and it is not a child of a *synopsis element --> + <xsl:if test="not($man.indent.verbatims = 0) and + not(substring(local-name(..), + string-length(local-name(..))-7) = 'synopsis')"> + <xsl:text>Yes</xsl:text> + </xsl:if> + </xsl:param> + + <xsl:choose> + <!-- * Check to see if this verbatim item is within a parent element that --> + <!-- * allows mixed content. --> + <!-- * --> + <!-- * If it is within a mixed-content parent, then a line space is --> + <!-- * already added before it by the mixed-block template, so we don't --> + <!-- * need to add one here. --> + <!-- * --> + <!-- * If it is not within a mixed-content parent, then we need to add a --> + <!-- * line space before it. --> + <xsl:when test="parent::caption|parent::entry|parent::para| + parent::td|parent::th" /> <!-- do nothing --> + <xsl:otherwise> + <xsl:text> </xsl:text> + <xsl:text>.sp </xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="$indent = 'Yes'"> + <!-- * start indented section --> + <xsl:text>.RS</xsl:text> + <xsl:if test="not($man.indent.width = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$man.indent.width"/> + </xsl:if> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:choose> + <xsl:when test="self::funcsynopsisinfo"> + <!-- * All Funcsynopsisinfo content is by default rendered in bold, --> + <!-- * because the man(7) man page says this: --> + <!-- * --> + <!-- * For functions, the arguments are always specified using --> + <!-- * italics, even in the SYNOPSIS section, where the rest of --> + <!-- * the function is specified in bold --> + <!-- * --> + <!-- * Look through the contents of the man/man2 and man3 directories --> + <!-- * on your system, and you'll see that most existing pages do follow --> + <!-- * this "bold everything in function synopsis" rule. --> + <!-- * --> + <!-- * Users who don't want the bold output can choose to adjust the --> + <!-- * man.font.funcsynopsisinfo parameter on their own. So even if you --> + <!-- * don't personally like the way it looks, please don't change the --> + <!-- * default to be non-bold - because it's a convention that's --> + <!-- * followed is the vast majority of existing man pages that document --> + <!-- * functions, and we need to follow it by default, like it or no. --> + <xsl:text>.ft </xsl:text> + <xsl:value-of select="$man.font.funcsynopsisinfo"/> + <xsl:text> </xsl:text> + <xsl:text>.nf </xsl:text> + <xsl:apply-templates/> + <xsl:text> </xsl:text> + <xsl:text>.fi </xsl:text> + <xsl:text>.ft </xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * Other verbatims do not need to get bolded --> + <xsl:text>.nf </xsl:text> + <xsl:apply-templates/> + <xsl:text> </xsl:text> + <xsl:text>.fi </xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="$indent = 'Yes'"> + <!-- * end indented section --> + <xsl:text>.RE </xsl:text> + </xsl:if> + <!-- * if first following sibling node of this verbatim --> + <!-- * environment is a text node, output a line of space before it --> + <xsl:if test="following-sibling::node()[1][name(.) = '']"> + <xsl:text>.sp </xsl:text> + </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="table|informaltable"> + <xsl:apply-templates select="." mode="to.tbl"> + <!--* we call the to.tbl mode with the "source" param so that we can --> + <!--* preserve the context information and pass it down to the --> + <!--* named templates that do the actual table processing --> + <xsl:with-param name="source" select="ancestor::refentry/refnamediv[1]/refname[1]"/> + </xsl:apply-templates> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="informalexample"> + <xsl:apply-templates/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="figure|example"> + <xsl:variable name="param.placement" + select="substring-after(normalize-space($formal.title.placement), + concat(local-name(.), ' '))"/> + + <xsl:variable name="placement"> + <xsl:choose> + <xsl:when test="contains($param.placement, ' ')"> + <xsl:value-of select="substring-before($param.placement, ' ')"/> + </xsl:when> + <xsl:when test="$param.placement = ''">before</xsl:when> + <xsl:otherwise> + <xsl:value-of select="$param.placement"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:text>.PP </xsl:text> + <xsl:call-template name="formal.object"> + <xsl:with-param name="placement" select="$placement"/> + </xsl:call-template> + <xsl:text> </xsl:text> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="mediaobject"> + <xsl:text>.sp</xsl:text> + <xsl:text> </xsl:text> + <xsl:text>.RS</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:apply-templates/> + <xsl:text> </xsl:text> + <xsl:text>.RE </xsl:text> +</xsl:template> + +<xsl:template match="imageobject"> + <xsl:text>[IMAGE]</xsl:text> + <xsl:apply-templates/> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="textobject[parent::inlinemediaobject]"> + <xsl:text>[</xsl:text> + <xsl:value-of select="."/> + <xsl:text>]</xsl:text> +</xsl:template> + +<xsl:template match="textobject"> + <xsl:apply-templates/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="formal.object"> + <xsl:param name="placement" select="'before'"/> + <xsl:param name="class" select="local-name(.)"/> + + <xsl:choose> + <xsl:when test="$placement = 'before'"> + <xsl:call-template name="formal.object.heading"/> + <xsl:apply-templates/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + <xsl:call-template name="formal.object.heading"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="formal.object.heading"> + <xsl:param name="object" select="."/> + <xsl:param name="title"> + <xsl:apply-templates select="$object" mode="object.title.markup.textonly"/> + </xsl:param> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="exsl:node-set($title)"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + + <xsl:text> </xsl:text> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- * suppress abstract --> +<xsl:template match="abstract"/> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/charmap.groff.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/charmap.groff.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/charmap.groff.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,5985 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<xsl:stylesheet version="2.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:u="http://docbook.sf.net/xmlns/unichar/1.0" + exclude-result-prefixes="u"> + +<!-- ******************************************************************** + $Id: charmap.groff.xsl 6528 2007-01-19 08:54:04Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<xsl:character-map name="groff"> + + <!-- * *************************************************************** --> + <!-- * Commentary --> + <!-- * *************************************************************** --> + <!-- * --> + <!-- * This file maps a selection of Unicode symbols and special --> + <!-- * characters (about 800) to corresponding groff escape sequences.--> + <!-- * --> + <!-- * Although the format of this file follows the "character map" --> + <!-- * format described in the XSLT 2.0 specification[1], the file can --> + <!-- * also be used with an appropriate XSLT 1.0 stylesheet and any --> + <!-- * XSLT 1.0 processor. --> + <!-- * --> + <!-- * [1] http://www.w3.org/TR/xslt20/#character-maps --> + <!-- * --> + <!-- * In order to make the character map more readable, and to make --> + <!-- * it possible to create subsets of it at run time, it uses the --> + <!-- * following "extension attributes" (in the "unichar" namespace): --> + <!-- * --> + <!-- * - u:name = ISO character name (e.g., "OHM SIGN") --> + <!-- * - u:entity = ISO entity name (e.g., "ohm") --> + <!-- * - u:block = Unicode block name (e.g., "Letterlike Symbols") --> + <!-- * - u:class = character class (e.g., "bullets") --> + <!-- * --> + <!-- * Use of such extension attributes is permitted by the XSLT 2.0 --> + <!-- * spec; see the "Extension Attributes" section[2]. --> + <!-- * --> + <!-- * [2] http://www.w3.org/TR/xslt20/#extension-attributes --> + <!-- * --> + <!-- * *************************************************************** --> + <!-- * Acknowledgements --> + <!-- * *************************************************************** --> + <!-- * The following references were consulted when selecting roff --> + <!-- * mappings and character information: --> + <!-- * --> + <!-- * - groff_char(7) man page[3] --> + <!-- * - groff info file[4]; in particular, the "Page Motions" node[5] --> + <!-- * - tables in "Character Sets" chapter of "XML In a Nutshell"[6] --> + <!-- * - Zvon Character Search[7] --> + <!-- * --> + <!-- * [3] http://www.linux.se/showMan.php?TITLE=groff_char&SECTION=7 --> + <!-- * [4] http://www.fifi.org/cgi-bin/info2www?(groff) --> + <!-- * [5] http://www.fifi.org/cgi-bin/info2www?(groff)Page+Motions --> + <!-- * [6] http://www.ibiblio.org/xml/books/xian2/ --> + <!-- * [7] http://zvon.org/other/charSearch/PHP/search.php --> + <!-- * --> + <!-- * The initial version of this file (before the "string" mappings --> + <!-- * were added) was generated by taking the "unichars.el" file from --> + <!-- * Norm Walsh's "xmlunicode.el"[8] elisp distro, and running a --> + <!-- * script on it to convert it to XML. --> + <!-- * --> + <!-- * [8] http://nwalsh.com/emacs/xmlchars/ --> + <!-- * --> + <!-- * The idea for implementing a character map in the DocBook Project --> + <!-- * manpages system was inspired by Steve Cheng's docbook2x[9]; --> + <!-- * in particular, its "utf8trans" utility and character-map system. --> + <!-- * --> + <!-- * [9] http://docbook2x.sourceforge.net/ --> + <!-- * --> + <!-- * ################################################################# --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Latin-1/ISO-8859-1 --> + <!-- * x00a0 to x00ff --> + <!-- * ***************************************************************** --> + + <!-- * A no-break space can be written two ways in roff; the difference, --> + <!-- * according to the "Page Motions" node in the groff info page, is: --> + <!-- * --> + <!-- * "\ " = --> + <!-- * An unbreakable and unpaddable (i.e. not expanded during filling) --> + <!-- * space. --> + <!-- * --> + <!-- * "\~" = --> + <!-- * An unbreakable space that stretches like a normal --> + <!-- * inter-word space when a line is adjusted." --> + <!-- * --> + <!-- * Unfortunately, roff seems to do some weird things with long --> + <!-- * lines that only have words separated by "\~" spaces, so it's --> + <!-- * safer just to stick with the "\ " space --> + <xsl:output-character + character=" " + u:name="NO-BREAK SPACE" + u:entity="nbsp" + string="\ " + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¡" + u:name="INVERTED EXCLAMATION MARK" + u:entity="iexcl" + string="\(r!" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¢" + u:name="CENT SIGN" + u:entity="cent" + string="\(ct" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="£" + u:name="POUND SIGN" + u:entity="pound" + string="\(Po" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¤" + u:name="CURRENCY SIGN" + u:entity="curren" + string="\(Cs" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¥" + u:name="YEN SIGN" + u:entity="yen" + string="\(Ye" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¦" + u:name="BROKEN BAR" + u:entity="brvbar" + string="\(bb" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="§" + u:name="SECTION SIGN" + u:entity="sect" + string="\(sc" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¨" + u:name="DIAERESIS" + u:entity="Dot" + string="\(ad" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="©" + u:name="COPYRIGHT SIGN" + u:entity="copy" + string="\(co" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="ª" + u:name="FEMININE ORDINAL INDICATOR" + u:entity="ordf" + string="\(Of" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="«" + u:name="LEFT-POINTING DOUBLE ANGLE QUOTATION MARK" + u:entity="laquo" + string="\(Fo" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¬" + u:name="NOT SIGN" + u:entity="not" + string="\(no" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <!-- * groff_char(7) man page sayxsl: "the soft hyphen control character --> + <!-- * (prints as itself). groff never use this character for output --> + <!-- * (thus it is omitted in the table below); the input character 173 --> + <!-- * is onto \%." --> + <xsl:output-character + character="­" + u:name="SOFT HYPHEN" + u:entity="shy" + string="\%" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="®" + u:name="REGISTERED SIGN" + u:entity="reg" + string="\(rg" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¯" + u:name="MACRON" + u:entity="macr" + string="\(a-" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="°" + u:name="DEGREE SIGN" + u:entity="deg" + string="\(de" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="±" + u:name="PLUS-MINUS SIGN" + u:entity="plusmn" + string="\(+-" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="²" + u:name="SUPERSCRIPT TWO" + u:entity="sup2" + string="\(S2" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="³" + u:name="SUPERSCRIPT THREE" + u:entity="sup3" + string="\(S3" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="´" + u:name="ACUTE ACCENT" + u:entity="acute" + string="\(aa" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="µ" + u:name="MICRO SIGN" + u:entity="micro" + string="\(mc" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¶" + u:name="PILCROW SIGN" + u:entity="para" + string="\(ps" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <!-- * according to groff_char(7), I think the escape string \(pc --> + <!-- * "periodcentered" could also be used for middot; not sure which --> + <!-- * is better, but "md" mnemonic is a better fit :-) --> + <xsl:output-character + character="·" + u:name="MIDDLE DOT" + u:entity="middot" + string="\(md" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¸" + u:name="CEDILLA" + u:entity="cedil" + string="\(ac" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¹" + u:name="SUPERSCRIPT ONE" + u:entity="sup1" + string="\(S1" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="º" + u:name="MASCULINE ORDINAL INDICATOR" + u:entity="ordm" + string="\(Om" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="»" + u:name="RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" + u:entity="raquo" + string="\(Fc" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¼" + u:name="VULGAR FRACTION ONE QUARTER" + u:entity="frac14" + string="\(14" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="½" + u:name="VULGAR FRACTION ONE HALF" + u:entity="frac12" + string="\(12" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¾" + u:name="VULGAR FRACTION THREE QUARTERS" + u:entity="frac34" + string="\(34" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="¿" + u:name="INVERTED QUESTION MARK" + u:entity="iquest" + string="\(r?" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="À" + u:name="LATIN CAPITAL LETTER A WITH GRAVE" + u:entity="Agrave" + string="\(`A" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Á" + u:name="LATIN CAPITAL LETTER A WITH ACUTE" + u:entity="Aacute" + string="\('A" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Â" + u:name="LATIN CAPITAL LETTER A WITH CIRCUMFLEX" + u:entity="Acirc" + string="\(^A" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ã" + u:name="LATIN CAPITAL LETTER A WITH TILDE" + u:entity="Atilde" + string="\(~A" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ä" + u:name="LATIN CAPITAL LETTER A WITH DIAERESIS" + u:entity="Auml" + string="\(:A" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Å" + u:name="LATIN CAPITAL LETTER A WITH RING ABOVE" + u:entity="Aring" + string="\(oA" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Æ" + u:name="LATIN CAPITAL LETTER AE" + u:entity="AElig" + string="\(AE" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ç" + u:name="LATIN CAPITAL LETTER C WITH CEDILLA" + u:entity="Ccedil" + string="\(,C" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="È" + u:name="LATIN CAPITAL LETTER E WITH GRAVE" + u:entity="Egrave" + string="\(`E" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="É" + u:name="LATIN CAPITAL LETTER E WITH ACUTE" + u:entity="Eacute" + string="\('E" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ê" + u:name="LATIN CAPITAL LETTER E WITH CIRCUMFLEX" + u:entity="Ecirc" + string="\(^E" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ë" + u:name="LATIN CAPITAL LETTER E WITH DIAERESIS" + u:entity="Euml" + string="\(:E" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ì" + u:name="LATIN CAPITAL LETTER I WITH GRAVE" + u:entity="Igrave" + string="\(`I" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Í" + u:name="LATIN CAPITAL LETTER I WITH ACUTE" + u:entity="Iacute" + string="\('I" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Î" + u:name="LATIN CAPITAL LETTER I WITH CIRCUMFLEX" + u:entity="Icirc" + string="\(^I" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ï" + u:name="LATIN CAPITAL LETTER I WITH DIAERESIS" + u:entity="Iuml" + string="\(:I" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ð" + u:name="LATIN CAPITAL LETTER ETH" + u:entity="ETH" + string="\(-D" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ñ" + u:name="LATIN CAPITAL LETTER N WITH TILDE" + u:entity="Ntilde" + string="\(~N" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ò" + u:name="LATIN CAPITAL LETTER O WITH GRAVE" + u:entity="Ograve" + string="\(`O" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ó" + u:name="LATIN CAPITAL LETTER O WITH ACUTE" + u:entity="Oacute" + string="\('O" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ô" + u:name="LATIN CAPITAL LETTER O WITH CIRCUMFLEX" + u:entity="Ocirc" + string="\(^O" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Õ" + u:name="LATIN CAPITAL LETTER O WITH TILDE" + u:entity="Otilde" + string="\(~O" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ö" + u:name="LATIN CAPITAL LETTER O WITH DIAERESIS" + u:entity="Ouml" + string="\(:O" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="×" + u:name="MULTIPLICATION SIGN" + u:entity="times" + string="\(mu" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="Ø" + u:name="LATIN CAPITAL LETTER O WITH STROKE" + u:entity="Oslash" + string="\(/O" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ù" + u:name="LATIN CAPITAL LETTER U WITH GRAVE" + u:entity="Ugrave" + string="\(`U" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ú" + u:name="LATIN CAPITAL LETTER U WITH ACUTE" + u:entity="Uacute" + string="\('U" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Û" + u:name="LATIN CAPITAL LETTER U WITH CIRCUMFLEX" + u:entity="Ucirc" + string="\(^U" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ü" + u:name="LATIN CAPITAL LETTER U WITH DIAERESIS" + u:entity="Uuml" + string="\(:U" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Ý" + u:name="LATIN CAPITAL LETTER Y WITH ACUTE" + u:entity="Yacute" + string="\('Y" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="Þ" + u:name="LATIN CAPITAL LETTER THORN" + u:entity="THORN" + string="\(TP" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ß" + u:name="LATIN SMALL LETTER SHARP S" + u:entity="szlig" + string="\(ss" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="à" + u:name="LATIN SMALL LETTER A WITH GRAVE" + u:entity="agrave" + string="\(`a" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="á" + u:name="LATIN SMALL LETTER A WITH ACUTE" + u:entity="aacute" + string="\('a" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="â" + u:name="LATIN SMALL LETTER A WITH CIRCUMFLEX" + u:entity="acirc" + string="\(^a" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ã" + u:name="LATIN SMALL LETTER A WITH TILDE" + u:entity="atilde" + string="\(~a" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ä" + u:name="LATIN SMALL LETTER A WITH DIAERESIS" + u:entity="auml" + string="\(:a" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="å" + u:name="LATIN SMALL LETTER A WITH RING ABOVE" + u:entity="aring" + string="\(oa" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="æ" + u:name="LATIN SMALL LETTER AE" + u:entity="aelig" + string="\(ae" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ç" + u:name="LATIN SMALL LETTER C WITH CEDILLA" + u:entity="ccedil" + string="\(,c" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="è" + u:name="LATIN SMALL LETTER E WITH GRAVE" + u:entity="egrave" + string="\(`e" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="é" + u:name="LATIN SMALL LETTER E WITH ACUTE" + u:entity="eacute" + string="\('e" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ê" + u:name="LATIN SMALL LETTER E WITH CIRCUMFLEX" + u:entity="ecirc" + string="\(^e" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ë" + u:name="LATIN SMALL LETTER E WITH DIAERESIS" + u:entity="euml" + string="\(:e" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ì" + u:name="LATIN SMALL LETTER I WITH GRAVE" + u:entity="igrave" + string="\(`i" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="í" + u:name="LATIN SMALL LETTER I WITH ACUTE" + u:entity="iacute" + string="\('i" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="î" + u:name="LATIN SMALL LETTER I WITH CIRCUMFLEX" + u:entity="icirc" + string="\(^i" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ï" + u:name="LATIN SMALL LETTER I WITH DIAERESIS" + u:entity="iuml" + string="\(:i" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ð" + u:name="LATIN SMALL LETTER ETH" + u:entity="eth" + string="\(Sd" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ñ" + u:name="LATIN SMALL LETTER N WITH TILDE" + u:entity="ntilde" + string="\(~n" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ò" + u:name="LATIN SMALL LETTER O WITH GRAVE" + u:entity="ograve" + string="\(`o" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ó" + u:name="LATIN SMALL LETTER O WITH ACUTE" + u:entity="oacute" + string="\('o" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ô" + u:name="LATIN SMALL LETTER O WITH CIRCUMFLEX" + u:entity="ocirc" + string="\(^o" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="õ" + u:name="LATIN SMALL LETTER O WITH TILDE" + u:entity="otilde" + string="\(~o" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ö" + u:name="LATIN SMALL LETTER O WITH DIAERESIS" + u:entity="ouml" + string="\(:o" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="÷" + u:name="DIVISION SIGN" + u:entity="divide" + string="\(di" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="symbols" + /> + <xsl:output-character + character="ø" + u:name="LATIN SMALL LETTER O WITH STROKE" + u:entity="oslash" + string="\(/o" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ù" + u:name="LATIN SMALL LETTER U WITH GRAVE" + u:entity="ugrave" + string="\(`u" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ú" + u:name="LATIN SMALL LETTER U WITH ACUTE" + u:entity="uacute" + string="\('u" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="û" + u:name="LATIN SMALL LETTER U WITH CIRCUMFLEX" + u:entity="ucirc" + string="\(^u" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ü" + u:name="LATIN SMALL LETTER U WITH DIAERESIS" + u:entity="uuml" + string="\(:u" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ý" + u:name="LATIN SMALL LETTER Y WITH ACUTE" + u:entity="yacute" + string="\('y" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="þ" + u:name="LATIN SMALL LETTER THORN" + u:entity="thorn" + string="\(Tp" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <xsl:output-character + character="ÿ" + u:name="LATIN SMALL LETTER Y WITH DIAERESIS" + u:entity="yuml" + string="\(:y" + u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)" + u:class="letters" + /> + <!-- * **************************************************************** --> + <!-- * End: Latin-1/ISO-8859-1 --> + <!-- * **************************************************************** --> + + <!-- * **************************************************************** --> + <!-- * Begin: --> + <!-- * --> + <!-- * - x0100 to x017f (Latin Extended-A) --> + <!-- * - x0180 to x023f (Latin Extended-B) --> + <!-- * - x0250 to x02ad (IPA Extensions) --> + <!-- * - x02b0 to x02ee (Spacing Modifier Letters) --> + <!-- * - x0300 to x036f (Combining Diacritical Marks) --> + <!-- * --> + <!-- * Other than the following exceptions, characters in these --> + <!-- * blocks don't have any roff equivalents --> + <!-- * **************************************************************** --> + + <xsl:output-character + character="ı" + u:name="LATIN SMALL LETTER DOTLESS I" + u:entity="inodot" + string="\(.i" + u:block="Latin Extended-A" + /> + <xsl:output-character + character="IJ" + u:name="LATIN CAPITAL LIGATURE IJ" + u:entity="IJlig" + string="\(IJ" + u:block="Latin Extended-A" + /> + <xsl:output-character + character="ij" + u:name="LATIN SMALL LIGATURE IJ" + u:entity="ijlig" + string="\(ij" + u:block="Latin Extended-A" + /> + <xsl:output-character + character="Ł" + u:name="LATIN CAPITAL LETTER L WITH STROKE" + u:entity="Lstrok" + string="\(/L" + u:block="Latin Extended-A" + /> + <xsl:output-character + character="ł" + u:name="LATIN SMALL LETTER L WITH STROKE" + u:entity="lstrok" + string="\(/l" + u:block="Latin Extended-A" + /> + <xsl:output-character + character="Œ" + u:name="LATIN CAPITAL LIGATURE OE" + u:entity="OElig" + string="\(OE" + u:block="Latin Extended-A" + /> + <xsl:output-character + character="œ" + u:name="LATIN SMALL LIGATURE OE" + u:entity="oelig" + string="\(oe" + u:block="Latin Extended-A" + /> + <xsl:output-character + character="ƒ" + u:name="LATIN SMALL LETTER F WITH HOOK" + u:entity="fnof" + string="\(Fn" + u:block="Latin Extended-B" + /> + <xsl:output-character + character="ˆ" + u:name="MODIFIER LETTER CIRCUMFLEX ACCENT" + u:entity="circ" + string="\(a^" + u:block="Spacing Modifier Letters" + /> + <xsl:output-character + character="ˇ" + u:name="CARON" + u:entity="caron" + string="\(ac" + u:block="Spacing Modifier Letters" + /> + <xsl:output-character + character="ˉ" + u:name="MODIFIER LETTER MACRON" + string="\(a-" + u:block="Spacing Modifier Letters" + /> + <xsl:output-character + character="˘" + u:name="BREVE" + u:entity="breve" + string="\(ab" + u:block="Spacing Modifier Letters" + /> +<!-- * there does not seem to by any roff equivalent for "dot above" --> +<!-- * <xsl:output-character --> +<!-- * character="˙" --> +<!-- * u:name="DOT ABOVE" --> +<!-- * u:entity="dot" --> +<!-- * /> --> + <xsl:output-character + character="˚" + u:name="RING ABOVE" + u:entity="ring" + string="\(ao" + u:block="Spacing Modifier Letters" + /> + <xsl:output-character + character="˛" + u:name="OGONEK" + u:entity="ogon" + string="\(ho" + u:block="Spacing Modifier Letters" + /> + <!-- groff_char(7) calls Unicode x02dd a "Hungarian umlaut" --> + <xsl:output-character + character="˝" + u:name="DOUBLE ACUTE ACCENT" + u:entity="dblac" + string='\(a"' + u:block="Spacing Modifier Letters" + /> + + <!-- * **************************************************************** --> + <!-- * End: --> + <!-- * - Latin Extended-A --> + <!-- * - Latin Extended-B --> + <!-- * - IPA Extensions --> + <!-- * - Spacing Modifier Letters --> + <!-- * - Combining Diacritical Marks --> + <!-- * **************************************************************** --> + + <!-- * **************************************************************** --> + <!-- * Begin: Greek and Coptic --> + <!-- * x0370 to x03ff --> + <!-- * **************************************************************** --> + + <xsl:output-character + character="Α" + u:name="GREEK CAPITAL LETTER ALPHA" + u:entity="Agr" + string="\(*A)" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Β" + u:name="GREEK CAPITAL LETTER BETA" + u:entity="Bgr" + string="\(*B" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Γ" + u:name="GREEK CAPITAL LETTER GAMMA" + u:entity="Gamma" + string="\(*G" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Δ" + u:name="GREEK CAPITAL LETTER DELTA" + u:entity="Delta" + string="\(*D" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ε" + u:name="GREEK CAPITAL LETTER EPSILON" + u:entity="Egr" + string="\(*E" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ζ" + u:name="GREEK CAPITAL LETTER ZETA" + u:entity="Zgr" + string="\(*Z" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Η" + u:name="GREEK CAPITAL LETTER ETA" + u:entity="EEgr" + string="\(*Y" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Θ" + u:name="GREEK CAPITAL LETTER THETA" + u:entity="THgr" + string="\(*H" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ι" + u:name="GREEK CAPITAL LETTER IOTA" + u:entity="Igr" + string="\(*I" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Κ" + u:name="GREEK CAPITAL LETTER KAPPA" + u:entity="Kgr" + string="\(*K" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Λ" + u:name="GREEK CAPITAL LETTER LAMDA" + u:entity="Lambda" + string="\(*L" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Μ" + u:name="GREEK CAPITAL LETTER MU" + u:entity="Mgr" + string="\(*M" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ν" + u:name="GREEK CAPITAL LETTER NU" + u:entity="Ngr" + string="\(*N" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ξ" + u:name="GREEK CAPITAL LETTER XI" + u:entity="Xgr" + string="\(*C" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ο" + u:name="GREEK CAPITAL LETTER OMICRON" + u:entity="Ogr" + string="\(*O" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Π" + u:name="GREEK CAPITAL LETTER PI" + u:entity="Pgr" + string="\(*P" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ρ" + u:name="GREEK CAPITAL LETTER RHO" + u:entity="Rgr" + string="\(*R" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Σ" + u:name="GREEK CAPITAL LETTER SIGMA" + u:entity="Sgr" + string="\(*S" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Τ" + u:name="GREEK CAPITAL LETTER TAU" + u:entity="Tgr" + string="\(*T" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Υ" + u:name="GREEK CAPITAL LETTER UPSILON" + u:entity="Ugr" + string="\(*U" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Φ" + u:name="GREEK CAPITAL LETTER PHI" + u:entity="PHgr" + string="\(*F" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Χ" + u:name="GREEK CAPITAL LETTER CHI" + u:entity="KHgr" + string="\(*X" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ψ" + u:name="GREEK CAPITAL LETTER PSI" + u:entity="PSgr" + string="\(*Q" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ω" + u:name="GREEK CAPITAL LETTER OMEGA" + u:entity="OHgr" + string="\(*W" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ϊ" + u:name="GREEK CAPITAL LETTER IOTA WITH DIALYTIKA" + u:entity="Idigr" + string="\(*I" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="Ϋ" + u:name="GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA" + u:entity="Udigr" + string="\(*U" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ά" + u:name="GREEK SMALL LETTER ALPHA WITH TONOS" + u:entity="aacgr" + string="\(*a" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="έ" + u:name="GREEK SMALL LETTER EPSILON WITH TONOS" + u:entity="eacgr" + string="\(*e" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ή" + u:name="GREEK SMALL LETTER ETA WITH TONOS" + u:entity="eeacgr" + string="\(*y" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ί" + u:name="GREEK SMALL LETTER IOTA WITH TONOS" + u:entity="iacgr" + string="\(*i" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ΰ" + u:name="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS" + u:entity="udiagr" + string="\(*u" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="α" + u:name="GREEK SMALL LETTER ALPHA" + u:entity="agr" + string="\(*a" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="β" + u:name="GREEK SMALL LETTER BETA" + u:entity="beta" + string="\(*b" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="γ" + u:name="GREEK SMALL LETTER GAMMA" + u:entity="gamma" + string="\(*g" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="δ" + u:name="GREEK SMALL LETTER DELTA" + u:entity="delta" + string="\(*d" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ε" + u:name="GREEK SMALL LETTER EPSILON" + u:entity="epsi" + string="\(*e" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ζ" + u:name="GREEK SMALL LETTER ZETA" + u:entity="zeta" + string="\(*z" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="η" + u:name="GREEK SMALL LETTER ETA" + u:entity="eegr" + string="\(*y" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="θ" + u:name="GREEK SMALL LETTER THETA" + u:entity="thetas" + string="\(*h" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ι" + u:name="GREEK SMALL LETTER IOTA" + u:entity="igr" + string="\(*i" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="κ" + u:name="GREEK SMALL LETTER KAPPA" + u:entity="kappa" + string="\(*k" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="λ" + u:name="GREEK SMALL LETTER LAMDA" + u:entity="lambda" + string="\(*l" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="μ" + u:name="GREEK SMALL LETTER MU" + u:entity="mgr" + string="\(*m" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ν" + u:name="GREEK SMALL LETTER NU" + u:entity="ngr" + string="\(*n" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ξ" + u:name="GREEK SMALL LETTER XI" + u:entity="xgr" + string="\(*c" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ο" + u:name="GREEK SMALL LETTER OMICRON" + u:entity="ogr" + string="\(*o" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="π" + u:name="GREEK SMALL LETTER PI" + u:entity="pgr" + string="\(*p" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ρ" + u:name="GREEK SMALL LETTER RHO" + u:entity="rgr" + string="\(*r" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ς" + u:name="GREEK SMALL LETTER FINAL SIGMA" + u:entity="sfgr" + string="\(ts" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="σ" + u:name="GREEK SMALL LETTER SIGMA" + u:entity="sgr" + string="\(*s" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="τ" + u:name="GREEK SMALL LETTER TAU" + u:entity="tau" + string="\(*t" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="υ" + u:name="GREEK SMALL LETTER UPSILON" + u:entity="ugr" + string="\(*u" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="φ" + u:name="GREEK SMALL LETTER PHI" + u:entity="phgr" + string="\(*f" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="χ" + u:name="GREEK SMALL LETTER CHI" + u:entity="chi" + string="\(*x" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ψ" + u:name="GREEK SMALL LETTER PSI" + u:entity="psgr" + string="\(*q" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ω" + u:name="GREEK SMALL LETTER OMEGA" + u:entity="ohgr" + string="\(*w" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϊ" + u:name="GREEK SMALL LETTER IOTA WITH DIALYTIKA" + u:entity="idigr" + string="\(*i" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϋ" + u:name="GREEK SMALL LETTER UPSILON WITH DIALYTIKA" + u:entity="udigr" + string="\(*u" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ό" + u:name="GREEK SMALL LETTER OMICRON WITH TONOS" + u:entity="oacgr" + string="\(*o" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ύ" + u:name="GREEK SMALL LETTER UPSILON WITH TONOS" + u:entity="uacgr" + string="\(*u" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ώ" + u:name="GREEK SMALL LETTER OMEGA WITH TONOS" + u:entity="ohacgr" + string="\(*w" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϐ" + u:name="GREEK BETA SYMBOL" + string="\(*B" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϑ" + u:name="GREEK THETA SYMBOL" + u:entity="thetav" + string="\(+h" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϒ" + u:name="GREEK UPSILON WITH HOOK SYMBOL" + u:entity="Upsi" + string="\(*U" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϓ" + u:name="GREEK UPSILON WITH ACUTE AND HOOK SYMBOL" + string="\(*U" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϔ" + u:name="GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL" + string="\(*U" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϕ" + u:name="GREEK PHI SYMBOL" + u:entity="phis" + string="\(+f" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϖ" + u:name="GREEK PI SYMBOL" + u:entity="piv" + string="\(+p" + u:block="Greek and Coptic" + /> + <!-- no mappings for remaining chars x03d7 to x03ef --> + <xsl:output-character + character="ϰ" + u:name="GREEK KAPPA SYMBOL" + u:entity="kappav" + string="(*k" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϱ" + u:name="GREEK RHO SYMBOL" + u:entity="rhov" + string="\(*r" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϲ" + u:name="GREEK LUNATE SIGMA SYMBOL" + string="\(*s" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϴ" + u:name="GREEK CAPITAL THETA SYMBOL" + string="\(*H" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="ϵ" + u:name="GREEK LUNATE EPSILON SYMBOL" + string="\(*e" + u:block="Greek and Coptic" + /> + <xsl:output-character + character="϶" + u:name="GREEK REVERSED LUNATE EPSILON SYMBOL" + u:entity="bepsi" + string="\(*e" + u:block="Greek and Coptic" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Greek and Coptic --> + <!-- * ***************************************************************** --> + + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + <!-- * Cyrillic --> + <!-- * x0400 to x04ff --> + <!-- * - do nothing - --> + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + + <!-- * ***************************************************************** --> + <!-- * Begin: General Punctuation --> + <!-- * x2000 to x206f --> + <!-- * ***************************************************************** --> + + <!-- * first, spaces of various widths --> + + <!-- * Note: There does not seem to be either a real em space or en space --> + <!-- * in roff; to approximate them, this character map assumes that in --> + <!-- * most fonts, an en space is about the same as the width of a digit --> + <!-- * (in roff, "\0"), so an em space (which by definition is --> + <!-- * equal to the width of two en spaces) is about the same as the width --> + <!-- * of two digits (thus, in roff, "\0\0") --> + + <xsl:output-character + character=" " + u:name="EN QUAD" + string="\0" + u:block="General Punctuation" + u:class="spaces" + /> + <xsl:output-character + character=" " + u:name="EM QUAD" + string="\0\0" + u:block="General Punctuation" + u:class="spaces" + /> + <xsl:output-character + character=" " + u:name="EN SPACE" + u:entity="ensp" + string="\0" + u:block="General Punctuation" + u:class="spaces" + /> + <xsl:output-character + character=" " + u:name="EM SPACE" + u:entity="emsp" + string="\0\0" + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * roughly same width as a normal space --> + <xsl:output-character + character=" " + u:name="THREE-PER-EM SPACE" + u:entity="emsp13" + string=" " + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * roughly same width as a normal space --> + <xsl:output-character + character=" " + u:name="FOUR-PER-EM SPACE" + u:entity="emsp14" + string=" " + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * roughly same width as a normal space --> + <xsl:output-character + character=" " + u:name="SIX-PER-EM SPACE" + string=" " + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * same as roff "digit" space --> + <xsl:output-character + character=" " + u:name="FIGURE SPACE" + u:entity="numsp" + string="\0" + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * punctuation space in most fonts is actually closer to a normal --> + <!-- * space than it is to a thin space --> + <xsl:output-character + character=" " + u:name="PUNCTUATION SPACE" + u:entity="puncsp" + string=" " + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * Note: Not sure how best to deal with thin space, because the roff --> + <!-- * thin space, "\^", prints as a zero-width space in TTY --> + <!-- * output. However, it seems that, unlike a hair space, a thin space, --> + <!-- * at 1/12 of an em, is still recognizable to most people as a space, --> + <!-- * so treating it as zero-width seems wrong. So, for the sake of making --> + <!-- * TTY output look OK, just substitute with a normal space; but real --> + <!-- * roff escape is "\(\^" --> + <xsl:output-character + character=" " + u:name="THIN SPACE" + u:entity="thinsp" + string=" " + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * I don't think there's a standard definition of what a hair --> + <!-- * space is; some guides just say it's "less than 1/5 of an em" or --> + <!-- * that it's "narrower than a thin space"; seems like in practice, --> + <!-- * it's *a lot* narrower than a thin space, to the point where --> + <!-- * it's close to being a non-space, so here it's substituted with --> + <!-- * roff equivalent of a zero-width no-break space --> + <xsl:output-character + character=" " + u:name="HAIR SPACE" + u:entity="hairsp" + string="\&" + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * map to roff "zero-width break point" --> + <xsl:output-character + character="​" + u:name="ZERO WIDTH SPACE" + string="\:" + u:block="General Punctuation" + u:class="spaces" + /> + + <!-- * x200c and x200d have special purposes in some Indic languages (I --> + <!-- * think); for the "correct" zero-width space, according to Unicode docs, --> + <!-- * use x2060, not x200c or x200d --> + <!-- * <xsl:output-character --> + <!-- * character="‌" --> + <!-- * u:name="ZERO WIDTH NON-JOINER" --> + <!-- * string="\:" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‍" --> + <!-- * u:name="ZERO WIDTH JOINER" --> + <!-- * string="\&" --> + <!-- * /> --> + <!-- * non-visible --> + <!-- * <xsl:output-character --> + <!-- * character="‎" --> + <!-- * u:name="LEFT-TO-RIGHT MARK" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‏" --> + <!-- * u:name="RIGHT-TO-LEFT MARK" --> + <!-- * /> --> + + <!-- * .................................................... --> + <!-- * next, hyphens and various dashes, bars, underscores --> + <xsl:output-character + character="‐" + u:name="HYPHEN" + u:entity="hyphen" + string="\(hy" + u:block="General Punctuation" + u:class="dashes" + /> + <!-- * although the groff docs do not make it clear, testing --> + <!-- * indicates that the only reliable way to make a non-breaking --> + <!-- * hyphen is to put just a backslash in front of it. --> + <!-- * --> + <!-- * based on testing, it also appears that no character is needed --> + <!-- * after the hyphen in order to make it non-breaking --> + <xsl:output-character + character="‑" + u:name="NON-BREAKING HYPHEN" + string="\-" + u:block="General Punctuation" + u:class="dashes" + /> + <!-- * roughly same width as en dash --> + <xsl:output-character + character="‒" + u:name="FIGURE DASH" + string="\(en" + u:block="General Punctuation" + u:class="dashes" + /> + <xsl:output-character + character="–" + u:name="EN DASH" + u:entity="ndash" + string="\(en" + u:block="General Punctuation" + u:class="dashes" + /> + <xsl:output-character + character="—" + u:name="EM DASH" + u:entity="mdash" + string="\(em" + u:block="General Punctuation" + u:class="dashes" + /> + <!-- * seems roughly same width as em dash --> + <xsl:output-character + character="―" + u:name="HORIZONTAL BAR" + u:entity="horbar" + string="\(em" + u:block="General Punctuation" + u:class="dashes" + /> + <xsl:output-character + character="‖" + u:name="DOUBLE VERTICAL LINE" + u:entity="Verbar" + string="\(bv\(bv" + u:block="General Punctuation" + /> + <!-- * no double-underscore in roff; so just make it a single --> + <!-- * underscore --> + <xsl:output-character + character="‗" + u:name="DOUBLE LOW LINE" + string="_" + u:block="General Punctuation" + /> + + <!-- * .................................................... --> + <!-- * various quotation marks --> + <xsl:output-character + character="‘" + u:name="LEFT SINGLE QUOTATION MARK" + u:entity="lsquo" + string="\(oq" + u:block="General Punctuation" + u:class="quotes" + /> + <xsl:output-character + character="’" + u:name="RIGHT SINGLE QUOTATION MARK" + u:entity="rsquo" + string="\(cq" + u:block="General Punctuation" + u:class="quotes" + /> + <xsl:output-character + character="‚" + u:name="SINGLE LOW-9 QUOTATION MARK" + u:entity="lsquor" + string="\(bq" + u:block="General Punctuation" + u:class="quotes" + /> + <!-- * no roff equiv; treat same as lsquo --> + <xsl:output-character + character="‛" + u:name="SINGLE HIGH-REVERSED-9 QUOTATION MARK" + string="\(oq" + u:block="General Punctuation" + u:class="quotes" + /> + <xsl:output-character + character="“" + u:name="LEFT DOUBLE QUOTATION MARK" + u:entity="ldquo" + string="\(lq" + u:block="General Punctuation" + u:class="quotes" + /> + <xsl:output-character + character="”" + u:name="RIGHT DOUBLE QUOTATION MARK" + u:entity="rdquo" + string="\(rq" + u:block="General Punctuation" + u:class="quotes" + /> + <xsl:output-character + character="„" + u:name="DOUBLE LOW-9 QUOTATION MARK" + u:entity="ldquor" + string="\(Bq" + u:block="General Punctuation" + u:class="quotes" + /> + <!-- * no roff equiv; treat same as rdquo --> + <xsl:output-character + character="‟" + u:name="DOUBLE HIGH-REVERSED-9 QUOTATION MARK" + string="\(rq" + u:block="General Punctuation" + u:class="quotes" + /> + + <!-- * .................................................... --> + <!-- * various symbols --> + <xsl:output-character + character="†" + u:name="DAGGER" + u:entity="dagger" + string="\(dg" + u:block="General Punctuation_daggers" + /> + <xsl:output-character + character="‡" + u:name="DOUBLE DAGGER" + u:entity="Dagger" + string="\(dd" + u:block="General Punctuation_daggers" + /> + <xsl:output-character + character="•" + u:name="BULLET" + u:entity="bull" + string="\(bu" + u:block="General Punctuation" + u:class="bullets" + /> + <!-- * no roff equiv --> + <xsl:output-character + character="‣" + u:name="TRIANGULAR BULLET" + string=">\&" + u:block="General Punctuation" + u:class="bullets" + /> + <!-- * no roff equiv --> + <xsl:output-character + character="․" + u:name="ONE DOT LEADER" + string="\&." + u:block="General Punctuation_leaders" + /> + <!-- * no roff equiv --> + <xsl:output-character + character="‥" + u:name="TWO DOT LEADER" + u:entity="nldr" + string="\&.." + u:block="General Punctuation_leaders" + /> + <!-- * no roff equiv --> + <xsl:output-character + character="…" + u:name="HORIZONTAL ELLIPSIS" + u:entity="hellip" + string="\&..." + u:block="General Punctuation" + /> + <!-- what is "hyphenation point" used for? looks like middot to me... --> + <xsl:output-character + character="‧" + u:name="HYPHENATION POINT" + string="\(md" + u:block="General Punctuation" + /> + <!-- * Begin x2028 to x202e - no idea what to do with these --> + <!-- * <xsl:output-character --> + <!-- * character="
" --> + <!-- * u:name="LINE SEPARATOR" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="
" --> + <!-- * u:name="PARAGRAPH SEPARATOR" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‪" --> + <!-- * u:name="LEFT-TO-RIGHT EMBEDDING" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‫" --> + <!-- * u:name="RIGHT-TO-LEFT EMBEDDING" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‬" --> + <!-- * u:name="POP DIRECTIONAL FORMATTING" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‭" --> + <!-- * u:name="LEFT-TO-RIGHT OVERRIDE" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‮" --> + <!-- * u:name="RIGHT-TO-LEFT OVERRIDE" --> + <!-- * /> --> + <!-- * End x2028 to x202e - no idea what to do with these --> + + <!-- * seems like "narrow" nbsp is basically the same as a no-break --> + <!-- * space --> + <xsl:output-character + character=" " + u:name="NARROW NO-BREAK SPACE" + string="\ " + u:block="General Punctuation" + u:class="spaces" + /> + <xsl:output-character + character="‰" + u:name="PER MILLE SIGN" + u:entity="permil" + string="\(%0" + u:block="General Punctuation" + /> + <!-- * no roff equiv; no idea what to do with it --> + <!-- * <xsl:output-character --> + <!-- * character="‱" --> + <!-- * u:name="PER TEN THOUSAND SIGN" --> + <!-- * /> --> + <xsl:output-character + character="′" + u:name="PRIME" + u:entity="prime" + string="\(fm" + u:block="General Punctuation" + u:class="primes" + /> + <xsl:output-character + character="″" + u:name="DOUBLE PRIME" + u:entity="Prime" + string="\(sd" + u:block="General Punctuation" + u:class="primes" + /> + <xsl:output-character + character="‴" + u:name="TRIPLE PRIME" + u:entity="tprime" + string="\(sd\(fm" + u:block="General Punctuation" + u:class="primes" + /> + <!-- * no idea for these --> + <!-- * <xsl:output-character --> + <!-- * character="‵" --> + <!-- * u:name="REVERSED PRIME" --> + <!-- * u:entity="bprime" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‶" --> + <!-- * u:name="REVERSED DOUBLE PRIME" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="‷" --> + <!-- * u:name="REVERSED TRIPLE PRIME" --> + <!-- * /> --> + + <!-- * there is no low caret in roff --> + <xsl:output-character + character="‸" + u:name="CARET" + string="^" + u:block="General Punctuation" + /> + <xsl:output-character + character="‹" + u:name="SINGLE LEFT-POINTING ANGLE QUOTATION MARK" + string="\(fo" + u:block="General Punctuation" + u:class="quotes" + /> + <xsl:output-character + character="›" + u:name="SINGLE RIGHT-POINTING ANGLE QUOTATION MARK" + string="\(fc" + u:block="General Punctuation" + u:class="quotes" + /> + <!-- * not in roff --> + <xsl:output-character + character="※" + u:name="REFERENCE MARK" + string="*" + u:block="General Punctuation" + /> + <xsl:output-character + character="‼" + u:name="DOUBLE EXCLAMATION MARK" + string="!!" + u:block="General Punctuation" + /> + <xsl:output-character + character="‽" + u:name="INTERROBANG" + string="?!" + u:block="General Punctuation" + /> + <xsl:output-character + character="‾" + u:name="OVERLINE" + string="\(rn" + u:block="General Punctuation" + /> + <xsl:output-character + character="‿" + u:name="UNDERTIE" + string="\(ul" + u:block="General Punctuation" + /> + <!-- * not in roff --> + <xsl:output-character + character="⁀" + u:name="CHARACTER TIE" + string="\(rn" + u:block="General Punctuation" + /> + <!-- * not in roff --> + <xsl:output-character + character="⁁" + u:name="CARET INSERTION POINT" + u:entity="caret" + string="^" + u:block="General Punctuation" + /> + <!-- * not in roff --> + <xsl:output-character + character="⁂" + u:name="ASTERISM" + string="*" + u:block="General Punctuation" + /> + <!-- * not in roff; just make bold hyphen --> + <xsl:output-character + character="⁃" + u:name="HYPHEN BULLET" + u:entity="hybull" + string="\fB-\fR" + u:block="General Punctuation" + u:class="bullets" + /> + <xsl:output-character + character="⁄" + u:name="FRACTION SLASH" + string="\(sl" + u:block="General Punctuation" + /> + <!-- * not in roff --> + <xsl:output-character + character="⁅" + u:name="LEFT SQUARE BRACKET WITH QUILL" + string="[" + u:block="General Punctuation" + /> + <!-- * not in roff --> + <xsl:output-character + character="⁆" + u:name="RIGHT SQUARE BRACKET WITH QUILL" + string="]" + u:block="General Punctuation" + /> + <xsl:output-character + character="⁇" + u:name="DOUBLE QUESTION MARK" + string="??" + u:block="General Punctuation" + /> + <xsl:output-character + character="⁈" + u:name="QUESTION EXCLAMATION MARK" + string="?!" + u:block="General Punctuation" + /> + <xsl:output-character + character="⁉" + u:name="EXCLAMATION QUESTION MARK" + string="!?" + u:block="General Punctuation" + /> + <!-- * not in roff --> + <xsl:output-character + character="⁊" + u:name="TIRONIAN SIGN ET" + string="7" + u:block="General Punctuation" + /> + <!-- * not in roff; just replace with un-reversed pilcrow --> + <xsl:output-character + character="⁋" + u:name="REVERSED PILCROW SIGN" + string="\(ps" + u:block="General Punctuation" + /> + <!-- * not in roff; just make regular bullet --> + <xsl:output-character + character="⁌" + u:name="BLACK LEFTWARDS BULLET" + string="\(bu" + u:block="General Punctuation" + /> + <!-- * not in roff; just make regular bullet --> + <xsl:output-character + character="⁍" + u:name="BLACK RIGHTWARDS BULLET" + string="\(bu" + u:block="General Punctuation" + /> + <xsl:output-character + character="⁎" + u:name="LOW ASTERISK" + string="*" + u:block="General Punctuation" + /> + + <!-- * ............................................................... --> + <!-- * Remaining General Punctuation --> + <!-- * from x2050 to x206f --> + <!-- * only map a couple of these --> + <!-- * ............................................................... --> + + <!-- * basically same as a normal space --> + <xsl:output-character + character=" " + u:name="MEDIUM MATHEMATICAL SPACE" + string=" " + u:block="General Punctuation" + u:class="spaces" + /> + <!-- * Regarding x2060 vs. xFEFF, the document "Unicode Standard Annex #14, --> + <!-- * Line Breaking Properties"[1] says: --> + <!-- * --> + <!-- * The word joiner character [x2060 a.k.a "WJ"] is the preferred --> + <!-- * choice for an invisible character to keep other characters --> + <!-- * together that would otherwise be split across the line at a direct --> + <!-- * break. The character FEFF has the same effect, but because it is --> + <!-- * also used in an unrelated way as a byte order mark, the use of the --> + <!-- * WJ as the preferred interword glue simplifies the handling of FEFF. --> + <!-- * --> + <!-- * [1] http://www.unicode.org/reports/tr14/ --> + <!-- * --> + <!-- * The groff docs seem ambiguous about whether \& is a joiner and --> + <!-- * prevents breaks, but, based on testing, seems like it does --> + <xsl:output-character + character="⁠" + u:name="WORD JOINER" + string="\&" + u:block="General Punctuation" + /> + + <!-- * ***************************************************************** --> + <!-- * End: General Punctuation --> + <!-- * ***************************************************************** --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Superscripts and Subscripts --> + <!-- * x2070 to x209f --> + <!-- * For superscripts, just do a^n thing --> + <!-- * For subscripts, just do a_n --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="⁰" + u:name="SUPERSCRIPT ZERO" + string="^0" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="ⁱ" + u:name="SUPERSCRIPT LATIN SMALL LETTER I" + string="^i" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁴" + u:name="SUPERSCRIPT FOUR" + string="^4" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁵" + u:name="SUPERSCRIPT FIVE" + string="^5" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁶" + u:name="SUPERSCRIPT SIX" + string="^6" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁷" + u:name="SUPERSCRIPT SEVEN" + string="^7" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁸" + u:name="SUPERSCRIPT EIGHT" + string="^8" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁹" + u:name="SUPERSCRIPT NINE" + string="^9" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁺" + u:name="SUPERSCRIPT PLUS SIGN" + string="^+" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁻" + u:name="SUPERSCRIPT MINUS" + string="^-" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁼" + u:name="SUPERSCRIPT EQUALS SIGN" + string="^=" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁽" + u:name="SUPERSCRIPT LEFT PARENTHESIS" + string="^(" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="⁾" + u:name="SUPERSCRIPT RIGHT PARENTHESIS" + string="^)" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="ⁿ" + u:name="SUPERSCRIPT LATIN SMALL LETTER N" + string="^n" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₀" + u:name="SUBSCRIPT ZERO" + string="_0" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₁" + u:name="SUBSCRIPT ONE" + string="_1" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₂" + u:name="SUBSCRIPT TWO" + string="_2" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₃" + u:name="SUBSCRIPT THREE" + string="_3" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₄" + u:name="SUBSCRIPT FOUR" + string="_4" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₅" + u:name="SUBSCRIPT FIVE" + string="_5" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₆" + u:name="SUBSCRIPT SIX" + string="_6" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₇" + u:name="SUBSCRIPT SEVEN" + string="_7" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₈" + u:name="SUBSCRIPT EIGHT" + string="_8" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₉" + u:name="SUBSCRIPT NINE" + string="_9" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₊" + u:name="SUBSCRIPT PLUS SIGN" + string="_+" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₋" + u:name="SUBSCRIPT MINUS" + string="_-" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₌" + u:name="SUBSCRIPT EQUALS SIGN" + string="_=" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₍" + u:name="SUBSCRIPT LEFT PARENTHESIS" + string="_(" + u:block="Superscripts and Subscripts" + /> + <xsl:output-character + character="₎" + u:name="SUBSCRIPT RIGHT PARENTHESIS" + string="_)" + u:block="Superscripts and Subscripts" + /> + <!-- * ***************************************************************** --> + <!-- * End: Superscripts and Subscripts --> + <!-- * x2070 to x209f --> + <!-- * ***************************************************************** --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Currency Symbols --> + <!-- * x20a0 to x20b1 --> + <!-- * No mappings for any of these; just spell out --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="₠" + u:name="EURO-CURRENCY SIGN" + string="EUR" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₡" + u:name="COLON SIGN" + string="COLON" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₢" + u:name="CRUZEIRO SIGN" + string="CRUZEIRO" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₣" + u:name="FRENCH FRANC SIGN" + string="FRANC" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₤" + u:name="LIRA SIGN" + string="LIRA" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₥" + u:name="MILL SIGN" + string="MILL" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₦" + u:name="NAIRA SIGN" + string="NAIRA" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₧" + u:name="PESETA SIGN" + string="PESETA" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₨" + u:name="RUPEE SIGN" + string="RUPEE" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₩" + u:name="WON SIGN" + string="WON" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₪" + u:name="NEW SHEQEL SIGN" + string="SHEQEL" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₫" + u:name="DONG SIGN" + string="DONG" + u:block="Currency Symbols" + /> + <xsl:output-character + character="€" + u:name="EURO SIGN" + string="EUR" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₭" + u:name="KIP SIGN" + string="KIP" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₮" + u:name="TUGRIK SIGN" + string="TUGRIK" + u:block="Currency Symbols" + /> + <xsl:output-character + character="₯" + u:name="DRACHMA SIGN" + string="DRACHMA" + u:block="Currency Symbols" + /> + <!-- <xsl:output-character --> + <!-- character="₰" --> + <!-- u:name="GERMAN PENNY SIGN" --> + <!-- string="?" --> + <!-- u:block="Currency Symbols" --> + <!-- /> --> + <xsl:output-character + character="₱" + u:name="PESO SIGN" + string="PESO" + u:block="Currency Symbols" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Currency Symbols --> + <!-- * x20a0 to x20b1 --> + <!-- * ***************************************************************** --> + + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + <!-- * Combining Diacritical Marks for Symbols --> + <!-- * x20d0 to x20ff --> + <!-- * - do nothing - --> + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Letterlike Symbols --> + <!-- * x2100 to x214b --> + <!-- * --> + <!-- * No mappings for any of these, and nothing appropriate for --> + <!-- * most of them; so, just spell out the ones that we can --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="℃" + u:name="DEGREE CELSIUS" + string="\(deC" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="℅" + u:name="CARE OF" + u:entity="incare" + string="c/o" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="℉" + u:name="DEGREE FAHRENHEIT" + string="\(deF" + u:block="Letterlike Symbols" + /> + <!-- roff Ifraktur --> + <xsl:output-character + character="ℑ" + u:name="BLACK-LETTER CAPITAL I" + string="\(Im" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="ℓ" + u:name="SCRIPT SMALL L" + u:entity="ell" + string="l" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="№" + u:name="NUMERO SIGN" + u:entity="numero" + string="No." + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="℘" + u:name="SCRIPT CAPITAL P" + u:entity="weierp" + string="\(wp" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="ℜ" + u:name="BLACK-LETTER CAPITAL R" + u:entity="real" + string="\(Re" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="℞" + u:name="PRESCRIPTION TAKE" + u:entity="rx" + string="Rx" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="℠" + u:name="SERVICE MARK" + string="(SM)" + u:block="Letterlike Symbols" + /> + <!-- * We don't do "\(tm" for ™ because for console output, groff --> + <!-- * just renders that as "tm", without any preceding space, parens, --> + <!-- * or anything. So it just gets run into the preceding word; i.e.: --> + <!-- * --> + <!-- * Product™ -> Producttm --> + <!-- * --> + <!-- * That it probably not what most people would want. So we just --> + <!-- * render it as (TM) instead, Thus: --> + <!-- * --> + <!-- * Product™ -> Product(TM) --> + <xsl:output-character + character="™" + u:name="TRADE MARK SIGN" + u:entity="trade" + string="(TM)" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="Ω" + u:name="OHM SIGN" + u:entity="ohm" + string="\(*W" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="K" + u:name="KELVIN SIGN" + string="K" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="Å" + u:name="ANGSTROM SIGN" + u:entity="angst" + string="\(oA" + u:block="Letterlike Symbols" + /> + <xsl:output-character + character="ℵ" + u:name="ALEF SYMBOL" + u:entity="aleph" + string="\(Ah" + u:block="Letterlike Symbols" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Letterlike Symbols --> + <!-- * x2100 to x214b --> + <!-- * ***************************************************************** --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Number Forms --> + <!-- * x2150 to x218f --> + <!-- * --> + <!-- * No mappings for any of these, and nothing appropriate for most --> + <!-- * of them; so, just spell out the ones that we can --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="⅓" + u:name="VULGAR FRACTION ONE THIRD" + u:entity="frac13" + string="1/3" + u:block="Number Forms" + /> + <xsl:output-character + character="⅔" + u:name="VULGAR FRACTION TWO THIRDS" + u:entity="frac23" + string="2/3" + u:block="Number Forms" + /> + <xsl:output-character + character="⅕" + u:name="VULGAR FRACTION ONE FIFTH" + u:entity="frac15" + string="1/5" + u:block="Number Forms" + /> + <xsl:output-character + character="⅖" + u:name="VULGAR FRACTION TWO FIFTHS" + u:entity="frac25" + string="2/5" + u:block="Number Forms" + /> + <xsl:output-character + character="⅗" + u:name="VULGAR FRACTION THREE FIFTHS" + u:entity="frac35" + string="3/5" + u:block="Number Forms" + /> + <xsl:output-character + character="⅘" + u:name="VULGAR FRACTION FOUR FIFTHS" + u:entity="frac45" + string="4/5" + u:block="Number Forms" + /> + <xsl:output-character + character="⅙" + u:name="VULGAR FRACTION ONE SIXTH" + u:entity="frac16" + string="1/6" + u:block="Number Forms" + /> + <xsl:output-character + character="⅚" + u:name="VULGAR FRACTION FIVE SIXTHS" + u:entity="frac56" + string="5/6" + u:block="Number Forms" + /> + <xsl:output-character + character="⅛" + u:name="VULGAR FRACTION ONE EIGHTH" + u:entity="frac18" + string="1/8" + u:block="Number Forms" + /> + <xsl:output-character + character="⅜" + u:name="VULGAR FRACTION THREE EIGHTHS" + u:entity="frac38" + string="3/8" + u:block="Number Forms" + /> + <xsl:output-character + character="⅝" + u:name="VULGAR FRACTION FIVE EIGHTHS" + u:entity="frac58" + string="5/8" + u:block="Number Forms" + /> + <xsl:output-character + character="⅞" + u:name="VULGAR FRACTION SEVEN EIGHTHS" + u:entity="frac78" + string="7/8" + u:block="Number Forms" + /> + <xsl:output-character + character="⅟" + u:name="FRACTION NUMERATOR ONE" + string="1/" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅰ" + u:name="ROMAN NUMERAL ONE" + string="I" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅱ" + u:name="ROMAN NUMERAL TWO" + string="II" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅲ" + u:name="ROMAN NUMERAL THREE" + string="III" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅳ" + u:name="ROMAN NUMERAL FOUR" + string="IV" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅴ" + u:name="ROMAN NUMERAL FIVE" + string="V" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅵ" + u:name="ROMAN NUMERAL SIX" + string="VI" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅶ" + u:name="ROMAN NUMERAL SEVEN" + string="VII" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅷ" + u:name="ROMAN NUMERAL EIGHT" + string="VIII" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅸ" + u:name="ROMAN NUMERAL NINE" + string="IX" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅹ" + u:name="ROMAN NUMERAL TEN" + string="X" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅺ" + u:name="ROMAN NUMERAL ELEVEN" + string="XI" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅻ" + u:name="ROMAN NUMERAL TWELVE" + string="XII" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅼ" + u:name="ROMAN NUMERAL FIFTY" + string="L" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅽ" + u:name="ROMAN NUMERAL ONE HUNDRED" + string="C" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅾ" + u:name="ROMAN NUMERAL FIVE HUNDRED" + string="D" + u:block="Number Forms" + /> + <xsl:output-character + character="Ⅿ" + u:name="ROMAN NUMERAL ONE THOUSAND" + string="M" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅰ" + u:name="SMALL ROMAN NUMERAL ONE" + string="i" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅱ" + u:name="SMALL ROMAN NUMERAL TWO" + string="ii" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅲ" + u:name="SMALL ROMAN NUMERAL THREE" + string="iii" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅳ" + u:name="SMALL ROMAN NUMERAL FOUR" + string="iv" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅴ" + u:name="SMALL ROMAN NUMERAL FIVE" + string="v" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅵ" + u:name="SMALL ROMAN NUMERAL SIX" + string="vi" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅶ" + u:name="SMALL ROMAN NUMERAL SEVEN" + string="vii" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅷ" + u:name="SMALL ROMAN NUMERAL EIGHT" + string="viii" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅸ" + u:name="SMALL ROMAN NUMERAL NINE" + string="ix" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅹ" + u:name="SMALL ROMAN NUMERAL TEN" + string="x" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅺ" + u:name="SMALL ROMAN NUMERAL ELEVEN" + string="xi" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅻ" + u:name="SMALL ROMAN NUMERAL TWELVE" + string="xii" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅼ" + u:name="SMALL ROMAN NUMERAL FIFTY" + string="l" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅽ" + u:name="SMALL ROMAN NUMERAL ONE HUNDRED" + string="c" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅾ" + u:name="SMALL ROMAN NUMERAL FIVE HUNDRED" + string="d" + u:block="Number Forms" + /> + <xsl:output-character + character="ⅿ" + u:name="SMALL ROMAN NUMERAL ONE THOUSAND" + string="m" + u:block="Number Forms" + /> + <xsl:output-character + character="ↀ" + u:name="ROMAN NUMERAL ONE THOUSAND C D" + string="CD" + u:block="Number Forms" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Number Forms --> + <!-- * x2150 to x218f --> + <!-- * ***************************************************************** --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Arrows --> + <!-- * x2190 to x21ff --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="←" + u:name="LEFTWARDS ARROW" + u:entity="larr" + string="\(<-" + u:block="Arrows" + /> + <xsl:output-character + character="↑" + u:name="UPWARDS ARROW" + u:entity="uarr" + string="\(ua" + u:block="Arrows" + /> + <xsl:output-character + character="→" + u:name="RIGHTWARDS ARROW" + u:entity="rarr" + string="\(->" + u:block="Arrows" + /> + <xsl:output-character + character="↓" + u:name="DOWNWARDS ARROW" + u:entity="darr" + string="\(da" + u:block="Arrows" + /> + <xsl:output-character + character="↔" + u:name="LEFT RIGHT ARROW" + u:entity="harr" + string="\(<>" + u:block="Arrows" + /> + <xsl:output-character + character="↕" + u:name="UP DOWN ARROW" + u:entity="varr" + string="\(va" + u:block="Arrows" + /> + <xsl:output-character + character="↵" + u:name="DOWNWARDS ARROW WITH CORNER LEFTWARDS" + u:entity="crarr" + string="\(CR" + u:block="Arrows" + /> + <xsl:output-character + character="⇐" + u:name="LEFTWARDS DOUBLE ARROW" + u:entity="lArr" + string="\(la" + u:block="Arrows" + /> + <xsl:output-character + character="⇑" + u:name="UPWARDS DOUBLE ARROW" + u:entity="uArr" + string="\(uA" + u:block="Arrows" + /> + <xsl:output-character + character="⇒" + u:name="RIGHTWARDS DOUBLE ARROW" + u:entity="rArr" + string="\(rA" + u:block="Arrows" + /> + <xsl:output-character + character="⇓" + u:name="DOWNWARDS DOUBLE ARROW" + u:entity="dArr" + string="\(dA" + u:block="Arrows" + /> + <xsl:output-character + character="⇔" + u:name="LEFT RIGHT DOUBLE ARROW" + u:entity="hArr" + string="\(hA" + u:block="Arrows" + /> + <!-- no roff equiv; render same as single arrow --> + <xsl:output-character + character="⇕" + u:name="UP DOWN DOUBLE ARROW" + u:entity="vArr" + string="\(va" + u:block="Arrows" + /> + + <!-- * ***************************************************************** --> + <!-- * Begin: Mathematical Operators --> + <!-- * x2200 to x22ff --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="∀" + u:name="FOR ALL" + u:entity="forall" + string="\(fa" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∁" + u:name="COMPLEMENT" + u:entity="comp" + string="C" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∂" + u:name="PARTIAL DIFFERENTIAL" + u:entity="part" + string="\(pd" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∃" + u:name="THERE EXISTS" + u:entity="exist" + string="\(te" + u:block="Mathematical Operators" + /> + <!-- * no roff equiv --> + <!-- * <xsl:output-character --> + <!-- * character="∄" --> + <!-- * u:name="THERE DOES NOT EXIST" --> + <!-- * u:entity="nexist" --> + <!-- * /> --> + <xsl:output-character + character="∅" + u:name="EMPTY SET" + u:entity="empty" + string="\(es" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∆" + u:name="INCREMENT" + string="\(*D" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∇" + u:name="NABLA" + u:entity="nabla" + string="\(gr" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∈" + u:name="ELEMENT OF" + u:entity="isin" + string="\(mo" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∉" + u:name="NOT AN ELEMENT OF" + u:entity="notin" + string="\(nm" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∊" + u:name="SMALL ELEMENT OF" + string="\(mo" + u:block="Mathematical Operators" + /> + + <xsl:output-character + character="∋" + u:name="CONTAINS AS MEMBER" + u:entity="ni" + string="\(st" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="∌" --> + <!-- * u:name="DOES NOT CONTAIN AS MEMBER" --> + <!-- * /> --> + <xsl:output-character + character="∍" + u:name="SMALL CONTAINS AS MEMBER" + string="\(st" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="∎" --> + <!-- * u:name="END OF PROOF" --> + <!-- * /> --> + <xsl:output-character + character="∏" + u:name="N-ARY PRODUCT" + u:entity="prod" + string="\(product" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="∐" --> + <!-- * u:name="N-ARY COPRODUCT" --> + <!-- * u:entity="coprod" --> + <!-- * /> --> + <xsl:output-character + character="∑" + u:name="N-ARY SUMMATION" + u:entity="sum" + string="\(sum" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="−" + u:name="MINUS SIGN" + u:entity="minus" + string="\-" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∓" + u:name="MINUS-OR-PLUS SIGN" + u:entity="mnplus" + string="\(+-" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="∔" --> + <!-- * u:name="DOT PLUS" --> + <!-- * u:entity="plusdo" --> + <!-- * /> --> + <xsl:output-character + character="∕" + u:name="DIVISION SLASH" + string="\(f/" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∖" + u:name="SET MINUS" + u:entity="setmn" + string="\e" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∗" + u:name="ASTERISK OPERATOR" + u:entity="lowast" + string="\(**" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="∘" --> + <!-- * u:name="RING OPERATOR" --> + <!-- * u:entity="compfn" --> + <!-- * /> --> + <xsl:output-character + character="∙" + u:name="BULLET OPERATOR" + string="\(bu" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="√" + u:name="SQUARE ROOT" + u:entity="radic" + string="\(sr" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="∛" --> + <!-- * u:name="CUBE ROOT" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="∜" --> + <!-- * u:name="FOURTH ROOT" --> + <!-- * /> --> + <xsl:output-character + character="∝" + u:name="PROPORTIONAL TO" + u:entity="prop" + string="\(pt" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∞" + u:name="INFINITY" + u:entity="infin" + string="\(if" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="∟" --> + <!-- * u:name="RIGHT ANGLE" --> + <!-- * u:entity="ang90" --> + <!-- * /> --> + <xsl:output-character + character="∠" + u:name="ANGLE" + u:entity="ang" + string="\(/_" + u:block="Mathematical Operators" + /> + + <!-- * 0x2221 to 0x2226 not in roff; --> + <!-- * but fake a parallel sign with vert bars --> + + <xsl:output-character + character="∥" + u:name="PARALLEL TO" + u:entity="par" + string="\(bv\(bv" + u:block="Mathematical Operators" + /> + + <xsl:output-character + character="∧" + u:name="LOGICAL AND" + u:entity="and" + string="\(AN" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∨" + u:name="LOGICAL OR" + u:entity="or" + string="\(OR" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∩" + u:name="INTERSECTION" + u:entity="cap" + string="\(ca" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∪" + u:name="UNION" + u:entity="cup" + string="\(cu" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∫" + u:name="INTEGRAL" + u:entity="int" + string="\(is" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∬" + u:name="DOUBLE INTEGRAL" + string="\(is\(is" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∭" + u:name="TRIPLE INTEGRAL" + string="\(is\(is\(is" + u:block="Mathematical Operators" + /> + + <!-- * 0x222e to 0x2233 not in roff --> + + <xsl:output-character + character="∴" + u:name="THEREFORE" + u:entity="there4" + string="\(tf" + u:block="Mathematical Operators" + /> + + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="∵" --> + <!-- * u:name="BECAUSE" --> + <!-- * u:entity="becaus" --> + <!-- * /> --> + <xsl:output-character + character="∶" + u:name="RATIO" + string=":" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="∷" + u:name="PROPORTION" + string="::" + u:block="Mathematical Operators" + /> + + <!-- * 0x2238 to 0x223b not in roff --> + + <xsl:output-character + character="∼" + u:name="TILDE OPERATOR" + u:entity="sim" + string="\(ti" + u:block="Mathematical Operators" + /> + + <!-- * 0x223d to 0x224b not in roff --> + + <xsl:output-character + character="≅" + u:name="APPROXIMATELY EQUAL TO" + u:entity="cong" + string="\(=~" + u:block="Mathematical Operators" + /> + + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="≆" --> + <!-- * u:name="APPROXIMATELY BUT NOT ACTUALLY EQUAL TO" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="≇" --> + <!-- * u:name="NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO" --> + <!-- * u:entity="ncong" --> + <!-- * /> --> + + <xsl:output-character + character="≈" + u:name="ALMOST EQUAL TO" + u:entity="asymp" + string="\(~~" + u:block="Mathematical Operators" + /> + + <!-- * x2249 to x2253 not in roff --> + + <xsl:output-character + character="≔" + u:name="COLON EQUALS" + u:entity="colone" + string=":=" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="≕" + u:name="EQUALS COLON" + u:entity="ecolon" + string="=:" + u:block="Mathematical Operators" + /> + + <!-- * x2256 to x2255 not in roff --> + + <xsl:output-character + character="≟" + u:name="QUESTIONED EQUAL TO" + string="?=" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="≠" + u:name="NOT EQUAL TO" + u:entity="ne" + string="\(!=" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="≡" + u:name="IDENTICAL TO" + u:entity="equiv" + string="\(==" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="≢" --> + <!-- * u:name="NOT IDENTICAL TO" --> + <!-- * u:entity="nequiv" --> + <!-- * /> --> + <!-- * <xsl:output-character --> + <!-- * character="≣" --> + <!-- * u:name="STRICTLY EQUIVALENT TO" --> + <!-- * /> --> + <xsl:output-character + character="≤" + u:name="LESS-THAN OR EQUAL TO" + u:entity="le" + string="\(<=" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="≥" + u:name="GREATER-THAN OR EQUAL TO" + u:entity="ge" + string="\(>=" + u:block="Mathematical Operators" + /> + <!-- * x2266 to x2269 not in roff --> + + <xsl:output-character + character="≪" + u:name="MUCH LESS-THAN" + u:entity="Lt" + string="<<" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="≫" + u:name="MUCH GREATER-THAN" + u:entity="Gt" + string=">>" + u:block="Mathematical Operators" + /> + <!-- * x226c to x2281 not in roff --> + + <xsl:output-character + character="⊂" + u:name="SUBSET OF" + u:entity="sub" + string="\(sb" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⊃" + u:name="SUPERSET OF" + u:entity="sup" + string="\(sp" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⊄" + u:name="NOT A SUBSET OF" + u:entity="nsub" + string="\(nb" + u:block="Mathematical Operators" + /> + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="⊅" --> + <!-- * u:name="NOT A SUPERSET OF" --> + <!-- * u:entity="nsup" --> + <!-- * /> --> + <xsl:output-character + character="⊆" + u:name="SUBSET OF OR EQUAL TO" + u:entity="sube" + string="\(ib" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⊇" + u:name="SUPERSET OF OR EQUAL TO" + u:entity="supe" + string="\(ip" + u:block="Mathematical Operators" + /> + <!-- * x2288 to x2294 not in roff --> + + <xsl:output-character + character="⊕" + u:name="CIRCLED PLUS" + u:entity="oplus" + string="\(c+" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⊖" + u:name="CIRCLED MINUS" + u:entity="ominus" + string="\(c*" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⊗" + u:name="CIRCLED TIMES" + u:entity="otimes" + string="\(c*" + u:block="Mathematical Operators" + /> + + <!-- * x2298 to x22a4 not in roff --> + + <xsl:output-character + character="⊥" + u:name="UP TACK" + u:entity="bottom" + string="\(pp" + u:block="Mathematical Operators" + /> + + <!-- * x22a6 to x22bf not in roff --> + + <xsl:output-character + character="⋀" + u:name="N-ARY LOGICAL AND" + string="\(AN" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⋁" + u:name="N-ARY LOGICAL OR" + string="\(OR" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⋂" + u:name="N-ARY INTERSECTION" + string="\(ca" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⋃" + u:name="N-ARY UNION" + string="\(cu" + u:block="Mathematical Operators" + /> + + <!-- * not in roff --> + <!-- * <xsl:output-character --> + <!-- * character="⋄" --> + <!-- * u:name="DIAMOND OPERATOR" --> + <!-- * u:entity="diam" --> + <!-- * /> --> + <xsl:output-character + character="⋅" + u:name="DOT OPERATOR" + u:entity="sdot" + string="\(md" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⋆" + u:name="STAR OPERATOR" + u:entity="sstarf" + string="\(**" + u:block="Mathematical Operators" + /> + <!-- * x22c7 to x22cd not in roff --> + + <xsl:output-character + character="⋎" + u:name="CURLY LOGICAL OR" + u:entity="cuvee" + string="\(OR" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⋏" + u:name="CURLY LOGICAL AND" + u:entity="cuwed" + string="\(AN" + u:block="Mathematical Operators" + /> + + <!-- * x22d0 to x22d7 not in roff --> + + <xsl:output-character + character="⋘" + u:name="VERY MUCH LESS-THAN" + u:entity="Ll" + string="<<<" + u:block="Mathematical Operators" + /> + <xsl:output-character + character="⋙" + u:name="VERY MUCH GREATER-THAN" + u:entity="Gg" + string=">>>" + u:block="Mathematical Operators" + /> + + <!-- * x22da to x22ee not in roff --> + + <xsl:output-character + character="⋯" + u:name="MIDLINE HORIZONTAL ELLIPSIS" + string="\&..." + u:block="Mathematical Operators" + /> + + <!-- * x22fo to x22ff not in roff --> + + <!-- * ***************************************************************** --> + <!-- * End: Mathematical Operators --> + <!-- * ***************************************************************** --> + + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + <!-- * Miscellaneous Technical --> + <!-- * x2300 to x23ff --> + <!-- * - do nothing except for angle brackets - --> + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + + <xsl:output-character + character="〈" + u:name="LEFT-POINTING ANGLE BRACKET" + u:entity="lang" + string="\(la" + u:block="Miscellaneous Technical" + /> + <xsl:output-character + character="〉" + u:name="RIGHT-POINTING ANGLE BRACKET" + u:entity="rang" + string="\(ra" + u:block="Miscellaneous Technical" + /> + + <!-- * ***************************************************************** --> + <!-- * Begin: Control Pictures --> + <!-- * x2400 to x243f --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="␀" + u:name="SYMBOL FOR NULL" + string="NUL" + u:block="Control Pictures" + /> + <xsl:output-character + character="␁" + u:name="SYMBOL FOR START OF HEADING" + string="SOH" + u:block="Control Pictures" + /> + <xsl:output-character + character="␂" + u:name="SYMBOL FOR START OF TEXT" + string="STX" + u:block="Control Pictures" + /> + <xsl:output-character + character="␃" + u:name="SYMBOL FOR END OF TEXT" + string="ETX" + u:block="Control Pictures" + /> + <xsl:output-character + character="␄" + u:name="SYMBOL FOR END OF TRANSMISSION" + string="EOT" + u:block="Control Pictures" + /> + <xsl:output-character + character="␅" + u:name="SYMBOL FOR ENQUIRY" + string="ENQ" + u:block="Control Pictures" + /> + <xsl:output-character + character="␆" + u:name="SYMBOL FOR ACKNOWLEDGE" + string="ACK" + u:block="Control Pictures" + /> + <xsl:output-character + character="␇" + u:name="SYMBOL FOR BELL" + string="BEL" + u:block="Control Pictures" + /> + <xsl:output-character + character="␈" + u:name="SYMBOL FOR BACKSPACE" + string="BS" + u:block="Control Pictures" + /> + <xsl:output-character + character="␉" + u:name="SYMBOL FOR HORIZONTAL TABULATION" + string="HT" + u:block="Control Pictures" + /> + <xsl:output-character + character="␊" + u:name="SYMBOL FOR LINE FEED" + string="LF" + u:block="Control Pictures" + /> + <xsl:output-character + character="␋" + u:name="SYMBOL FOR VERTICAL TABULATION" + string="VT" + u:block="Control Pictures" + /> + <xsl:output-character + character="␌" + u:name="SYMBOL FOR FORM FEED" + string="FF" + u:block="Control Pictures" + /> + <xsl:output-character + character="␍" + u:name="SYMBOL FOR CARRIAGE RETURN" + string="CR" + u:block="Control Pictures" + /> + <xsl:output-character + character="␎" + u:name="SYMBOL FOR SHIFT OUT" + string="SO" + u:block="Control Pictures" + /> + <xsl:output-character + character="␏" + u:name="SYMBOL FOR SHIFT IN" + string="SI" + u:block="Control Pictures" + /> + <xsl:output-character + character="␐" + u:name="SYMBOL FOR DATA LINK ESCAPE" + string="DLE" + u:block="Control Pictures" + /> + <xsl:output-character + character="␑" + u:name="SYMBOL FOR DEVICE CONTROL ONE" + string="DC1" + u:block="Control Pictures" + /> + <xsl:output-character + character="␒" + u:name="SYMBOL FOR DEVICE CONTROL TWO" + string="DC2" + u:block="Control Pictures" + /> + <xsl:output-character + character="␓" + u:name="SYMBOL FOR DEVICE CONTROL THREE" + string="DC3" + u:block="Control Pictures" + /> + <xsl:output-character + character="␔" + u:name="SYMBOL FOR DEVICE CONTROL FOUR" + string="DC4" + u:block="Control Pictures" + /> + <xsl:output-character + character="␕" + u:name="SYMBOL FOR NEGATIVE ACKNOWLEDGE" + string="NAK" + u:block="Control Pictures" + /> + <xsl:output-character + character="␖" + u:name="SYMBOL FOR SYNCHRONOUS IDLE" + string="SYN" + u:block="Control Pictures" + /> + <xsl:output-character + character="␗" + u:name="SYMBOL FOR END OF TRANSMISSION BLOCK" + string="ETB" + u:block="Control Pictures" + /> + <xsl:output-character + character="␘" + u:name="SYMBOL FOR CANCEL" + string="CAN" + u:block="Control Pictures" + /> + <xsl:output-character + character="␙" + u:name="SYMBOL FOR END OF MEDIUM" + string="EM" + u:block="Control Pictures" + /> + <xsl:output-character + character="␚" + u:name="SYMBOL FOR SUBSTITUTE" + string="SUB" + u:block="Control Pictures" + /> + <xsl:output-character + character="␛" + u:name="SYMBOL FOR ESCAPE" + string="ESC" + u:block="Control Pictures" + /> + <xsl:output-character + character="␜" + u:name="SYMBOL FOR FILE SEPARATOR" + string="FS" + u:block="Control Pictures" + /> + <xsl:output-character + character="␝" + u:name="SYMBOL FOR GROUP SEPARATOR" + string="GS" + u:block="Control Pictures" + /> + <xsl:output-character + character="␞" + u:name="SYMBOL FOR RECORD SEPARATOR" + string="RS" + u:block="Control Pictures" + /> + <xsl:output-character + character="␟" + u:name="SYMBOL FOR UNIT SEPARATOR" + string="US" + u:block="Control Pictures" + /> + <xsl:output-character + character="␠" + u:name="SYMBOL FOR SPACE" + string="SP" + u:block="Control Pictures" + /> + <xsl:output-character + character="␡" + u:name="SYMBOL FOR DELETE" + string="DEL" + u:block="Control Pictures" + /> + <!-- * no roff equivs for x2422 and x2423 --> + <!-- * <xsl:output-character --> + <!-- * character="␢" --> + <!-- * u:name="BLANK SYMBOL" --> + <!-- * string="?" --> + <!-- * u:block="Control Pictures" --> + <!-- * /> --> + <!-- * I think there should be a roff equiv for ␣, but as far as I --> + <!-- * know, there is not... --> + <!-- * <xsl:output-character --> + <!-- * character="␣" --> + <!-- * u:name="OPEN BOX" --> + <!-- * u:entity="blank" --> + <!-- * string="?" --> + <!-- * u:block="Control Pictures" --> + <!-- * /> --> + <xsl:output-character + character="␤" + u:name="SYMBOL FOR NEWLINE" + string="NL" + u:block="Control Pictures" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Control Pictures --> + <!-- * ***************************************************************** --> + + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + <!-- * Optical Character Recognition --> + <!-- * x2440 to x24ff --> + <!-- * - do nothing - --> + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Enclosed Alphanumerics --> + <!-- * x2460 to x24ff --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="①" + u:name="CIRCLED DIGIT ONE" + string="1" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="②" + u:name="CIRCLED DIGIT TWO" + string="2" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="③" + u:name="CIRCLED DIGIT THREE" + string="3" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="④" + u:name="CIRCLED DIGIT FOUR" + string="4" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑤" + u:name="CIRCLED DIGIT FIVE" + string="5" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑥" + u:name="CIRCLED DIGIT SIX" + string="6" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑦" + u:name="CIRCLED DIGIT SEVEN" + string="7" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑧" + u:name="CIRCLED DIGIT EIGHT" + string="8" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑨" + u:name="CIRCLED DIGIT NINE" + string="9" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑩" + u:name="CIRCLED NUMBER TEN" + string="10" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑪" + u:name="CIRCLED NUMBER ELEVEN" + string="11" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑫" + u:name="CIRCLED NUMBER TWELVE" + string="12" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑬" + u:name="CIRCLED NUMBER THIRTEEN" + string="13" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑭" + u:name="CIRCLED NUMBER FOURTEEN" + string="14" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑮" + u:name="CIRCLED NUMBER FIFTEEN" + string="15" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑯" + u:name="CIRCLED NUMBER SIXTEEN" + string="16" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑰" + u:name="CIRCLED NUMBER SEVENTEEN" + string="17" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑱" + u:name="CIRCLED NUMBER EIGHTEEN" + string="18" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑲" + u:name="CIRCLED NUMBER NINETEEN" + string="19" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑳" + u:name="CIRCLED NUMBER TWENTY" + string="20" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑴" + u:name="PARENTHESIZED DIGIT ONE" + string="(1)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑵" + u:name="PARENTHESIZED DIGIT TWO" + string="(2)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑶" + u:name="PARENTHESIZED DIGIT THREE" + string="(3)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑷" + u:name="PARENTHESIZED DIGIT FOUR" + string="(4)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑸" + u:name="PARENTHESIZED DIGIT FIVE" + string="(5)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑹" + u:name="PARENTHESIZED DIGIT SIX" + string="(6)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑺" + u:name="PARENTHESIZED DIGIT SEVEN" + string="(7)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑻" + u:name="PARENTHESIZED DIGIT EIGHT" + string="(8)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑼" + u:name="PARENTHESIZED DIGIT NINE" + string="(9)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑽" + u:name="PARENTHESIZED NUMBER TEN" + string="(10)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑾" + u:name="PARENTHESIZED NUMBER ELEVEN" + string="(11)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⑿" + u:name="PARENTHESIZED NUMBER TWELVE" + string="(12)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒀" + u:name="PARENTHESIZED NUMBER THIRTEEN" + string="(13)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒁" + u:name="PARENTHESIZED NUMBER FOURTEEN" + string="(14)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒂" + u:name="PARENTHESIZED NUMBER FIFTEEN" + string="(15)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒃" + u:name="PARENTHESIZED NUMBER SIXTEEN" + string="(16)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒄" + u:name="PARENTHESIZED NUMBER SEVENTEEN" + string="(17)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒅" + u:name="PARENTHESIZED NUMBER EIGHTEEN" + string="(18)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒆" + u:name="PARENTHESIZED NUMBER NINETEEN" + string="(19)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒇" + u:name="PARENTHESIZED NUMBER TWENTY" + string="(20)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒈" + u:name="DIGIT ONE FULL STOP" + string="1." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒉" + u:name="DIGIT TWO FULL STOP" + string="2." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒊" + u:name="DIGIT THREE FULL STOP" + string="3." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒋" + u:name="DIGIT FOUR FULL STOP" + string="4." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒌" + u:name="DIGIT FIVE FULL STOP" + string="5." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒍" + u:name="DIGIT SIX FULL STOP" + string="6." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒎" + u:name="DIGIT SEVEN FULL STOP" + string="7." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒏" + u:name="DIGIT EIGHT FULL STOP" + string="8." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒐" + u:name="DIGIT NINE FULL STOP" + string="9." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒑" + u:name="NUMBER TEN FULL STOP" + string="10." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒒" + u:name="NUMBER ELEVEN FULL STOP" + string="11." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒓" + u:name="NUMBER TWELVE FULL STOP" + string="12." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒔" + u:name="NUMBER THIRTEEN FULL STOP" + string="13." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒕" + u:name="NUMBER FOURTEEN FULL STOP" + string="14." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒖" + u:name="NUMBER FIFTEEN FULL STOP" + string="15." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒗" + u:name="NUMBER SIXTEEN FULL STOP" + string="16." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒘" + u:name="NUMBER SEVENTEEN FULL STOP" + string="17." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒙" + u:name="NUMBER EIGHTEEN FULL STOP" + string="18." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒚" + u:name="NUMBER NINETEEN FULL STOP" + string="19." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒛" + u:name="NUMBER TWENTY FULL STOP" + string="20." + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒜" + u:name="PARENTHESIZED LATIN SMALL LETTER A" + string="(a)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒝" + u:name="PARENTHESIZED LATIN SMALL LETTER B" + string="(b)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒞" + u:name="PARENTHESIZED LATIN SMALL LETTER C" + string="(c)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒟" + u:name="PARENTHESIZED LATIN SMALL LETTER D" + string="(d)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒠" + u:name="PARENTHESIZED LATIN SMALL LETTER E" + string="(e)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒡" + u:name="PARENTHESIZED LATIN SMALL LETTER F" + string="(f)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒢" + u:name="PARENTHESIZED LATIN SMALL LETTER G" + string="(g)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒣" + u:name="PARENTHESIZED LATIN SMALL LETTER H" + string="(h)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒤" + u:name="PARENTHESIZED LATIN SMALL LETTER I" + string="(i)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒥" + u:name="PARENTHESIZED LATIN SMALL LETTER J" + string="(j)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒦" + u:name="PARENTHESIZED LATIN SMALL LETTER K" + string="(k)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒧" + u:name="PARENTHESIZED LATIN SMALL LETTER L" + string="(l)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒨" + u:name="PARENTHESIZED LATIN SMALL LETTER M" + string="(m)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒩" + u:name="PARENTHESIZED LATIN SMALL LETTER N" + string="(n)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒪" + u:name="PARENTHESIZED LATIN SMALL LETTER O" + string="(o)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒫" + u:name="PARENTHESIZED LATIN SMALL LETTER P" + string="(p)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒬" + u:name="PARENTHESIZED LATIN SMALL LETTER Q" + string="(q)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒭" + u:name="PARENTHESIZED LATIN SMALL LETTER R" + string="(r)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒮" + u:name="PARENTHESIZED LATIN SMALL LETTER S" + string="(s)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒯" + u:name="PARENTHESIZED LATIN SMALL LETTER T" + string="(t)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒰" + u:name="PARENTHESIZED LATIN SMALL LETTER U" + string="(u)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒱" + u:name="PARENTHESIZED LATIN SMALL LETTER V" + string="(v)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒲" + u:name="PARENTHESIZED LATIN SMALL LETTER W" + string="(w)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒳" + u:name="PARENTHESIZED LATIN SMALL LETTER X" + string="(x)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒴" + u:name="PARENTHESIZED LATIN SMALL LETTER Y" + string="(y)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⒵" + u:name="PARENTHESIZED LATIN SMALL LETTER Z" + string="(z)" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓐ" + u:name="CIRCLED LATIN CAPITAL LETTER A" + string="A" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓑ" + u:name="CIRCLED LATIN CAPITAL LETTER B" + string="B" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓒ" + u:name="CIRCLED LATIN CAPITAL LETTER C" + string="C" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓓ" + u:name="CIRCLED LATIN CAPITAL LETTER D" + string="D" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓔ" + u:name="CIRCLED LATIN CAPITAL LETTER E" + string="E" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓕ" + u:name="CIRCLED LATIN CAPITAL LETTER F" + string="F" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓖ" + u:name="CIRCLED LATIN CAPITAL LETTER G" + string="G" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓗ" + u:name="CIRCLED LATIN CAPITAL LETTER H" + string="H" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓘ" + u:name="CIRCLED LATIN CAPITAL LETTER I" + string="I" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓙ" + u:name="CIRCLED LATIN CAPITAL LETTER J" + string="J" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓚ" + u:name="CIRCLED LATIN CAPITAL LETTER K" + string="K" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓛ" + u:name="CIRCLED LATIN CAPITAL LETTER L" + string="L" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓜ" + u:name="CIRCLED LATIN CAPITAL LETTER M" + string="M" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓝ" + u:name="CIRCLED LATIN CAPITAL LETTER N" + string="N" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓞ" + u:name="CIRCLED LATIN CAPITAL LETTER O" + string="O" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓟ" + u:name="CIRCLED LATIN CAPITAL LETTER P" + string="P" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓠ" + u:name="CIRCLED LATIN CAPITAL LETTER Q" + string="Q" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓡ" + u:name="CIRCLED LATIN CAPITAL LETTER R" + string="R" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓢ" + u:name="CIRCLED LATIN CAPITAL LETTER S" + u:entity="oS" + string="S" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓣ" + u:name="CIRCLED LATIN CAPITAL LETTER T" + string="T" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓤ" + u:name="CIRCLED LATIN CAPITAL LETTER U" + string="U" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓥ" + u:name="CIRCLED LATIN CAPITAL LETTER V" + string="V" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓦ" + u:name="CIRCLED LATIN CAPITAL LETTER W" + string="W" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓧ" + u:name="CIRCLED LATIN CAPITAL LETTER X" + string="X" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓨ" + u:name="CIRCLED LATIN CAPITAL LETTER Y" + string="Y" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="Ⓩ" + u:name="CIRCLED LATIN CAPITAL LETTER Z" + string="Z" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓐ" + u:name="CIRCLED LATIN SMALL LETTER A" + string="a" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓑ" + u:name="CIRCLED LATIN SMALL LETTER B" + string="b" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓒ" + u:name="CIRCLED LATIN SMALL LETTER C" + string="c" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓓ" + u:name="CIRCLED LATIN SMALL LETTER D" + string="d" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓔ" + u:name="CIRCLED LATIN SMALL LETTER E" + string="e" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓕ" + u:name="CIRCLED LATIN SMALL LETTER F" + string="f" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓖ" + u:name="CIRCLED LATIN SMALL LETTER G" + string="g" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓗ" + u:name="CIRCLED LATIN SMALL LETTER H" + string="h" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓘ" + u:name="CIRCLED LATIN SMALL LETTER I" + string="i" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓙ" + u:name="CIRCLED LATIN SMALL LETTER J" + string="j" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓚ" + u:name="CIRCLED LATIN SMALL LETTER K" + string="k" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓛ" + u:name="CIRCLED LATIN SMALL LETTER L" + string="l" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓜ" + u:name="CIRCLED LATIN SMALL LETTER M" + string="m" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓝ" + u:name="CIRCLED LATIN SMALL LETTER N" + string="n" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓞ" + u:name="CIRCLED LATIN SMALL LETTER O" + string="o" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓟ" + u:name="CIRCLED LATIN SMALL LETTER P" + string="p" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓠ" + u:name="CIRCLED LATIN SMALL LETTER Q" + string="q" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓡ" + u:name="CIRCLED LATIN SMALL LETTER R" + string="r" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓢ" + u:name="CIRCLED LATIN SMALL LETTER S" + string="s" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓣ" + u:name="CIRCLED LATIN SMALL LETTER T" + string="t" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓤ" + u:name="CIRCLED LATIN SMALL LETTER U" + string="u" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓥ" + u:name="CIRCLED LATIN SMALL LETTER V" + string="b" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓦ" + u:name="CIRCLED LATIN SMALL LETTER W" + string="w" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓧ" + u:name="CIRCLED LATIN SMALL LETTER X" + string="x" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓨ" + u:name="CIRCLED LATIN SMALL LETTER Y" + string="y" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="ⓩ" + u:name="CIRCLED LATIN SMALL LETTER Z" + string="z" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓪" + u:name="CIRCLED DIGIT ZERO" + string="0" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓫" + u:name="NEGATIVE CIRCLED NUMBER ELEVEN" + string="11" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓬" + u:name="NEGATIVE CIRCLED NUMBER TWELVE" + string="12" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓭" + u:name="NEGATIVE CIRCLED NUMBER THIRTEEN" + string="13" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓮" + u:name="NEGATIVE CIRCLED NUMBER FOURTEEN" + string="14" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓯" + u:name="NEGATIVE CIRCLED NUMBER FIFTEEN" + string="15" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓰" + u:name="NEGATIVE CIRCLED NUMBER SIXTEEN" + string="16" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓱" + u:name="NEGATIVE CIRCLED NUMBER SEVENTEEN" + string="17" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓲" + u:name="NEGATIVE CIRCLED NUMBER EIGHTEEN" + string="18" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓳" + u:name="NEGATIVE CIRCLED NUMBER NINETEEN" + string="19" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓴" + u:name="NEGATIVE CIRCLED NUMBER TWENTY" + string="20" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓵" + u:name="DOUBLE CIRCLED DIGIT ONE" + string="1" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓶" + u:name="DOUBLE CIRCLED DIGIT TWO" + string="2" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓷" + u:name="DOUBLE CIRCLED DIGIT THREE" + string="3" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓸" + u:name="DOUBLE CIRCLED DIGIT FOUR" + string="4" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓹" + u:name="DOUBLE CIRCLED DIGIT FIVE" + string="5" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓺" + u:name="DOUBLE CIRCLED DIGIT SIX" + string="6" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓻" + u:name="DOUBLE CIRCLED DIGIT SEVEN" + string="7" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓼" + u:name="DOUBLE CIRCLED DIGIT EIGHT" + string="8" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓽" + u:name="DOUBLE CIRCLED DIGIT NINE" + string="9" + u:block="Enclosed Alphanumerics" + /> + <xsl:output-character + character="⓾" + u:name="DOUBLE CIRCLED NUMBER TEN" + string="10" + u:block="Enclosed Alphanumerics" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Enclosed Alphanumerics --> + <!-- * ***************************************************************** --> + + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + <!-- * Box Drawing --> + <!-- * x2500 to x257f --> + <!-- * Block Elements --> + <!-- * x2580 to x259f --> + <!-- * - do nothing - --> + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Geometric Shapes --> + <!-- * x25a0 to x25f7 --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="□" + u:name="WHITE SQUARE" + u:entity="squ" + string="\(sq" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="▢" + u:name="WHITE SQUARE WITH ROUNDED CORNERS" + string="\(sq" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="▫" + u:name="WHITE SMALL SQUARE" + string="\(sq" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="►" + u:name="BLACK RIGHT-POINTING POINTER" + string="\fB>\fR" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="▻" + u:name="WHITE RIGHT-POINTING POINTER" + string=">" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="▼" + u:name="BLACK DOWN-POINTING TRIANGLE" + string="\fBv\fR" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="▽" + u:name="WHITE DOWN-POINTING TRIANGLE" + u:entity="xdtri" + string="v" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="◄" + u:name="BLACK LEFT-POINTING POINTER" + string="\fB<\fR" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="◅" + u:name="WHITE LEFT-POINTING POINTER" + string="<" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="◆" + u:name="BLACK DIAMOND" + string="\(DI" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="◇" + u:name="WHITE DIAMOND" + string="\(lz" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="◊" + u:name="LOZENGE" + u:entity="loz" + string="\(lz" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="○" + u:name="WHITE CIRCLE" + u:entity="cir" + string="\(ci" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="●" + u:name="BLACK CIRCLE" + string="\(bu" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="◦" + u:name="WHITE BULLET" + string="\(ci" + u:block="Geometric Shapes" + /> + <xsl:output-character + character="◯" + u:name="LARGE CIRCLE" + u:entity="xcirc" + string="\(ci" + u:block="Geometric Shapes" + /> + <!-- * ***************************************************************** --> + <!-- * End: Geometric Shapes --> + <!-- * x25a0 to x25f7 --> + <!-- * ***************************************************************** --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Miscellaneous Symbols --> + <!-- * x2600 to x26ff --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="☚" + u:name="BLACK LEFT POINTING INDEX" + string="\(lh" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="☛" + u:name="BLACK RIGHT POINTING INDEX" + string="\(rh)" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="☜" + u:name="WHITE LEFT POINTING INDEX" + string="\(lh" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="☞" + u:name="WHITE RIGHT POINTING INDEX" + string="\(rh)" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="♠" + u:name="BLACK SPADE SUIT" + u:entity="spades" + string="\(SP" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="♡" + u:name="WHITE HEART SUIT" + string="\(HE" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="♢" + u:name="WHITE DIAMOND SUIT" + string="\(DI" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="♣" + u:name="BLACK CLUB SUIT" + u:entity="clubs" + string="\(CL" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="♤" + u:name="WHITE SPADE SUIT" + string="\(SP" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="♥" + u:name="BLACK HEART SUIT" + u:entity="hearts" + string="\(HE" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="♦" + u:name="BLACK DIAMOND SUIT" + u:entity="diams" + string="\(DI" + u:block="Miscellaneous Symbols" + /> + <xsl:output-character + character="♧" + u:name="WHITE CLUB SUIT" + string="\(CL" + u:block="Miscellaneous Symbols" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Miscellaneous Symbols --> + <!-- * ***************************************************************** --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Dingbats --> + <!-- * x2700 to x27be --> + <!-- * No roff equiv for most of these; just map to something close --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="✓" + u:name="CHECK MARK" + u:entity="check" + string="\(OK" + u:block="Dingbats" + /> + <xsl:output-character + character="✔" + u:name="HEAVY CHECK MARK" + string="\fB\(OK\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✕" + u:name="MULTIPLICATION X" + string="\(mu" + u:block="Dingbats" + /> + <xsl:output-character + character="✖" + u:name="HEAVY MULTIPLICATION X" + string="\fB\(mu\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✗" + u:name="BALLOT X" + u:entity="cross" + string="\(mu" + u:block="Dingbats" + /> + <xsl:output-character + character="✘" + u:name="HEAVY BALLOT X" + string="\fB\(mu\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✙" + u:name="OUTLINED GREEK CROSS" + string="\fB+\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✚" + u:name="HEAVY GREEK CROSS" + string="\fB+\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✛" + u:name="OPEN CENTRE CROSS" + string="\fB+\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✜" + u:name="HEAVY OPEN CENTRE CROSS" + string="\fB+\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✝" + u:name="LATIN CROSS" + string="\fB+\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✞" + u:name="SHADOWED WHITE LATIN CROSS" + string="\fB+\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✟" + u:name="OUTLINED LATIN CROSS" + string="\fB+\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✠" + u:name="MALTESE CROSS" + u:entity="malt" + string="\fB+\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="✡" + u:name="STAR OF DAVID" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✢" + u:name="FOUR TEARDROP-SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✣" + u:name="FOUR BALLOON-SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✤" + u:name="HEAVY FOUR BALLOON-SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✥" + u:name="FOUR CLUB-SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✦" + u:name="BLACK FOUR POINTED STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✧" + u:name="WHITE FOUR POINTED STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✩" + u:name="STRESS OUTLINED WHITE STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✪" + u:name="CIRCLED WHITE STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✫" + u:name="OPEN CENTRE BLACK STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✬" + u:name="BLACK CENTRE WHITE STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✭" + u:name="OUTLINED BLACK STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✮" + u:name="HEAVY OUTLINED BLACK STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✯" + u:name="PINWHEEL STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✰" + u:name="SHADOWED WHITE STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✱" + u:name="HEAVY ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✲" + u:name="OPEN CENTRE ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✳" + u:name="EIGHT SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✴" + u:name="EIGHT POINTED BLACK STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✵" + u:name="EIGHT POINTED PINWHEEL STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✶" + u:name="SIX POINTED BLACK STAR" + u:entity="sext" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✷" + u:name="EIGHT POINTED RECTILINEAR BLACK STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✸" + u:name="HEAVY EIGHT POINTED RECTILINEAR BLACK STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✹" + u:name="TWELVE POINTED BLACK STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✺" + u:name="SIXTEEN POINTED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✻" + u:name="TEARDROP-SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✼" + u:name="OPEN CENTRE TEARDROP-SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✽" + u:name="HEAVY TEARDROP-SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✾" + u:name="SIX PETALLED BLACK AND WHITE FLORETTE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="✿" + u:name="BLACK FLORETTE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❀" + u:name="WHITE FLORETTE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❁" + u:name="EIGHT PETALLED OUTLINED BLACK FLORETTE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❂" + u:name="CIRCLED OPEN CENTRE EIGHT POINTED STAR" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❃" + u:name="HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❄" + u:name="SNOWFLAKE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❅" + u:name="TIGHT TRIFOLIATE SNOWFLAKE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❆" + u:name="HEAVY CHEVRON SNOWFLAKE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❇" + u:name="SPARKLE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❈" + u:name="HEAVY SPARKLE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❉" + u:name="BALLOON-SPOKED ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❊" + u:name="EIGHT TEARDROP-SPOKED PROPELLER ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❋" + u:name="HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❍" + u:name="SHADOWED WHITE CIRCLE" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❏" + u:name="LOWER RIGHT DROP-SHADOWED WHITE SQUARE" + string="\(sq" + u:block="Dingbats" + /> + <xsl:output-character + character="❐" + u:name="UPPER RIGHT DROP-SHADOWED WHITE SQUARE" + string="\(sq" + u:block="Dingbats" + /> + <xsl:output-character + character="❑" + u:name="LOWER RIGHT SHADOWED WHITE SQUARE" + string="\(sq" + u:block="Dingbats" + /> + <xsl:output-character + character="❒" + u:name="UPPER RIGHT SHADOWED WHITE SQUARE" + string="\(sq" + u:block="Dingbats" + /> + <xsl:output-character + character="❖" + u:name="BLACK DIAMOND MINUS WHITE X" + string="*" + u:block="Dingbats" + /> + <xsl:output-character + character="❘" + u:name="LIGHT VERTICAL BAR" + string="\(bv" + u:block="Dingbats" + /> + <xsl:output-character + character="❙" + u:name="MEDIUM VERTICAL BAR" + string="\fB\(bv\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❚" + u:name="HEAVY VERTICAL BAR" + string="\fB\(bv\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❛" + u:name="HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT" + string="\fB\(oq\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❜" + u:name="HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT" + string="\fB\(cq\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❝" + u:name="HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT" + string="\fB\(lq\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❞" + u:name="HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT" + string="\fB\(rq\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❡" + u:name="CURVED STEM PARAGRAPH SIGN ORNAMENT" + string="\(ps" + u:block="Dingbats" + /> + <xsl:output-character + character="❢" + u:name="HEAVY EXCLAMATION MARK ORNAMENT" + string="\fB!\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❣" + u:name="HEAVY HEART EXCLAMATION MARK ORNAMENT" + string="\fB!\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❤" + u:name="HEAVY BLACK HEART" + string="\fB\(HE\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❥" + u:name="ROTATED HEAVY BLACK HEART BULLET" + string="\fB\(HE\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❦" + u:name="FLORAL HEART" + string="\fB\(HE\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❧" + u:name="ROTATED FLORAL HEART BULLET" + string="\fB\(HE\fR" + u:block="Dingbats" + /> + <xsl:output-character + character="❶" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT ONE" + string="1" + u:block="Dingbats" + /> + <xsl:output-character + character="❷" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT TWO" + string="2" + u:block="Dingbats" + /> + <xsl:output-character + character="❸" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT THREE" + string="3" + u:block="Dingbats" + /> + <xsl:output-character + character="❹" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT FOUR" + string="4" + u:block="Dingbats" + /> + <xsl:output-character + character="❺" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT FIVE" + string="5" + u:block="Dingbats" + /> + <xsl:output-character + character="❻" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT SIX" + string="6" + u:block="Dingbats" + /> + <xsl:output-character + character="❼" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT SEVEN" + string="7" + u:block="Dingbats" + /> + <xsl:output-character + character="❽" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT EIGHT" + string="8" + u:block="Dingbats" + /> + <xsl:output-character + character="❾" + u:name="DINGBAT NEGATIVE CIRCLED DIGIT NINE" + string="9" + u:block="Dingbats" + /> + <xsl:output-character + character="❿" + u:name="DINGBAT NEGATIVE CIRCLED NUMBER TEN" + string="10" + u:block="Dingbats" + /> + <xsl:output-character + character="➀" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT ONE" + string="1" + u:block="Dingbats" + /> + <xsl:output-character + character="➁" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT TWO" + string="2" + u:block="Dingbats" + /> + <xsl:output-character + character="➂" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT THREE" + string="3" + u:block="Dingbats" + /> + <xsl:output-character + character="➃" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT FOUR" + string="4" + u:block="Dingbats" + /> + <xsl:output-character + character="➄" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT FIVE" + string="5" + u:block="Dingbats" + /> + <xsl:output-character + character="➅" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT SIX" + string="6" + u:block="Dingbats" + /> + <xsl:output-character + character="➆" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN" + string="7" + u:block="Dingbats" + /> + <xsl:output-character + character="➇" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT" + string="8" + u:block="Dingbats" + /> + <xsl:output-character + character="➈" + u:name="DINGBAT CIRCLED SANS-SERIF DIGIT NINE" + string="9" + u:block="Dingbats" + /> + <xsl:output-character + character="➉" + u:name="DINGBAT CIRCLED SANS-SERIF NUMBER TEN" + string="10" + u:block="Dingbats" + /> + <xsl:output-character + character="➊" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE" + string="1" + u:block="Dingbats" + /> + <xsl:output-character + character="➋" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO" + string="2" + u:block="Dingbats" + /> + <xsl:output-character + character="➌" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE" + string="3" + u:block="Dingbats" + /> + <xsl:output-character + character="➍" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR" + string="4" + u:block="Dingbats" + /> + <xsl:output-character + character="➎" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE" + string="5" + u:block="Dingbats" + /> + <xsl:output-character + character="➏" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX" + string="6" + u:block="Dingbats" + /> + <xsl:output-character + character="➐" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN" + string="7" + u:block="Dingbats" + /> + <xsl:output-character + character="➑" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT" + string="8" + u:block="Dingbats" + /> + <xsl:output-character + character="➒" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE" + string="9" + u:block="Dingbats" + /> + <xsl:output-character + character="➓" + u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN" + string="10" + u:block="Dingbats" + /> + <xsl:output-character + character="➔" + u:name="HEAVY WIDE-HEADED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➙" + u:name="HEAVY RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➛" + u:name="DRAFTING POINT RIGHTWARDS ARROW" + string="\(->" + u:block="Dingbats" + /> + <xsl:output-character + character="➜" + u:name="HEAVY ROUND-TIPPED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➝" + u:name="TRIANGLE-HEADED RIGHTWARDS ARROW" + string="\(->" + u:block="Dingbats" + /> + <xsl:output-character + character="➞" + u:name="HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➟" + u:name="DASHED TRIANGLE-HEADED RIGHTWARDS ARROW" + string="\(->" + u:block="Dingbats" + /> + <xsl:output-character + character="➠" + u:name="HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➡" + u:name="BLACK RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➢" + u:name="THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD" + string="\(->" + u:block="Dingbats" + /> + <xsl:output-character + character="➣" + u:name="THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD" + string="\(->" + u:block="Dingbats" + /> + <xsl:output-character + character="➤" + u:name="BLACK RIGHTWARDS ARROWHEAD" + string="\(->" + u:block="Dingbats" + /> + <xsl:output-character + character="➧" + u:name="SQUAT BLACK RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➨" + u:name="HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➩" + u:name="RIGHT-SHADED WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➪" + u:name="LEFT-SHADED WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➫" + u:name="BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➬" + u:name="FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➭" + u:name="HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➮" + u:name="HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➯" + u:name="NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➱" + u:name="NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➲" + u:name="CIRCLED HEAVY WHITE RIGHTWARDS ARROW" + string="\(rA" + u:block="Dingbats" + /> + <xsl:output-character + character="➳" + u:name="WHITE-FEATHERED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➴" + u:name="BLACK-FEATHERED SOUTH EAST ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➵" + u:name="BLACK-FEATHERED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➶" + u:name="BLACK-FEATHERED NORTH EAST ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➷" + u:name="HEAVY BLACK-FEATHERED SOUTH EAST ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➸" + u:name="HEAVY BLACK-FEATHERED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➹" + u:name="HEAVY BLACK-FEATHERED NORTH EAST ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➺" + u:name="TEARDROP-BARBED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➻" + u:name="HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➼" + u:name="WEDGE-TAILED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➽" + u:name="HEAVY WEDGE-TAILED RIGHTWARDS ARROW" + string="\fR\(->\fB" + u:block="Dingbats" + /> + <xsl:output-character + character="➾" + u:name="OPEN-OUTLINED RIGHTWARDS ARROW" + string="\fR\(rA\fB" + u:block="Dingbats" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Dingbats --> + <!-- * ***************************************************************** --> + + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + <!-- * Miscellaneous Mathematical Symbols --> + <!-- * x27c0 to x27ef --> + <!-- * Supplemental Arrows --> + <!-- * x27f0 to x297f --> + <!-- * Miscellaneous Mathematical Symbols --> + <!-- * x2980 to x29ff --> + <!-- * Supplemental Mathematical Operators --> + <!-- * x2a00 to x2aff --> + <!-- * - no nothing - --> + <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> + + <!-- * ***************************************************************** --> + <!-- * Begin: Alphabetic Presentation Forms --> + <!-- * xfb00 to xfb04 --> + <!-- * ***************************************************************** --> + + <xsl:output-character + character="ff" + u:name="LATIN SMALL LIGATURE FF" + u:entity="fflig" + string="\(ff" + u:block="Alphabetic Presentation Forms" + /> + <xsl:output-character + character="fi" + u:name="LATIN SMALL LIGATURE FI" + u:entity="filig" + string="\(fi" + u:block="Alphabetic Presentation Forms" + /> + <xsl:output-character + character="fl" + u:name="LATIN SMALL LIGATURE FL" + u:entity="fllig" + string="\(fl" + u:block="Alphabetic Presentation Forms" + /> + <xsl:output-character + character="ffi" + u:name="LATIN SMALL LIGATURE FFI" + u:entity="ffilig" + string="\(Fi" + u:block="Alphabetic Presentation Forms" + /> + <xsl:output-character + character="ffl" + u:name="LATIN SMALL LIGATURE FFL" + u:entity="ffllig" + string="\(Fl" + u:block="Alphabetic Presentation Forms" + /> + + <!-- * ***************************************************************** --> + <!-- * End: Alphabetic Presentation Forms --> + <!-- * ***************************************************************** --> + + <!-- * ================================================================= --> + + <!-- * Regarding x2060 vs. xFEFF, the document "Unicode Standard Annex #14, --> + <!-- * Line Breaking Properties"[1] says: --> + <!-- * --> + <!-- * The word joiner character [x2060 a.k.a "WJ"] is the preferred --> + <!-- * choice for an invisible character to keep other characters --> + <!-- * together that would otherwise be split across the line at a direct --> + <!-- * break. The character FEFF has the same effect, but because it is --> + <!-- * also used in an unrelated way as a byte order mark, the use of the --> + <!-- * WJ as the preferred interword glue simplifies the handling of FEFF. --> + <!-- * --> + <!-- * [1] http://www.unicode.org/reports/tr14/ --> + <!-- * --> + <!-- * We include it here anyway & map to the roff zero-width no-break --> + <xsl:output-character + character="" + u:name="ZERO WIDTH NO-BREAK SPACE" + string="\&" + u:block="Arabic Presentation Forms-B" + /> +</xsl:character-map> +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/docbook.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/docbook.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/docbook.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,293 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + xmlns:ng="http://docbook.org/docbook-ng" + xmlns:db="http://docbook.org/ns/docbook" + exclude-result-prefixes="exsl" + version='1.0'> + + <xsl:import href="../html/docbook.xsl"/> + <xsl:import href="../html/manifest.xsl"/> + <!-- * html-synop.xsl file is generated by build --> + <xsl:import href="html-synop.xsl"/> + <xsl:output method="text" + encoding="UTF-8" + indent="no"/> + <!-- ******************************************************************** + $Id: docbook.xsl 7153 2007-07-26 14:08:55Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + + <!-- ==================================================================== --> + + <xsl:include href="../common/refentry.xsl"/> + <xsl:include href="../common/charmap.xsl"/> + <xsl:include href="param.xsl"/> + <xsl:include href="utility.xsl"/> + <xsl:include href="info.xsl"/> + <xsl:include href="other.xsl"/> + <xsl:include href="refentry.xsl"/> + <xsl:include href="block.xsl"/> + <xsl:include href="inline.xsl"/> + <xsl:include href="synop.xsl"/> + <xsl:include href="lists.xsl"/> + <xsl:include href="endnotes.xsl"/> + <xsl:include href="table.xsl"/> + + <!-- * we rename the following just to avoid using params with "man" --> + <!-- * prefixes in the table.xsl stylesheet (because that stylesheet --> + <!-- * can potentially be reused for more than just man output) --> + <xsl:param name="tbl.font.headings" select="$man.font.table.headings"/> + <xsl:param name="tbl.font.title" select="$man.font.table.title"/> + + <!-- ==================================================================== --> + + <xsl:template match="/"> + <!-- * Get a title for current doc so that we let the user --> + <!-- * know what document we are processing at this point. --> + <xsl:variable name="doc.title"> + <xsl:call-template name="get.doc.title"/> + </xsl:variable> + <xsl:choose> + <!-- * when we find a namespaced document, strip the --> + <!-- * namespace and then continue processing it. --> + <xsl:when test="//self::db:*"> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Note</xsl:with-param> + <xsl:with-param name="source" select="$doc.title"/> + <xsl:with-param name="context-desc"> + <xsl:text>namesp. cut</xsl:text> + </xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>stripped namespace before processing</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:variable name="stripns"> + <xsl:apply-templates mode="stripNS"/> + </xsl:variable> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Note</xsl:with-param> + <xsl:with-param name="source" select="$doc.title"/> + <xsl:with-param name="context-desc"> + <xsl:text>namesp. cut</xsl:text> + </xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>processing stripped document</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:apply-templates select="exsl:node-set($stripns)"/> + </xsl:when> + <xsl:when test="//*[local-name() = 'refentry']"> + <!-- * Check to see if we have any refentry children in this --> + <!-- * document; if so, process them. The reason we use --> + <!-- * local-name()=refentry (instead of just //refentry) to to --> + <!-- * check for refentry children is because this stylsheet is --> + <!-- * also post-processed by the stylesheet build to create the --> + <!-- * manpages/profile-docbook.xsl, and the refentry child check --> + <!-- * in the profile-docbook.xsl stylesheet won't work if we do --> + <!-- * a simple //refentry check. --> + <xsl:apply-templates select="//refentry"/> + <!-- * if $man.output.manifest.enabled is non-zero, --> + <!-- * generate a manifest file --> + <xsl:if test="not($man.output.manifest.enabled = 0)"> + <xsl:call-template name="generate.manifest"> + <xsl:with-param name="filename"> + <xsl:choose> + <xsl:when test="not($man.output.manifest.filename = '')"> + <!-- * If a name for the manifest file is specified, --> + <!-- * use that name. --> + <xsl:value-of select="$man.output.manifest.filename"/> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise, if user has unset --> + <!-- * $man.output.manifest.filename, default to --> + <!-- * using "MAN.MANIFEST" as the filename. Because --> + <!-- * $man.output.manifest.enabled is non-zero and --> + <!-- * so we must have a filename in order to --> + <!-- * generate the manifest. --> + <xsl:text>MAN.MANIFEST</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise, the document does not contain any --> + <!-- * refentry elements, so log/emit message and stop. --> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Erro</xsl:with-param> + <xsl:with-param name="source" select="$doc.title"/> + <xsl:with-param name="context-desc"> + <xsl:text> no refentry</xsl:text> + </xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>No refentry elements found</xsl:text> + <xsl:if test="$doc.title != ''"> + <xsl:text> in "</xsl:text> + <xsl:choose> + <xsl:when test="string-length($doc.title) > 30"> + <xsl:value-of select="substring($doc.title,1,30)"/> + <xsl:text>...</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$doc.title"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text>"</xsl:text> + </xsl:if> + <xsl:text>.</xsl:text> + </xsl:with-param> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <!-- ============================================================== --> + + <xsl:template match="refentry"> + <xsl:param name="lang"> + <xsl:call-template name="l10n.language"/> + </xsl:param> + <!-- * Just use the first refname found as the "name" of the man --> + <!-- * page (which may different from the "title"...) --> + <xsl:variable name="first.refname" select="refnamediv[1]/refname[1]"/> + + <xsl:call-template name="root.messages"> + <xsl:with-param name="refname" select="$first.refname"/> + </xsl:call-template> + + <!-- * Because there are several times when we need to check *info of --> + <!-- * each refentry and its ancestors, we get those and store the --> + <!-- * data from them as a node-set in memory. --> + + <!-- * Make a node-set with contents of *info --> + <xsl:variable name="get.info" + select="ancestor-or-self::*/*[substring(local-name(), + string-length(local-name()) - 3) = 'info']" + /> + <xsl:variable name="info" select="exsl:node-set($get.info)"/> + + <!-- * The get.refentry.metadata template is in --> + <!-- * ../common/refentry.xsl. It looks for metadata in $info --> + <!-- * and in various other places and then puts it into a form --> + <!-- * that's easier for us to digest. --> + <xsl:variable name="get.refentry.metadata"> + <xsl:call-template name="get.refentry.metadata"> + <xsl:with-param name="refname" select="$first.refname"/> + <xsl:with-param name="info" select="$info"/> + <xsl:with-param name="prefs" select="$refentry.metadata.prefs"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="refentry.metadata" select="exsl:node-set($get.refentry.metadata)"/> + + <!-- * Assemble the various parts into a complete page, then store into --> + <!-- * $manpage.contents so that we can manipluate them further. --> + <xsl:variable name="manpage.contents"> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * top.comment = commented-out section at top of roff source --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:call-template name="top.comment"> + <xsl:with-param name="info" select="$info"/> + <xsl:with-param name="date" select="$refentry.metadata/date"/> + <xsl:with-param name="title" select="$refentry.metadata/title"/> + <xsl:with-param name="manual" select="$refentry.metadata/manual"/> + <xsl:with-param name="source" select="$refentry.metadata/source"/> + </xsl:call-template> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * TH.title.line = title line in header/footer of man page --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:call-template name="TH.title.line"> + <!-- * .TH TITLE section extra1 extra2 extra3 --> + <!-- * --> + <!-- * According to the man(7) man page: --> + <!-- * --> + <!-- * extra1 = date, "the date of the last revision" --> + <!-- * extra2 = source, "the source of the command" --> + <!-- * extra3 = manual, "the title of the manual --> + <!-- * (e.g., Linux Programmer's Manual)" --> + <!-- * --> + <!-- * So, we end up with: --> + <!-- * --> + <!-- * .TH TITLE section date source manual --> + <!-- * --> + <xsl:with-param name="title" select="$refentry.metadata/title"/> + <xsl:with-param name="section" select="$refentry.metadata/section"/> + <xsl:with-param name="extra1" select="$refentry.metadata/date"/> + <xsl:with-param name="extra2" select="$refentry.metadata/source"/> + <xsl:with-param name="extra3" select="$refentry.metadata/manual"/> + </xsl:call-template> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * Set default hyphenation, justification, indentation, and --> + <!-- * line-breaking --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:call-template name="set.default.formatting"/> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * Main body of man page --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:apply-templates/> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * AUTHOR section --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:if test="not($man.authors.section.enabled = 0)"> + <xsl:call-template name="author.section"> + <xsl:with-param name="info" select="$info"/> + </xsl:call-template> + </xsl:if> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * COPYRIGHT section --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:if test="not($man.copyright.section.enabled = 0)"> + <xsl:call-template name="copyright.section"> + <xsl:with-param name="info" select="$info"/> + </xsl:call-template> + </xsl:if> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * NOTES list (only if user wants endnotes numbered and/or listed) --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:if test="$man.endnotes.list.enabled != 0 or + $man.endnotes.are.numbered != 0"> + <xsl:call-template name="endnotes.list"/> + </xsl:if> + </xsl:variable> <!-- * end of manpage.contents --> + + <!-- * Prepare the page contents for final output, then store in --> + <!-- * $manpage.contents.prepared so the we can pass it on to the --> + <!-- * write.text.chunk() function --> + <xsl:variable name="manpage.contents.prepared"> + <!-- * "Preparing" the page contents involves, at a minimum, --> + <!-- * doubling any backslashes found (so they aren't interpreted --> + <!-- * as roff escapes). --> + <!-- * --> + <!-- * If $charmap.enabled is true, "preparing" the page contents also --> + <!-- * involves applying a character map to convert Unicode symbols and --> + <!-- * special characters into corresponding roff escape sequences. --> + <xsl:call-template name="prepare.manpage.contents"> + <xsl:with-param name="content" select="$manpage.contents"/> + </xsl:call-template> + </xsl:variable> + + <!-- * Write the prepared page contents to disk to create --> + <!-- * the final man page. --> + <xsl:call-template name="write.man.file"> + <xsl:with-param name="name" select="$first.refname"/> + <xsl:with-param name="section" select="$refentry.metadata/section"/> + <xsl:with-param name="lang" select="$lang"/> + <xsl:with-param name="content" select="$manpage.contents.prepared"/> + </xsl:call-template> + + <!-- * Generate "stub" (alias) pages (if any needed) --> + <xsl:call-template name="write.stubs"> + <xsl:with-param name="first.refname" select="$first.refname"/> + <xsl:with-param name="section" select="$refentry.metadata/section"/> + <xsl:with-param name="lang" select="$lang"/> + </xsl:call-template> + + </xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/endnotes.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/endnotes.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/endnotes.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,535 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + xmlns:ng="http://docbook.org/docbook-ng" + xmlns:db="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" + exclude-result-prefixes="db ng exsl xlink" + version='1.0'> + +<!-- ******************************************************************** + $Id: endnotes.xsl 7254 2007-08-18 23:59:53Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> +<!-- * --> +<!-- * The templates in this file handle elements whose contents can't --> +<!-- * be displayed completely within the main text flow in output, but --> +<!-- * instead need to be displayed "out of line". Those elements are: --> +<!-- * --> +<!-- * - elements providing annotative text (annotation|alt|footnote) --> +<!-- * - elements pointing at external resources (ulink, link, and --> +<!-- * any elements with xlink:href attributes; and imagedata, --> +<!-- * audiodata, and videodata - which (using their fileref --> +<!-- * attribute) reference external files --> +<!-- * --> +<!-- * Within this stylesheet, the above are collectively referred to as --> +<!-- * a "notesources". This stylesheet handles those notesources in --> +<!-- * this way: --> +<!-- * --> +<!-- * 1. Constructs a numbered in-memory index of all unique "earmarks??? --> +<!-- * of all notesources in the document. For each link, the --> +<!-- * earmark is the value of its url or xlink:href attribute; for --> +<!-- * each imagedata|audiodata|videodata: the value of its fileref --> +<!-- * attribute; for each annotative element: its content. --> +<!-- * --> +<!-- * Notesources with the same earmark are assigned the same --> +<!-- * number. --> +<!-- * --> +<!-- * By design, that index excludes any element whose whose string --> +<!-- * value is identical to value of its url xlink:href attribute). --> +<!-- * --> +<!-- * 2. Puts a numbered marker inline to mark the place where the --> +<!-- * notesource occurs in the main text flow. --> +<!-- * --> +<!-- * 3. Generates a numbered endnotes list (titled NOTES in English) --> +<!-- * at the end of the man page, with the contents of each --> +<!-- * notesource. --> +<!-- * --> +<!-- * Note that table footnotes are not listed in the endnotes list, --> +<!-- * and are not handled by this stylesheet (they are instead handled --> +<!-- * by the table.xsl stylesheet). --> +<!-- * --> +<!-- * Also, we don't get notesources in *info sections or Refmeta or --> +<!-- * Refnamediv or Indexterm, because, in manpages output, contents of --> +<!-- * those are either suppressed or are displayed out of document --> +<!-- * order - for example, the Info/Author content gets moved to the --> +<!-- * end of the page. So, if we were to number notesources in the --> +<!-- * Author content, it would "throw off" the numbering at the --> +<!-- * beginning of the main text flow. --> +<!-- * --> +<!-- * And for the record, one reason we don't use xsl:key to index the --> +<!-- * earmarks is that we need to get and check the sets of --> +<!-- * earmarks for uniqueness per-Refentry (not per-document). --> +<!-- * --> +<!-- * FIXME: as --> +<!-- * with "repeat" URLS, alt instances that have the same string value --> +<!-- * as preceding ones (likely to occur for repeat acroynyms and --> +<!-- * abbreviations) should be listed only once in the endnotes list, --> +<!-- * and numbered accordingly inline; split man.indent.width into --> +<!-- * man.indent.width.value (default 4) and man.indent.width.units --> +<!-- * (default n); also, if the first child of notesource is some block --> +<!-- * content other than a (non-formal) paragraph, the current code --> +<!-- * will probably end up generating a blank line after the --> +<!-- * corresponding number in the endnotes list... we should probably --> +<!-- * try to instead display the title of that block content there (if --> +<!-- * there is one: e.g., the list title, admonition title, etc.) --> + +<!-- ==================================================================== --> + +<xsl:template name="get.all.earmark.indexes.in.current.document"> + <!-- * Here we create a tree to hold indexes of all earmarks in --> + <!-- * the current document. If the current document contains --> + <!-- * multiple refentry instances, then this tree will contain --> + <!-- * multiple indexes. --> + <xsl:if test="$man.endnotes.are.numbered != 0"> + <!-- * Only create earmark indexes if user wants numbered endnotes --> + <xsl:for-each select="//refentry"> + <earmark.index> + <xsl:attribute name="idref"> + <xsl:value-of select="generate-id()"/> + </xsl:attribute> + <xsl:for-each + select=".//*[self::*[@xlink:href] + or self::ulink + or self::imagedata + or self::audiodata + or self::videodata + or self::footnote[not(ancestor::table)] + or self::annotation + or self::alt] + [(node() + or self::imagedata + or self::audiodata + or self::videodata + ) + and not(ancestor::refentryinfo) + and not(ancestor::info) + and not(ancestor::docinfo) + and not(ancestor::refmeta) + and not(ancestor::refnamediv) + and not(ancestor::indexterm) + and not(. = @url) + and not(. = @xlink:href) + and not(@url = + preceding::ulink[node() + and not(ancestor::refentryinfo) + and not(ancestor::info) + and not(ancestor::docinfo) + and not(ancestor::refmeta) + and not(ancestor::refnamediv) + and not(ancestor::indexterm) + and (generate-id(ancestor::refentry) + = generate-id(current()))]/@url) + and not(@xlink:href = + preceding::*[@xlink:href][node() + and not(ancestor::refentryinfo) + and not(ancestor::info) + and not(ancestor::docinfo) + and not(ancestor::refmeta) + and not(ancestor::refnamediv) + and not(ancestor::indexterm) + and (generate-id(ancestor::refentry) + = generate-id(current()))]/@xlink:href) + and not(@fileref = + preceding::*[@fileref][ + not(ancestor::refentryinfo) + and not(ancestor::info) + and not(ancestor::docinfo) + and not(ancestor::refmeta) + and not(ancestor::refnamediv) + and not(ancestor::indexterm) + and (generate-id(ancestor::refentry) + = generate-id(current()))]/@fileref)]"> + <earmark> + <xsl:attribute name="id"> + <xsl:value-of select="generate-id()"/> + </xsl:attribute> + <xsl:attribute name="number"> + <xsl:value-of select="position()"/> + </xsl:attribute> + <xsl:if test="@url|@xlink:href|@fileref"> + <!-- * Only add a uri attribute if the notesource is --> + <!-- * a link or an element that references an external --> + <!-- * (an imagedata, audiodata, or videodata element) --> + <xsl:attribute name="uri"> + <xsl:value-of select="@url|@xlink:href|@fileref"/> + </xsl:attribute> + </xsl:if> + <xsl:copy> + <xsl:copy-of select="node()"/> + </xsl:copy> + </earmark> + </xsl:for-each> + </earmark.index> + </xsl:for-each> + </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*[@xlink:href]|ulink + |imagedata|audiodata|videodata + |footnote[not(ancestor::table)] + |annotation|alt"> + <xsl:variable name="all.earmark.indexes.in.current.document.rtf"> + <xsl:call-template name="get.all.earmark.indexes.in.current.document"/> + </xsl:variable> + <xsl:variable name="all.earmark.indexes.in.current.document" + select="exsl:node-set($all.earmark.indexes.in.current.document.rtf)"/> + <xsl:variable name="all.earmarks.in.current.refentry.rtf"> + <!-- * get the set of all earmarks for the ancestor Refentry of --> + <!-- * this notesource --> + <xsl:copy-of + select="$all.earmark.indexes.in.current.document/earmark.index + [@idref = + generate-id(current()/ancestor::refentry)]/earmark"/> + </xsl:variable> + <xsl:variable name="all.earmarks.in.current.refentry" + select="exsl:node-set($all.earmarks.in.current.refentry.rtf)"/> + + <!-- * identify the earmark for the current element --> + <xsl:variable name="earmark"> + <xsl:choose> + <xsl:when test="@url|@xlink:href"> + <xsl:value-of select="@url|@xlink:href"/> + </xsl:when> + <xsl:when test="@fileref"> + <xsl:value-of select="@fileref"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="generate-id()"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="notesource.number"> + <!-- * Get the number for this notesource --> + <!-- * --> + <!-- * If this is an imagedata, audiodata, or videodata element --> + <!-- * OR if it's a non-empty element AND its string value is not --> + <!-- * equal to the value of its url or xlink:href attribute (if --> + <!-- * it has one) AND user wants endnotes numbered, only then --> + <!-- * do we output a number for it --> + <xsl:if test="(self::imagedata or + self::audiodata or + self::videodata or + (node() + and not(. = @url) + and not(. = @xlink:href)) + ) + and $man.endnotes.are.numbered != 0"> + <!-- * To select the number for this notesource, we --> + <!-- * check the index of all earmarks for the current refentry --> + <!-- * and find the number of the indexed earmark which matches --> + <!-- * this notesource's earmark. --> + <!-- * Note that multiple notesources may share the same --> + <!-- * numbered earmark; in that case, they get the same number. --> + <!-- * --> + <xsl:choose> + <xsl:when test="self::ulink or + self::*[@xlink:href] or + self::imagedata or + self::audiodata or + self::videodata"> + <xsl:value-of select="$all.earmarks.in.current.refentry/earmark[@uri = $earmark]/@number"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$all.earmarks.in.current.refentry/earmark[@id = $earmark]/@number"/> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:variable> + + <xsl:variable name="notesource.contents"> + <xsl:choose> + <!-- * check to see if the element is empty or not --> + <xsl:when test="node()"> + <!-- * this is a non-empty node, so process its contents --> + <xsl:apply-templates/> + <xsl:if test="../footnote or ../annotation"> + <!-- * if this element is a footnote or annotation, we need to --> + <!-- * do some further checking on it, so we can emit warnings --> + <!-- * about potential problems --> + <xsl:for-each select="node()"> + <xsl:if test="local-name() != 'para' and local-name() !=''"> + <!-- * for each node we find as a child of a footnote or --> + <!-- * annotation, if it's not a para or a text node, emit a --> + <!-- * warning... because in manpages output, we can't render --> + <!-- * block-level child content of an endnote properly unless --> + <!-- * it's wrapped in a para that has some "prefatory" text --> + <xsl:variable name="parent-name" select="local-name(..)"/> + <xsl:variable name="refname" select="ancestor::refentry/refnamediv[1]/refname[1]"/> + <xsl:variable name="endnote-number"> + <xsl:call-template name="pad-string"> + <!-- * endnote number may be 2 digits, so pad it with a space --> + <!-- * if we have only 1 digit --> + <xsl:with-param name="padVar" select="concat('#',$notesource.number)"/> + <xsl:with-param name="length" select="3"/> + </xsl:call-template> + </xsl:variable> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Warn</xsl:with-param> + <xsl:with-param name="source" select="$refname"/> + <xsl:with-param name="context-desc"> + <xsl:text>endnote </xsl:text> + <xsl:value-of select="$endnote-number"/> + </xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>Bad: </xsl:text> + <xsl:value-of select="$parent-name"/> + <!-- * figure out which occurance of this element type this --> + <!-- * instance is and output a number in square brackets so --> + <!-- * that end-user can know which element to fix --> + <xsl:text>[</xsl:text> + <xsl:value-of select="count(preceding::*[local-name() = $parent-name]) + 1"/> + <xsl:text>]</xsl:text> + <xsl:text> in source</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Note</xsl:with-param> + <xsl:with-param name="source" select="$refname"/> + <xsl:with-param name="context-desc"> + <xsl:text>endnote </xsl:text> + <xsl:value-of select="$endnote-number"/> + </xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>Has: </xsl:text> + <xsl:value-of select="$parent-name"/> + <xsl:text>/</xsl:text> + <xsl:value-of select="local-name(.)"/> + </xsl:with-param> + </xsl:call-template> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Note</xsl:with-param> + <xsl:with-param name="source" select="$refname"/> + <xsl:with-param name="context-desc"> + <xsl:text>endnote </xsl:text> + <xsl:value-of select="$endnote-number"/> + </xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>Fix: </xsl:text> + <xsl:value-of select="$parent-name"/> + <xsl:text>/</xsl:text> + <xsl:text>para/</xsl:text> + <xsl:value-of select="local-name(.)"/> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </xsl:for-each> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise this is an empty link or an empty imagedata, --> + <!-- * audiodata, or videodata element, so we just get the --> + <!-- * value of its url, xlink:href, or fileref attribute. --> + <xsl:if test="$man.hyphenate.urls = 0 + and $man.break.after.slash = 0"> + <!-- * Add hyphenation suppression in URL output only if --> + <!-- * break.after.slash is also non-zero --> + <xsl:call-template name="suppress.hyphenation"/> + <xsl:text>\%</xsl:text> + </xsl:if> + <xsl:value-of select="$earmark"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:if test="self::ulink or self::*[@xlink:href]"> + <!-- * This is a hyperlink, so we need to decide how to format --> + <!-- * the inline contents of the link (to underline or not). --> + <xsl:choose> + <!-- * if user wants links underlined, underline (ital) it --> + <xsl:when test="$man.links.are.underlined != 0"> + <xsl:variable name="link.wrapper"> + <xsl:value-of select="$notesource.contents"/> + </xsl:variable> + <xsl:call-template name="italic"> + <xsl:with-param name="node" select="exsl:node-set($link.wrapper)"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <!-- * user doesn't want links underlined, so just display content --> + <xsl:value-of select="$notesource.contents"/> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + + <xsl:if test="$notesource.number != ''"> + <!-- * Format the number by placing it in square brackets. FIXME: --> + <!-- * This formatting should probably be made user-configurable, --> + <!-- * to allow something other than just square brackets; e.g., --> + <!-- * Angle brackets<10> or Braces{10} --> + <xsl:text>\&[</xsl:text> + <xsl:value-of select="$notesource.number"/> + <xsl:text>]</xsl:text> + <!-- * Note that the reason for the \& before the opening bracket --> + <!-- * is to prevent any possible linebreak from being introduced --> + <!-- * between the opening bracket and the following text. --> + </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="endnotes.list"> + <!-- We have stored earmark indexes for all refentry instances in the --> + <!-- current document, with the ID for each index being the same ID as --> + <!-- its corresponding refentry; so we now need to get the ID for the --> + <!-- current refentry so we can grab its corresponding earmark index --> + <xsl:variable name="current.refentry.id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:variable> + + <xsl:variable name="endnotes.rtf"> + <xsl:variable name="all.earmark.indexes.in.current.document.rtf"> + <xsl:call-template name="get.all.earmark.indexes.in.current.document"/> + </xsl:variable> + <xsl:variable name="all.earmark.indexes.in.current.document" + select="exsl:node-set($all.earmark.indexes.in.current.document.rtf)"/> + <xsl:copy-of + select="$all.earmark.indexes.in.current.document/earmark.index + [@idref = $current.refentry.id]/earmark"/> + </xsl:variable> + + <xsl:variable name="endnotes" select="exsl:node-set($endnotes.rtf)"/> + + <!-- * check to see if we have actually found any content to use as --> + <!-- * endnotes; if we have, we generate the endnotes list, if not, --> + <!-- * we do nothing --> + <xsl:if test="$endnotes/node()"> + <xsl:call-template name="format.endnotes.list"> + <xsl:with-param name="endnotes" select="$endnotes"/> + </xsl:call-template> + </xsl:if> + +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="format.endnotes.list"> + <xsl:param name="endnotes"/> + <xsl:call-template name="mark.subheading"/> + + <!-- * ======= make the endnotes-list section heading ============= --> + <xsl:text>.SH "</xsl:text> + <xsl:call-template name="string.upper"> + <xsl:with-param name="string"> + <xsl:choose> + <!-- * if user has specified a heading, use that --> + <xsl:when test="$man.endnotes.list.heading != ''"> + <xsl:value-of select="$man.endnotes.list.heading"/> + </xsl:when> + <xsl:otherwise> + <!-- * otherwise, get localized heading from gentext --> + <!-- * (in English, NOTES) --> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Notes'"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + <xsl:text>" </xsl:text> + + <!-- * ================ process each earmark ====================== --> + <xsl:for-each select="$endnotes/earmark"> + <!-- * make paragraph with hanging indent, and starting with a --> + <!-- * number in the form " 1." (padded to $man.indent.width - 1) --> + <xsl:text>.IP</xsl:text> + <xsl:text> "</xsl:text> + <xsl:variable name="endnote.number"> + <xsl:value-of select="@number"/> + <xsl:text>.</xsl:text> + </xsl:variable> + <xsl:call-template name="pad-string"> + <xsl:with-param name="padVar" select="$endnote.number"/> + <!-- FIXME: the following assumes that $man.indent.width is in --> + <!-- en's; also, this should probably use $list.indent instead --> + <xsl:with-param name="length" select="$man.indent.width - 1"/> + </xsl:call-template> + <xsl:text>"</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + + <!-- * ========================================================= --> + <!-- * print the notesource/endnote contents --> + <!-- * ========================================================= --> + <xsl:choose> + <xsl:when test="*/node()"> + <!-- * if the earmark has non-empty child content, then --> + <!-- * its corresponding notesource is either a link or --> + <!-- * an instance of annotative text, so we want to --> + <!-- * display that content --> + <xsl:choose> + <xsl:when test="*/node()[name(.)!='']"> + <!-- * if node is not text only, then process it as-is --> + <xsl:apply-templates select="*/node()"/> + </xsl:when> + <xsl:otherwise> + <!-- * otherwise node is text-only, so normalize it --> + <xsl:value-of select="normalize-space(*/node())"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <!-- * otherwise, this earmark has empty content, --> + <!-- * which means its corresponding notesources is an --> + <!-- * imagedata, audiodata, or videodata instance; in --> + <!-- * that case, we use the value of the notesoures's --> + <!-- * @fileref attribute (which is stored in the --> + <!-- * earmark uri attribute) as the "contents" for --> + <!-- * this endnote/notesource --> + <xsl:value-of select="@uri"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text> </xsl:text> + + <!-- * ========================================================= --> + <!-- * print the URL for links --> + <!-- * ========================================================= --> + <!-- * In addition to the notesource contents, if the --> + <!-- * notesource is a link, we display the URL for the link. --> + <!-- * But for notesources that are imagedata, audiodata, or --> + <!-- * videodata instances, we don't want to (re)display the --> + <!-- * URL for those here, because for those elements, the --> + <!-- * notesource contents are the URL (the value of the --> + <!-- * @fileref attribute), and we have already rendered them. --> + <!-- * --> + <!-- * We know an earmark is a link if it has non-empty child --> + <!-- * content and a uri attribute; so we check for that --> + <!-- * condition here. --> + <xsl:if test="*/node() and @uri"> + <xsl:text>.RS</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <!-- * Add hyphenation suppression in URL output only if --> + <!-- * $break.after.slash is also non-zero --> + <xsl:if test="$man.hyphenate.urls = 0 + and $man.break.after.slash = 0"> + <xsl:call-template name="suppress.hyphenation"/> + <xsl:text>\%</xsl:text> + </xsl:if> + <xsl:value-of select="@uri"/> + <xsl:text> </xsl:text> + <xsl:text>.RE</xsl:text> + <xsl:text> </xsl:text> + </xsl:if> + + </xsl:for-each> +</xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/html-synop.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/html-synop.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/html-synop.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,1605 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<!-- ******************************************************************** + $Id: synop.xsl 7250 2007-08-18 10:19:00Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- synopsis is in verbatim --> + +<!-- ==================================================================== --> + +<xsl:template match="cmdsynopsis"> + <div> + <xsl:apply-templates select="." mode="class.attribute"/> + <p> + <xsl:if test="..//processing-instruction('dbcmdlist')"> + <!-- * Placing a dbcmdlist PI as a child of a particular element --> + <!-- * creates a hyperlinked list of all cmdsynopsis instances --> + <!-- * that are descendants of that element; so for any --> + <!-- * cmdsynopsis that is a descendant of an element containing --> + <!-- * a dbcmdlist PI, we need to output an a at id instance so that --> + <!-- * we will have something to link to --> + <xsl:call-template name="anchor"> + <xsl:with-param name="conditional" select="0"/> + </xsl:call-template> + </xsl:if> + <xsl:apply-templates/> + </p> + </div> +</xsl:template> + +<xsl:template match="cmdsynopsis/command"> + <xsl:text> +. +</xsl:text> + <xsl:call-template name="inline.monoseq"/> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="cmdsynopsis/command[1]" priority="2"> + <xsl:call-template name="inline.monoseq"/> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="group|arg" name="group-or-arg"> + <xsl:variable name="choice" select="@choice"/> + <xsl:variable name="rep" select="@rep"/> + <xsl:variable name="sepchar"> + <xsl:choose> + <xsl:when test="ancestor-or-self::*/@sepchar"> + <xsl:value-of select="ancestor-or-self::*/@sepchar"/> + </xsl:when> + <xsl:otherwise> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:if test="preceding-sibling::*"> + <xsl:value-of select="$sepchar"/> + </xsl:if> + <xsl:choose> + <xsl:when test="$choice='plain'"> + <xsl:value-of select="$arg.choice.plain.open.str"/> + </xsl:when> + <xsl:when test="$choice='req'"> + <xsl:value-of select="$arg.choice.req.open.str"/> + </xsl:when> + <xsl:when test="$choice='opt'"> + <xsl:value-of select="$arg.choice.opt.open.str"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$arg.choice.def.open.str"/> + </xsl:otherwise> + </xsl:choose> + <xsl:apply-templates/> + <xsl:choose> + <xsl:when test="$rep='repeat'"> + <xsl:value-of select="$arg.rep.repeat.str"/> + </xsl:when> + <xsl:when test="$rep='norepeat'"> + <xsl:value-of select="$arg.rep.norepeat.str"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$arg.rep.def.str"/> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="$choice='plain'"> + <xsl:value-of select="$arg.choice.plain.close.str"/> + </xsl:when> + <xsl:when test="$choice='req'"> + <xsl:value-of select="$arg.choice.req.close.str"/> + </xsl:when> + <xsl:when test="$choice='opt'"> + <xsl:value-of select="$arg.choice.opt.close.str"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$arg.choice.def.close.str"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="group/arg"> + <xsl:variable name="choice" select="@choice"/> + <xsl:variable name="rep" select="@rep"/> + <xsl:if test="preceding-sibling::*"> + <xsl:value-of select="$arg.or.sep"/> + </xsl:if> + <xsl:call-template name="group-or-arg"/> +</xsl:template> + +<xsl:template match="sbr"> + <xsl:text> +. +</xsl:text> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="synopfragmentref"> + <xsl:variable name="target" select="key('id', at linkend)"/> + <xsl:variable name="snum"> + <xsl:apply-templates select="$target" mode="synopfragment.number"/> + </xsl:variable> + <i> + <a href="#{@linkend}"> + <xsl:text>(</xsl:text> + <xsl:value-of select="$snum"/> + <xsl:text>)</xsl:text> + </a> + <xsl:text>??</xsl:text> + <xsl:apply-templates/> + </i> +</xsl:template> + +<xsl:template match="synopfragment" mode="synopfragment.number"> + <xsl:number format="1"/> +</xsl:template> + +<xsl:template match="synopfragment"> + <xsl:variable name="snum"> + <xsl:apply-templates select="." mode="synopfragment.number"/> + </xsl:variable> + <p> + <xsl:variable name="id"> + <xsl:call-template name="object.id"/> + </xsl:variable> + <a name="{$id}"> + <xsl:text>(</xsl:text> + <xsl:value-of select="$snum"/> + <xsl:text>)</xsl:text> + </a> + <xsl:text> </xsl:text> + <xsl:apply-templates/> + </p> +</xsl:template> + +<xsl:template match="funcsynopsis"> + <xsl:if test="..//processing-instruction('dbfunclist')"> + <!-- * Placing a dbfunclist PI as a child of a particular element --> + <!-- * creates a hyperlinked list of all funcsynopsis instances that --> + <!-- * are descendants of that element; so for any funcsynopsis that is --> + <!-- * a descendant of an element containing a dbfunclist PI, we need --> + <!-- * to output an a at id instance so that we will have something to --> + <!-- * link to --> + <xsl:call-template name="anchor"> + <xsl:with-param name="conditional" select="0"/> + </xsl:call-template> + </xsl:if> + <xsl:call-template name="informal.object"/> +</xsl:template> + +<xsl:template match="funcsynopsisinfo"> + <xsl:text>.sp +</xsl:text><xsl:text>.nf +</xsl:text><pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates/> + </pre><xsl:text/><xsl:text>.fi +</xsl:text> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype --> +<!-- + +funcprototype ::= (funcdef, + (void|varargs|paramdef+)) + +funcdef ::= (#PCDATA|type|replaceable|function)* + +paramdef ::= (#PCDATA|type|replaceable|parameter|funcparams)* +--> + +<xsl:template match="funcprototype"> + <xsl:variable name="html-style"> + <xsl:call-template name="pi.dbhtml_funcsynopsis-style"> + <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="style"> + <xsl:choose> + <xsl:when test="$html-style != ''"> + <xsl:value-of select="$html-style"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$funcsynopsis.style"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + +<!-- + <xsl:variable name="tabular-p" + select="$funcsynopsis.tabular.threshold > 0 + and string-length(.) > $funcsynopsis.tabular.threshold"/> +--> + + <xsl:variable name="tabular-p" select="true()"/> + + <xsl:choose> + <xsl:when test="$style = 'kr' and $tabular-p"> + <xsl:apply-templates select="." mode="kr-tabular"/> + </xsl:when> + <xsl:when test="$style = 'kr'"> + <xsl:apply-templates select="." mode="kr-nontabular"/> + </xsl:when> + <xsl:when test="$style = 'ansi' and $tabular-p"> + <xsl:apply-templates select="." mode="ansi-tabular"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="ansi-nontabular"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype: kr, non-tabular --> + +<xsl:template match="funcprototype" mode="kr-nontabular"> + <p> + <xsl:apply-templates mode="kr-nontabular"/> + <xsl:if test="paramdef"> + <xsl:text> +. +</xsl:text> + <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/> + </xsl:if> + </p> +</xsl:template> + +<xsl:template match="funcdef" mode="kr-nontabular"> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="kr-nontabular"/> + <xsl:text>(</xsl:text> + </code> +</xsl:template> + +<xsl:template match="funcdef/function" mode="kr-nontabular"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="kr-nontabular"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="void" mode="kr-nontabular"> + <code>)</code> + <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="varargs" mode="kr-nontabular"> + <xsl:text>...</xsl:text> + <code>)</code> + <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="paramdef" mode="kr-nontabular"> + <xsl:apply-templates select="parameter" mode="kr-nontabular"/> + <xsl:choose> + <xsl:when test="following-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:when> + <xsl:otherwise> + <code>)</code> + <xsl:text>;</xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="kr-nontabular"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <var class="pdparam"> + <xsl:apply-templates mode="kr-nontabular"/> + </var> + </xsl:when> + <xsl:otherwise> + <code> + <xsl:apply-templates mode="kr-nontabular"/> + </code> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef" mode="kr-funcsynopsis-mode"> + <xsl:if test="preceding-sibling::paramdef"><xsl:text> +. +</xsl:text></xsl:if> + <code> + <xsl:apply-templates mode="kr-funcsynopsis-mode"/> + </code> + <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <var class="pdparam"> + <xsl:apply-templates mode="kr-funcsynopsis-mode"/> + </var> + </xsl:when> + <xsl:otherwise> + <code> + <xsl:apply-templates mode="kr-funcsynopsis-mode"/> + </code> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="funcparams" mode="kr-funcsynopsis-mode"> + <code>(</code> + <xsl:apply-templates mode="kr-funcsynopsis-mode"/> + <code>)</code> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype: kr, tabular --> + +<xsl:template match="funcprototype" mode="kr-tabular"> + <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"> + <tr> + <td> + <xsl:apply-templates select="funcdef" mode="kr-tabular"/> + </td> + <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/> + </tr> + <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]"> + <tr> + <td>??</td> + <xsl:apply-templates select="." mode="kr-tabular"/> + </tr> + </xsl:for-each> + </table> + <xsl:if test="paramdef"> + <table border="0" summary="Function argument synopsis" cellspacing="0" cellpadding="0"> + <xsl:if test="following-sibling::funcprototype"> + <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute> + </xsl:if> + <xsl:apply-templates select="paramdef" mode="kr-tabular-funcsynopsis-mode"/> + </table> + </xsl:if> +</xsl:template> + +<xsl:template match="funcdef" mode="kr-tabular"> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="kr-tabular"/> + <xsl:text>(</xsl:text> + </code> +</xsl:template> + +<xsl:template match="funcdef/function" mode="kr-tabular"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="kr-tabular"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="void" mode="kr-tabular"> + <td> + <code>)</code> + <xsl:text>;</xsl:text> + </td> + <td>??</td> +</xsl:template> + +<xsl:template match="varargs" mode="kr-tabular"> + <td> + <xsl:text>...</xsl:text> + <code>)</code> + <xsl:text>;</xsl:text> + </td> + <td>??</td> +</xsl:template> + +<xsl:template match="paramdef" mode="kr-tabular"> + <td> + <xsl:apply-templates select="parameter" mode="kr-tabular"/> + <xsl:choose> + <xsl:when test="following-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:when> + <xsl:otherwise> + <code>)</code> + <xsl:text>;</xsl:text> + </xsl:otherwise> + </xsl:choose> + </td> + <td>??</td> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="kr-tabular"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <var class="pdparam"> + <xsl:apply-templates mode="kr-tabular"/> + </var> + </xsl:when> + <xsl:otherwise> + <code> + <xsl:apply-templates mode="kr-tabular"/> + </code> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode"> + <xsl:variable name="type"> + <xsl:choose> + <xsl:when test="type"> + <xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/> + </xsl:when> + <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''"> + <xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + + <tr> + <xsl:choose> + <xsl:when test="$type != '' and funcparams"> + <td> + <code> + <xsl:copy-of select="$type"/> + </code> + <xsl:text>??</xsl:text> + </td> + <td> + <code> + <xsl:choose> + <xsl:when test="type"> + <xsl:apply-templates select="type/following-sibling::*" mode="kr-tabular-funcsynopsis-mode"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*" mode="kr-tabular-funcsynopsis-mode"/> + </xsl:otherwise> + </xsl:choose> + </code> + </td> + </xsl:when> + + <xsl:when test="funcparams"> + <td colspan="2"> + <code> + <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/> + </code> + </td> + </xsl:when> + + <xsl:otherwise> + <td> + <code> + <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/> + </code> + <xsl:text>??</xsl:text> + </td> + <td> + <code> + <xsl:apply-templates select="parameter" mode="kr-tabular"/> + <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/> + <xsl:text>;</xsl:text> + </code> + </td> + </xsl:otherwise> + </xsl:choose> + </tr> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <var class="pdparam"> + <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/> + </var> + </xsl:when> + <xsl:otherwise> + <code> + <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/> + </code> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode"> + <code>(</code> + <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/> + <code>)</code> + <xsl:text>;</xsl:text> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype: ansi, non-tabular --> + +<xsl:template match="funcprototype" mode="ansi-nontabular"> + <p> + <xsl:apply-templates mode="ansi-nontabular"/> + </p> +</xsl:template> + +<xsl:template match="funcdef" mode="ansi-nontabular"> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="ansi-nontabular"/> + <xsl:text>(</xsl:text> + </code> +</xsl:template> + +<xsl:template match="funcdef/function" mode="ansi-nontabular"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="ansi-nontabular"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="void" mode="ansi-nontabular"> + <code>void)</code> + <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="varargs" mode="ansi-nontabular"> + <xsl:text>...</xsl:text> + <code>)</code> + <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="paramdef" mode="ansi-nontabular"> + <xsl:apply-templates mode="ansi-nontabular"/> + <xsl:choose> + <xsl:when test="following-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:when> + <xsl:otherwise> + <code>)</code> + <xsl:text>;</xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="ansi-nontabular"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <var class="pdparam"> + <xsl:apply-templates mode="ansi-nontabular"/> + </var> + </xsl:when> + <xsl:otherwise> + <code> + <xsl:apply-templates mode="ansi-nontabular"/> + </code> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="funcparams" mode="ansi-nontabular"> + <code>(</code> + <xsl:apply-templates mode="ansi-nontabular"/> + <code>)</code> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype: ansi, tabular --> + +<xsl:template match="funcprototype" mode="ansi-tabular"> + <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"> + <xsl:if test="following-sibling::funcprototype"> + <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute> + </xsl:if> + <tr> + <td> + <xsl:apply-templates select="funcdef" mode="ansi-tabular"/> + </td> + <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/> + </tr> + <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]"> + <tr> + <td>??</td> + <xsl:apply-templates select="." mode="ansi-tabular"/> + </tr> + </xsl:for-each> + </table> +</xsl:template> + +<xsl:template match="funcdef" mode="ansi-tabular"> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="ansi-tabular"/> + <xsl:text>(</xsl:text> + </code> +</xsl:template> + +<xsl:template match="funcdef/function" mode="ansi-tabular"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="kr-tabular"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="void" mode="ansi-tabular"> + <td> + <code>void)</code> + <xsl:text>;</xsl:text> + </td> + <td>??</td> +</xsl:template> + +<xsl:template match="varargs" mode="ansi-tabular"> + <td> + <xsl:text>...</xsl:text> + <code>)</code> + <xsl:text>;</xsl:text> + </td> + <td>??</td> +</xsl:template> + +<xsl:template match="paramdef" mode="ansi-tabular"> + <xsl:variable name="type"> + <xsl:choose> + <xsl:when test="type"> + <xsl:apply-templates select="type" mode="ansi-tabular"/> + </xsl:when> + <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''"> + <xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$type != '' and funcparams"> + <td> + <xsl:copy-of select="$type"/> + <xsl:text>??</xsl:text> + </td> + <td> + <xsl:choose> + <xsl:when test="type"> + <xsl:apply-templates select="type/following-sibling::*" mode="ansi-tabular"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*" mode="ansi-tabular"/> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="following-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:when> + <xsl:otherwise> + <code>)</code> + <xsl:text>;</xsl:text> + </xsl:otherwise> + </xsl:choose> + </td> + </xsl:when> + <xsl:otherwise> + <td> + <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="ansi-tabular"/> + <xsl:text>??</xsl:text> + </td> + <td> + <xsl:apply-templates select="parameter" mode="ansi-tabular"/> + <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="ansi-tabular"/> + <xsl:choose> + <xsl:when test="following-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:when> + <xsl:otherwise> + <code>)</code> + <xsl:text>;</xsl:text> + </xsl:otherwise> + </xsl:choose> + </td> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="ansi-tabular"> + <xsl:choose> + <xsl:when test="$funcsynopsis.decoration != 0"> + <var class="pdparam"> + <xsl:apply-templates mode="ansi-tabular"/> + </var> + </xsl:when> + <xsl:otherwise> + <code> + <xsl:apply-templates mode="ansi-tabular"/> + </code> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="funcparams" mode="ansi-tabular"> + <code>(</code> + <xsl:apply-templates/> + <code>)</code> +</xsl:template> + +<!-- ====================================================================== --> + +<xsl:variable name="default-classsynopsis-language">java</xsl:variable> + +<xsl:template match="classsynopsis |fieldsynopsis |methodsynopsis |constructorsynopsis |destructorsynopsis"> + <xsl:param name="language"> + <xsl:choose> + <xsl:when test="@language"> + <xsl:value-of select="@language"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$default-classsynopsis-language"/> + </xsl:otherwise> + </xsl:choose> + </xsl:param> + + <xsl:choose> + <xsl:when test="$language='java' or $language='Java'"> + <xsl:apply-templates select="." mode="java"/> + </xsl:when> + <xsl:when test="$language='perl' or $language='Perl'"> + <xsl:apply-templates select="." mode="perl"/> + </xsl:when> + <xsl:when test="$language='idl' or $language='IDL'"> + <xsl:apply-templates select="." mode="idl"/> + </xsl:when> + <xsl:when test="$language='cpp' or $language='c++' or $language='C++'"> + <xsl:apply-templates select="." mode="cpp"/> + </xsl:when> + <xsl:otherwise> + <xsl:message> + <xsl:text>Unrecognized language on </xsl:text> + <xsl:value-of select="local-name(.)"/> + <xsl:text>: </xsl:text> + <xsl:value-of select="$language"/> + </xsl:message> + <xsl:apply-templates select="."> + <xsl:with-param name="language" select="$default-classsynopsis-language"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="synop-break"> + <xsl:if test="parent::classsynopsis or (following-sibling::fieldsynopsis |following-sibling::methodsynopsis |following-sibling::constructorsynopsis |following-sibling::destructorsynopsis)"> + <xsl:text> +. +</xsl:text> + </xsl:if> +</xsl:template> + + +<!-- ===== Java ======================================================== --> + +<xsl:template match="classsynopsis" mode="java"> + <xsl:text>.sp +</xsl:text><xsl:text>.nf +</xsl:text><pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates select="ooclass[1]" mode="java"/> + <xsl:if test="ooclass[preceding-sibling::*]"> + <xsl:text> extends</xsl:text> + <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/> + <xsl:if test="oointerface|ooexception"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????</xsl:text> + </xsl:if> + </xsl:if> + <xsl:if test="oointerface"> + <xsl:text>implements</xsl:text> + <xsl:apply-templates select="oointerface" mode="java"/> + <xsl:if test="ooexception"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????</xsl:text> + </xsl:if> + </xsl:if> + <xsl:if test="ooexception"> + <xsl:text>throws</xsl:text> + <xsl:apply-templates select="ooexception" mode="java"/> + </xsl:if> + <xsl:text>??{</xsl:text> + <xsl:text> +. +</xsl:text> + <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="java"/> + <xsl:text>}</xsl:text> + </pre><xsl:text/><xsl:text>.fi +</xsl:text> +</xsl:template> + +<xsl:template match="classsynopsisinfo" mode="java"> + <xsl:apply-templates mode="java"/> +</xsl:template> + +<xsl:template match="ooclass|oointerface|ooexception" mode="java"> + <xsl:choose> + <xsl:when test="preceding-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + </span> +</xsl:template> + +<xsl:template match="modifier|package" mode="java"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + <xsl:if test="following-sibling::*"> + <xsl:text>??</xsl:text> + </xsl:if> + </span> +</xsl:template> + +<xsl:template match="classname" mode="java"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + </span> +</xsl:template> + +<xsl:template match="interfacename" mode="java"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + </span> +</xsl:template> + +<xsl:template match="exceptionname" mode="java"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + </span> +</xsl:template> + +<xsl:template match="fieldsynopsis" mode="java"> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="parent::classsynopsis"> + <xsl:text>????</xsl:text> + </xsl:if> + <xsl:apply-templates mode="java"/> + <xsl:text>;</xsl:text> + </code> + <xsl:call-template name="synop-break"/> +</xsl:template> + +<xsl:template match="type" mode="java"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + <xsl:text>??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="varname" mode="java"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + <xsl:text>??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="initializer" mode="java"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>=??</xsl:text> + <xsl:apply-templates mode="java"/> + </span> +</xsl:template> + +<xsl:template match="void" mode="java"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>void??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="methodname" mode="java"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + </span> +</xsl:template> + +<xsl:template match="methodparam" mode="java"> + <xsl:param name="indent">0</xsl:param> + <xsl:if test="preceding-sibling::methodparam"> + <xsl:text>,</xsl:text> + <xsl:text> +. +</xsl:text> + <xsl:if test="$indent > 0"> + <xsl:call-template name="copy-string"> + <xsl:with-param name="string">??</xsl:with-param> + <xsl:with-param name="count" select="$indent + 1"/> + </xsl:call-template> + </xsl:if> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + </span> +</xsl:template> + +<xsl:template match="parameter" mode="java"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="java"/> + </span> +</xsl:template> + +<xsl:template mode="java" match="constructorsynopsis|destructorsynopsis|methodsynopsis"> + <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/> + <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/> + <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/> + <xsl:variable name="decl"> + <xsl:if test="parent::classsynopsis"> + <xsl:text>????</xsl:text> + </xsl:if> + <xsl:apply-templates select="$start-modifiers" mode="java"/> + + <!-- type --> + <xsl:if test="local-name($notmod[1]) != 'methodname'"> + <xsl:apply-templates select="$notmod[1]" mode="java"/> + </xsl:if> + + <xsl:apply-templates select="methodname" mode="java"/> + </xsl:variable> + + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:copy-of select="$decl"/> + <xsl:text>(</xsl:text> + <xsl:apply-templates select="methodparam" mode="java"> + <xsl:with-param name="indent" select="string-length($decl)"/> + </xsl:apply-templates> + <xsl:text>)</xsl:text> + <xsl:if test="exceptionname"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????throws??</xsl:text> + <xsl:apply-templates select="exceptionname" mode="java"/> + </xsl:if> + <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"> + <xsl:text> </xsl:text> + <xsl:apply-templates select="$end-modifiers" mode="java"/> + </xsl:if> + <xsl:text>;</xsl:text> + </code> + <xsl:call-template name="synop-break"/> +</xsl:template> + +<!-- ===== C++ ========================================================= --> + +<xsl:template match="classsynopsis" mode="cpp"> + <xsl:text>.sp +</xsl:text><xsl:text>.nf +</xsl:text><pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates select="ooclass[1]" mode="cpp"/> + <xsl:if test="ooclass[preceding-sibling::*]"> + <xsl:text>: </xsl:text> + <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/> + <xsl:if test="oointerface|ooexception"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????</xsl:text> + </xsl:if> + </xsl:if> + <xsl:if test="oointerface"> + <xsl:text> implements</xsl:text> + <xsl:apply-templates select="oointerface" mode="cpp"/> + <xsl:if test="ooexception"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????</xsl:text> + </xsl:if> + </xsl:if> + <xsl:if test="ooexception"> + <xsl:text> throws</xsl:text> + <xsl:apply-templates select="ooexception" mode="cpp"/> + </xsl:if> + <xsl:text>??{</xsl:text> + <xsl:text> +. +</xsl:text> + <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="cpp"/> + <xsl:text>}</xsl:text> + </pre><xsl:text/><xsl:text>.fi +</xsl:text> +</xsl:template> + +<xsl:template match="classsynopsisinfo" mode="cpp"> + <xsl:apply-templates mode="cpp"/> +</xsl:template> + +<xsl:template match="ooclass|oointerface|ooexception" mode="cpp"> + <xsl:if test="preceding-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + </span> +</xsl:template> + +<xsl:template match="modifier|package" mode="cpp"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + <xsl:if test="following-sibling::*"> + <xsl:text>??</xsl:text> + </xsl:if> + </span> +</xsl:template> + +<xsl:template match="classname" mode="cpp"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + </span> +</xsl:template> + +<xsl:template match="interfacename" mode="cpp"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + </span> +</xsl:template> + +<xsl:template match="exceptionname" mode="cpp"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + </span> +</xsl:template> + +<xsl:template match="fieldsynopsis" mode="cpp"> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="parent::classsynopsis"> + <xsl:text>????</xsl:text> + </xsl:if> + <xsl:apply-templates mode="cpp"/> + <xsl:text>;</xsl:text> + </code> + <xsl:call-template name="synop-break"/> +</xsl:template> + +<xsl:template match="type" mode="cpp"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + <xsl:text>??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="varname" mode="cpp"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + <xsl:text>??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="initializer" mode="cpp"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>=??</xsl:text> + <xsl:apply-templates mode="cpp"/> + </span> +</xsl:template> + +<xsl:template match="void" mode="cpp"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>void??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="methodname" mode="cpp"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + </span> +</xsl:template> + +<xsl:template match="methodparam" mode="cpp"> + <xsl:if test="preceding-sibling::methodparam"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + </span> +</xsl:template> + +<xsl:template match="parameter" mode="cpp"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="cpp"/> + </span> +</xsl:template> + +<xsl:template mode="cpp" match="constructorsynopsis|destructorsynopsis|methodsynopsis"> + <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/> + <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/> + <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/> + + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="parent::classsynopsis"> + <xsl:text>????</xsl:text> + </xsl:if> + <xsl:apply-templates select="$start-modifiers" mode="cpp"/> + + <!-- type --> + <xsl:if test="local-name($notmod[1]) != 'methodname'"> + <xsl:apply-templates select="$notmod[1]" mode="cpp"/> + </xsl:if> + + <xsl:apply-templates select="methodname" mode="cpp"/> + <xsl:text>(</xsl:text> + <xsl:apply-templates select="methodparam" mode="cpp"/> + <xsl:text>)</xsl:text> + <xsl:if test="exceptionname"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????throws??</xsl:text> + <xsl:apply-templates select="exceptionname" mode="cpp"/> + </xsl:if> + <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"> + <xsl:text> </xsl:text> + <xsl:apply-templates select="$end-modifiers" mode="cpp"/> + </xsl:if> + <xsl:text>;</xsl:text> + </code> + <xsl:call-template name="synop-break"/> +</xsl:template> + +<!-- ===== IDL ========================================================= --> + +<xsl:template match="classsynopsis" mode="idl"> + <xsl:text>.sp +</xsl:text><xsl:text>.nf +</xsl:text><pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>interface </xsl:text> + <xsl:apply-templates select="ooclass[1]" mode="idl"/> + <xsl:if test="ooclass[preceding-sibling::*]"> + <xsl:text>: </xsl:text> + <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/> + <xsl:if test="oointerface|ooexception"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????</xsl:text> + </xsl:if> + </xsl:if> + <xsl:if test="oointerface"> + <xsl:text> implements</xsl:text> + <xsl:apply-templates select="oointerface" mode="idl"/> + <xsl:if test="ooexception"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????</xsl:text> + </xsl:if> + </xsl:if> + <xsl:if test="ooexception"> + <xsl:text> throws</xsl:text> + <xsl:apply-templates select="ooexception" mode="idl"/> + </xsl:if> + <xsl:text>??{</xsl:text> + <xsl:text> +. +</xsl:text> + <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="idl"/> + <xsl:text>}</xsl:text> + </pre><xsl:text/><xsl:text>.fi +</xsl:text> +</xsl:template> + +<xsl:template match="classsynopsisinfo" mode="idl"> + <xsl:apply-templates mode="idl"/> +</xsl:template> + +<xsl:template match="ooclass|oointerface|ooexception" mode="idl"> + <xsl:if test="preceding-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + </span> +</xsl:template> + +<xsl:template match="modifier|package" mode="idl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + <xsl:if test="following-sibling::*"> + <xsl:text>??</xsl:text> + </xsl:if> + </span> +</xsl:template> + +<xsl:template match="classname" mode="idl"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + </span> +</xsl:template> + +<xsl:template match="interfacename" mode="idl"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + </span> +</xsl:template> + +<xsl:template match="exceptionname" mode="idl"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + </span> +</xsl:template> + +<xsl:template match="fieldsynopsis" mode="idl"> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="parent::classsynopsis"> + <xsl:text>????</xsl:text> + </xsl:if> + <xsl:apply-templates mode="idl"/> + <xsl:text>;</xsl:text> + </code> + <xsl:call-template name="synop-break"/> +</xsl:template> + +<xsl:template match="type" mode="idl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + <xsl:text>??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="varname" mode="idl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + <xsl:text>??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="initializer" mode="idl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>=??</xsl:text> + <xsl:apply-templates mode="idl"/> + </span> +</xsl:template> + +<xsl:template match="void" mode="idl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>void??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="methodname" mode="idl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + </span> +</xsl:template> + +<xsl:template match="methodparam" mode="idl"> + <xsl:if test="preceding-sibling::methodparam"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + </span> +</xsl:template> + +<xsl:template match="parameter" mode="idl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="idl"/> + </span> +</xsl:template> + +<xsl:template mode="idl" match="constructorsynopsis|destructorsynopsis|methodsynopsis"> + <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/> + <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/> + <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="parent::classsynopsis"> + <xsl:text>????</xsl:text> + </xsl:if> + <xsl:apply-templates select="$start-modifiers" mode="idl"/> + + <!-- type --> + <xsl:if test="local-name($notmod[1]) != 'methodname'"> + <xsl:apply-templates select="$notmod[1]" mode="idl"/> + </xsl:if> + + <xsl:apply-templates select="methodname" mode="idl"/> + <xsl:text>(</xsl:text> + <xsl:apply-templates select="methodparam" mode="idl"/> + <xsl:text>)</xsl:text> + <xsl:if test="exceptionname"> + <xsl:text> +. +</xsl:text> + <xsl:text>????????raises(</xsl:text> + <xsl:apply-templates select="exceptionname" mode="idl"/> + <xsl:text>)</xsl:text> + </xsl:if> + <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"> + <xsl:text> </xsl:text> + <xsl:apply-templates select="$end-modifiers" mode="idl"/> + </xsl:if> + <xsl:text>;</xsl:text> + </code> + <xsl:call-template name="synop-break"/> +</xsl:template> + +<!-- ===== Perl ======================================================== --> + +<xsl:template match="classsynopsis" mode="perl"> + <xsl:text>.sp +</xsl:text><xsl:text>.nf +</xsl:text><pre> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>package </xsl:text> + <xsl:apply-templates select="ooclass[1]" mode="perl"/> + <xsl:text>;</xsl:text> + <xsl:text> +. +</xsl:text> + + <xsl:if test="ooclass[preceding-sibling::*]"> + <xsl:text>@ISA = (</xsl:text> + <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/> + <xsl:text>);</xsl:text> + <xsl:text> +. +</xsl:text> + </xsl:if> + + <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="perl"/> + </pre><xsl:text/><xsl:text>.fi +</xsl:text> +</xsl:template> + +<xsl:template match="classsynopsisinfo" mode="perl"> + <xsl:apply-templates mode="perl"/> +</xsl:template> + +<xsl:template match="ooclass|oointerface|ooexception" mode="perl"> + <xsl:if test="preceding-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + </span> +</xsl:template> + +<xsl:template match="modifier|package" mode="perl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + <xsl:if test="following-sibling::*"> + <xsl:text>??</xsl:text> + </xsl:if> + </span> +</xsl:template> + +<xsl:template match="classname" mode="perl"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + </span> +</xsl:template> + +<xsl:template match="interfacename" mode="perl"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + </span> +</xsl:template> + +<xsl:template match="exceptionname" mode="perl"> + <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + </span> +</xsl:template> + +<xsl:template match="fieldsynopsis" mode="perl"> + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:if test="parent::classsynopsis"> + <xsl:text>????</xsl:text> + </xsl:if> + <xsl:apply-templates mode="perl"/> + <xsl:text>;</xsl:text> + </code> + <xsl:call-template name="synop-break"/> +</xsl:template> + +<xsl:template match="type" mode="perl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + <xsl:text>??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="varname" mode="perl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + <xsl:text>??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="initializer" mode="perl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>=??</xsl:text> + <xsl:apply-templates mode="perl"/> + </span> +</xsl:template> + +<xsl:template match="void" mode="perl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>void??</xsl:text> + </span> +</xsl:template> + +<xsl:template match="methodname" mode="perl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + </span> +</xsl:template> + +<xsl:template match="methodparam" mode="perl"> + <xsl:if test="preceding-sibling::methodparam"> + <xsl:text>, </xsl:text> + </xsl:if> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + </span> +</xsl:template> + +<xsl:template match="parameter" mode="perl"> + <span> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:apply-templates mode="perl"/> + </span> +</xsl:template> + +<xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis"> + <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/> + <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/> + <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/> + + <code> + <xsl:apply-templates select="." mode="class.attribute"/> + <xsl:text>sub </xsl:text> + + <xsl:apply-templates select="methodname" mode="perl"/> + <xsl:text> { ... };</xsl:text> + </code> + <xsl:call-template name="synop-break"/> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- * DocBook 5 allows linking elements (link, olink, and xref) --> +<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, --> +<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and --> +<!-- * their children. So we need to have mode="java|cpp|idl|perl" --> +<!-- * per-mode matches for those linking elements in order for them --> +<!-- * to be processed as expected. --> + +<xsl:template match="link|olink|xref" mode="java"> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="link|olink|xref" mode="cpp"> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="link|olink|xref" mode="idl"> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="link|olink|xref" mode="perl"> + <xsl:apply-templates select="."/> +</xsl:template> + +</xsl:stylesheet> + Added: box/trunk/docs/xsl-generic/manpages/info.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/info.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/info.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,630 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:date="http://exslt.org/dates-and-times" + xmlns:exsl="http://exslt.org/common" + exclude-result-prefixes="date exsl" + version='1.0'> + +<!-- ******************************************************************** + $Id: info.xsl 7087 2007-07-19 07:20:38Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + + <xsl:variable name="blurb-indent"> + <xsl:choose> + <xsl:when test="not($man.indent.blurbs = 0)"> + <xsl:value-of select="$man.indent.width"/> + </xsl:when> + <xsl:when test="not($man.indent.refsect = 0)"> + <!-- * "zq" is the name of a register we set for --> + <!-- * preserving the original default indent value --> + <!-- * when $man.indent.refsect is non-zero; --> + <!-- * "u" is a roff unit specifier --> + <xsl:text>\n(zqu</xsl:text> + </xsl:when> + <xsl:otherwise/> <!-- * otherwise, just leave it empty --> + </xsl:choose> + </xsl:variable> + + <!-- ================================================================== --> + <!-- * About the $info param used in this stylesheet --> + <!-- * --> + <!-- * The $info param is a "master info" node set that contains --> + <!-- * the entire contents of the *info child of the current --> + <!-- * Refentry, plus the entire contents of the *info children of --> + <!-- * all ancestors of the current Refentry, in document order. --> + <!-- * --> + <!-- * We try to find a "best match" for selecting content from --> + <!-- * $infor; we look through it in reverse document order until we --> + <!-- * can find something usable. --> + <!-- * --> + <!-- * Specifically what the basic metadata-gathering XPath expression --> + <!-- * in this stylesheet does is: --> + <!-- * --> + <!-- * 1. Look through the entire "master info" node set.--> + <!-- * 2. Get the last node in the set that contains, for --> + <!-- * example, an Author element. That amounts to being the --> + <!-- * closest *info node to the Refentry - either its *info --> + <!-- * child, or the *info node of its closest ancestor that --> + <!-- * contains an Author. --> + + <!-- ================================================================== --> + <!-- * Get user "refentry metadata" preferences --> + <!-- ================================================================== --> + <!-- * The DocBook XSL stylesheets include several user-configurable --> + <!-- * global stylesheet parameters for controlling refentry metadata --> + <!-- * gathering. Those parameters are not read directly by the other --> + <!-- * refentry metadata-gathering templates. Instead, they are read --> + <!-- * only by the get.refentry.metadata.prefs template, which --> + <!-- * assembles them into a structure that is then passed to the --> + <!-- * other refentry metadata-gathering template. --> + + <xsl:variable name="get.refentry.metadata.prefs"> + <!-- * get.refentry.metadata.prefs is in common/refentry.xsl --> + <xsl:call-template name="get.refentry.metadata.prefs"/> + </xsl:variable> + + <xsl:variable name="refentry.metadata.prefs" + select="exsl:node-set($get.refentry.metadata.prefs)"/> + + <!-- * ============================================================== --> + <!-- * Get content for Author metadata field. --> + <!-- * ============================================================== --> + + <!-- * The make.roff.metatada.author template and metadata.author --> + <!-- * mode are used only for populating the Author field in the --> + <!-- * metadata "top comment" we embed in roff source of each page. --> + + <xsl:template name="make.roff.metadata.author"> + <xsl:param name="info"/> + <xsl:choose> + <xsl:when test="$info//author"> + <xsl:apply-templates + select="(($info[//author])[last()]//author)[1]" + mode="metadata.author"/> + </xsl:when> + <xsl:when test="$info//corpauthor"> + <xsl:apply-templates + select="(($info[//corpauthor])[last()]//corpauthor)[1]" + mode="metadata.author"/> + </xsl:when> + <xsl:when test="$info//editor"> + <xsl:apply-templates + select="(($info[//editor])[last()]//editor)[1]" + mode="metadata.author"/> + </xsl:when> + <xsl:when test="$info//corpcredit"> + <xsl:apply-templates + select="(($info[//corpcredit])[last()]//corpcredit)[1]" + mode="metadata.author"/> + </xsl:when> + <xsl:when test="$info//othercredit"> + <xsl:apply-templates + select="(($info[//othercredit])[last()]//othercredit)[1]" + mode="metadata.author"/> + </xsl:when> + <xsl:when test="$info//collab"> + <xsl:apply-templates + select="(($info[//collab])[last()]//collab)[1]" + mode="metadata.author"/> + </xsl:when> + <xsl:when test="$info//orgname"> + <xsl:apply-templates + select="(($info[//orgname])[last()]//orgname)[1]" + mode="metadata.author"/> + </xsl:when> + <xsl:when test="$info//publishername"> + <xsl:apply-templates + select="(($info[//publishername])[last()]//publishername)[1]" + mode="metadata.author"/> + </xsl:when> + <xsl:otherwise/> <!-- * do nothing, no author info found --> + </xsl:choose> + </xsl:template> + + <xsl:template match="author|editor|othercredit|collab" mode="metadata.author"> + <xsl:choose> + <xsl:when test="collabname"> + <!-- * If this node is a Collab, then it should have a --> + <!-- * Collabname child, so get that. --> + <xsl:variable name="contents"> + <xsl:apply-templates select="collabname"/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise, this node is not a Collab, but instead --> + <!-- * an author|editor|othercredit, which must have a name --> + <!-- * of some kind; so get that name --> + <xsl:call-template name="person.name.normalized"/> + </xsl:otherwise> + </xsl:choose> + <xsl:if test=".//email|address/otheraddr/ulink"> + <xsl:text> </xsl:text> + <!-- * For each attribution found, use only the first e-mail --> + <!-- * address or ulink value found --> + <xsl:apply-templates select="(.//email|address/otheraddr/ulink)[1]" + mode="metadata.author"/> + </xsl:if> + </xsl:template> + + <xsl:template match="email|address/otheraddr/ulink" mode="metadata.author"> + <xsl:text><</xsl:text> + <xsl:choose> + <xsl:when test="self::email"> + <xsl:variable name="contents"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + </xsl:when> + <xsl:when test="self::ulink"> + <xsl:variable name="contents"> + <xsl:apply-templates select="."/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + </xsl:when> + </xsl:choose> + <xsl:text>></xsl:text> + </xsl:template> + + <xsl:template match="corpauthor|corpcredit|orgname|publishername" mode="metadata.author"> + <xsl:variable name="contents"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + </xsl:template> + + <!-- * ============================================================== --> + <!-- * Assemble the AUTHOR/AUTHORS section --> + <!-- * ============================================================== --> + + <xsl:template name="author.section"> + <xsl:param name="info"/> + <!-- * The $info param is a "master info" node set that contains --> + <!-- * the entires contents of the *info child of the current --> + <!-- * Refentry, plus the entire contents of the *info children of --> + <!-- * all ancestors of the current Refentry, in document order. --> + <xsl:choose> + <xsl:when test="$info//author|$info//editor|$info//collab| + $info//corpauthor|$info//corpcredit| + $info//othercredit|$info/orgname| + $info/publishername|$info/publisher"> + <xsl:variable name="authorcount"> + <xsl:value-of + select="count( + $info//author|$info//editor|$info//collab| + $info//corpauthor|$info//corpcredit| + $info//othercredit)"> + </xsl:value-of> + </xsl:variable> + <xsl:text>.SH "</xsl:text> + <xsl:call-template name="make.authorsecttitle"> + <xsl:with-param name="authorcount" select="$authorcount"/> + </xsl:call-template> + <!-- * Now output all the actual author, editor, etc. content --> + <xsl:for-each + select="$info//author|$info//editor|$info//collab| + $info//corpauthor|$info//corpcredit| + $info//othercredit|$info/orgname| + $info/publishername|$info/publisher"> + <xsl:apply-templates select="." mode="authorsect"/> + </xsl:for-each> + </xsl:when> + <xsl:otherwise/> <!-- * do nothing, no author info found --> + </xsl:choose> + </xsl:template> + + <xsl:template name="make.authorsecttitle"> + <!-- * If we have exactly one attributable person/entity, then output --> + <!-- * localized gentext for 'Author'; otherwise, output 'Authors'. --> + <xsl:param name="authorcount"/> + <xsl:param name="authorsecttitle"> + <xsl:choose> + <xsl:when test="$authorcount = 1"> + <xsl:text>Author</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>Authors</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:param> + <xsl:call-template name="string.upper"> + <xsl:with-param name="string"> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="$authorsecttitle"/> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + <xsl:text>" </xsl:text> + </xsl:template> + + <xsl:template match="author|editor|othercredit" mode="authorsect"> + <xsl:variable name="person-name"> + <xsl:call-template name="person.name.normalized"/> + </xsl:variable> + <!-- * If we have a person-name or email or ulink content, then --> + <!-- * output name and email or ulink content on the same line --> + <xsl:choose> + <xsl:when test="not($person-name = '') or .//email or address/otheraddr/ulink"> + <xsl:text>.PP </xsl:text> + <!-- * Display person name in bold --> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="exsl:node-set($person-name)"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <!-- * Display e-mail address(es) and ulink(s) on same line as name --> + <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/> + <xsl:text> </xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>.br </xsl:text> + </xsl:otherwise> + </xsl:choose> + <!-- * Display affiliation(s) on separate lines --> + <xsl:apply-templates select="affiliation" mode="authorsect"/> + <!-- * Display direct-child addresses on separate lines --> + <xsl:apply-templates select="address" mode="authorsect"/> + <!-- * Call template for handling various attribution possibilities --> + <xsl:call-template name="attribution"/> + </xsl:template> + + <xsl:template match="collab" mode="authorsect"> + <xsl:text>.PP </xsl:text> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="collabname"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <!-- * Display e-mail address(es) and ulink(s) on same line as name --> + <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/> + <xsl:text> </xsl:text> + <!-- * Display affilition(s) on separate lines --> + <xsl:apply-templates select="affiliation" mode="authorsect"/> + </xsl:template> + + <xsl:template match="corpauthor|corpcredit|orgname|publishername" mode="authorsect"> + <xsl:text>.PP </xsl:text> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:if test="self::publishername"> + <!-- * Display localized "Publisher" gentext --> + <xsl:call-template name="publisher.attribution"/> + </xsl:if> + </xsl:template> + + <xsl:template match="publisher" mode="authorsect"> + <xsl:text>.PP </xsl:text> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="publishername"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <!-- * Display e-mail address(es) and ulink(s) on same line as name --> + <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/> + <!-- * Display addresses on separate lines --> + <xsl:apply-templates select="address" mode="authorsect"/> + <!-- * Display localized "Publisher" literal --> + <xsl:call-template name="publisher.attribution"/> + </xsl:template> + + <xsl:template name="publisher.attribution"> + <xsl:text> </xsl:text> + <xsl:text>.sp -1n </xsl:text> + <xsl:text>.IP ""</xsl:text> + <xsl:if test="not($blurb-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$blurb-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Publisher'"/> + </xsl:call-template> + <xsl:text>. </xsl:text> + </xsl:template> + + <xsl:template match="email|address/otheraddr/ulink" mode="authorsect"> + <xsl:choose> + <xsl:when test="preceding-sibling::*[descendant-or-self::email] + or preceding-sibling::address/otheraddr/ulink + or ancestor::address[preceding-sibling::*[descendant-or-self::email]] + or ancestor::address[preceding-sibling::address/otheraddr/ulink]"> + <!-- * This is not the first instance, so do nothing. --> + </xsl:when> + <xsl:otherwise> + <!-- * This is first instances of an e-mail address or ulink, --> + <!-- * so put a space before it. --> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + <!-- * Note that the reason for the \& character after the opening --> + <!-- * angle bracket and before the closing angle bracket is to --> + <!-- * prevent groff from inserting a linebreak at those points and --> + <!-- * outputting a hyphen character where the break occurs --> + <xsl:text><\&</xsl:text> + <xsl:choose> + <xsl:when test="self::email"> + <xsl:variable name="contents"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + </xsl:when> + <xsl:when test="self::ulink"> + <xsl:variable name="contents"> + <xsl:apply-templates select="."/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + </xsl:when> + </xsl:choose> + <xsl:text>\&></xsl:text> + <xsl:choose> + <xsl:when test="not(following-sibling::*[descendant-or-self::email] + or following-sibling::address/otheraddr/ulink + or ancestor::address[following-sibling::*[descendant-or-self::email]] + or ancestor::address[following-sibling::address/otheraddr/ulink])"> + <!-- * This is the final instance, so do nothing. --> + </xsl:when> + <xsl:otherwise> + <!-- * Separate multiple e-mail addresses or ulinks with a comma --> + <xsl:text>, </xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="affiliation" mode="authorsect"> + <!-- * Get the string value of the contents of this Affiliation. If the --> + <!-- * affiliation only contains an Address child whose only content is --> + <!-- * an email address or ulink, then these contents will end up empty. --> + <xsl:variable name="contents"> + <xsl:apply-templates mode="authorsect"/> + </xsl:variable> + <!-- * If contents are actually empty except for an email address --> + <!-- * or ulink, then output nothing. --> + <xsl:if test="$contents != ''"> + <xsl:text>.br </xsl:text> + <xsl:for-each select="shortaffil|jobtitle|orgname|orgdiv|address"> + <!-- * only display output of nodes other than email or ulink --> + <xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/> + <xsl:choose> + <xsl:when test="position() = last()"/> <!-- do nothing --> + <xsl:otherwise> + <!-- * only add comma if the node has a child node other than --> + <!-- * an email address or ulink --> + <xsl:if test="child::node()[not(self::email) and not(self::otheraddr/ulink)]"> + <xsl:text>, </xsl:text> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> </xsl:text> + <xsl:choose> + <xsl:when test="position() = last()"/> <!-- do nothing --> + <xsl:otherwise> + <!-- * put a line break after every Affiliation instance except --> + <!-- * the last one in the set --> + <xsl:text>.br </xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:template> + + <xsl:template match="address" mode="authorsect"> + <xsl:variable name="contents" + select="normalize-space(node()[not(self::email) + and not(self::otheraddr/ulink)])"/> + <!-- * If this contents of this Address do not contain anything except --> + <!-- * an email address or ulink, then output nothing. --> + <xsl:if test="$contents != ''"> + <xsl:text> </xsl:text> + <xsl:text>.br </xsl:text> + <!--* Skip email and ulink descendants of Address (rendered elsewhere) --> + <xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/> + </xsl:if> + </xsl:template> + + <xsl:template name="attribution"> + <!-- * Determine appropriate attribution for a particular person's role. --> + <xsl:choose> + <!-- * if we have a *blurb or contrib, just use that --> + <xsl:when test="contrib|personblurb|authorblurb"> + <xsl:apply-templates select="contrib|personblurb|authorblurb" mode="authorsect"/> + <xsl:text> </xsl:text> + </xsl:when> + <!-- * If we have no *blurb or contrib, but this is an Author or --> + <!-- * Editor, then render the corresponding localized gentext --> + <xsl:when test="self::author"> + <xsl:text> </xsl:text> + <xsl:text>.sp -1n </xsl:text> + <xsl:text>.IP ""</xsl:text> + <xsl:if test="not($blurb-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$blurb-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Author'"/> + </xsl:call-template> + <xsl:text>. </xsl:text> + </xsl:when> + <xsl:when test="self::editor"> + <xsl:text> </xsl:text> + <xsl:text>.sp -1n </xsl:text> + <xsl:text>.IP ""</xsl:text> + <xsl:if test="not($blurb-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$blurb-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'Editor'"/> + </xsl:call-template> + <xsl:text>. </xsl:text> + </xsl:when> + <!-- * If we have no *blurb or contrib, but this is an Othercredit, --> + <!-- * check value of Class attribute and use corresponding gentext. --> + <xsl:when test="self::othercredit"> + <xsl:choose> + <xsl:when test="@class and @class != 'other'"> + <xsl:text> </xsl:text> + <xsl:text>.sp -1n </xsl:text> + <xsl:text>.IP ""</xsl:text> + <xsl:if test="not($blurb-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$blurb-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="@class"/> + </xsl:call-template> + <xsl:text>. </xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * We have an Othercredit, but not usable value for the Class --> + <!-- * attribute, so nothing to show, do nothing --> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <!-- * We have no *blurb or contrib or anything else we can use to --> + <!-- * display appropriate attribution for this person, so do nothing --> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="personblurb|authorblurb" mode="authorsect"> + <xsl:call-template name="mark.up.blurb.or.contrib"/> + <!-- * yeah, it's possible for a *blurb to have a "title" --> + <xsl:apply-templates select="title"/> + <xsl:apply-templates select="*[not(self::title)]"/> + </xsl:template> + + <xsl:template match="personblurb/title|authorblurb/title"> + <!-- * always render period after title --> + <xsl:variable name="contents"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + <xsl:text>.</xsl:text> + <!-- * render space after Title+period if the title is followed --> + <!-- * by something element content --> + <xsl:if test="following-sibling::*[name() != '']"> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template match="contrib" mode="authorsect"> + <xsl:call-template name="mark.up.blurb.or.contrib"/> + <xsl:variable name="contents"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + <xsl:text> </xsl:text> + </xsl:template> + + <xsl:template name="mark.up.blurb.or.contrib"> + <xsl:choose> + <!-- * If this *blurb has a sibling "name" element of some kind, then --> + <!-- * we are already outputting the name content, and we need to --> + <!-- * indent the *blurb content after that. --> + <xsl:when + test="../personname|../surname|../firstname + |../othername|../lineage|../honorific + |../affiliation|../email|../address"> + <xsl:text> </xsl:text> + <xsl:text>.sp -1n </xsl:text> + <xsl:text>.IP ""</xsl:text> + <xsl:if test="not($blurb-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$blurb-indent"/> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <!-- * otherwise, we have no "name" content, so don't indent; --> + <!-- * instead, decide if we need a .PP or just a .br --> + <xsl:choose> + <xsl:when test="not(preceding-sibling::*)"> + <!-- * if this *blurb or contrib has no preceding --> + <!-- * siblings, then we need to start a new paragraph --> + <xsl:text>.PP</xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * otherwise, this has no preceding siblings, so --> + <!-- * just put a linebreak --> + <xsl:text>.br</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + <xsl:text> </xsl:text> + </xsl:template> + + <!-- * ============================================================== --> + <!-- * Assemble the COPYRIGHT section --> + <!-- * ============================================================== --> + <!-- * The COPYRIGHT section is output only if a copyright or --> + <!-- * legalnotice is found. It contains the copyright contents --> + <!-- * followed by the legalnotice contents. --> + <xsl:template name="copyright.section"> + <xsl:param name="info"/> + <xsl:choose> + <xsl:when test="$info//copyright|$info//legalnotice"> + <xsl:text>.SH "</xsl:text> + <xsl:call-template name="string.upper"> + <xsl:with-param name="string"> + <xsl:call-template name="gentext"> + <xsl:with-param name="key">Copyright</xsl:with-param> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + <xsl:text>" </xsl:text> + <!-- * the copyright mode="titlepage.mode" template is --> + <!-- * imported from the HTML stylesheets --> + <xsl:for-each select=" + (($info[//copyright])[last()]//copyright) + | (($info[//legalnotice])[last()]//legalnotice)"> + <xsl:choose> + <xsl:when test="local-name(.) = 'copyright'"> + <xsl:variable name="contents"> + <xsl:apply-templates select="." mode="titlepage.mode"/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + <xsl:text> </xsl:text> + <xsl:text>.br </xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="titlepage.mode"/> + <xsl:text> </xsl:text> + <xsl:text>.sp </xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:when> + <xsl:otherwise/> <!-- * do nothing, no copyright or legalnotice found --> + </xsl:choose> + </xsl:template> + + <xsl:template match="legalnotice"> + <xsl:apply-templates/> + </xsl:template> + + <!-- * ============================================================== --> + + <!-- * suppress refmeta and all *info (we grab what we need from them --> + <!-- * elsewhere) --> + + <xsl:template match="refmeta"/> + + <xsl:template match="info|refentryinfo|referenceinfo|refsynopsisdivinfo + |refsectioninfo|refsect1info|refsect2info|refsect3info + |setinfo|bookinfo|articleinfo|chapterinfo|sectioninfo + |sect1info|sect2info|sect3info|sect4info|sect5info + |partinfo|prefaceinfo|appendixinfo|docinfo"/> + + <!-- ============================================================== --> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/inline.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/inline.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/inline.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,190 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + version='1.0'> + +<!-- ******************************************************************** + $Id: inline.xsl 6843 2007-06-20 12:21:13Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="replaceable|varname"> + <xsl:if test="$man.hyphenate.computer.inlines = 0"> + <xsl:call-template name="suppress.hyphenation"/> + </xsl:if> + <xsl:call-template name="italic"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="option|userinput|envar|errorcode|constant|markup"> + <xsl:if test="$man.hyphenate.computer.inlines = 0"> + <xsl:call-template name="suppress.hyphenation"/> + </xsl:if> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="classname"> + <xsl:if test="$man.hyphenate.computer.inlines = 0"> + <xsl:call-template name="suppress.hyphenation"/> + </xsl:if> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="command"> + <xsl:if test="$man.hyphenate.computer.inlines = 0"> + <xsl:call-template name="suppress.hyphenation"/> + </xsl:if> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="type[not(ancestor::cmdsynopsis) and + not(ancestor::funcsynopsis)]"> + <xsl:if test="$man.hyphenate.computer.inlines = 0"> + <xsl:call-template name="suppress.hyphenation"/> + </xsl:if> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="function[not(ancestor::cmdsynopsis) and + not(ancestor::funcsynopsis)]"> + <xsl:if test="$man.hyphenate.computer.inlines = 0"> + <xsl:call-template name="suppress.hyphenation"/> + </xsl:if> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="parameter[not(ancestor::cmdsynopsis) and + not(ancestor::funcsynopsis)]"> + <xsl:if test="$man.hyphenate.computer.inlines = 0"> + <xsl:call-template name="suppress.hyphenation"/> + </xsl:if> + <xsl:call-template name="italic"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="filename"> + <!-- * add hyphenation suppression in Filename output only if --> + <!-- * break.after.slash is also non-zero --> + <xsl:if test="$man.hyphenate.filenames = 0 and + $man.break.after.slash = 0"> + <xsl:call-template name="suppress.hyphenation"/> + </xsl:if> + <xsl:call-template name="italic"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="emphasis"> + <xsl:choose> + <xsl:when test=" + @role = 'bold' or + @role = 'strong' or + @remap = 'B'"> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="italic"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="optional"> + <xsl:value-of select="$arg.choice.opt.open.str"/> + <xsl:apply-templates/> + <xsl:value-of select="$arg.choice.opt.close.str"/> +</xsl:template> + +<xsl:template name="do-citerefentry"> + <xsl:param name="refentrytitle" select="''"/> + <xsl:param name="manvolnum" select="''"/> + <xsl:variable name="title"> + <xsl:value-of select="$refentrytitle"/> + </xsl:variable> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="exsl:node-set($title)"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <xsl:text>(</xsl:text> + <xsl:value-of select="$manvolnum"/> + <xsl:text>)</xsl:text> +</xsl:template> + +<xsl:template match="citerefentry"> + <xsl:call-template name="do-citerefentry"> + <xsl:with-param name="refentrytitle" select="refentrytitle"/> + <xsl:with-param name="manvolnum" select="manvolnum"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="trademark|productname"> + <xsl:apply-templates/> + <xsl:choose> + <!-- * Just use true Unicode chars for copyright, trademark, etc., --> + <!-- * symbols (by default, we later automatically translate them --> + <!-- * with the apply-string-subst-map template, or with the --> + <!-- * default character map, if man.charmap.enabled is true). --> + <xsl:when test="@class = 'copyright'"> + <xsl:text>©</xsl:text> + </xsl:when> + <xsl:when test="@class = 'registered'"> + <xsl:text>®</xsl:text> + </xsl:when> + <xsl:when test="@class = 'service'"> + <xsl:text>℠</xsl:text> + </xsl:when> + <xsl:when test="@class = 'trade'"> + <xsl:text>™</xsl:text> + </xsl:when> + <!-- * for Trademark element, render a trademark symbol by default --> + <!-- * even if no "class" value is specified --> + <xsl:when test="self::trademark" > + <xsl:text>™</xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * otherwise we have a Productname with no value for the --> + <!-- * "class" attribute, so don't render any symbol by default --> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- * span seems to sneak through into output sometimes, possibly due --> +<!-- * to failed Olink processing; so we need to catch it --> +<xsl:template match="span"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="inlinemediaobject"> + <xsl:apply-templates/> +</xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/lists.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/lists.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/lists.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,368 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version='1.0'> + +<!-- ******************************************************************** + $Id: lists.xsl 6843 2007-06-20 12:21:13Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<xsl:variable name="list-indent"> + <xsl:choose> + <xsl:when test="not($man.indent.lists = 0)"> + <xsl:value-of select="$man.indent.width"/> + </xsl:when> + <xsl:when test="not($man.indent.refsect = 0)"> + <!-- * "zq" is the name of a register we set for --> + <!-- * preserving the original default indent value --> + <!-- * when $man.indent.refsect is non-zero; --> + <!-- * "u" is a roff unit specifier --> + <xsl:text>\n(zqu</xsl:text> + </xsl:when> + <xsl:otherwise/> <!-- * otherwise, just leave it empty --> + </xsl:choose> +</xsl:variable> + +<!-- ================================================================== --> + +<xsl:template match="para[ancestor::listitem or ancestor::step or ancestor::glossdef]| + simpara[ancestor::listitem or ancestor::step or ancestor::glossdef]| + remark[ancestor::listitem or ancestor::step or ancestor::glossdef]"> + <xsl:call-template name="mixed-block"/> + <xsl:text> </xsl:text> + <xsl:if test="following-sibling::*[1][ + self::para or + self::simpara or + self::remark + ]"> + <!-- * Make sure multiple paragraphs within a list item don't --> + <!-- * merge together. --> + <xsl:text>.sp </xsl:text> + </xsl:if> +</xsl:template> + +<xsl:template match="variablelist|glosslist"> + <xsl:if test="title"> + <xsl:text>.PP </xsl:text> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="title"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="varlistentry|glossentry"> + <xsl:text>.PP </xsl:text> + <xsl:for-each select="term|glossterm"> + <xsl:variable name="content"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($content)"/> + <xsl:choose> + <xsl:when test="position() = last()"/> <!-- do nothing --> + <xsl:otherwise> + <!-- * if we have multiple terms in the same varlistentry, generate --> + <!-- * a separator (", " by default) and/or an additional line --> + <!-- * break after each one except the last --> + <!-- * --> + <!-- * note that it is not valid to have multiple glossterms --> + <!-- * within a glossentry, so this logic never gets exercised --> + <!-- * for glossterms (every glossterm is always the last in --> + <!-- * its parent glossentry) --> + <xsl:value-of select="$variablelist.term.separator"/> + <xsl:if test="not($variablelist.term.break.after = '0')"> + <xsl:text> </xsl:text> + <xsl:text>.br </xsl:text> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> </xsl:text> + <xsl:text>.RS</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:apply-templates/> + <xsl:text>.RE </xsl:text> +</xsl:template> + +<xsl:template match="varlistentry/term"/> +<xsl:template match="glossentry/glossterm"/> + +<xsl:template match="variablelist[ancestor::listitem or ancestor::step or ancestor::glossdef]| + glosslist[ancestor::listitem or ancestor::step or ancestor::glossdef]"> + <xsl:apply-templates/> + <xsl:if test="following-sibling::node() or + parent::para[following-sibling::node()] or + parent::simpara[following-sibling::node()] or + parent::remark[following-sibling::node()]"> + <xsl:text>.sp</xsl:text> + <xsl:text> </xsl:text> + </xsl:if> +</xsl:template> + +<xsl:template match="varlistentry/listitem|glossentry/glossdef"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="itemizedlist/listitem"> + <!-- * We output a real bullet here (rather than, "\(bu", --> + <!-- * the roff bullet) because, when we do character-map --> + <!-- * processing before final output, the character-map will --> + <!-- * handle conversion of the • to "\(bu" for us --> + <xsl:text> </xsl:text> + <xsl:text>.sp</xsl:text> + <xsl:text> </xsl:text> + <xsl:text>.RS</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:text>\h'-</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text>0</xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text>'</xsl:text> + <xsl:text>•</xsl:text> + <xsl:text>\h'+</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text>0</xsl:text> + <xsl:value-of select="$list-indent - 1"/> + <xsl:text>'</xsl:text> + </xsl:if> + <xsl:apply-templates/> + <xsl:text>.RE </xsl:text> +</xsl:template> + +<xsl:template match="orderedlist/listitem|procedure/step"> + <xsl:text> </xsl:text> + <xsl:text>.sp</xsl:text> + <xsl:text> </xsl:text> + <xsl:text>.RS</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:text>\h'-</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text>0</xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text>'</xsl:text> + <xsl:if test="count(preceding-sibling::listitem) < 9"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:number format="1."/> + <xsl:text>\h'+</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text>0</xsl:text> + <xsl:value-of select="$list-indent - 2"/> + <xsl:text>'</xsl:text> + </xsl:if> + <xsl:apply-templates/> + <xsl:text>.RE </xsl:text> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="itemizedlist|orderedlist|procedure"> + <xsl:if test="title"> + <xsl:text>.PP </xsl:text> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="title"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <xsl:text> </xsl:text> + </xsl:if> + <!-- * DocBook allows just about any block content to appear in --> + <!-- * lists before the actual list items, so we need to get that --> + <!-- * content (if any) before getting the list items --> + <xsl:apply-templates + select="*[not(self::listitem) and not(self::title)]"/> + <xsl:apply-templates select="listitem"/> + <!-- * If this list is a child of para and has content following --> + <!-- * it, within the same para, then add a blank line and move --> + <!-- * the left margin back to where it was --> + <xsl:if test="parent::para and following-sibling::node()"> + <xsl:text>.sp </xsl:text> + <xsl:text>.RE </xsl:text> + </xsl:if> +</xsl:template> + +<xsl:template match="itemizedlist[ancestor::listitem or ancestor::step or ancestor::glossdef]| + orderedlist[ancestor::listitem or ancestor::step or ancestor::glossdef]| + procedure[ancestor::listitem or ancestor::step or ancestor::glossdef]"> + <xsl:if test="title"> + <xsl:text>.PP </xsl:text> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="title"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:apply-templates/> + <xsl:if test="following-sibling::node() or + parent::para[following-sibling::node()] or + parent::simpara[following-sibling::node()] or + parent::remark[following-sibling::node()]"> + <xsl:text>.IP ""</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + </xsl:if> +</xsl:template> + +<!-- ================================================================== --> + +<!-- * for simplelist type="inline", render it as a comma-separated list --> +<xsl:template match="simplelist[@type='inline']"> + + <!-- * if dbchoice PI exists, use that to determine the choice separator --> + <!-- * (that is, equivalent of "and" or "or" in current locale), or literal --> + <!-- * value of "choice" otherwise --> + <xsl:variable name="localized-choice-separator"> + <xsl:choose> + <xsl:when test="processing-instruction('dbchoice')"> + <xsl:call-template name="select.choice.separator"/> + </xsl:when> + <xsl:otherwise> + <!-- * empty --> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:for-each select="member"> + <xsl:apply-templates/> + <xsl:choose> + <xsl:when test="position() = last()"/> <!-- do nothing --> + <xsl:otherwise> + <xsl:text>, </xsl:text> + <xsl:if test="position() = last() - 1"> + <xsl:if test="$localized-choice-separator != ''"> + <xsl:value-of select="$localized-choice-separator"/> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> </xsl:text> +</xsl:template> + +<!-- * if simplelist type is not inline, render it as a one-column vertical --> +<!-- * list (ignoring the values of the type and columns attributes) --> +<xsl:template match="simplelist"> + <xsl:for-each select="member"> + <xsl:text>.IP ""</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + <xsl:apply-templates/> + <xsl:text> </xsl:text> + </xsl:for-each> +</xsl:template> + +<!-- ================================================================== --> + +<!-- * We output Segmentedlist as a table, using tbl(1) markup. There --> +<!-- * is no option for outputting it in manpages in "list" form. --> +<xsl:template match="segmentedlist"> + <xsl:if test="title"> + <xsl:text>.PP </xsl:text> + <xsl:call-template name="bold"> + <xsl:with-param name="node" select="title"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:text>.\" line length increase to cope w/ tbl weirdness </xsl:text> + <xsl:text>.ll +(\n(LLu * 62u / 100u) </xsl:text> + <!-- * .TS = "Table Start" --> + <xsl:text>.TS </xsl:text> + <!-- * first output the table "format" spec, which tells tbl(1) how --> + <!-- * how to format each row and column. --> + <xsl:for-each select=".//segtitle"> + <!-- * l = "left", which hard-codes left-alignment for tabular --> + <!-- * output of all segmentedlist content --> + <xsl:text>l</xsl:text> + </xsl:for-each> + <!-- * last line of table format section must end with a dot --> + <xsl:text>. </xsl:text> + <!-- * optionally suppress output of segtitle --> + <xsl:choose> + <xsl:when test="$man.segtitle.suppress != 0"> + <!-- * non-zero = "suppress", so do nothing --> + </xsl:when> + <xsl:otherwise> + <!-- * "0" = "do not suppress", so output the segtitle(s) --> + <xsl:apply-templates select=".//segtitle" mode="table-title"/> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:apply-templates/> + <!-- * .TE = "Table End" --> + <xsl:text>.TE </xsl:text> + <xsl:text>.\" line length decrease back to previous value </xsl:text> + <xsl:text>.ll -(\n(LLu * 62u / 100u) </xsl:text> + <!-- * put a blank line of space below the table --> + <xsl:text>.sp </xsl:text> +</xsl:template> + +<xsl:template match="segmentedlist/segtitle" mode="table-title"> + <xsl:call-template name="italic"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> + <xsl:choose> + <xsl:when test="position() = last()"/> <!-- do nothing --> + <xsl:otherwise> + <!-- * tbl(1) treats tab characters as delimiters between --> + <!-- * cells; so we need to output a tab after each except --> + <!-- * segtitle except the last one --> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="segmentedlist/seglistitem"> + <xsl:apply-templates/> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="segmentedlist/seglistitem/seg"> + <!-- * the ???T{" and ???T}??? stuff are delimiters to tell tbl(1) that --> + <!-- * the delimited contents are "text blocks" that groff(1) --> + <!-- * needs to process --> + <xsl:text>T{ </xsl:text> + <xsl:variable name="contents"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($contents)"/> + <xsl:text> T}</xsl:text> + <xsl:choose> + <xsl:when test="position() = last()"/> <!-- do nothing --> + <xsl:otherwise> + <!-- * tbl(1) treats tab characters as delimiters between --> + <!-- * cells; so we need to output a tab after each except --> + <!-- * segtitle except the last one --> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/other.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/other.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/other.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,674 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + xmlns:ng="http://docbook.org/docbook-ng" + xmlns:db="http://docbook.org/ns/docbook" + exclude-result-prefixes="exsl" + version='1.0'> + +<!-- ******************************************************************** + $Id: other.xsl 6863 2007-06-23 09:08:06Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- * This file contains named templates related to things other than --> +<!-- * just assembling the actual text of the main text flow of each man --> +<!-- * page. This "other" stuff currently amounts to these steps: --> +<!-- * --> +<!-- * - get contents of the "map" used to convert special characters --> +<!-- * - output boilerplate messages --> +<!-- * - escape backslash, dot, dash, and apostrophe characters --> +<!-- * - convert non-breaking spaces --> +<!-- * - add a comment to top part of roff source of each page --> +<!-- * - make a .TH title line (for controlling page header/footer) --> +<!-- * - set hyphenation, alignment, indent & line-breaking defaults --> +<!-- * - "prepare" the complete man page contents for final output --> +<!-- * - write the actual man file to the filesystem --> +<!-- * - write any "stub" pages to the filesystem --> +<!-- * --> +<!-- * The templates in this file are actually called only once per --> +<!-- * each Refentry; they are just in a separate file for the purpose --> +<!-- * of keeping things modular. --> + +<!-- ==================================================================== --> + +<xsl:preserve-space elements="*"/> + +<xsl:strip-space elements=" +abstract affiliation anchor answer appendix area areaset areaspec +artheader article audiodata audioobject author authorblurb authorgroup +beginpage bibliodiv biblioentry bibliography biblioset blockquote book +bookbiblio bookinfo callout calloutlist caption caution chapter +citerefentry cmdsynopsis co collab colophon colspec confgroup +copyright dedication docinfo editor entrytbl epigraph equation +example figure footnote footnoteref formalpara funcprototype +funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco +group highlights imagedata imageobject imageobjectco important index +indexdiv indexentry indexterm informalequation informalexample +informalfigure informaltable inlineequation inlinemediaobject +itemizedlist itermset keycombo keywordset legalnotice listitem lot +mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo +msgmain msgrel msgset msgsub msgtext note objectinfo +orderedlist othercredit part partintro preface printhistory procedure +programlistingco publisher qandadiv qandaentry qandaset question +refentry reference refmeta refnamediv refsection refsect1 refsect1info refsect2 +refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo +revhistory revision row sbr screenco screenshot sect1 sect1info sect2 +sect2info sect3 sect3info sect4 sect4info sect5 sect5info section +sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo +shortcut sidebar simplelist simplesect spanspec step subject +subjectset substeps synopfragment table tbody textobject tfoot tgroup +thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4 +toclevel5 tocpart varargs variablelist varlistentry videodata +videoobject void warning subjectset + +classsynopsis +constructorsynopsis +destructorsynopsis +fieldsynopsis +methodparam +methodsynopsis +ooclass +ooexception +oointerface +simplemsgentry +manvolnum + +db:abstract db:affiliation db:anchor db:answer db:appendix db:area db:areaset db:areaspec +db:artheader db:article db:audiodata db:audioobject db:author db:authorblurb db:authorgroup +db:beginpage db:bibliodiv db:biblioentry db:bibliography db:biblioset db:blockquote db:book +db:bookbiblio db:bookinfo db:callout db:calloutlist db:caption db:caution db:chapter +db:citerefentry db:cmdsynopsis db:co db:collab db:colophon db:colspec db:confgroup +db:copyright db:dedication db:docinfo db:editor db:entrytbl db:epigraph db:equation +db:example db:figure db:footnote db:footnoteref db:formalpara db:funcprototype +db:funcsynopsis db:glossary db:glossdef db:glossdiv db:glossentry db:glosslist db:graphicco +db:group db:highlights db:imagedata db:imageobject db:imageobjectco db:important db:index +db:indexdiv db:indexentry db:indexterm db:informalequation db:informalexample +db:informalfigure db:informaltable db:inlineequation db:inlinemediaobject +db:itemizedlist db:itermset db:keycombo db:keywordset db:legalnotice db:listitem db:lot +db:mediaobject db:mediaobjectco db:menuchoice db:msg db:msgentry db:msgexplan db:msginfo +db:msgmain db:msgrel db:msgset db:msgsub db:msgtext db:note db:objectinfo +db:orderedlist db:othercredit db:part db:partintro db:preface db:printhistory db:procedure +db:programlistingco db:publisher db:qandadiv db:qandaentry db:qandaset db:question +db:refentry db:reference db:refmeta db:refnamediv db:refsection db:refsect1 db:refsect1info +db:refsect2 +db:refsect2info db:refsect3 db:refsect3info db:refsynopsisdiv db:refsynopsisdivinfo +db:revhistory db:revision db:row db:sbr db:screenco db:screenshot db:sect1 db:sect1info db:sect2 +db:sect2info db:sect3 db:sect3info db:sect4 db:sect4info db:sect5 db:sect5info db:section +db:sectioninfo db:seglistitem db:segmentedlist db:seriesinfo db:set db:setindex db:setinfo +db:shortcut db:sidebar db:simplelist db:simplesect db:spanspec db:step db:subject +db:subjectset db:substeps db:synopfragment db:table db:tbody db:textobject db:tfoot db:tgroup +db:thead db:tip db:toc db:tocchap db:toclevel1 db:toclevel2 db:toclevel3 db:toclevel4 +db:toclevel5 db:tocpart db:varargs db:variablelist db:varlistentry db:videodata +db:videoobject db:void db:warning db:subjectset + +db:classsynopsis +db:constructorsynopsis +db:destructorsynopsis +db:fieldsynopsis +db:methodparam +db:methodsynopsis +db:ooclass +db:ooexception +db:oointerface +db:simplemsgentry +db:manvolnum +"/> + +<!-- ==================================================================== --> +<!-- * Get character map contents --> +<!-- ==================================================================== --> + + <xsl:variable name="man.charmap.contents"> + <xsl:if test="$man.charmap.enabled != 0"> + <xsl:call-template name="read-character-map"> + <xsl:with-param name="use.subset" select="$man.charmap.use.subset"/> + <xsl:with-param name="subset.profile" select="$man.charmap.subset.profile"/> + <xsl:with-param name="uri"> + <xsl:choose> + <xsl:when test="$man.charmap.uri != ''"> + <xsl:value-of select="$man.charmap.uri"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="'../manpages/charmap.groff.xsl'"/> + </xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </xsl:variable> + +<!-- ==================================================================== --> + +<xsl:template name="root.messages"> + <xsl:param name="refname"/> + <!-- redefine this any way you'd like to output messages --> + <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE --> + <!-- Example: + <xsl:if test="//foo"> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Warn</xsl:with-param> + <xsl:with-param name="source" select="$refname"/> + <xsl:with-param name="context-desc"> + <xsl:text>limitation</xsl:text> + </xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>Output for foo element is not yet supported.</xsl:text> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + --> +</xsl:template> + +<!-- ==================================================================== --> +<!-- * Escape roff special chars --> +<!-- ==================================================================== --> + +<!-- ******************************************************************** --> +<!-- * --> +<!-- * The backslash, dot, dash, and apostrophe (\, ., -, ') characters --> +<!-- * have special meaning for roff, so before we do any other --> +<!-- * processing, we must escape those characters where they appear in --> +<!-- * the source content. --> +<!-- * --> +<!-- * Here we also deal with replacing U+00a0 (non-breaking space) with --> +<!-- * its roff equivalent --> +<!-- * --> +<!-- ******************************************************************** --> + +<xsl:template match="//refentry//text()"> + <xsl:call-template name="escape.roff.specials"> + <xsl:with-param name="content"> + <xsl:value-of select="."/> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template name="escape.roff.specials"> + <xsl:param name="content"/> + <xsl:call-template name="convert.nobreak-space"> + <xsl:with-param name="content"> + <xsl:call-template name="escape.apostrophe"> + <xsl:with-param name="content"> + <xsl:call-template name="escape.dash"> + <xsl:with-param name="content"> + <xsl:call-template name="escape.dot"> + <xsl:with-param name="content"> + <xsl:call-template name="escape.backslash"> + <xsl:with-param name="content" select="$content"/> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template name="escape.backslash"> + <xsl:param name="content"/> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$content"/> + <xsl:with-param name="target">\</xsl:with-param> + <!-- * we use "\e" instead of "\\" because the groff docs say --> + <!-- * that's the correct thing to do; also because testing --> + <!-- * shows that "\\" doesn't always work as expected; for --> + <!-- * example, "\\" within a table seems to mess things up --> + <xsl:with-param name="replacement">\e</xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template name="escape.dot"> + <xsl:param name="content"/> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$content"/> + <xsl:with-param name="target">.</xsl:with-param> + <xsl:with-param name="replacement">\.</xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template name="escape.dash"> + <xsl:param name="content"/> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$content"/> + <xsl:with-param name="target">-</xsl:with-param> + <xsl:with-param name="replacement">\-</xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template name="escape.apostrophe"> + <xsl:param name="content"/> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$content"/> + <xsl:with-param name="target">'</xsl:with-param> + <xsl:with-param name="replacement">\'</xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template name="convert.nobreak-space"> + <xsl:param name="content"/> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$content"/> + <xsl:with-param name="target"> </xsl:with-param> + <!-- * A no-break space can be written two ways in roff; the --> + <!-- * difference, according to the "Page Motions" node in the --> + <!-- * groff info page, is: --> + <!-- * --> + <!-- * "\ " = --> + <!-- * An unbreakable and unpaddable (i.e. not expanded --> + <!-- * during filling) space. --> + <!-- * --> + <!-- * "\~" = --> + <!-- * An unbreakable space that stretches like a normal --> + <!-- * inter-word space when a line is adjusted." --> + <!-- * --> + <!-- * Unfortunately, roff seems to do some weird things with --> + <!-- * long lines that only have words separated by "\~" --> + <!-- * spaces, so it's safer just to stick with the "\ " space --> + <xsl:with-param name="replacement">\ </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- * top.comment generates a comment containing metadata for the man --> +<!-- * page; for example, Author, Generator, and Date information --> + + <xsl:template name="top.comment"> + <xsl:param name="info"/> + <xsl:param name="date"/> + <xsl:param name="title"/> + <xsl:param name="manual"/> + <xsl:param name="source"/> + <xsl:text>.\" Title: </xsl:text> + <xsl:call-template name="replace.dots.and.dashes"> + <xsl:with-param name="content" select="$title"/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:text>.\" Author: </xsl:text> + <xsl:call-template name="replace.dots.and.dashes"> + <xsl:with-param name="content"> + <xsl:call-template name="make.roff.metadata.author"> + <xsl:with-param name="info" select="$info"/> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:text>.\" Generator: DocBook </xsl:text> + <xsl:value-of select="$DistroTitle"/> + <xsl:text> v</xsl:text> + <xsl:call-template name="replace.dots.and.dashes"> + <xsl:with-param name="content" select="$VERSION"/> + </xsl:call-template> + <xsl:text> <http://docbook.sf.net/></xsl:text> + <xsl:text> </xsl:text> + <xsl:text>.\" Date: </xsl:text> + <xsl:call-template name="replace.dots.and.dashes"> + <xsl:with-param name="content" select="$date"/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:text>.\" Manual: </xsl:text> + <xsl:call-template name="replace.dots.and.dashes"> + <xsl:with-param name="content" select="$manual"/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:text>.\" Source: </xsl:text> + <xsl:call-template name="replace.dots.and.dashes"> + <xsl:with-param name="content" select="$source"/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:text>.\"</xsl:text> + <xsl:text> </xsl:text> + </xsl:template> + +<!-- ==================================================================== --> + + <xsl:template name="TH.title.line"> + + <!-- * The exact way that .TH contents are displayed is system- --> + <!-- * dependent; it varies somewhat between OSes and roff --> + <!-- * versions. Below is a description of how Linux systems with --> + <!-- * a modern groff seem to render .TH contents. --> + <!-- * --> + <!-- * title(section) extra3 title(section) <- page header --> + <!-- * extra2 extra1 title(section) <- page footer--> + <!-- * --> + <!-- * Or, using the names with which the man(7) man page refers --> + <!-- * to the various fields: --> + <!-- * --> + <!-- * title(section) manual title(section) <- page header --> + <!-- * source date title(section) <- page footer--> + <!-- * --> + <!-- * Note that while extra1, extra2, and extra3 are all (nominally) --> + <!-- * optional, in practice almost all pages include an "extra1" --> + <!-- * field, which is, universally, a date (in some form), and it is --> + <!-- * always rendered in the same place (the middle footer position) --> + <!-- * --> + <!-- * Here are a couple of examples of real-world man pages that --> + <!-- * have somewhat useful page headers/footers: --> + <!-- * --> + <!-- * gtk-options(7) GTK+ User's Manual gtk-options(7) --> + <!-- * GTK+ 1.2 2003-10-20 gtk-options(7) --> + <!-- * --> + <!-- * svgalib(7) Svgalib User Manual svgalib(7) --> + <!-- * Svgalib 1.4.1 16 December 1999 svgalib(7) --> + <!-- * --> + <xsl:param name="title"/> + <xsl:param name="section"/> + <xsl:param name="extra1"/> + <xsl:param name="extra2"/> + <xsl:param name="extra3"/> + + <xsl:call-template name="mark.subheading"/> + <!-- * Note that we generate quotes around _every_ field in the --> + <!-- * .TH title line, including the "title" and "section" --> + <!-- * fields. That is because we use the contents of those "as --> + <!-- * is", unchanged from the DocBook source; and DTD-based --> + <!-- * validation does not provide a way to constrain them to be --> + <!-- * "space free" --> + <xsl:text>.TH "</xsl:text> + <xsl:call-template name="string.upper"> + <xsl:with-param name="string"> + <xsl:choose> + <xsl:when test="$man.th.title.max.length != ''"> + <xsl:value-of + select="normalize-space(substring($title, 1, $man.th.title.max.length))"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="normalize-space($title)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + <xsl:text>" "</xsl:text> + <xsl:value-of select="normalize-space($section)"/> + <xsl:text>" "</xsl:text> + <xsl:if test="$man.th.extra1.suppress = 0"> + <!-- * there is no max.length for the extra1 field; the reason --> + <!-- * is, it is almost always a date, and it is not possible --> + <!-- * to truncate dates without changing their meaning --> + <xsl:value-of select="normalize-space($extra1)"/> + </xsl:if> + <xsl:text>" "</xsl:text> + <xsl:if test="$man.th.extra2.suppress = 0"> + <xsl:choose> + <!-- * if max.length is non-empty, use value to truncate field --> + <xsl:when test="$man.th.extra2.max.length != ''"> + <xsl:value-of + select="normalize-space(substring($extra2, 1, $man.th.extra2.max.length))"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="normalize-space($extra2)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + <xsl:text>" "</xsl:text> + <xsl:if test="$man.th.extra3.suppress = 0"> + <xsl:choose> + <!-- * if max.length is non-empty, use value to truncate field --> + <xsl:when test="$man.th.extra3.max.length != ''"> + <xsl:value-of + select="normalize-space(substring($extra3, 1, $man.th.extra3.max.length))"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="normalize-space($extra3)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + <xsl:text>" </xsl:text> + <xsl:call-template name="mark.subheading"/> + </xsl:template> + + <!-- ============================================================== --> + + <xsl:template name="set.default.formatting"> + <!-- * Set default hyphenation, justification, indentation and --> + <!-- * line-breaking --> + <!-- * --> + <!-- * If the value of man.hypenate is zero (the default), then --> + <!-- * disable hyphenation (".nh" = "no hyphenation") --> + <xsl:if test="$man.hyphenate = 0"> + <xsl:text>.\" disable hyphenation </xsl:text> + <xsl:text>.nh </xsl:text> + </xsl:if> + <!-- * If the value of man.justify is zero (the default), then --> + <!-- * disable justification (".ad l" means "adjust to left only") --> + <xsl:if test="$man.justify = 0"> + <xsl:text>.\" disable justification</xsl:text> + <xsl:text> (adjust text to left margin only) </xsl:text> + <xsl:text>.ad l </xsl:text> + </xsl:if> + <xsl:if test="not($man.indent.refsect = 0)"> + <xsl:text>.\" store initial "default indentation value" </xsl:text> + <xsl:text>.nr zq \n(IN </xsl:text> + <xsl:text>.\" adjust default indentation </xsl:text> + <xsl:text>.nr IN </xsl:text> + <xsl:value-of select="$man.indent.width"/> + <xsl:text> </xsl:text> + <xsl:text>.\" adjust indentation of SS headings </xsl:text> + <xsl:text>.nr SN \n(IN </xsl:text> + </xsl:if> + <!-- * Unless the value of man.break.after.slash is zero (the --> + <!-- * default), tell groff that it is OK to break a line --> + <!-- * after a slash when needed. --> + <xsl:if test="$man.break.after.slash != 0"> + <xsl:text>.\" enable line breaks after slashes </xsl:text> + <xsl:text>.cflags 4 / </xsl:text> + </xsl:if> + </xsl:template> + + <!-- ================================================================== --> + + <!-- * The prepare.manpage.contents template is called after all --> + <!-- * other processing has been done, before serializing the --> + <!-- * result of all the other processing. It basically works on --> + <!-- * the result as one big string. --> + <xsl:template name="prepare.manpage.contents"> + <xsl:param name="content" select="''"/> + + <!-- * If user has provided a "local" string-substitution map to --> + <!-- * be applied /before/ the standard string-substitution map, --> + <!-- * apply it. --> + <xsl:variable name="pre.adjusted.content"> + <xsl:choose> + <xsl:when test="$man.string.subst.map.local.pre"> + <!-- * normalized value of man.string.subst.map.local.pre --> + <!-- * is non-empty, so get contents of map and apply them --> + <xsl:call-template name="apply-string-subst-map"> + <xsl:with-param name="content" select="$content"/> + <xsl:with-param name="map.contents" + select="exsl:node-set($man.string.subst.map.local.pre)/*"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <!-- * value of man.string.subst.map.local.pre is empty, --> + <!-- * so just copy original contents --> + <xsl:value-of select="$content"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- * Apply standard string-substitution map. The main purpose --> + <!-- * of this map is to escape certain characters that have --> + <!-- * special meaning in roff, and to replace certain characters --> + <!-- * used within the stylesheet internally to represent roff --> + <!-- * markup characters. --> + <xsl:variable name="adjusted.content"> + <xsl:call-template name="apply-string-subst-map"> + <xsl:with-param name="content" select="$pre.adjusted.content"/> + <xsl:with-param name="map.contents" + select="exsl:node-set($man.string.subst.map)/*"/> + </xsl:call-template> + </xsl:variable> + + <!-- * If user has provided a "local" string-substitution map to --> + <!-- * be applied /after/ the standard string-substitution map, --> + <!-- * apply it. --> + <xsl:variable name="post.adjusted.content"> + <xsl:choose> + <xsl:when test="$man.string.subst.map.local.post"> + <!-- * normalized value of man.string.subst.map.local.post --> + <!-- * is non-empty, so get contents of map and apply them --> + <xsl:call-template name="apply-string-subst-map"> + <xsl:with-param name="content" select="$adjusted.content"/> + <xsl:with-param name="map.contents" + select="exsl:node-set($man.string.subst.map.local.post)/*"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <!-- * value of man.string.subst.map.local.post is empty, --> + <!-- * so just copy original contents --> + <xsl:value-of select="$adjusted.content"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- * Optionally, apply a character map to replace Unicode --> + <!-- * symbols and special characters. --> + <xsl:choose> + <xsl:when test="$man.charmap.enabled != 0"> + <xsl:call-template name="apply-character-map"> + <xsl:with-param name="content" select="$post.adjusted.content"/> + <xsl:with-param name="map.contents" + select="exsl:node-set($man.charmap.contents)/*"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <!-- * if we reach here, value of $man.charmap.enabled is zero, --> + <!-- * so we just pass the adjusted contents through "as is" --> + <xsl:value-of select="$adjusted.content"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <!-- ================================================================== --> + + <xsl:template name="write.man.file"> + <xsl:param name="name"/> + <xsl:param name="section"/> + <xsl:param name="lang"/> + <xsl:param name="content"/> + <xsl:param name="filename"> + <xsl:call-template name="make.adjusted.man.filename"> + <xsl:with-param name="name" select="$name"/> + <xsl:with-param name="section" select="$section"/> + <xsl:with-param name="lang" select="$lang"/> + </xsl:call-template> + </xsl:param> + <xsl:call-template name="write.text.chunk"> + <xsl:with-param name="filename" select="$filename"/> + <xsl:with-param name="suppress-context-node-name" select="1"/> + <xsl:with-param name="quiet" select="$man.output.quietly"/> + <xsl:with-param + name="message-prolog" + >Note: </xsl:with-param> + <xsl:with-param name="encoding" select="$man.output.encoding"/> + <xsl:with-param name="content" select="$content"/> + </xsl:call-template> + </xsl:template> + + <!-- ============================================================== --> + + <!-- * A "stub" is sort of alias for another file, intended to be read --> + <!-- * and expanded by soelim(1); it's simply a file whose complete --> + <!-- * contents are just a single line of the following form: --> + <!-- * --> + <!-- * .so manX/realname.X --> + <!-- * --> + <!-- * "realname" is a name of another man-page file. That .so line is --> + <!-- * basically a roff "include" statement. When the man command finds --> + <!-- * it, it calls soelim(1) and includes and displays the contents of --> + <!-- * the manX/realqname.X file. --> + <!-- * --> + <!-- * If a refentry has multiple refnames, we generate a "stub" page for --> + <!-- * each refname found, except for the first one. --> + <xsl:template name="write.stubs"> + <xsl:param name="first.refname"/> + <xsl:param name="section"/> + <xsl:param name="lang"/> + <xsl:for-each select="refnamediv/refname"> + <xsl:if test=". != $first.refname"> + <xsl:call-template name="write.text.chunk"> + <xsl:with-param name="filename"> + <xsl:call-template name="make.adjusted.man.filename"> + <xsl:with-param name="name"> + <xsl:apply-templates/> + </xsl:with-param> + <xsl:with-param name="section" select="$section"/> + <xsl:with-param name="lang" select="$lang"/> + </xsl:call-template> + </xsl:with-param> + <xsl:with-param name="quiet" select="$man.output.quietly"/> + <xsl:with-param name="suppress-context-node-name" select="1"/> + <xsl:with-param name="message-prolog">Note: </xsl:with-param> + <xsl:with-param name="message-epilog"> (soelim stub)</xsl:with-param> + <xsl:with-param name="content"> + <xsl:value-of select="concat('.so man', $section, '/')"/> + <xsl:call-template name="make.adjusted.man.filename"> + <xsl:with-param name="name" select="$first.refname"/> + <xsl:with-param name="section" select="$section"/> + </xsl:call-template> + <xsl:text> </xsl:text> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </xsl:for-each> + </xsl:template> + + <!-- ============================================================== --> + + <!-- * A manifest file is useful for doing "make clean" during --> + <!-- * builds and for other purposes. When we make the manifest --> + <!-- * file, we need to include in it a filename for each man-page --> + <!-- * generated, including any "stub" pages. --> + <xsl:template name="generate.manifest"> + <xsl:variable name="filelist"> + <xsl:for-each select="//refentry"> + <!-- * all refname instances in a Refentry inherit their section --> + <!-- * numbers from the parent Refentry; so we only need to get --> + <!-- * the section once per Refentry, not once per Refname --> + <xsl:variable name="section"> + <xsl:call-template name="get.refentry.section"> + <xsl:with-param name="quiet" select="1"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="lang"> + <xsl:call-template name="l10n.language"/> + </xsl:variable> + <xsl:for-each select="refnamediv/refname"> + <xsl:call-template name="make.adjusted.man.filename"> + <xsl:with-param name="name" select="."/> + <xsl:with-param name="section" select="$section"/> + <xsl:with-param name="lang" select="$lang"/> + </xsl:call-template> + <xsl:text> </xsl:text> + </xsl:for-each> + </xsl:for-each> + </xsl:variable> + + <!-- * we write the manifest file once per document, not once per --> + <!-- * Refentry --> + <xsl:call-template name="write.text.chunk"> + <xsl:with-param name="filename"> + <xsl:value-of select="$man.output.manifest.filename"/> + </xsl:with-param> + <xsl:with-param name="quiet" select="1"/> + <xsl:with-param name="message-prolog">Note: </xsl:with-param> + <xsl:with-param name="message-epilog"> (manifest file)</xsl:with-param> + <xsl:with-param name="content"> + <xsl:value-of select="$filelist"/> + </xsl:with-param> + </xsl:call-template> + <xsl:if test="$man.output.quietly = 0"> + <xsl:message><xsl:text> </xsl:text></xsl:message> + </xsl:if> + </xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/param.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/param.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/param.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,167 @@ +<?xml version="1.0" encoding="ASCII"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<!-- This file is generated from param.xweb --> + +<!-- ******************************************************************** + $Id: param.xweb 7112 2007-07-22 12:19:19Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<xsl:param name="man.authors.section.enabled">1</xsl:param> +<xsl:param name="man.break.after.slash">0</xsl:param> +<xsl:param name="man.charmap.enabled" select="1"/> +<xsl:param name="man.charmap.subset.profile"> +@*[local-name() = 'block'] = 'Miscellaneous Technical' or +(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and + @*[local-name() = 'class'] = 'symbols' +) or +(@*[local-name() = 'block'] = 'General Punctuation' and + (@*[local-name() = 'class'] = 'spaces' or + @*[local-name() = 'class'] = 'dashes' or + @*[local-name() = 'class'] = 'quotes' or + @*[local-name() = 'class'] = 'bullets' + ) +) or +@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or +@*[local-name() = 'name'] = 'WORD JOINER' or +@*[local-name() = 'name'] = 'SERVICE MARK' or +@*[local-name() = 'name'] = 'TRADE MARK SIGN' or +@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE' +</xsl:param> +<xsl:param name="man.charmap.uri"/> +<xsl:param name="man.charmap.use.subset" select="1"/> +<xsl:param name="man.copyright.section.enabled">1</xsl:param> +<xsl:param name="man.endnotes.are.numbered">1</xsl:param> +<xsl:param name="man.endnotes.list.enabled">1</xsl:param> +<xsl:param name="man.endnotes.list.heading"/> + <xsl:param name="man.font.funcprototype">BI</xsl:param> + <xsl:param name="man.font.funcsynopsisinfo">B</xsl:param> + <xsl:param name="man.font.table.headings">B</xsl:param> + <xsl:param name="man.font.table.title">B</xsl:param> +<xsl:param name="man.hyphenate.computer.inlines">0</xsl:param> +<xsl:param name="man.hyphenate.filenames">0</xsl:param> +<xsl:param name="man.hyphenate">0</xsl:param> +<xsl:param name="man.hyphenate.urls">0</xsl:param> +<xsl:param name="man.indent.blurbs" select="1"/> +<xsl:param name="man.indent.lists" select="1"/> +<xsl:param name="man.indent.refsect" select="0"/> +<xsl:param name="man.indent.verbatims" select="1"/> +<xsl:param name="man.indent.width">4</xsl:param> +<xsl:param name="man.justify">0</xsl:param> +<xsl:param name="man.links.are.underlined">1</xsl:param> +<xsl:param name="man.output.base.dir">man/</xsl:param> +<xsl:param name="man.output.encoding">UTF-8</xsl:param> +<xsl:param name="man.output.in.separate.dir" select="0"/> +<xsl:param name="man.output.lang.in.name.enabled" select="0"/> +<xsl:param name="man.output.manifest.enabled" select="0"/> +<xsl:param name="man.output.manifest.filename">MAN.MANIFEST</xsl:param> +<xsl:param name="man.output.quietly" select="0"/> +<xsl:param name="man.output.subdirs.enabled" select="1"/> +<xsl:param name="man.segtitle.suppress" select="0"/> +<xsl:param name="man.string.subst.map"> + + <!-- * remove no-break marker at beginning of line (stylesheet artifact) --> + <substitution oldstring="▒▀" newstring="▒"/> + <!-- * replace U+2580 no-break marker (stylesheet-added) w/ no-break space --> + <substitution oldstring="▀" newstring="\ "/> + + <!-- ==================================================================== --> + + <!-- * squeeze multiple newlines before a roff request --> + <substitution oldstring=" ." newstring=" ."/> + <!-- * remove any .sp instances that directly precede a .PP --> + <substitution oldstring=".sp .PP" newstring=".PP"/> + <!-- * remove any .sp instances that directly follow a .PP --> + <substitution oldstring=".PP .sp" newstring=".PP"/> + <!-- * squeeze multiple newlines after start of no-fill (verbatim) env. --> + <substitution oldstring=".nf " newstring=".nf "/> + <!-- * squeeze multiple newlines after REstoring margin --> + <substitution oldstring=".RE " newstring=".RE "/> + <!-- * U+2591 is a marker we add before and after every Parameter in --> + <!-- * Funcprototype output --> + <substitution oldstring="░" newstring=" "/> + <!-- * U+2592 is a marker we add for the newline before output of <sbr>; --> + <substitution oldstring="▒" newstring=" "/> + <!-- * --> + <!-- * Now deal with some other characters that are added by the --> + <!-- * stylesheets during processing. --> + <!-- * --> + <!-- * bullet --> + <substitution oldstring="•" newstring="\(bu"/> + <!-- * left double quote --> + <substitution oldstring="“" newstring="\(lq"/> + <!-- * right double quote --> + <substitution oldstring="”" newstring="\(rq"/> + <!-- * left single quote --> + <substitution oldstring="‘" newstring="\(oq"/> + <!-- * right single quote --> + <substitution oldstring="’" newstring="\(cq"/> + <!-- * copyright sign --> + <substitution oldstring="©" newstring="\(co"/> + <!-- * registered sign --> + <substitution oldstring="®" newstring="\(rg"/> + <!-- * ...servicemark... --> + <!-- * There is no groff equivalent for it. --> + <substitution oldstring="℠" newstring="(SM)"/> + <!-- * ...trademark... --> + <!-- * We don't do "\(tm" because for console output, --> + <!-- * groff just renders that as "tm"; that is: --> + <!-- * --> + <!-- * Product™ -> Producttm --> + <!-- * --> + <!-- * So we just make it to "(TM)" instead; thus: --> + <!-- * --> + <!-- * Product™ -> Product(TM) --> + <substitution oldstring="™" newstring="(TM)"/> + +</xsl:param> +<xsl:param name="man.string.subst.map.local.post"/> + <xsl:param name="man.string.subst.map.local.pre"/> +<xsl:param name="man.subheading.divider.enabled">0</xsl:param> +<xsl:param name="man.subheading.divider">========================================================================</xsl:param> +<xsl:param name="man.table.footnotes.divider">----</xsl:param> +<xsl:param name="man.th.extra1.suppress">0</xsl:param> +<xsl:param name="man.th.extra2.max.length">30</xsl:param> +<xsl:param name="man.th.extra2.suppress">0</xsl:param> +<xsl:param name="man.th.extra3.max.length">30</xsl:param> +<xsl:param name="man.th.extra3.suppress">0</xsl:param> +<xsl:param name="man.th.title.max.length">20</xsl:param> +<xsl:param name="refentry.date.profile.enabled">0</xsl:param> +<xsl:param name="refentry.date.profile"> + (($info[//date])[last()]/date)[1]| + (($info[//pubdate])[last()]/pubdate)[1] +</xsl:param> +<xsl:param name="refentry.manual.fallback.profile"> +refmeta/refmiscinfo[1]/node()</xsl:param> +<xsl:param name="refentry.manual.profile.enabled">0</xsl:param> +<xsl:param name="refentry.manual.profile"> + (($info[//title])[last()]/title)[1]| + ../title/node() +</xsl:param> +<xsl:param name="refentry.meta.get.quietly" select="0"/> +<xsl:param name="refentry.source.fallback.profile"> +refmeta/refmiscinfo[1]/node()</xsl:param> +<xsl:param name="refentry.source.name.profile.enabled">0</xsl:param> +<xsl:param name="refentry.source.name.profile"> + (($info[//productname])[last()]/productname)[1]| + (($info[//corpname])[last()]/corpname)[1]| + (($info[//corpcredit])[last()]/corpcredit)[1]| + (($info[//corpauthor])[last()]/corpauthor)[1]| + (($info[//orgname])[last()]/orgname)[1]| + (($info[//publishername])[last()]/publishername)[1] +</xsl:param> +<xsl:param name="refentry.source.name.suppress">0</xsl:param> +<xsl:param name="refentry.version.profile.enabled">0</xsl:param> +<xsl:param name="refentry.version.profile"> + (($info[//productnumber])[last()]/productnumber)[1]| + (($info[//edition])[last()]/edition)[1]| + (($info[//releaseinfo])[last()]/releaseinfo)[1] +</xsl:param> +<xsl:param name="refentry.version.suppress">0</xsl:param> +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/profile-docbook.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/profile-docbook.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/profile-docbook.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,259 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!--This file was created automatically by xsl2profile--> +<!--from the DocBook XSL stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="exsl exslt" version="1.0"> + + <xsl:import href="../html/docbook.xsl"/> + <xsl:import href="../html/manifest.xsl"/> + <!-- * html-synop.xsl file is generated by build --> + <xsl:import href="html-synop.xsl"/> + <xsl:output method="text" encoding="UTF-8" indent="no"/> + <!-- ******************************************************************** + $Id: docbook.xsl 7153 2007-07-26 14:08:55Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + + <!-- ==================================================================== --> + + <xsl:include href="../common/refentry.xsl"/> + <xsl:include href="../common/charmap.xsl"/> + <xsl:include href="param.xsl"/> + <xsl:include href="utility.xsl"/> + <xsl:include href="info.xsl"/> + <xsl:include href="other.xsl"/> + <xsl:include href="refentry.xsl"/> + <xsl:include href="block.xsl"/> + <xsl:include href="inline.xsl"/> + <xsl:include href="synop.xsl"/> + <xsl:include href="lists.xsl"/> + <xsl:include href="endnotes.xsl"/> + <xsl:include href="table.xsl"/> + + <!-- * we rename the following just to avoid using params with "man" --> + <!-- * prefixes in the table.xsl stylesheet (because that stylesheet --> + <!-- * can potentially be reused for more than just man output) --> + <xsl:param name="tbl.font.headings" select="$man.font.table.headings"/> + <xsl:param name="tbl.font.title" select="$man.font.table.title"/> + + <!-- ==================================================================== --> + + <xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/"> + <!-- * Get a title for current doc so that we let the user --> + <!-- * know what document we are processing at this point. --> + <xsl:variable name="doc.title"> + <xsl:call-template name="get.doc.title"/> + </xsl:variable> + <xsl:choose> + <!-- * when we find a namespaced document, strip the --> + <!-- * namespace and then continue processing it. --> + <xsl:when test="false()"/> + <xsl:when test="//*[local-name() = 'refentry']"> + <!-- * Check to see if we have any refentry children in this --> + <!-- * document; if so, process them. The reason we use --> + <!-- * local-name()=refentry (instead of just //refentry) to to --> + <!-- * check for refentry children is because this stylsheet is --> + <!-- * also post-processed by the stylesheet build to create the --> + <!-- * manpages/profile-docbook.xsl, and the refentry child check --> + <!-- * in the profile-docbook.xsl stylesheet won't work if we do --> + <!-- * a simple //refentry check. --> + <xsl:apply-templates select="$profiled-nodes//refentry"/> + <!-- * if $man.output.manifest.enabled is non-zero, --> + <!-- * generate a manifest file --> + <xsl:if test="not($man.output.manifest.enabled = 0)"> + <xsl:call-template name="generate.manifest"> + <xsl:with-param name="filename"> + <xsl:choose> + <xsl:when test="not($man.output.manifest.filename = '')"> + <!-- * If a name for the manifest file is specified, --> + <!-- * use that name. --> + <xsl:value-of select="$man.output.manifest.filename"/> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise, if user has unset --> + <!-- * $man.output.manifest.filename, default to --> + <!-- * using "MAN.MANIFEST" as the filename. Because --> + <!-- * $man.output.manifest.enabled is non-zero and --> + <!-- * so we must have a filename in order to --> + <!-- * generate the manifest. --> + <xsl:text>MAN.MANIFEST</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise, the document does not contain any --> + <!-- * refentry elements, so log/emit message and stop. --> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Erro</xsl:with-param> + <xsl:with-param name="source" select="$doc.title"/> + <xsl:with-param name="context-desc"> + <xsl:text> no refentry</xsl:text> + </xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>No refentry elements found</xsl:text> + <xsl:if test="$doc.title != ''"> + <xsl:text> in "</xsl:text> + <xsl:choose> + <xsl:when test="string-length($doc.title) > 30"> + <xsl:value-of select="substring($doc.title,1,30)"/> + <xsl:text>...</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$doc.title"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text>"</xsl:text> + </xsl:if> + <xsl:text>.</xsl:text> + </xsl:with-param> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <!-- ============================================================== --> + + <xsl:template match="refentry"> + <xsl:param name="lang"> + <xsl:call-template name="l10n.language"/> + </xsl:param> + <!-- * Just use the first refname found as the "name" of the man --> + <!-- * page (which may different from the "title"...) --> + <xsl:variable name="first.refname" select="refnamediv[1]/refname[1]"/> + + <xsl:call-template name="root.messages"> + <xsl:with-param name="refname" select="$first.refname"/> + </xsl:call-template> + + <!-- * Because there are several times when we need to check *info of --> + <!-- * each refentry and its ancestors, we get those and store the --> + <!-- * data from them as a node-set in memory. --> + + <!-- * Make a node-set with contents of *info --> + <xsl:variable name="get.info" select="ancestor-or-self::*/*[substring(local-name(), string-length(local-name()) - 3) = 'info']"/> + <xsl:variable name="info" select="exsl:node-set($get.info)"/> + + <!-- * The get.refentry.metadata template is in --> + <!-- * ../common/refentry.xsl. It looks for metadata in $info --> + <!-- * and in various other places and then puts it into a form --> + <!-- * that's easier for us to digest. --> + <xsl:variable name="get.refentry.metadata"> + <xsl:call-template name="get.refentry.metadata"> + <xsl:with-param name="refname" select="$first.refname"/> + <xsl:with-param name="info" select="$info"/> + <xsl:with-param name="prefs" select="$refentry.metadata.prefs"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="refentry.metadata" select="exsl:node-set($get.refentry.metadata)"/> + + <!-- * Assemble the various parts into a complete page, then store into --> + <!-- * $manpage.contents so that we can manipluate them further. --> + <xsl:variable name="manpage.contents"> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * top.comment = commented-out section at top of roff source --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:call-template name="top.comment"> + <xsl:with-param name="info" select="$info"/> + <xsl:with-param name="date" select="$refentry.metadata/date"/> + <xsl:with-param name="title" select="$refentry.metadata/title"/> + <xsl:with-param name="manual" select="$refentry.metadata/manual"/> + <xsl:with-param name="source" select="$refentry.metadata/source"/> + </xsl:call-template> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * TH.title.line = title line in header/footer of man page --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:call-template name="TH.title.line"> + <!-- * .TH TITLE section extra1 extra2 extra3 --> + <!-- * --> + <!-- * According to the man(7) man page: --> + <!-- * --> + <!-- * extra1 = date, "the date of the last revision" --> + <!-- * extra2 = source, "the source of the command" --> + <!-- * extra3 = manual, "the title of the manual --> + <!-- * (e.g., Linux Programmer's Manual)" --> + <!-- * --> + <!-- * So, we end up with: --> + <!-- * --> + <!-- * .TH TITLE section date source manual --> + <!-- * --> + <xsl:with-param name="title" select="$refentry.metadata/title"/> + <xsl:with-param name="section" select="$refentry.metadata/section"/> + <xsl:with-param name="extra1" select="$refentry.metadata/date"/> + <xsl:with-param name="extra2" select="$refentry.metadata/source"/> + <xsl:with-param name="extra3" select="$refentry.metadata/manual"/> + </xsl:call-template> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * Set default hyphenation, justification, indentation, and --> + <!-- * line-breaking --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:call-template name="set.default.formatting"/> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * Main body of man page --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:apply-templates/> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * AUTHOR section --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:if test="not($man.authors.section.enabled = 0)"> + <xsl:call-template name="author.section"> + <xsl:with-param name="info" select="$info"/> + </xsl:call-template> + </xsl:if> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * COPYRIGHT section --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:if test="not($man.copyright.section.enabled = 0)"> + <xsl:call-template name="copyright.section"> + <xsl:with-param name="info" select="$info"/> + </xsl:call-template> + </xsl:if> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- * NOTES list (only if user wants endnotes numbered and/or listed) --> + <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:if test="$man.endnotes.list.enabled != 0 or $man.endnotes.are.numbered != 0"> + <xsl:call-template name="endnotes.list"/> + </xsl:if> + </xsl:variable> <!-- * end of manpage.contents --> + + <!-- * Prepare the page contents for final output, then store in --> + <!-- * $manpage.contents.prepared so the we can pass it on to the --> + <!-- * write.text.chunk() function --> + <xsl:variable name="manpage.contents.prepared"> + <!-- * "Preparing" the page contents involves, at a minimum, --> + <!-- * doubling any backslashes found (so they aren't interpreted --> + <!-- * as roff escapes). --> + <!-- * --> + <!-- * If $charmap.enabled is true, "preparing" the page contents also --> + <!-- * involves applying a character map to convert Unicode symbols and --> + <!-- * special characters into corresponding roff escape sequences. --> + <xsl:call-template name="prepare.manpage.contents"> + <xsl:with-param name="content" select="$manpage.contents"/> + </xsl:call-template> + </xsl:variable> + + <!-- * Write the prepared page contents to disk to create --> + <!-- * the final man page. --> + <xsl:call-template name="write.man.file"> + <xsl:with-param name="name" select="$first.refname"/> + <xsl:with-param name="section" select="$refentry.metadata/section"/> + <xsl:with-param name="lang" select="$lang"/> + <xsl:with-param name="content" select="$manpage.contents.prepared"/> + </xsl:call-template> + + <!-- * Generate "stub" (alias) pages (if any needed) --> + <xsl:call-template name="write.stubs"> + <xsl:with-param name="first.refname" select="$first.refname"/> + <xsl:with-param name="section" select="$refentry.metadata/section"/> + <xsl:with-param name="lang" select="$lang"/> + </xsl:call-template> + + </xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/refentry.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/refentry.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/refentry.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,256 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version='1.0'> + +<!-- ******************************************************************** + $Id: refentry.xsl 6657 2007-02-26 20:04:25Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> + + <xsl:template match="refnamediv"> + <xsl:choose> + <xsl:when test="preceding-sibling::refnamediv"> + <!-- * No title on secondary refnamedivs! --> + <!-- * Just put a single line break instead --> + <xsl:text>.br </xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="mark.subheading"/> + <xsl:text>.SH "</xsl:text> + <xsl:apply-templates select="." mode="title.markup"/> + <xsl:text>"</xsl:text> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:call-template name="mark.subheading"/> + <!-- * if we have multiple Refname instances, separate the names --> + <!-- * with commas --> + <xsl:for-each select="refname"> + <xsl:if test="position()>1"> + <xsl:text>, </xsl:text> + </xsl:if> + <xsl:value-of select="."/> + </xsl:for-each> + <!-- * The man(7) man pages says: --> + <!-- * --> + <!-- * The only required heading is NAME, which should be the --> + <!-- * first section and be followed on the next line by a one --> + <!-- * line description of the program: --> + <!-- * --> + <!-- * .SH NAME chess \- the game of chess --> + <!-- * --> + <!-- * It is extremely important that this format is followed, --> + <!-- * and that there is a backslash before the single dash --> + <!-- * which follows the command name. This syntax is used by --> + <!-- * the makewhatis(8) program to create a database of short --> + <!-- * command descriptions for the whatis(1) and apropos(1) --> + <!-- * commands. --> + <!-- * --> + <!-- * So why don't we precede the hyphen with a backslash here? --> + <!-- * Well, because it's added later, by the apply-string-subst-map --> + <!-- * template, before we generate final output --> + <xsl:if test="refpurpose/node()"> + <xsl:text> - </xsl:text> + <xsl:value-of select="normalize-space(refpurpose)"/> + </xsl:if> + <xsl:text> </xsl:text> + </xsl:template> + + <xsl:template match="refsynopsisdiv"> + <xsl:call-template name="mark.subheading"/> + <xsl:text>.SH "</xsl:text> + <xsl:apply-templates select="." mode="title.markup"/> + <xsl:text>" </xsl:text> + <xsl:call-template name="mark.subheading"/> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="refsect1|refentry/refsection"> + <xsl:variable name="title"> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:variable> + <xsl:call-template name="mark.subheading"/> + <xsl:text>.SH "</xsl:text> + <xsl:value-of select="normalize-space($title)"/> + <xsl:text>" </xsl:text> + <xsl:call-template name="mark.subheading"/> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="refsect2|refentry/refsection/refsection"> + <xsl:call-template name="mark.subheading"/> + <xsl:variable name="title"> + <xsl:apply-templates + select="(info/title + |refsectioninfo/title + |refsect1info/title + |title)[1]/node()"/> + + </xsl:variable> + <xsl:text>.SS "</xsl:text> + <xsl:value-of select="normalize-space($title)"/> + <xsl:text>" </xsl:text> + <xsl:call-template name="mark.subheading"/> + <xsl:choose> + <!-- * If default-indentation adjustment is on, then indent the --> + <!-- * child content of this Refsect2 --> + <xsl:when test="not($man.indent.refsect = 0)"> + <xsl:text>.RS </xsl:text> + <xsl:apply-templates/> + <xsl:text>.RE </xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * If default-indentation adjustment is on, then do not --> + <!-- * indent the child content of thie Refsect2, because --> + <!-- * the title is already "sticking out to the left" --> + <!-- * (as the groff_man(7) man page describes it), which --> + <!-- * actually means the title is indented by the value of --> + <!-- * the SN register, which appears by default to be --> + <!-- * about half of the default indentation value --> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="refsect3|refentry/refsection/refsection/refsection"> + <xsl:variable name="title"> + <xsl:value-of select="(info/title + |refsectioninfo/title + |refsect1info/title + |title)[1]"/> + </xsl:variable> + <xsl:choose> + <!-- * If default-indentation adjustment is on, then indent the --> + <!-- * child content of this Refsect3 or Refsection. --> + <xsl:when test="not($man.indent.refsect != 0)"> + <xsl:call-template name="nested-section-title"/> + <xsl:text>.RS </xsl:text> + <xsl:apply-templates/> + <xsl:text>.RE </xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * If default-indentation adjustment is on, then do not --> + <!-- * indent the child content of thie Refsect2, because --> + <!-- * the title is already "sticking out to the left" --> + <!-- * (as the groff_man(7) man page describes it), which --> + <!-- * actually means the title is indented by the value of --> + <!-- * the SN register, which appears by default to be --> + <!-- * about half of the default indentation value --> + <xsl:text>.ti (\n(SNu * 5u / 3u) </xsl:text> + <xsl:call-template name="nested-section-title"/> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="refsection"> + <!-- * This template is used for a nested Refsection that is --> + <!-- * is a child of a Refsect3-level section (The numberd --> + <!-- * Refsect hierarchy in DocBook ends with Refsect3, so --> + <!-- * there is not actually a Refsect4 element.) --> + <xsl:variable name="title"> + <xsl:value-of select="(info/title + |refsectioninfo/title + |refsect1info/title + |title)[1]"/> + </xsl:variable> + <xsl:variable name="indent-width"> + <xsl:if test="not($man.indent.refsect = 0)"> + <!-- * If default-indentation adjustment is on, then indent the --> + <!-- * child content of this Refsect3 or Refsection. --> + <xsl:text>(\n(SNu) </xsl:text> + </xsl:if> + </xsl:variable> + <xsl:call-template name="nested-section-title"/> + <xsl:text>.RS (\n(SNu) </xsl:text> + <xsl:apply-templates/> + <xsl:text>.RE </xsl:text> + </xsl:template> + + <!-- ==================================================================== --> + + <!-- * Use uppercase to render titles of all instances of Refsect1 or --> + <!-- * top-level Refsection, including in cross-references --> + <xsl:template match="refsect1|refentry/refsection" + mode="title.markup"> + <xsl:variable name="title" select="(info/title + |refsectioninfo/title + |refsect1info/title + |title)[1]"/> + <xsl:call-template name="string.upper"> + <xsl:with-param name="string"> + <xsl:apply-templates select="$title" mode="title.markup"/> + </xsl:with-param> + </xsl:call-template> + </xsl:template> + + <!-- * Output of Titles from Xref with Endterm needs to be handled --> + <!-- * separately from output for Endterm-less Xref --> + <xsl:template match="refsect1/title + |refentry/refsection/title + |refsynopsisdiv/title" + mode="endterm"> + <xsl:call-template name="string.upper"> + <xsl:with-param name="string"> + <xsl:apply-templates/> + </xsl:with-param> + </xsl:call-template> + </xsl:template> + + <!-- * Use uppercase to render titles of all instances of Refsynopsisdiv, --> + <!-- * including in cross-references --> + <xsl:template match="refsynopsisdiv" mode="title.markup"> + <xsl:param name="allow-anchors" select="0"/> + <xsl:call-template name="string.upper"> + <xsl:with-param name="string"> + <xsl:choose> + <xsl:when test="info/title + |refsynopsisdivinfo/title + |title"> + <xsl:apply-templates + select="(info/title + |refsynopsisdivinfo/title + |title)[1]" mode="title.markup"> + <xsl:with-param name="allow-anchors" select="$allow-anchors"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'RefSynopsisDiv'"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + </xsl:template> + + <!-- * Use uppercase to render titles of all instances of Refnamediv, --> + <!-- * including in cross-references --> + <xsl:template match="refnamediv" mode="title.markup"> + <xsl:call-template name="string.upper"> + <xsl:with-param name="string"> + <xsl:call-template name="gentext"> + <xsl:with-param name="key" select="'RefName'"/> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + </xsl:template> + + <xsl:template match="refnamediv" mode="xref-to"> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:template> + + <!-- ==================================================================== --> + + <!-- * suppress any title we don't otherwise process elsewhere --> + + <xsl:template match="title"/> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/synop.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/synop.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/synop.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,305 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + exclude-result-prefixes="exsl" + version='1.0'> + +<!-- ******************************************************************** + $Id: synop.xsl 7235 2007-08-13 11:13:37Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<xsl:variable name="arg.or.sep"> |</xsl:variable> + +<!-- * Note: If you're looking for the *Synopsis* element, you won't --> +<!-- * find any code here for handling it. It's a "verbatim" --> +<!-- * environment; see the block.xsl file instead. --> + +<xsl:template match="synopfragmentref"> + <xsl:variable name="target" select="key('id', at linkend)"/> + <xsl:variable name="snum"> + <xsl:apply-templates select="$target" mode="synopfragment.number"/> + </xsl:variable> + <xsl:text>(</xsl:text> + <xsl:value-of select="$snum"/> + <xsl:text>)</xsl:text> + <xsl:text>▀</xsl:text> + <xsl:call-template name="italic"> + <xsl:with-param name="node" select="exsl:node-set(normalize-space(.))"/> + <xsl:with-param name="context" select="."/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="synopfragment" mode="synopfragment.number"> + <xsl:number format="1"/> +</xsl:template> + +<xsl:template match="synopfragment"> + <xsl:variable name="snum"> + <xsl:apply-templates select="." mode="synopfragment.number"/> + </xsl:variable> + <xsl:text> </xsl:text> + <!-- * If we have a group of Synopgfragments, we only want to output a --> + <!-- * line of space before the first; so when we find a Synopfragment --> + <!-- * whose first preceding sibling is another Synopfragment, we back --> + <!-- * up one line vertically to negate the line of vertical space --> + <!-- * that's added by the .HP macro --> + <xsl:if test="preceding-sibling::*[1][self::synopfragment]"> + <xsl:text>.sp -1n </xsl:text> + </xsl:if> + <xsl:text>.HP </xsl:text> + <!-- * For each Synopfragment, make a hanging paragraph, with the --> + <!-- * indent calculated from the length of the generated number --> + <!-- * used as a reference + pluse 3 characters (for the open and --> + <!-- * close parens around the number, plus a space). --> + <xsl:value-of select="string-length (normalize-space ($snum)) + 3"/> + <xsl:text> </xsl:text> + <xsl:text>(</xsl:text> + <xsl:value-of select="$snum"/> + <xsl:text>)</xsl:text> + <xsl:text> </xsl:text> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="group|arg" name="group-or-arg"> + <xsl:variable name="choice" select="@choice"/> + <xsl:variable name="rep" select="@rep"/> + <xsl:variable name="sepchar"> + <xsl:choose> + <xsl:when test="ancestor-or-self::*/@sepchar"> + <xsl:value-of select="ancestor-or-self::*/@sepchar"/> + </xsl:when> + <xsl:otherwise> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="position()>1 and + not(preceding-sibling::*[1][self::sbr])" + ><xsl:value-of select="$sepchar"/></xsl:if> + <xsl:choose> + <xsl:when test="$choice='plain'"> + <!-- * do nothing --> + </xsl:when> + <xsl:when test="$choice='req'"> + <xsl:value-of select="$arg.choice.req.open.str"/> + </xsl:when> + <xsl:when test="$choice='opt'"> + <xsl:value-of select="$arg.choice.opt.open.str"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$arg.choice.def.open.str"/> + </xsl:otherwise> + </xsl:choose> + <xsl:variable name="arg"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:choose> + <xsl:when test="local-name(.) = 'arg' and not(ancestor::arg)"> + <!-- * Prevent arg contents from getting wrapped and broken up --> + <xsl:variable name="arg.wrapper"> + <Arg><xsl:value-of select="normalize-space($arg)"/></Arg> + </xsl:variable> + <xsl:apply-templates mode="prevent.line.breaking" + select="exsl:node-set($arg.wrapper)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$arg"/> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="$rep='repeat'"> + <xsl:value-of select="$arg.rep.repeat.str"/> + </xsl:when> + <xsl:when test="$rep='norepeat'"> + <xsl:value-of select="$arg.rep.norepeat.str"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$arg.rep.def.str"/> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="$choice='plain'"> + <xsl:if test='arg'> + <xsl:value-of select="$arg.choice.plain.close.str"/> + </xsl:if> + </xsl:when> + <xsl:when test="$choice='req'"> + <xsl:value-of select="$arg.choice.req.close.str"/> + </xsl:when> + <xsl:when test="$choice='opt'"> + <xsl:value-of select="$arg.choice.opt.close.str"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$arg.choice.def.close.str"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="group/arg"> + <xsl:variable name="choice" select="@choice"/> + <xsl:variable name="rep" select="@rep"/> + <xsl:if test="position()>1"><xsl:value-of select="$arg.or.sep"/></xsl:if> + <xsl:call-template name="group-or-arg"/> +</xsl:template> + +<xsl:template match="sbr"> + <xsl:text>▒</xsl:text> + <xsl:text>.br▒</xsl:text> +</xsl:template> + +<xsl:template match="cmdsynopsis"> + <!-- * if justification is enabled by default, turn it off temporarily --> + <xsl:if test="$man.justify != 0"> + <xsl:text>.ad l </xsl:text> + </xsl:if> + <!-- * if hyphenation is enabled by default, turn it off temporarily --> + <xsl:if test="$man.hyphenate != 0"> + <xsl:text>.hy 0 </xsl:text> + </xsl:if> + <xsl:text>.HP </xsl:text> + <xsl:value-of select="string-length (normalize-space (command)) + 1"/> + <xsl:text> </xsl:text> + <xsl:apply-templates/> + <xsl:text> </xsl:text> + <!-- * if justification is enabled by default, turn it back on --> + <xsl:if test="$man.justify != 0"> + <xsl:text>.ad </xsl:text> + </xsl:if> + <!-- * if hyphenation is enabled by default, turn it back on --> + <xsl:if test="$man.hyphenate != 0"> + <xsl:text>.hy </xsl:text> + </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> +<!-- * Funcsynopis hierarchy starts here --> +<!-- ==================================================================== --> + +<!-- * Note: If you're looking for the *Funcsynopsisinfo* element, --> +<!-- * you won't find any code here for handling it. It's a "verbatim" --> +<!-- * environment; see the block.xsl file instead. --> + +<!-- * Within funcsynopis output, disable hyphenation, and use --> +<!-- * left-aligned filling for the duration of the synopsis, so that --> +<!-- * line breaks only occur between separate paramdefs. --> +<xsl:template match="funcsynopsis"> + <!-- * if justification is enabled by default, turn it off temporarily --> + <xsl:if test="$man.justify != 0"> + <xsl:text>.ad l </xsl:text> + </xsl:if> + <!-- * if hyphenation is enabled by default, turn it off temporarily --> + <xsl:if test="$man.hyphenate != 0"> + <xsl:text>.hy 0 </xsl:text> + </xsl:if> + <xsl:apply-templates/> + <!-- * if justification is enabled by default, turn it back on --> + <xsl:if test="$man.justify != 0"> + <xsl:text>.ad </xsl:text> + </xsl:if> + <!-- * if hyphenation is enabled by default, turn it back on --> + <xsl:if test="$man.hyphenate != 0"> + <xsl:text>.hy </xsl:text> + </xsl:if> +</xsl:template> + +<!-- * All Funcprototype content is by default rendered in bold, --> +<!-- * because the man(7) man page says this: --> +<!-- * --> +<!-- * For functions, the arguments are always specified using --> +<!-- * italics, even in the SYNOPSIS section, where the rest of --> +<!-- * the function is specified in bold --> +<!-- * --> +<!-- * Look through the contents of the man/man2 and man3 directories --> +<!-- * on your system, and you'll see that most existing pages do follow --> +<!-- * this "bold everything in function synopsis" rule. --> +<!-- * --> +<!-- * Users who don't want the bold output can choose to adjust the --> +<!-- * man.font.funcprototype parameter on their own. So even if you --> +<!-- * don't personally like the way it looks, please don't change the --> +<!-- * default to be non-bold - because it's a convention that's --> +<!-- * followed is the vast majority of existing man pages that document --> +<!-- * functions, and we need to follow it by default, like it or no. --> +<xsl:template match="funcprototype"> + <xsl:variable name="funcprototype.string.value"> + <xsl:value-of select="funcdef"/> + </xsl:variable> + <xsl:variable name="funcprototype"> + <xsl:apply-templates select="funcdef"/> + </xsl:variable> + <xsl:text>.HP </xsl:text> + <!-- * Hang Paragraph by length of string value of <funcdef> + 1 --> + <!-- * (because funcdef is always followed by one open paren char) --> + <xsl:value-of select="string-length (normalize-space ($funcprototype.string.value)) + 1"/> + <xsl:text> </xsl:text> + <xsl:text>.</xsl:text> + <xsl:value-of select="$man.font.funcprototype"/> + <xsl:text> </xsl:text> + <!-- * The following quotation mark (and the one further below) are --> + <!-- * needed to properly delimit the parts of the Funcprototype that --> + <!-- * should be rendered in the prevailing font (either Bold or Roman) --> + <!-- * from Parameter output that needs to be alternately rendered in --> + <!-- * italic. --> + <xsl:text>"</xsl:text> + <xsl:value-of select="normalize-space($funcprototype)"/> + <xsl:text>(</xsl:text> + <xsl:apply-templates select="*[local-name() != 'funcdef']"/> + <xsl:text>"</xsl:text> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="funcdef"> + <xsl:apply-templates mode="prevent.line.breaking"/> +</xsl:template> + +<xsl:template match="funcdef/function"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="void"> + <xsl:text>void);</xsl:text> +</xsl:template> + +<xsl:template match="varargs"> + <xsl:text>...);</xsl:text> +</xsl:template> + +<xsl:template match="paramdef"> + <xsl:apply-templates mode="prevent.line.breaking" select="."/> + <xsl:choose> + <xsl:when test="following-sibling::*"> + <xsl:text>, </xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>);</xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef/parameter"> + <!-- * We use U+2591 here in place of a normal space, because if we --> + <!-- * were to just use a normal space, it would get replaced with a --> + <!-- * non-breaking space when we run the whole Paramdef through the --> + <!-- * prevent.line.breaking template. And as far as why we're --> + <!-- * inserting the space and quotation marks around each Parameter --> + <!-- * to begin with, the reason is that we need to because we are --> + <!-- * outputting Funcsynopsis in either the "BI" or "RI" font, and --> + <!-- * the space and quotation marks delimit the text as the --> + <!-- * "alternate" or "I" text that needs to be rendered in italic. --> + <xsl:text>"░"</xsl:text> + <xsl:apply-templates/> + <xsl:text>"░"</xsl:text> +</xsl:template> + +<xsl:template match="funcparams"> + <xsl:text>(</xsl:text> + <xsl:apply-templates/> + <xsl:text>)</xsl:text> +</xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/table.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/table.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/table.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,633 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + exclude-result-prefixes="exsl" + version='1.0'> + + <!-- ******************************************************************** + $Id: table.xsl 7177 2007-08-06 10:18:36Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + <!-- + <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/> + <xsl:param name="tbl.font.title">B</xsl:param> + <xsl:param name="tbl.font.headings">B</xsl:param> + --> + <xsl:param name="tbl.running.header.from.thead" select="0"/> + <xsl:param name="tbl.column.separator.char">:</xsl:param> + + <!-- ==================================================================== --> + + <!-- * This stylesheet transforms DocBook and HTML table source into --> + <!-- * tbl(1) markup. --> + <!-- * --> + <!-- * For details on tbl(1) and its markup syntaxt, see M. E. Lesk,--> + <!-- * "Tbl - A Program to Format Tables": --> + <!-- * --> + <!-- * http://cm.bell-labs.com/7thEdMan/vol2/tbl --> + <!-- * http://cm.bell-labs.com/cm/cs/doc/76/tbl.ps.gz --> + <!-- * http://www.snake.net/software/troffcvt/tbl.html --> + + <xsl:template match="table|informaltable" mode="to.tbl"> + <!--* the "source" param is an optional param; it can be any --> + <!--* string you want to use that gives some indication of the --> + <!--* source context for a table; it gets passed down to the named --> + <!--* templates that do the actual table processing; this --> + <!--* stylesheet currently uses the "source" information for --> + <!--* logging purposes --> + <xsl:param name="source"/> + <xsl:param name="title"> + <xsl:if test="local-name(.) = 'table'"> + <xsl:apply-templates select="." mode="object.title.markup.textonly"/> + </xsl:if> + </xsl:param> + <!-- * ============================================================== --> + <!-- * Set global table parameters --> + <!-- * ============================================================== --> + <!-- * First, set a few parameters based on attributes specified in --> + <!-- * the table source. --> + <xsl:param name="allbox"> + <xsl:if test="not(@frame = 'none') and not(@border = '0')"> + <!-- * By default, put a box around table and between all cells, --> + <!-- * unless frame="none" or border="0" --> + <xsl:text>allbox </xsl:text> + </xsl:if> + </xsl:param> + <xsl:param name="center"> + <!-- * If align="center", center the table. Otherwise, tbl(1) --> + <!-- * left-aligns it by default; note that there is no support --> + <!-- * in tbl(1) for specifying right alignment. --> + <xsl:if test="@align = 'center' or tgroup/@align = 'center'"> + <xsl:text>center </xsl:text> + </xsl:if> + </xsl:param> + <xsl:param name="expand"> + <!-- * If pgwide="1" or width="100%", then "expand" the table by --> + <!-- * making it "as wide as the current line length" (to quote --> + <!-- * the tbl(1) guide). --> + <xsl:if test="@pgwide = '1' or @width = '100%'"> + <xsl:text>expand </xsl:text> + </xsl:if> + </xsl:param> + + <!-- * ============================================================== --> + <!-- * Convert table to HTML --> + <!-- * ============================================================== --> + <!-- * Process the table by applying the HTML templates from the --> + <!-- * DocBook XSL stylesheets to the whole thing; because we don't --> + <!-- * override any of the <row>, <entry>, <tr>, <td>, etc. templates, --> + <!-- * the templates in the HTML stylesheets (which we import) are --> + <!-- * used to process those. --> + <xsl:param name="html-table-output"> + <xsl:choose> + <xsl:when test=".//tr"> + <!-- * If this table has a TR child, it means that it's an --> + <!-- * HTML table in the DocBook source, instead of a CALS --> + <!-- * table. So we just copy it as-is, while wrapping it --> + <!-- * in an element with same name as its original parent. --> + <xsl:for-each select="descendant-or-self::table|descendant-or-self::informaltable"> + <xsl:element name="{local-name(..)}"> + <table> + <xsl:copy-of select="*"/> + </table> + </xsl:element> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise, this is a CALS table in the DocBook source, --> + <!-- * so we need to apply the templates in the HTML --> + <!-- * stylesheets to transform it into HTML before we do --> + <!-- * any further processing of it. --> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </xsl:param> + <xsl:param name="contents" select="exsl:node-set($html-table-output)"/> + + <!-- ==================================================================== --> + <!-- * Output the table --> + <!-- ==================================================================== --> + <!-- * --> + <!-- * This is the "driver" part of the code; it calls a series of named + * templates (further below) to generate the actual tbl(1) markup, --> + <!-- * including the optional "options line", required "format section", --> + <!-- * and then the actual contents of the table. --> + <!-- * --> + <!-- ==================================================================== --> + + <xsl:for-each select="$contents//table"> + <!-- * ============================================================== --> + <!-- * Output table title --> + <!-- * ============================================================== --> + <xsl:if test="$title != '' or parent::td"> + <xsl:text>.PP </xsl:text> + <xsl:text>.</xsl:text> + <xsl:value-of select="$tbl.font.title"/> + <xsl:text> </xsl:text> + <xsl:if test="parent::td"> + <xsl:text>*[nested▀table]</xsl:text> + </xsl:if> + <xsl:value-of select="normalize-space($title)"/> + <xsl:text> </xsl:text> + <xsl:text>.sp -1n </xsl:text> + </xsl:if> + + <!-- * mark the start of the table --> + <!-- * "TS" = "table start" --> + <xsl:text>.TS</xsl:text> + <xsl:if test="thead and $tbl.running.header.from.thead"> + <!-- * H = "has header" --> + <xsl:text> H</xsl:text> + </xsl:if> + <xsl:text> </xsl:text> + + <!-- * ============================================================== --> + <!-- * Output "options line" --> + <!-- * ============================================================== --> + <xsl:variable name="options-line"> + <xsl:value-of select="$allbox"/> + <xsl:value-of select="$center"/> + <xsl:value-of select="$expand"/> + <xsl:text>tab(</xsl:text> + <xsl:value-of select="$tbl.column.separator.char"/> + <xsl:text>)</xsl:text> + </xsl:variable> + <xsl:if test="normalize-space($options-line) != ''"> + <xsl:value-of select="normalize-space($options-line)"/> + <xsl:text>; </xsl:text> + </xsl:if> + + <!-- * ============================================================== --> + <!-- * Output table header rows --> + <!-- * ============================================================== --> + <xsl:if test="thead"> + <xsl:call-template name="output.rows"> + <xsl:with-param name="rows" select="thead/tr"/> + </xsl:call-template> + <xsl:text> </xsl:text> + + <!-- * mark the end of table-header rows --> + <xsl:choose> + <xsl:when test="$tbl.running.header.from.thead"> + <!-- * "TH" = "table header end" --> + <xsl:text>.TH </xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * "T&" = "table continuation" and is meant just as a kind --> + <!-- * of convenience macro and is sorta equivalent to a "TE" --> + <!-- * (table end) followed immediately by a "TS" (table start); --> + <!-- * in this case, it marks the end of a table "subsection" --> + <!-- * with header rows, and the start of a subsection with body --> + <!-- * rows. It's necessary to output it here because the "TH" --> + <!-- * macro is not being output, so there's otherwise no way --> + <!-- * for tbl(1) to know we have the table "sectioned". --> + <xsl:text>.T& </xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + + <!-- * ============================================================== --> + <!-- * Output table body rows --> + <!-- * ============================================================== --> + <!-- * First create node set with all non-thead rows (tbody+tfoot), --> + <!-- * but reordered with the tfoot rows at the end of the node set --> + <xsl:variable name="rows-set"> + <xsl:copy-of select="tbody/tr|tr"/> + <xsl:copy-of select="tfoot/tr"/> + </xsl:variable> + <xsl:call-template name="output.rows"> + <xsl:with-param name="source" select="$source"/> + <xsl:with-param name="rows" select="exsl:node-set($rows-set)"/> + </xsl:call-template> + + <!-- * mark the end of the table --> + <xsl:text> </xsl:text> + <!-- * .TE = "Table End" --> + <xsl:text>.TE </xsl:text> + <!-- * put a blank line of space below the table --> + <xsl:text>.sp </xsl:text> + </xsl:for-each> + </xsl:template> + + <!-- ==================================================================== --> + <!-- * named templates --> + <!-- ==================================================================== --> + <!-- * --> + <!-- * All of the following are named templates that get called directly --> + <!-- * or indirectly by the main "driver" part of the code (above) --> + <!-- * --> + <!-- ==================================================================== --> + + <xsl:template name="output.rows"> + <xsl:param name="source"/> + <xsl:param name="rows"/> + <!-- * ============================================================== --> + <!-- * Flatten row set into simple list of cells --> + <!-- * ============================================================== --> + <!-- * Now we flatten the structure further into just a set of --> + <!-- * cells without the row parents. This basically creates a --> + <!-- * copy of the entire contents of the original table, but --> + <!-- * restructured in such a way that we can more easily generate --> + <!-- * the corresponding tbl(1) markup we need to output. --> + <xsl:variable name="cells-list"> + <xsl:call-template name="build.cell.list"> + <xsl:with-param name="source" select="$source"/> + <xsl:with-param name="rows" select="$rows"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="cells" select="exsl:node-set($cells-list)"/> + + <!-- * Output the table "format section", which tells tbl(1) how to --> + <!-- * format each row and column --> + <xsl:call-template name="create.table.format"> + <xsl:with-param name="cells" select="$cells"/> + </xsl:call-template> + + <!--* Output the formatted contents of each cell. --> + <xsl:for-each select="$cells/cell"> + <xsl:call-template name="output.cell"/> + </xsl:for-each> + </xsl:template> + + <!-- * ============================================================== --> + <!-- * Output the tbl(1)-formatted contents of each cell. --> + <!-- * ============================================================== --> + <xsl:template name="output.cell"> + <xsl:choose> + <xsl:when test="preceding-sibling::cell[1]/@row != @row or + not(preceding-sibling::cell)"> + <!-- * If the value of the "row" attribute on this cell is --> + <!-- * different from the value of that on the previous cell, it --> + <!-- * means we have a new row. So output a line break (as long --> + <!-- * as this isn't the first cell in the table) --> + <xsl:text> </xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise we are not at the start of a new row, so we --> + <!-- * output a tab character to delimit the contents of this --> + <!-- * cell from the contents of the next one. --> + <xsl:value-of select="$tbl.column.separator.char"/> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="@type = '^'"> + <!-- * If this is a dummy cell resulting from the presence of --> + <!-- * rowpan attribute in the source, it has no contents, so --> + <!-- * we need to handle it differently. --> + <xsl:if test="@colspan and @colspan > 1"> + <!-- * If there is a colspan attribute on this dummy row, then --> + <!-- * we need to output a tab character for each column that --> + <!-- * it spans. --> + <xsl:call-template name="copy-string"> + <xsl:with-param name="string" select="$tbl.column.separator.char"/> + <xsl:with-param name="count"> + <xsl:value-of select="@colspan - 1"/> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <!-- * Otherwise, we have a "real" cell (not a dummy one) with --> + <!-- * contents that we need to output, --> + <!-- * --> + <!-- * The "T{" and "T}" stuff are delimiters to tell tbl(1) that --> + <!-- * the delimited contents are "text blocks" that roff --> + <!-- * needs to process --> + <xsl:text>T{ </xsl:text> + <xsl:copy-of select="."/> + <xsl:text> T}</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <!-- * ============================================================== --> + <!-- * Build a restructured "cell list" copy of the entire table --> + <!-- * ============================================================== --> + <xsl:template name="build.cell.list"> + <xsl:param name="source"/> + <xsl:param name="rows"/> + <xsl:param name="cell-data-unsorted"> + <!-- * This param collects all the "real" cells from the table, --> + <!-- * along with "dummy" rows that we generate for keeping --> + <!-- * track of Rowspan instances. --> + <xsl:apply-templates select="$rows" mode="cell.list"> + <xsl:with-param name="source" select="$source"/> + </xsl:apply-templates> + </xsl:param> + <xsl:param name="cell-data-sorted"> + <!-- * Sort the cells so that the dummy cells get put where we --> + <!-- * need them in the structure. Note that we need to specify --> + <!-- * data-type="number" here because the default sorting method --> + <!-- * for xsl:sort is "text" (alphabetical). --> + <xsl:for-each select="exsl:node-set($cell-data-unsorted)/cell"> + <xsl:sort select="@row" data-type="number"/> + <xsl:sort select="@slot" data-type="number"/> + <xsl:copy-of select="."/> + </xsl:for-each> + </xsl:param> + <!-- * Return the sorted cell list --> + <xsl:copy-of select="$cell-data-sorted"/> + </xsl:template> + + <xsl:template match="tr" mode="cell.list"> + <xsl:param name="source"/> + <xsl:variable name="row"> + <xsl:value-of select="count(preceding-sibling::tr) + 1"/> + </xsl:variable> + <xsl:for-each select="td|th"> + <xsl:call-template name="cell"> + <xsl:with-param name="source" select="$source"/> + <xsl:with-param name="row" select="$row"/> + <!-- * pass on the element name so we can select the appropriate --> + <!-- * roff font for styling the cell contents --> + <xsl:with-param name="class" select="name(.)"/> + </xsl:call-template> + </xsl:for-each> + </xsl:template> + + <xsl:template name="cell"> + <xsl:param name="source"/> + <xsl:param name="row"/> + <xsl:param name="class"/> + <xsl:param name="slot"> + <!-- * The "slot" is the horizontal position of this cell (usually --> + <!-- * just the same as its column, but not so when it is preceded --> + <!-- * by cells that have colspans or cells in preceding rows that --> + <!-- * that have rowspans). --> + <xsl:value-of select="position()"/> + </xsl:param> + <!-- * For each real TD cell, create a Cell instance; contents will --> + <!-- * be the roff-formatted contents of its original table cell. --> + <cell type="" + row="{$row}" + slot="{$slot}" + class="{$class}" + colspan="{@colspan}" + align="{@align}" + valign="{@valign}" + > + <xsl:choose> + <xsl:when test=".//tr"> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">Warn</xsl:with-param> + <xsl:with-param name="source" select="$source"/> + <xsl:with-param name="context-desc">tbl convert</xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>Extracted a nested table</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:text>[\fInested▀table\fR]* </xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * Apply templates to the child contents of this cell, to --> + <!-- * transform them into marked-up roff. --> + <xsl:variable name="contents"> + <xsl:apply-templates/> + </xsl:variable> + <!-- * We now have the contents in roff (plain-text) form, --> + <!-- * but we may also still have unnecessary whitespace at --> + <!-- * the beginning and/or end of it, so trim it off. --> + <xsl:call-template name="trim.text"> + <xsl:with-param name="contents" select="$contents"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </cell> + + <!-- * For each instance of a rowspan attribute found, we create N --> + <!-- * dummy cells, where N is equal to the value of the rowspan. --> + <xsl:if test="@rowspan and @rowspan > 0"> + <!-- * If this cell is preceded in the same row by cells that --> + <!-- * have colspan attributes, then we need to calculate the --> + <!-- * "offset" caused by those colspan instances; the formula --> + <!-- * is to (1) check for all the preceding cells that have --> + <!-- * colspan attributes that are not empty and which have a --> + <!-- * value greater than 1, then (2) take the sum of the values --> + <!-- * of all those colspan attributes, and subtract from that --> + <!-- * the number of such colspan instances found. --> + <xsl:variable name="colspan-offset"> + <xsl:value-of + select="sum(preceding-sibling::td[@colspan != '' + and @colspan > 1]/@colspan) - + count(preceding-sibling::td[@colspan != '' + and @colspan > 1]/@colspan)"/> + </xsl:variable> + <xsl:call-template name="create.dummy.cells"> + <xsl:with-param name="row" select="$row + 1"/> + <!-- * The slot value on each dummy cell must be offset by the --> + <!-- * value of $colspan-offset to adjust for preceding colpans --> + <xsl:with-param name="slot" select="$slot + $colspan-offset"/> + <xsl:with-param name="colspan" select="@colspan"/> + <xsl:with-param name="rowspan" select="@rowspan"/> + </xsl:call-template> + </xsl:if> + </xsl:template> + + <xsl:template name="create.dummy.cells"> + <xsl:param name="row"/> + <xsl:param name="slot"/> + <xsl:param name="colspan"/> + <xsl:param name="rowspan"/> + <xsl:choose> + <xsl:when test="$rowspan > 1"> + <!-- * Tail recurse until we have no more rowspans, creating --> + <!-- * an empty dummy cell each time. The type value, '^' --> + <!-- * is the marker that tbl(1) uses to indicate a --> + <!-- * "vertically spanned heading". --> + <cell row="{$row}" slot="{$slot}" type="^" colspan="{@colspan}"/> + <xsl:call-template name="create.dummy.cells"> + <xsl:with-param name="row" select="$row + 1"/> + <xsl:with-param name="slot" select="$slot"/> + <xsl:with-param name="colspan" select="$colspan"/> + <xsl:with-param name="rowspan" select="$rowspan - 1"/> + </xsl:call-template> + </xsl:when> + </xsl:choose> + </xsl:template> + + <!-- * ============================================================== --> + <!-- * Build the "format section" for the table --> + <!-- * ============================================================== --> + <!-- * Description from the tbl(1) guide: --> + <!-- * --> + <!-- * "The format section of the table specifies the layout of the --> + <!-- * columns. Each line in this section corresponds to one line of --> + <!-- * the table... and each line contains a key-letter for each --> + <!-- * column of the table." --> + <xsl:template name="create.table.format"> + <xsl:param name="cells"/> + <xsl:apply-templates mode="table.format" select="$cells"/> + <!-- * last line of table format section must end with a dot --> + <xsl:text>.</xsl:text> + </xsl:template> + + <xsl:template match="cell" mode="table.format"> + <xsl:choose> + <xsl:when test="preceding-sibling::cell[1]/@row != @row"> + <!-- * If the value of the row attribute on this cell is --> + <!-- * different from the value of that on the previous cell, it --> + <!-- * means we have a new row. So output a line break. --> + <xsl:text> </xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * If this isn't the first cell, output a space before it to --> + <!-- * separate it from the preceding key letter. --> + <xsl:if test="position() != 1"> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + <!-- * Select an appropriate "alignment" key letter based on this --> + <!-- * cell's attributes. --> + <xsl:choose> + <xsl:when test="@type = '^'"> + <xsl:text>^</xsl:text> + </xsl:when> + <xsl:when test="@align = 'center'"> + <xsl:text>c</xsl:text> + </xsl:when> + <xsl:when test="@align = 'right'"> + <xsl:text>r</xsl:text> + </xsl:when> + <xsl:when test="@align = 'char'"> + <xsl:text>n</xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * Default to left alignment. --> + <xsl:text>l</xsl:text> + </xsl:otherwise> + </xsl:choose> + <!-- * By default, tbl(1) vertically centers cell contents within --> + <!-- * their cells; the "t" key latter tells it to top-align the --> + <!-- * contents instead. Note that tbl(1) has no options for --> + <!-- * bottom or baseline alignment. --> + <xsl:if test="@valign = 'top'"> + <xsl:text>t</xsl:text> + </xsl:if> + <xsl:if test="@class = 'th'"> + <!-- * If this is a heading row, generate a font indicator (B or I), --> + <!-- * or if the value of $tbl.font.headings is empty, nothing. --> + <xsl:value-of select="$tbl.font.headings"/> + </xsl:if> + <!-- * We only need to deal with colspans whose value is greater --> + <!-- * than one (a colspan="1" is the same as having no colspan --> + <!-- * attribute at all). --> + <xsl:if test="@colspan > 1"> + <xsl:call-template name="process.colspan"> + <xsl:with-param name="colspan" select="@colspan - 1"/> + <xsl:with-param name="type" select="@type"/> + </xsl:call-template> + </xsl:if> + </xsl:template> + + <xsl:template name="process.colspan"> + <xsl:param name="colspan"/> + <xsl:param name="type"/> + <!-- * Output a space to separate this key letter from preceding one. --> + <xsl:text> </xsl:text> + <xsl:choose> + <xsl:when test="$type = '^'"> + <!-- * A '^' ("vertically spanned heading" marker) indicates --> + <!-- * that the "parent" of this spanned cell is a dummy cell; --> + <!-- * in this case, we need to generate a '^' instead of the --> + <!-- * normal 's'. --> + <xsl:text>^</xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- * s = 'spanned heading' --> + <xsl:text>s</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="$colspan > 1"> + <!-- * Tail recurse until we have no more colspans, outputting --> + <!-- * another marker each time. --> + <xsl:call-template name="process.colspan"> + <xsl:with-param name="colspan" select="$colspan - 1"/> + <xsl:with-param name="type" select="$type"/> + </xsl:call-template> + </xsl:if> + </xsl:template> + + <!-- * ============================================================== --> + <!-- * colgroup and col --> + <!-- * ============================================================== --> + <!-- * We currently don't do anything with colgroup. Not sure if it --> + <!-- * is widely used enough to bother adding support for it --> + <xsl:template match="colgroup"/> + <xsl:template match="col"/> + + <!-- * ============================================================== --> + <!-- * table footnotes --> + <!-- * ============================================================== --> + <xsl:template match="footnote" mode="table.footnote.mode"> + <xsl:variable name="footnotes" select=".//footnote"/> + <xsl:variable name="table.footnotes" + select=".//tgroup//footnote"/> + <xsl:value-of select="$man.table.footnotes.divider"/> + <xsl:text> </xsl:text> + <xsl:text>.br </xsl:text> + <xsl:apply-templates select="*[1]" mode="footnote.body.number"/> + <xsl:apply-templates select="*[position() > 1]"/> + </xsl:template> + + <!-- * The following template for footnote.body.number mode was just --> + <!-- * lifted from the HTML stylesheets with some minor adjustments --> + <xsl:template match="*" mode="footnote.body.number"> + <xsl:variable name="name"> + <xsl:text>ftn.</xsl:text> + <xsl:call-template name="object.id"> + <xsl:with-param name="object" select="ancestor::footnote"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="href"> + <xsl:text>#</xsl:text> + <xsl:call-template name="object.id"> + <xsl:with-param name="object" select="ancestor::footnote"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="footnote.mark"> + <xsl:text>[</xsl:text> + <xsl:apply-templates select="ancestor::footnote" + mode="footnote.number"/> + <xsl:text>] </xsl:text> + </xsl:variable> + <xsl:variable name="html"> + <xsl:apply-templates select="."/> + </xsl:variable> + <xsl:choose> + <xsl:when test="function-available('exsl:node-set')"> + <xsl:variable name="html-nodes" select="exsl:node-set($html)"/> + <xsl:choose> + <xsl:when test="$html-nodes//p"> + <xsl:apply-templates select="$html-nodes" mode="insert.html.p"> + <xsl:with-param name="mark" select="$footnote.mark"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="$html-nodes" mode="insert.html.text"> + <xsl:with-param name="mark" select="$footnote.mark"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$html"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <!-- * The HTML stylesheets output <sup><a>...</a></sup> around --> + <!-- * footnote markers in tables --> + <xsl:template match="th/sup"> + <xsl:apply-templates/> + </xsl:template> + <xsl:template match="a"> + <xsl:apply-templates/> + </xsl:template> + +</xsl:stylesheet> Added: box/trunk/docs/xsl-generic/manpages/utility.xsl =================================================================== --- box/trunk/docs/xsl-generic/manpages/utility.xsl (rev 0) +++ box/trunk/docs/xsl-generic/manpages/utility.xsl 2009-04-26 20:01:15 UTC (rev 2515) @@ -0,0 +1,452 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + xmlns:dyn="http://exslt.org/dynamic" + xmlns:saxon="http://icl.com/saxon" + exclude-result-prefixes="exsl dyn saxon" + version='1.0'> + +<!-- ******************************************************************** + $Id: utility.xsl 6843 2007-06-20 12:21:13Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- * This file contains "utility" templates that are called multiple --> +<!-- * times per each Refentry. --> + +<!-- ==================================================================== --> + + <!-- * NOTE TO DEVELOPERS: For ease of maintenance, the current --> + <!-- * manpages stylesheets use the "bold" and "italic" named --> + <!-- * templates for anything and everything that needs to get --> + <!-- * boldfaced or italicized. --> + <!-- * --> + <!-- * So if you add anything that needs bold or italic character --> + <!-- * formatting, try to apply these templates to it rather than --> + <!-- * writing separate code to format it. This can be a little odd if --> + <!-- * the content you want to format is not element content; in those --> + <!-- * cases, you need to turn it into element content before applying --> + <!-- * the template; see examples of this in the existing code. --> + + <xsl:template name="bold"> + <xsl:param name="node"/> + <xsl:param name="context"/> + <xsl:choose> + <xsl:when test="not($context[ancestor::title])"> + <xsl:for-each select="$node/node()"> + <xsl:text>\fB</xsl:text> + <xsl:apply-templates select="."/> + <xsl:text>\fR</xsl:text> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="$node/node()"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="italic"> + <xsl:param name="node"/> + <xsl:param name="context"/> + <xsl:for-each select="$node/node()"> + <xsl:text>\fI</xsl:text> + <xsl:apply-templates select="."/> + <xsl:text>\fR</xsl:text> + </xsl:for-each> + </xsl:template> + + <!-- ================================================================== --> + + <!-- * NOTE TO DEVELOPERS: For ease of maintenance, the current --> + <!-- * manpages stylesheets use the mode="prevent.line.breaking" --> + <!-- * templates for anything and everything that needs to have --> + <!-- * embedded spaces turned into no-break spaces in output - in --> + <!-- * order to prevent that output from getting broken across lines --> + <!-- * --> + <!-- * So if you add anything that whose output, try to apply this --> + <!-- * template to it rather than writing separate code to format --> + <!-- * it. This can be a little odd if the content you want to --> + <!-- * format is not element content; in those cases, you need to --> + <!-- * turn it into element content before applying the template; --> + <!-- * see examples of this in the existing code. --> + <!-- * --> + <!-- * This template is currently called by the funcdef and paramdef --> + <!-- * and group/arg templates. --> + <xsl:template mode="prevent.line.breaking" match="*"> + <xsl:variable name="rcontent"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:variable name="content"> + <xsl:value-of select="normalize-space($rcontent)"/> + </xsl:variable> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$content"/> + <xsl:with-param name="target" select="' '"/> + <!-- * U+2580 is a "UPPER HALF BLOCK"; we use it here because --> + <!-- * if we were to just use a normal space, it would get --> + <!-- * replaced when normalization is done. We replace it --> + <!-- * later with the groff markup for non-breaking space. --> + <xsl:with-param name="replacement" select="'▀'"/> + </xsl:call-template> + </xsl:template> + + <!-- ================================================================== --> + + <xsl:template name="suppress.hyphenation"> + <!-- * we need to suppress hyphenation inline only if hyphenation is --> + <!-- * actually on, and even then only outside of Cmdsynopsis and --> + <!-- * Funcsynopsis, where it is already always turned off --> + <xsl:if test="$man.hyphenate != 0 and + not(ancestor::cmdsynopsis) and + not(ancestor::funcsynopsis)"> + <xsl:text>\%</xsl:text> + </xsl:if> + </xsl:template> + + <!-- ================================================================== --> + + <!-- * The replace.dots.and.dashes template is used to cause real --> + <!-- * dots and dashes to be output in the top comment (instead of --> + <!-- * escaped ones as in the source for the text displayed in the --> + <!-- * body of the page) --> + <xsl:template name="replace.dots.and.dashes"> + <xsl:param name="content"> + <xsl:apply-templates/> + </xsl:param> + <xsl:variable name="dot-content"> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$content"/> + <xsl:with-param name="target" select="'\.'"/> + <xsl:with-param name="replacement" select="'.'"/> + </xsl:call-template> + </xsl:variable> + <xsl:call-template name="string.subst"> + <xsl:with-param name="string" select="$dot-content"/> + <xsl:with-param name="target" select="'\-'"/> + <xsl:with-param name="replacement" select="'-'"/> + </xsl:call-template> + </xsl:template> + + <!-- ================================================================== --> + + <!-- * The nested-section-title template is called for refsect3, and any --> + <!-- * refsection nested more than 2 levels deep. --> + <xsl:template name="nested-section-title"> + <!-- * The next few lines are some arcane roff code to control line --> + <!-- * spacing after headings. --> + <xsl:text>.sp </xsl:text> + <xsl:text>.it 1 an-trap </xsl:text> + <xsl:text>.nr an-no-space-flag 1 </xsl:text> + <xsl:text>.nr an-break-flag 1 </xsl:text> + <xsl:text>.br </xsl:text> + <!-- * make title wrapper so that we can use mode="bold" template to --> + <!-- * apply character formatting to it --> + <xsl:variable name="title.wrapper"> + <bold><xsl:choose> + <xsl:when test="title"> + <xsl:value-of select="normalize-space(title[1])"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="object.title.markup.textonly"/> + </xsl:otherwise> + </xsl:choose></bold> + </xsl:variable> + <xsl:call-template name="mark.subheading"/> + <xsl:apply-templates mode="bold" select="exsl:node-set($title.wrapper)"/> + <xsl:text> </xsl:text> + <xsl:call-template name="mark.subheading"/> + </xsl:template> + + <!-- ================================================================== --> + + <!-- * The mixed-block template jumps through a few hoops to deal with --> + <!-- * mixed-content blocks, so that we don't end up munging verbatim --> + <!-- * environments or lists and so that we don't gobble up whitespace --> + <!-- * when we shouldn't --> + <xsl:template name="mixed-block"> + <xsl:for-each select="node()"> + <xsl:choose> + <!-- * Check to see if this node is a verbatim environment. --> + <!-- * If so, put a line of space before it. --> + <!-- * --> + <!-- * Yes, address and synopsis are vertabim environments. --> + <!-- * --> + <!-- * The code here previously also treated informaltable as a --> + <!-- * verbatim, presumably to support some kludge; I removed it --> + <xsl:when test="self::address|self::literallayout|self::programlisting| + self::screen|self::synopsis"> + <xsl:text> </xsl:text> + <xsl:text>.sp </xsl:text> + <xsl:call-template name="mark.up.block.start"/> + <xsl:apply-templates select="."/> + </xsl:when> + <!-- * Check to see if this node is a list; if it is, we don't --> + <!-- * want to normalize-space(), so we just apply-templates. --> + <!-- * Do same for all admonitions --> + <xsl:when test="(self::itemizedlist|self::orderedlist| + self::variablelist|self::glosslist| + self::simplelist[@type !='inline']| + self::segmentedlist| + self::caution|self::important| + self::note|self::tip|self::warning| + self::table|self::informaltable)"> + <xsl:call-template name="mark.up.block.start"/> + <xsl:apply-templates select="."/> + </xsl:when> + <xsl:when test="self::text()"> + <!-- * Check to see if this is a text node. --> + <!-- * --> + <!-- * If so, replace all whitespace at the beginning or end of it --> + <!-- * with a single linebreak. --> + <!-- * --> + <xsl:variable name="content"> + <xsl:apply-templates select="."/> + </xsl:variable> + <xsl:if + test="starts-with(translate(.,' ',' '), ' ') + and preceding-sibling::node()[1][name(.)!=''] + and normalize-space($content) != '' + and not( + preceding-sibling::*[1][ + self::caution or + self::important or + self::note or + self::tip or + self::warning or + self::variablelist or + self::glosslist or + self::itemizedlist or + self::orderedlist or + self::segmentedlist or + self::procedure or + self::address or + self::literallayout or + self::programlisting or + self::screen or + self::table or + self::informaltable + ] + ) + "> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:value-of select="normalize-space($content)"/> + <xsl:if + test="(translate(substring(., string-length(.), 1),' ',' ') = ' ' + and following-sibling::node()[1][name(.)!='']) + or following-sibling::node()[1][self::comment()] + or following-sibling::node()[1][self::processing-instruction()] + "> + <xsl:if test="normalize-space($content) != '' + or concat(normalize-space($content), ' ') = ' '"> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <!-- * At this point, we know that this node is not a verbatim --> + <!-- * environment, list, admonition, or text node; so we can --> + <!-- * safely normalize-space() it. --> + <xsl:variable name="content"> + <xsl:apply-templates select="."/> + </xsl:variable> + <xsl:value-of select="normalize-space($content)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:call-template name="mark.up.block.end"/> + </xsl:template> + + <!-- ================================================================== --> + + <!-- * Footnote and annotation contents are displayed using a hanging --> + <!-- * indent out to $man.indent.width If a paragraph-level block --> + <!-- * element (verbatim, list, or admonition) is the first block --> + <!-- * element nested at its same level within the same footnote or --> + <!-- * annotation, then we push it over by the same indent width. --> + <!-- * --> + <!-- * We don't reset the indent for each following sibling, but --> + <!-- * instead do it after for-eaching over all block siblings at --> + <!-- * the same level. So the effect is that if there are any --> + <!-- * following-sibling blocks after the block that starts this --> + <!-- * indent, then they just retain the indent that was already set --> + + <xsl:template name="mark.up.block.start"> + <xsl:choose> + <xsl:when test="(ancestor::footnote + or ancestor::annotation)"> + <xsl:if test="not(preceding-sibling::address| + preceding-sibling::literallayout| + preceding-sibling::programlisting| + preceding-sibling::screen| + preceding-sibling::synopsis| + preceding-sibling::itemizedlist| + preceding-sibling::orderedlist| + preceding-sibling::variablelist| + preceding-sibling::glosslist| + preceding-sibling::simplelist[@type !='inline']| + preceding-sibling::segmentedlist| + preceding-sibling::caution| + preceding-sibling::important| + preceding-sibling::note| + preceding-sibling::tip| + preceding-sibling::warning| + preceding-sibling::table| + preceding-sibling::informaltable + )"> + <xsl:text>.RS</xsl:text> + <xsl:if test="not($list-indent = '')"> + <xsl:text> </xsl:text> + <xsl:value-of select="$list-indent"/> + </xsl:if> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:when> + </xsl:choose> + </xsl:template> + + <!-- * Check to see if we were called from a block within a footnote or --> + <!-- * annotation; if so, and the block contains any nested block --> + <!-- * content, then we know the mark.up.block.end template was already --> + <!-- * called to generate a .RS macro to indent that nested block --> + <!-- * content; so we need to generate a .RE to set the margin back to --> + <!-- * where it was prior to the .RS call. --> + <xsl:template name="mark.up.block.end"> + <xsl:if test="(ancestor::footnote + or ancestor::annotation)"> + <xsl:if test="address| + literallayout| + programlisting| + screen| + synopsis| + itemizedlist| + orderedlist| + variablelist| + glosslist| + simplelist[@type !='inline']| + segmentedlist| + caution| + important| + note| + tip| + warning| + table| + informaltable"> + <xsl:text> </xsl:text> + <xsl:text>.RE</xsl:text> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:if> + </xsl:template> + + <!-- ================================================================== --> + + <!-- * The person.name template in the HTML stylesheets outputs extra --> + <!-- * spaces that we need to strip out for manpages output. This --> + <!-- * template calls person.name, then tries to do some smart --> + <!-- * normalization of the result tree fragment from that. --> + <xsl:template name="person.name.normalized"> + <xsl:variable name="contents"> + <xsl:call-template name="person.name"/> + </xsl:variable> + <!-- * We put the output of person.name into a node-set and then we --> + <!-- * check it node-by-node and strip out space only where needed. --> + <xsl:variable name="contents.tree" select="exsl:node-set($contents)"/> + <xsl:for-each select="$contents.tree/node()"> + <xsl:choose> + <!-- * We don't want to monkey with single spaces or commas/periods --> + <!-- * followed by spaces, because those are bits of text that are --> + <!-- * actually generated by the person.name template itself (that --> + <!-- * is, they're not in the source). So, we preserve them. --> + <xsl:when test=". = ' ' or . = ', ' or . = '. '"> + <xsl:value-of select="."/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="normalize-space(.)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:template> + + <!-- ================================================================== --> + + <xsl:template name="make.adjusted.man.filename"> + <xsl:param name="name"/> + <xsl:param name="lang"/> + <xsl:param name="name.with.lang"> + <xsl:choose> + <xsl:when test="$lang != 'en' + and not($man.output.lang.in.name.enabled = 0) + and ($man.output.subdirs.enabled = 0 or + $man.output.in.separate.dir = 0)"> + <!-- * $lang is not en (English) --> + <!-- * AND user has specified man.output.lang.in.name.enabled --> + <!-- * AND doesn't want output going into separate dirs, --> + <!-- * SO... we include the $lang value in the filename; e.g., --> + <!-- * foo.ja.1 --> + <xsl:value-of select="concat($name, '.', $lang)"/> + </xsl:when> + <xsl:otherwise> + <!-- * user either has man.output.lang.in.name.enabled unset --> + <!-- * or has set it but also has man.output.subdirs.enabled --> + <!-- * set (in which case the $lang value is used to add a --> + <!-- * $lang subdir in the pathname); in either case, we don't --> + <!-- * want to include the $lang in the filename --> + <xsl:value-of select="$name"/> + </xsl:otherwise> + </xsl:choose> + </xsl:param> + <xsl:param name="section"/> + <xsl:param name="dirname"> + <xsl:if test="not($man.output.in.separate.dir = 0)"> + <xsl:choose> + <xsl:when test="not($man.output.subdirs.enabled = 0)"> + <xsl:variable name="lang.subdir"> + <xsl:if test="not($man.output.lang.in.name.enabled = 0)"> + <!-- * user has man.output.lang.in.name.enabled set, so --> + <!-- * we need to add a $lang subdir --> + <xsl:value-of select="concat($lang, '/')"/> + </xsl:if> + </xsl:variable> + <xsl:value-of + select="concat($man.output.base.dir, $lang.subdir, + 'man', normalize-space($section), '/')"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$man.output.base.dir"/> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:param> + <xsl:call-template name="string.subst"> + <!-- * To create the man filename, replace any spaces in filename with --> + <!-- * underscores and then append a dot plus a section number. --> + <xsl:with-param name="string" + select="concat($dirname, + normalize-space($name.with.lang), + '.', normalize-space($section))"/> + <xsl:with-param name="target" select="' '"/> + <xsl:with-param name="replacement" select="'_'"/> + </xsl:call-template> + </xsl:template> + + <!-- ================================================================== --> + + <!-- * Put a horizontal rule or other divider around section titles --> + <!-- * in roff source (just to make things easier to read). --> + <xsl:template name="mark.subheading"> + <xsl:if test="$man.subheading.divider.enabled != 0"> + <xsl:text>.\" </xsl:text> + <xsl:value-of select="$man.subheading.divider"/> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:template> + +</xsl:stylesheet> From boxbackup-dev at boxbackup.org Sun Apr 26 21:08:34 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 21:08:34 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2516 - box/trunk/docs/api-notes Message-ID: <20090426200834.188F232501F@www.boxbackup.org> Author: chris Date: 2009-04-26 21:08:33 +0100 (Sun, 26 Apr 2009) New Revision: 2516 Modified: box/trunk/docs/api-notes/win32_build_on_cygwin_using_mingw.txt Log: Add a note to win32 build instructions that libxslt is required. Modified: box/trunk/docs/api-notes/win32_build_on_cygwin_using_mingw.txt =================================================================== --- box/trunk/docs/api-notes/win32_build_on_cygwin_using_mingw.txt 2009-04-26 20:01:15 UTC (rev 2515) +++ box/trunk/docs/api-notes/win32_build_on_cygwin_using_mingw.txt 2009-04-26 20:08:33 UTC (rev 2516) @@ -18,7 +18,7 @@ * Devel/make * Devel/mingw-runtime * Lib/libxml2 - * Lib/libxslt + * Lib/libxslt (for xsltproc) * Mingw/mingw-zlib * Perl/Perl From boxbackup-dev at boxbackup.org Sun Apr 26 22:12:40 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 22:12:40 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2517 - in box/trunk/docs: . api-notes Message-ID: <20090426211240.134DD32501F@www.boxbackup.org> Author: chris Date: 2009-04-26 22:12:39 +0100 (Sun, 26 Apr 2009) New Revision: 2517 Modified: box/trunk/docs/ box/trunk/docs/api-notes/ Log: Remove svn:mergeinfo property, not needed. Property changes on: box/trunk/docs ___________________________________________________________________ Deleted: svn:mergeinfo - Property changes on: box/trunk/docs/api-notes ___________________________________________________________________ Deleted: svn:mergeinfo - From boxbackup-dev at boxbackup.org Sun Apr 26 22:13:47 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 22:13:47 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2518 - in box/trunk: . infrastructure Message-ID: <20090426211347.3000232501F@www.boxbackup.org> Author: chris Date: 2009-04-26 22:13:46 +0100 (Sun, 26 Apr 2009) New Revision: 2518 Modified: box/trunk/infrastructure/makeparcels.pl.in box/trunk/parcels.txt Log: Include html docs in parcels. Don't include man pages in parcels for Windows. Modified: box/trunk/infrastructure/makeparcels.pl.in =================================================================== --- box/trunk/infrastructure/makeparcels.pl.in 2009-04-26 21:12:39 UTC (rev 2517) +++ box/trunk/infrastructure/makeparcels.pl.in 2009-04-26 21:13:46 UTC (rev 2518) @@ -66,6 +66,19 @@ next; } next if (m'\AEND-ONLY'); + + if (m'\AEXCEPT:(.+)') + { + if (os_matches($1)) + { + while (<PARCELS>) + { + last if m'\AEND-EXCEPT'; + } + } + next; + } + next if (m'\AEND-EXCEPT'); # new parcel, or a new parcel definition? if(m/\A\s+(.+)\Z/) @@ -228,6 +241,24 @@ EOF push @parcel_deps, "$dir/${name}.gz"; } + elsif($type eq 'html') + { + print MAKE <<EOF; +$dir/docs/${name}.html: docs/htmlguide/man-html/${name}.html + mkdir -p $dir/docs + $copy_command docs/htmlguide/man-html/${name}.html $dir/docs + +EOF + # Releases have the docs pre-made, but users + # may want to rebuild them for some reason. + print MAKE <<EOF; +.PHONY: docs/htmlguide/man-html/${name}.html +docs/htmlguide/man-html/${name}.html: + \$(MAKE) -C docs htmlguide/man-html/${name}.html + +EOF + push @parcel_deps, "$dir/docs/${name}.html"; + } } print MAKE <<EOF; Modified: box/trunk/parcels.txt =================================================================== --- box/trunk/parcels.txt 2009-04-26 21:12:39 UTC (rev 2517) +++ box/trunk/parcels.txt 2009-04-26 21:13:46 UTC (rev 2518) @@ -9,11 +9,20 @@ bin bbackupctl script bin/bbackupd/bbackupd-config noinstall script LICENSE.txt + + html bbackupd + html bbackupquery + html bbackupctl + html bbackupd-config + html bbackupd.conf + +EXCEPT:mingw32,mingw32msvc man bbackupd.8 man bbackupquery.8 man bbackupctl.8 man bbackupd-config.8 man bbackupd.conf.5 +END-EXCEPT ONLY:mingw32,mingw32msvc script bin/bbackupd/win32/installer.iss @@ -22,6 +31,7 @@ END-ONLY ONLY:mingw32 + script /bin/mgwz.dll script /bin/mingwm10.dll END-ONLY @@ -41,6 +51,16 @@ script bin/bbstored/bbstored-config script lib/raidfile/raidfile-config noinstall script LICENSE.txt + + html bbstored + html bbstoreaccounts + html bbstored-certs + html bbstored-config + html raidfile-config + html bbstored.conf + html raidfile.conf + +EXCEPT:mingw32,mingw32msvc man bbstored.8 man bbstoreaccounts.8 man bbstored-certs.8 @@ -48,6 +68,7 @@ man raidfile-config.8 man bbstored.conf.5 man raidfile.conf.5 +END-EXCEPT ONLY:SunOS script contrib/solaris/bbstored-manifest.xml lib/svc/manifest From boxbackup-dev at boxbackup.org Sun Apr 26 23:00:24 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 23:00:24 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2519 - box/trunk/contrib/mac_osx Message-ID: <20090426220024.D3FA432501F@www.boxbackup.org> Author: chris Date: 2009-04-26 23:00:23 +0100 (Sun, 26 Apr 2009) New Revision: 2519 Modified: box/trunk/contrib/mac_osx/org.boxbackup.bbackupd.plist.in box/trunk/contrib/mac_osx/org.boxbackup.bbstored.plist.in Log: Remove more svn:mergeinfo properties. Property changes on: box/trunk/contrib/mac_osx/org.boxbackup.bbackupd.plist.in ___________________________________________________________________ Deleted: svn:mergeinfo - Property changes on: box/trunk/contrib/mac_osx/org.boxbackup.bbstored.plist.in ___________________________________________________________________ Deleted: svn:mergeinfo - From boxbackup-dev at boxbackup.org Sun Apr 26 23:00:44 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 23:00:44 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2520 - box/trunk/lib/win32 Message-ID: <20090426220044.D08AF32501F@www.boxbackup.org> Author: chris Date: 2009-04-26 23:00:44 +0100 (Sun, 26 Apr 2009) New Revision: 2520 Modified: box/trunk/lib/win32/getopt_long.cpp Log: Remove more svn:mergeinfo properties. Property changes on: box/trunk/lib/win32/getopt_long.cpp ___________________________________________________________________ Deleted: svn:mergeinfo - From boxbackup-dev at boxbackup.org Sun Apr 26 23:18:51 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Sun, 26 Apr 2009 23:18:51 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2521 - box/chris/win32/releases Message-ID: <20090426221851.BE70C32501F@www.boxbackup.org> Author: chris Date: 2009-04-26 23:18:51 +0100 (Sun, 26 Apr 2009) New Revision: 2521 Added: box/chris/win32/releases/boxbackup-trunk_2520-backup-client-mingw32.zip Log: Upload new Windows client release 2520. Added: box/chris/win32/releases/boxbackup-trunk_2520-backup-client-mingw32.zip =================================================================== (Binary files differ) Property changes on: box/chris/win32/releases/boxbackup-trunk_2520-backup-client-mingw32.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From boxbackup-dev at boxbackup.org Tue Apr 28 00:50:22 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Tue, 28 Apr 2009 00:50:22 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2522 - box/trunk/lib/common Message-ID: <20090427235022.5140032501F@www.boxbackup.org> Author: chris Date: 2009-04-28 00:50:21 +0100 (Tue, 28 Apr 2009) New Revision: 2522 Modified: box/trunk/lib/common/Test.h Log: Fix test failure due to operator precedence problem with recently checked in system exit code comparison. Modified: box/trunk/lib/common/Test.h =================================================================== --- box/trunk/lib/common/Test.h 2009-04-26 22:18:51 UTC (rev 2521) +++ box/trunk/lib/common/Test.h 2009-04-27 23:50:21 UTC (rev 2522) @@ -25,7 +25,7 @@ #define BBSTORED "../../bin/bbstored/bbstored" #define BBACKUPQUERY "../../bin/bbackupquery/bbackupquery" #define BBSTOREACCOUNTS "../../bin/bbstoreaccounts/bbstoreaccounts" -#define TEST_RETURN(actual, expected) TEST_EQUAL(expected << 8, actual); +#define TEST_RETURN(actual, expected) TEST_EQUAL((expected << 8), actual); #endif extern int failures; From boxbackup-dev at boxbackup.org Thu Apr 30 21:25:08 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Thu, 30 Apr 2009 21:25:08 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2523 - box/boxbackup-web Message-ID: <20090430202509.01FC1325037@www.boxbackup.org> Author: chris Date: 2009-04-30 21:25:08 +0100 (Thu, 30 Apr 2009) New Revision: 2523 Modified: box/boxbackup-web/index.html Log: Fix link to wiki. Modified: box/boxbackup-web/index.html =================================================================== --- box/boxbackup-web/index.html 2009-04-27 23:50:21 UTC (rev 2522) +++ box/boxbackup-web/index.html 2009-04-30 20:25:08 UTC (rev 2523) @@ -433,7 +433,7 @@ <h2>Documentation</h2> <div style="border:2px solid gray; padding:4px"> -The <a href="http://bbdev.fluffy.co.uk/trac/wiki">Box Backup wiki</a> contains user contributed +The <a href="/trac/wiki">Box Backup wiki</a> contains user contributed documentation, based on the documents below. Please use it for up to date information about Box Backup. </div> From boxbackup-dev at boxbackup.org Thu Apr 30 21:25:22 2009 From: boxbackup-dev at boxbackup.org (boxbackup-dev at boxbackup.org) Date: Thu, 30 Apr 2009 21:25:22 +0100 (BST) Subject: [Box Backup-commit] COMMIT r2524 - box/boxbackup-web Message-ID: <20090430202522.3A890326026@www.boxbackup.org> Author: chris Date: 2009-04-30 21:25:22 +0100 (Thu, 30 Apr 2009) New Revision: 2524 Modified: box/boxbackup-web/accounts.html Log: Link to client setup docs. Modified: box/boxbackup-web/accounts.html =================================================================== --- box/boxbackup-web/accounts.html 2009-04-30 20:25:08 UTC (rev 2523) +++ box/boxbackup-web/accounts.html 2009-04-30 20:25:22 UTC (rev 2524) @@ -106,8 +106,8 @@ in the raidfile.conf are not writable by the _bbstored user -- fix it, and try again.</p> <p>Finally, tell the user their account number, and the hostname of your server. They will use this to -set up the backup client, and send you a CSR. This has the account number embedded in it, and you should -be sure that it has the right account number in it.</p> +<a href="client.html">set up the backup client</a>, and send you a CSR. This has the account number embedded +in it, and you should be sure that it has the right account number in it.</p> <p>Sign this CSR with</p>