XooCode(){

Legislation

Legislation is a CreativeWork subtype for legal documents: acts, decrees, bills, statutes, regulations, and amendments. With 20 direct properties, it covers the metadata legal databases need: jurisdiction, legislative dates, identifiers, legal force status, passing authority, and relationships to other legislation (amends, repeals, transposes, consolidates). Note: Legislation is in schema.org's pending area, meaning the type is valid but not yet finalized; its exact behavior and properties may evolve.

The type hierarchy is Thing → CreativeWork → Legislation. The most important properties are legislationIdentifier (the bill or act number), legislationDate (when enacted), legislationLegalForce (current status), jurisdiction (geographic scope), and legislationPassedBy (the legislative body that passed it).

Full example of schema.org/Legislation json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Legislation
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@id": "https://palegis.us/acts/2025-PA-SDAA#act",
  "@type": "Legislation",
  "name": "Pennsylvania Structured Data Adoption Act",
  "alternateName": "PA-SDAA-2025",
  "legislationIdentifier": "2025-PA-SDAA-104",
  "legislationDate": "2025-11-12",
  "legislationDateOfApplicability": "2026-01-01",
  "legislationLegalForce": "https://schema.org/InForce",
  "legislationType": "State Tax Credit Act",
  "jurisdiction": { "@type": "AdministrativeArea", "name": "Pennsylvania" },
  "legislationJurisdiction": { "@type": "AdministrativeArea", "name": "Pennsylvania" },
  "legislationPassedBy": {
    "@type": "GovernmentOrganization",
    "name": "Pennsylvania General Assembly"
  },
  "legislationResponsible": {
    "@type": "GovernmentOrganization",
    "name": "Pennsylvania Department of Revenue",
    "url": "https://pa.gov/revenue"
  },
  "url": "https://palegis.us/acts/2025-PA-SDAA",
  "inLanguage": "en",
  "datePublished": "2025-11-15"
}
</script>

legislationLegalForce

legislationLegalForce takes a LegalForceStatus enum value: InForce, NotInForce, or PartiallyInForce. Use the full schema.org URL. This is critical for users searching for current law versus historical or repealed legislation.

Relationship properties

Legislation has 7 properties for relationships to other legislation: legislationAmends, legislationApplies, legislationChanges, legislationConsolidates, legislationCorrects, legislationEnsuresImplementationOf, legislationRepeals, legislationTransposes. Each takes another Legislation entity (typically by @id). These build the legal knowledge graph: an amendment links to the act it amends; a national law transposes an EU directive.

jurisdiction vs legislationJurisdiction

Legislation has both jurisdiction (inherited general-purpose) and legislationJurisdiction (legislation-specific). Both accept AdministrativeArea or Text. Use legislationJurisdiction to be explicit about the legal jurisdiction.

Minimal valid version

The smallest markup that still produces a valid Legislation entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/Legislation (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Legislation",
  "name": "Pennsylvania Structured Data Adoption Act",
  "legislationIdentifier": "2025-PA-SDAA-104",
  "legislationDate": "2025-11-12",
  "legislationLegalForce": "https://schema.org/InForce",
  "jurisdiction": { "@type": "AdministrativeArea", "name": "Pennsylvania" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • No dedicated rich result yet (Legislation is pending)
    Google docs

Common Legislation mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    legislationLegalForce as a plain string

    Wrong
    "legislationLegalForce": "Active"
    Right
    "legislationLegalForce": "https://schema.org/InForce"

    legislationLegalForce takes a LegalForceStatus enum value as a full schema.org URL. The three values are InForce, NotInForce, and PartiallyInForce. Plain text descriptions are not machine-parseable.

  2. 02

    Not flagging Legislation as pending

    Wrong
    Treating Legislation as a stable schema.org type
    Right
    Legislation is in the pending area; properties may change

    Legislation is part of schema.org's pending extensions, not core. The type works in markup, but Google does not have a dedicated rich result, and properties may evolve. Use it where appropriate but expect potential changes.

  3. 03

    Missing jurisdiction

    Wrong
    Legislation with no jurisdiction property
    Right
    "jurisdiction": { "@type": "AdministrativeArea", "name": "Pennsylvania" }

    Jurisdiction defines where the law applies. Without it, the legislation has no geographic scope. Critical for legal databases and search engines distinguishing federal vs state vs municipal law.

About the example data

The fictional Pennsylvania Structured Data Adoption Act, the legislation behind the FinancialIncentive tax credit example. The Pennsylvania Department of Revenue administers it.

Comments

Loading comments...

Leave a comment