The PublicTalkDatabaseReport XML document provides comprehensive data about public talk assignments across three distinct reporting modes: List, Review, and Summary. Each mode serves a specific purpose and produces a different XML structure optimized for various reporting needs.

XML Structure

Root Element: PublicTalkDatabaseReport

The root element contains all talk data, configuration settings, and reporting information for all modes.

Common Elements (All Modes)

1. Settings

Contains configuration and reporting settings that determine the output mode and behavior.

Common Child Elements (All Modes):

  • LanguageCode - Language code (e.g., "en" for English)
  • Direction - Text direction ("ltr" for left-to-right, "rtl" for right-to-left)
  • ForeignGroupMode - Boolean indicating foreign group mode ("true"/"false")
  • ReportMode - One of: "List", "Review", or "Summary"

Mode-Specific Settings:

List Mode Settings:

  • SortOrder - Boolean indicating sort order ("true" = ascending, "false" = descending)
  • SortField - Field to sort by (e.g., "Number", "Theme", "LastInvited")

Review Mode Settings:

  • IncludeCount - Boolean indicating whether to include count information ("true"/"false")
  • IncludeSpeakerInfo - Boolean indicating whether to include speaker information ("true"/"false")
  • Years - Container for year definitions
    • Year (repeating) - Individual year elements
      • Attribute: Year - Year value (e.g., "2023", "2024", "2025")

Summary Mode Settings:

  • No additional settings beyond common ones

Mode-Specific Structures

1. List Mode (ReportMode="List")

Focuses on individual talk assignments with detailed metadata and talk statistics.

Root Container: PublicTalkList

Child Elements:

  • PublicTalk (repeating) - Individual talk records

PublicTalk Element (List Mode)

Attributes:

  • Excluded - Boolean indicating if the talk is excluded from scheduling ("true"/"false")

Child Elements:

  • Number - Talk number (1-194)
  • Count - Number of times the talk has been assigned
  • Theme - Talk theme/title
  • Category - Talk category (matches category display names)
  • OutlineDate - Date when the talk outline was released (MM/YY format)
  • Media - Media availability ("Yes", "No", or specific media types)
  • Note - Additional notes/comments (optional)
  • LastInvited (conditional) - Appears when Count > 0
    • Attributes: Comprehensive date attributes:
      • Day - Day of month (1-31)
      • DayShort - Abbreviated day name (e.g., "Sun")
      • DayFull - Full day name (e.g., "Sunday")
      • Month - Month number (1-12)
      • MonthShort - Abbreviated month name (e.g., "Dec")
      • MonthFull - Full month name (e.g., "December")
      • Year - Full year (e.g., "2025")
      • YearShort - Short year (e.g., "25")
    • Content: Formatted date string (e.g., "08/12/2024")
  • LastInvitedSort (conditional) - ISO format date for sorting (YYYY-MM-DD)
  • NextInvited (conditional) - Future invitation date (same attribute structure as LastInvited)
  • ExcludedFrom (conditional) - Appears when Excluded="true"
    • Attributes: Date attributes (same structure as LastInvited)
    • Content: Formatted exclusion date

Note: PublicTalkCategories section appears only in List mode, containing category definitions.


2. Review Mode (ReportMode="Review")

Shows talk assignments organized by year, providing a historical overview of when each talk was given.

Root Container: PublicTalkReview

Child Elements:

  • PublicTalk (repeating) - Individual talk records organized by year

PublicTalk Element (Review Mode)

Child Elements:

  • Number - Talk number (1-194)
  • Theme - Talk theme/title
  • Years - Container for yearly assignment data
    • Year (repeating) - Year elements for the configured range
      • Attribute: Year - Year value (e.g., "2023", "2024")
      • Attribute: Count (conditional) - Number of times talk was given in that year (appears when count > 0)
      • Child Elements (when Count > 0 and IncludeSpeakerInfo="true"):
        • Speaker - Speaker's name
        • Congregation - Congregation name
        • MeetingDate - Date of the meeting with comprehensive date attributes (same structure as List mode)

3. Summary Mode (ReportMode="Summary")

Provides a chronological schedule of meetings with home and away talk assignments.

Root Container: PublicTalkSummary

Child Elements:

  • Meeting (repeating) - Individual meeting records in chronological order

Meeting Element (Summary Mode)

Attributes:

  • Week - Week identifier (e.g., "W20221226")
  • HomeTalk - Boolean indicating if a home talk is scheduled ("true"/"false")
  • AwayTalk - Boolean indicating if away talks are scheduled ("true"/"false")

Child Elements:

  • Date - Meeting date with comprehensive date attributes (same structure as other modes)
  • HomeTalk (conditional) - Appears when HomeTalk="true"
    • Confirmed - Boolean indicating if the talk is confirmed ("true"/"false")
    • Symposium - Boolean indicating if it's a symposium ("true"/"false")
    • TalkNumber - Talk number (0 for unspecified/circuit visit)
    • Speaker - Speaker's name
    • Congregation - Congregation name
    • ExchangeNotes - Notes about the exchange
  • AwayTalks (conditional) - Container for away talks, appears when AwayTalk="true"
    • AwayTalk (repeating) - Individual away talk assignments
      • Confirmed - Boolean indicating if the talk is confirmed ("true"/"false")
      • TalkNumber - Talk number
      • Speaker - Speaker's name
      • Congregation - Congregation name
      • ExchangeNotes - Notes about the exchange

Data Relationships and Patterns

Common Date Structure

All modes use a consistent date attribute structure:

  • Day attributes: Day, DayShort, DayFull
  • Month attributes: Month, MonthShort, MonthFull
  • Year attributes: Year, YearShort
  • Formatted date string as element content

Talk Numbering

  • Talks are numbered 1-194 in all modes
  • Talk number 0 indicates unspecified/circuit visit in Summary mode

Conditional Elements

  • Many elements appear conditionally based on boolean flags or counts
  • The XSLT transformations handle these conditions appropriately

Example Usage

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="TalkDB--Public Talk Report.xsl"?>

<PublicTalkDatabaseReport>

    <Settings>

        <LanguageCode>en</LanguageCode>

        <Direction>ltr</Direction>

        <ForeignGroupMode>false</ForeignGroupMode>

        <ReportMode>List</ReportMode> <!-- Can be List, Review, or Summary -->

        <!-- Mode-specific settings as needed -->

    </Settings>

    <!-- Mode-specific data container -->

</PublicTalkDatabaseReport>

Processing Instructions

  • All documents include an XSLT processing instruction pointing to "TalkDB--Public Talk Report.xsl"
  • The XSLT file handles the transformation based on the ReportMode setting
  • Date values are provided both as structured attributes and formatted strings for flexibility
  • Conditional rendering in XSLT handles the presence/absence of optional elements

Use Case Recommendations

Use List Mode When:

  • You need a comprehensive catalog of all talks
  • You want to see talk statistics (counts, last invited dates)
  • You need to filter or sort talks by various criteria
  • You want to see talk categories and metadata

Use Review Mode When:

  • You need a historical overview of talk assignments
  • You want to see which talks were given in specific years
  • You need to identify gaps or patterns in talk usage over time
  • You want speaker and congregation information organized by year

Use Summary Mode When:

  • You need a chronological schedule of meetings
  • You want to see both home and away talk assignments
  • You need confirmation status and exchange information
  • You're planning or reviewing the talk schedule week-by-week

Data Consistency Notes

  1. Speaker Names: May include special values like "¬DELETED¬" or empty strings
  2. Talk Number 0: Used in Summary mode for unspecified talks or circuit visits
  3. Date Formats: Consistent MM/DD/YYYY format in content with structured attributes
  4. Boolean Values: Always lowercase "true" or "false" strings
  5. Empty Elements: Some elements may be empty but maintain their structure