diff --git a/docs/api.md b/docs/api.md
index e6a49df..18c6dfe 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -11991,6 +11991,7 @@
 - isBound
 - isChangeOmitted
 - isClusterEnabled
+- isFabricSensitive
 - isGlobalAttribute
 - isIncluded
 - isManufacturingSpecific
@@ -13128,6 +13129,7 @@
 - id
 - isArray
 - isChangeOmitted
+- isFabricSensitive
 - isNullable
 - isOptional
 - isReadable
@@ -21878,6 +21880,7 @@
     * [~prepareClusterGlobalAttribute(cluster)](#module_Loader API_ Loader APIs..prepareClusterGlobalAttribute) ⇒
     * [~extractAccessTag(ac)](#module_Loader API_ Loader APIs..extractAccessTag) ⇒
     * [~extractAccessIntoArray(xmlElement)](#module_Loader API_ Loader APIs..extractAccessIntoArray) ⇒
+    * [~isAccessFabricSensitive(xmlElement)](#module_Loader API_ Loader APIs..isAccessFabricSensitive) ⇒
     * [~prepareCluster(cluster)](#module_Loader API_ Loader APIs..prepareCluster) ⇒
     * [~processClusters(db, filePath, packageId, data)](#module_Loader API_ Loader APIs..processClusters) ⇒
     * [~processClusterGlobalAttributes(db, filePath, packageId, data)](#module_Loader API_ Loader APIs..processClusterGlobalAttributes) ⇒
@@ -22692,6 +22695,21 @@
 | --- | --- |
 | xmlElement | <code>\*</code> | 
 
+<a name="module_Loader API_ Loader APIs..isAccessFabricSensitive"></a>
+
+### Loader API: Loader APIs~isAccessFabricSensitive(xmlElement) ⇒
+Check whether any <access fabricSensitive="true"/> child is present on the
+given parsed XML element. For attributes, the CSA data model only uses this
+form (not isFabricSensitive on the attribute start tag), e.g.
+  <access read="true" readPrivilege="manage" fabricSensitive="true"/>
+
+**Kind**: inner method of [<code>Loader API: Loader APIs</code>](#module_Loader API_ Loader APIs)  
+**Returns**: Whether any access child has fabricSensitive="true"  
+
+| Param | Type | Description |
+| --- | --- | --- |
+| xmlElement | <code>\*</code> | xml2js-parsed element that may contain an `access` array |
+
 <a name="module_Loader API_ Loader APIs..prepareCluster"></a>
 
 ### Loader API: Loader APIs~prepareCluster(cluster) ⇒
@@ -23739,6 +23757,7 @@
     * [~prepareClusterGlobalAttribute(cluster)](#module_Loader API_ Loader APIs..prepareClusterGlobalAttribute) ⇒
     * [~extractAccessTag(ac)](#module_Loader API_ Loader APIs..extractAccessTag) ⇒
     * [~extractAccessIntoArray(xmlElement)](#module_Loader API_ Loader APIs..extractAccessIntoArray) ⇒
+    * [~isAccessFabricSensitive(xmlElement)](#module_Loader API_ Loader APIs..isAccessFabricSensitive) ⇒
     * [~prepareCluster(cluster)](#module_Loader API_ Loader APIs..prepareCluster) ⇒
     * [~processClusters(db, filePath, packageId, data)](#module_Loader API_ Loader APIs..processClusters) ⇒
     * [~processClusterGlobalAttributes(db, filePath, packageId, data)](#module_Loader API_ Loader APIs..processClusterGlobalAttributes) ⇒
@@ -24553,6 +24572,21 @@
 | --- | --- |
 | xmlElement | <code>\*</code> | 
 
+<a name="module_Loader API_ Loader APIs..isAccessFabricSensitive"></a>
+
+### Loader API: Loader APIs~isAccessFabricSensitive(xmlElement) ⇒
+Check whether any <access fabricSensitive="true"/> child is present on the
+given parsed XML element. For attributes, the CSA data model only uses this
+form (not isFabricSensitive on the attribute start tag), e.g.
+  <access read="true" readPrivilege="manage" fabricSensitive="true"/>
+
+**Kind**: inner method of [<code>Loader API: Loader APIs</code>](#module_Loader API_ Loader APIs)  
+**Returns**: Whether any access child has fabricSensitive="true"  
+
+| Param | Type | Description |
+| --- | --- | --- |
+| xmlElement | <code>\*</code> | xml2js-parsed element that may contain an `access` array |
+
 <a name="module_Loader API_ Loader APIs..prepareCluster"></a>
 
 ### Loader API: Loader APIs~prepareCluster(cluster) ⇒
@@ -25600,6 +25634,7 @@
     * [~prepareClusterGlobalAttribute(cluster)](#module_Loader API_ Loader APIs..prepareClusterGlobalAttribute) ⇒
     * [~extractAccessTag(ac)](#module_Loader API_ Loader APIs..extractAccessTag) ⇒
     * [~extractAccessIntoArray(xmlElement)](#module_Loader API_ Loader APIs..extractAccessIntoArray) ⇒
+    * [~isAccessFabricSensitive(xmlElement)](#module_Loader API_ Loader APIs..isAccessFabricSensitive) ⇒
     * [~prepareCluster(cluster)](#module_Loader API_ Loader APIs..prepareCluster) ⇒
     * [~processClusters(db, filePath, packageId, data)](#module_Loader API_ Loader APIs..processClusters) ⇒
     * [~processClusterGlobalAttributes(db, filePath, packageId, data)](#module_Loader API_ Loader APIs..processClusterGlobalAttributes) ⇒
@@ -26414,6 +26449,21 @@
 | --- | --- |
 | xmlElement | <code>\*</code> | 
 
+<a name="module_Loader API_ Loader APIs..isAccessFabricSensitive"></a>
+
+### Loader API: Loader APIs~isAccessFabricSensitive(xmlElement) ⇒
+Check whether any <access fabricSensitive="true"/> child is present on the
+given parsed XML element. For attributes, the CSA data model only uses this
+form (not isFabricSensitive on the attribute start tag), e.g.
+  <access read="true" readPrivilege="manage" fabricSensitive="true"/>
+
+**Kind**: inner method of [<code>Loader API: Loader APIs</code>](#module_Loader API_ Loader APIs)  
+**Returns**: Whether any access child has fabricSensitive="true"  
+
+| Param | Type | Description |
+| --- | --- | --- |
+| xmlElement | <code>\*</code> | xml2js-parsed element that may contain an `access` array |
+
 <a name="module_Loader API_ Loader APIs..prepareCluster"></a>
 
 ### Loader API: Loader APIs~prepareCluster(cluster) ⇒
@@ -27461,6 +27511,7 @@
     * [~prepareClusterGlobalAttribute(cluster)](#module_Loader API_ Loader APIs..prepareClusterGlobalAttribute) ⇒
     * [~extractAccessTag(ac)](#module_Loader API_ Loader APIs..extractAccessTag) ⇒
     * [~extractAccessIntoArray(xmlElement)](#module_Loader API_ Loader APIs..extractAccessIntoArray) ⇒
+    * [~isAccessFabricSensitive(xmlElement)](#module_Loader API_ Loader APIs..isAccessFabricSensitive) ⇒
     * [~prepareCluster(cluster)](#module_Loader API_ Loader APIs..prepareCluster) ⇒
     * [~processClusters(db, filePath, packageId, data)](#module_Loader API_ Loader APIs..processClusters) ⇒
     * [~processClusterGlobalAttributes(db, filePath, packageId, data)](#module_Loader API_ Loader APIs..processClusterGlobalAttributes) ⇒
@@ -28275,6 +28326,21 @@
 | --- | --- |
 | xmlElement | <code>\*</code> | 
 
+<a name="module_Loader API_ Loader APIs..isAccessFabricSensitive"></a>
+
+### Loader API: Loader APIs~isAccessFabricSensitive(xmlElement) ⇒
+Check whether any <access fabricSensitive="true"/> child is present on the
+given parsed XML element. For attributes, the CSA data model only uses this
+form (not isFabricSensitive on the attribute start tag), e.g.
+  <access read="true" readPrivilege="manage" fabricSensitive="true"/>
+
+**Kind**: inner method of [<code>Loader API: Loader APIs</code>](#module_Loader API_ Loader APIs)  
+**Returns**: Whether any access child has fabricSensitive="true"  
+
+| Param | Type | Description |
+| --- | --- | --- |
+| xmlElement | <code>\*</code> | xml2js-parsed element that may contain an `access` array |
+
 <a name="module_Loader API_ Loader APIs..prepareCluster"></a>
 
 ### Loader API: Loader APIs~prepareCluster(cluster) ⇒
diff --git a/docs/helpers.md b/docs/helpers.md
index 96062d4..ecae917 100644
--- a/docs/helpers.md
+++ b/docs/helpers.md
@@ -3020,6 +3020,7 @@
 - isBound
 - isChangeOmitted
 - isClusterEnabled
+- isFabricSensitive
 - isGlobalAttribute
 - isIncluded
 - isManufacturingSpecific
@@ -4157,6 +4158,7 @@
 - id
 - isArray
 - isChangeOmitted
+- isFabricSensitive
 - isNullable
 - isOptional
 - isReadable
diff --git a/src-electron/db/db-mapping.js b/src-electron/db/db-mapping.js
index ca4058e..2139284 100644
--- a/src-electron/db/db-mapping.js
+++ b/src-electron/db/db-mapping.js
@@ -115,6 +115,7 @@
       isReadable: dbApi.fromDbBool(x.IS_READABLE),
       isReadableAttribute: dbApi.fromDbBool(x.IS_READABLE),
       isNullable: dbApi.fromDbBool(x.IS_NULLABLE),
+      isFabricSensitive: dbApi.fromDbBool(x.IS_FABRIC_SENSITIVE),
       defaultValue: x.DEFAULT_VALUE,
       isOptional: dbApi.fromDbBool(x.IS_OPTIONAL),
       isReportable:
@@ -726,6 +727,7 @@
         x.MANUFACTURER_CODE | x.CLUSTER_MANUFACTURER_CODE
       ), // Is Attribute mfg specific or not
       isNullable: dbApi.fromDbBool(x.IS_NULLABLE), // Is attribute nullable
+      isFabricSensitive: dbApi.fromDbBool(x.IS_FABRIC_SENSITIVE), // Is attribute fabric sensitive
       isOptionalAttribute: dbApi.fromDbBool(x.IS_OPTIONAL),
       isReportableAttribute: dbApi.fromDbBool(x.INCLUDED_REPORTABLE), // Is attribute reportable
       isSceneRequired: dbApi.fromDbBool(x.IS_SCENE_REQUIRED),
diff --git a/src-electron/db/query-attribute.js b/src-electron/db/query-attribute.js
index 2638e62..460a75c 100644
--- a/src-electron/db/query-attribute.js
+++ b/src-electron/db/query-attribute.js
@@ -174,6 +174,7 @@
      ATTRIBUTE.IS_WRITABLE,
      ATTRIBUTE.IS_READABLE,
      ATTRIBUTE.IS_NULLABLE,
+     ATTRIBUTE.IS_FABRIC_SENSITIVE,
      ATTRIBUTE.MAX_LENGTH,
      ATTRIBUTE.MIN_LENGTH,
      ATTRIBUTE.MIN,
@@ -882,6 +883,7 @@
   A.REPORTING_POLICY,
   A.STORAGE_POLICY,
   A.IS_NULLABLE,
+  A.IS_FABRIC_SENSITIVE,
   A.IS_SCENE_REQUIRED,
   A.ARRAY_TYPE,
   A.MUST_USE_TIMED_WRITE,
@@ -950,6 +952,7 @@
   A.REPORTING_POLICY,
   A.STORAGE_POLICY,
   A.IS_NULLABLE,
+  A.IS_FABRIC_SENSITIVE,
   A.IS_SCENE_REQUIRED,
   A.ARRAY_TYPE,
   A.MUST_USE_TIMED_WRITE,
diff --git a/src-electron/db/query-endpoint.js b/src-electron/db/query-endpoint.js
index 119638e..bd4c8a3 100644
--- a/src-electron/db/query-endpoint.js
+++ b/src-electron/db/query-endpoint.js
@@ -277,6 +277,7 @@
   A.IS_WRITABLE,
   A.IS_READABLE,
   A.IS_NULLABLE,
+  A.IS_FABRIC_SENSITIVE,
   A.MUST_USE_TIMED_WRITE,
   A.IS_SCENE_REQUIRED,
   A.IS_OPTIONAL,
@@ -331,6 +332,7 @@
       isWritable: dbApi.fromDbBool(row.IS_WRITABLE),
       isReadable: dbApi.fromDbBool(row.IS_READABLE),
       isNullable: dbApi.fromDbBool(row.IS_NULLABLE),
+      isFabricSensitive: dbApi.fromDbBool(row.IS_FABRIC_SENSITIVE),
       mustUseTimedWrite: dbApi.fromDbBool(row.MUST_USE_TIMED_WRITE),
       isSceneRequired: dbApi.fromDbBool(row.IS_SCENE_REQUIRED),
       isOptional: dbApi.fromDbBool(row.IS_OPTIONA),
diff --git a/src-electron/db/query-loader.js b/src-electron/db/query-loader.js
index b6ab921..cc394a5 100644
--- a/src-electron/db/query-loader.js
+++ b/src-electron/db/query-loader.js
@@ -173,6 +173,7 @@
   REPORTING_POLICY,
   STORAGE_POLICY,
   IS_NULLABLE,
+  IS_FABRIC_SENSITIVE,
   IS_SCENE_REQUIRED,
   ARRAY_TYPE,
   MUST_USE_TIMED_WRITE,
@@ -183,7 +184,7 @@
   IS_CHANGE_OMITTED,
   PERSISTENCE
 ) VALUES (
-  ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
+  ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
   (SELECT SPEC_ID FROM SPEC WHERE CODE = ? AND PACKAGE_REF = ?),
   (SELECT SPEC_ID FROM SPEC WHERE CODE = ? AND PACKAGE_REF = ?),
   ?,
@@ -257,6 +258,7 @@
     attribute.reportingPolicy,
     attribute.storagePolicy,
     dbApi.toDbBool(attribute.isNullable),
+    dbApi.toDbBool(attribute.isFabricSensitive),
     dbApi.toDbBool(attribute.isSceneRequired),
     attribute.entryType,
     dbApi.toDbBool(attribute.mustUseTimedWrite),
diff --git a/src-electron/db/query-session-zcl.js b/src-electron/db/query-session-zcl.js
index f3286eb..2acdae7 100644
--- a/src-electron/db/query-session-zcl.js
+++ b/src-electron/db/query-session-zcl.js
@@ -162,6 +162,7 @@
   ATTRIBUTE.IS_OPTIONAL,
   ATTRIBUTE.REPORTING_POLICY,
   ATTRIBUTE.IS_NULLABLE,
+  ATTRIBUTE.IS_FABRIC_SENSITIVE,
   ATTRIBUTE.IS_SCENE_REQUIRED,
   ATTRIBUTE.ARRAY_TYPE,
   ATTRIBUTE.MUST_USE_TIMED_WRITE,
diff --git a/src-electron/db/query-zcl.js b/src-electron/db/query-zcl.js
index 371266e..811bbbf 100644
--- a/src-electron/db/query-zcl.js
+++ b/src-electron/db/query-zcl.js
@@ -709,6 +709,7 @@
   REPORTING_POLICY,
   STORAGE_POLICY,
   IS_NULLABLE,
+  IS_FABRIC_SENSITIVE,
   IS_SCENE_REQUIRED,
   ARRAY_TYPE,
   MUST_USE_TIMED_WRITE,
@@ -768,6 +769,7 @@
   REPORTING_POLICY,
   STORAGE_POLICY,
   IS_NULLABLE,
+  IS_FABRIC_SENSITIVE,
   IS_SCENE_REQUIRED,
   ARRAY_TYPE,
   MUST_USE_TIMED_WRITE,
@@ -836,6 +838,7 @@
   A.REPORTING_POLICY,
   A.STORAGE_POLICY,
   A.IS_NULLABLE,
+  A.IS_FABRIC_SENSITIVE,
   A.IS_SCENE_REQUIRED,
   A.ARRAY_TYPE,
   A.MUST_USE_TIMED_WRITE,
@@ -891,6 +894,7 @@
   REPORTING_POLICY,
   STORAGE_POLICY,
   IS_NULLABLE,
+  IS_FABRIC_SENSITIVE,
   IS_SCENE_REQUIRED,
   ARRAY_TYPE,
   MUST_USE_TIMED_WRITE,
@@ -959,6 +963,7 @@
   A.REPORTING_POLICY,
   A.STORAGE_POLICY,
   A.IS_NULLABLE,
+  A.IS_FABRIC_SENSITIVE,
   A.IS_SCENE_REQUIRED,
   A.ARRAY_TYPE,
   A.MUST_USE_TIMED_WRITE,
@@ -1009,6 +1014,7 @@
   A.REPORTING_POLICY,
   A.STORAGE_POLICY,
   A.IS_NULLABLE,
+  A.IS_FABRIC_SENSITIVE,
   A.IS_SCENE_REQUIRED,
   A.ARRAY_TYPE,
   A.MUST_USE_TIMED_WRITE,
@@ -1067,6 +1073,7 @@
   REPORTING_POLICY,
   STORAGE_POLICY,
   IS_NULLABLE,
+  IS_FABRIC_SENSITIVE,
   IS_SCENE_REQUIRED,
   ARRAY_TYPE,
   MUST_USE_TIMED_WRITE,
diff --git a/src-electron/db/zap-schema.sql b/src-electron/db/zap-schema.sql
index 859e177..0f43b2b 100644
--- a/src-electron/db/zap-schema.sql
+++ b/src-electron/db/zap-schema.sql
@@ -300,6 +300,7 @@
   "REPORTING_POLICY" text,
   "STORAGE_POLICY" text,
   "IS_NULLABLE" integer,
+  "IS_FABRIC_SENSITIVE" integer,
   "ARRAY_TYPE" text,
   "MUST_USE_TIMED_WRITE" integer,
   "INTRODUCED_IN_REF" integer,
diff --git a/src-electron/generator/helper-tokens.js b/src-electron/generator/helper-tokens.js
index 7bc8dca..a70cbc6 100644
--- a/src-electron/generator/helper-tokens.js
+++ b/src-electron/generator/helper-tokens.js
@@ -303,6 +303,7 @@
  * - isBound
  * - isChangeOmitted
  * - isClusterEnabled
+ * - isFabricSensitive
  * - isGlobalAttribute
  * - isIncluded
  * - isManufacturingSpecific
diff --git a/src-electron/generator/helper-zcl.js b/src-electron/generator/helper-zcl.js
index 52ea3c5..831f818 100644
--- a/src-electron/generator/helper-zcl.js
+++ b/src-electron/generator/helper-zcl.js
@@ -1011,6 +1011,7 @@
  * - id
  * - isArray
  * - isChangeOmitted
+ * - isFabricSensitive
  * - isNullable
  * - isOptional
  * - isReadable
diff --git a/src-electron/zcl/zcl-loader-silabs.js b/src-electron/zcl/zcl-loader-silabs.js
index 71beb91..7fdf028 100644
--- a/src-electron/zcl/zcl-loader-silabs.js
+++ b/src-electron/zcl/zcl-loader-silabs.js
@@ -446,6 +446,23 @@
 }
 
 /**
+ * Check whether any <access fabricSensitive="true"/> child is present on the
+ * given parsed XML element. For attributes, the CSA data model only uses this
+ * form (not isFabricSensitive on the attribute start tag), e.g.
+ *   <access read="true" readPrivilege="manage" fabricSensitive="true"/>
+ *
+ * @param {*} xmlElement xml2js-parsed element that may contain an `access` array
+ * @returns Whether any access child has fabricSensitive="true"
+ */
+function isAccessFabricSensitive(xmlElement) {
+  if (!('access' in xmlElement)) return false
+  for (const ac of xmlElement.access) {
+    if (ac && ac.$ && ac.$.fabricSensitive == 'true') return true
+  }
+  return false
+}
+
+/**
  * Prepare XML cluster for insertion into the database.
  * This method can also prepare clusterExtensions.
  *
@@ -706,6 +723,7 @@
         introducedIn: attribute.$.introducedIn,
         removedIn: attribute.$.removedIn,
         isNullable: attribute.$.isNullable == 'true' ? true : false,
+        isFabricSensitive: isAccessFabricSensitive(attribute),
         entryType: attribute.$.entryType,
         mustUseTimedWrite: attribute.$.mustUseTimedWrite == 'true',
         apiMaturity: attribute.$.apiMaturity,
diff --git a/test/gen-meta.test.js b/test/gen-meta.test.js
index 8ef22e0..9b66695 100644
--- a/test/gen-meta.test.js
+++ b/test/gen-meta.test.js
@@ -28,6 +28,7 @@
 const queryPackage = require('../src-electron/db/query-package')
 const queryZcl = require('../src-electron/db/query-zcl')
 const queryAccess = require('../src-electron/db/query-access')
+const queryEvent = require('../src-electron/db/query-event')
 
 let db
 const testFile = path.join(__dirname, 'resource/test-meta.zap')
@@ -89,6 +90,8 @@
       } else if (attr.name == 'at2') {
         hasAt2 = true
 
+        expect(attr.isFabricSensitive).toBe(true)
+
         let access = await queryAccess.selectAttributeAccess(db, attr.id)
         expect(access.length).toBe(1)
         expect(access[0].operation).toBeNull()
@@ -99,6 +102,20 @@
     expect(hasAt1).toBeTruthy()
     expect(hasAt2).toBeTruthy()
 
+    let test2Cluster = await queryZcl.selectClusterByCode(
+      db,
+      zclContext.packageId,
+      0xabce
+    )
+    expect(test2Cluster).not.toBeNull()
+    let cluster2Events = await queryEvent.selectEventsByClusterId(
+      db,
+      test2Cluster.id
+    )
+    let helloEvent = cluster2Events.find((e) => e.name === 'HelloEvent')
+    expect(helloEvent).toBeDefined()
+    expect(helloEvent.isFabricSensitive).toBe(true)
+
     const structs = await queryZcl.selectAllStructsWithItemCount(db, [
       zclContext.packageId
     ])
diff --git a/test/resource/meta/test1.xml b/test/resource/meta/test1.xml
index 3d096f8..38445d0 100644
--- a/test/resource/meta/test1.xml
+++ b/test/resource/meta/test1.xml
@@ -34,7 +34,8 @@
     </attribute>
     <attribute side="server" code="0x0001" define="AT2" type="INT16U" writable="false" optional="true" isNullable="true" reportingPolicy="mandatory">
       <description>at2</description>
-      <access modifier="fabric-sensitive"/>
+      <!-- CSA style fabricSensitive on access (path used for ATTRIBUTE.IS_FABRIC_SENSITIVE); keep modifier for access UI/tests -->
+      <access modifier="fabric-sensitive" fabricSensitive="true"/>
     </attribute>
     <command source="client" code="0x01" name="TestCommand1" optional="false" isFabricScoped="true">
       <description>TestCmd1</description>
@@ -63,7 +64,7 @@
     </attribute>
     <attribute side="server" code="0x0001" define="AT2" type="INT16U" writable="false" optional="true" isNullable="true" reportingPolicy="prohibited">
       <description>at2</description>
-      <access modifier="fabric-sensitive"/>
+      <access modifier="fabric-sensitive" fabricSensitive="true"/>
     </attribute>
     <command source="client" code="0x01" name="TestCommand1" optional="false">
       <description>TestCmd1</description>
diff --git a/zcl-builtin/shared/schema/zcl.xsd b/zcl-builtin/shared/schema/zcl.xsd
index 4f44213..df1d125 100644
--- a/zcl-builtin/shared/schema/zcl.xsd
+++ b/zcl-builtin/shared/schema/zcl.xsd
@@ -27,6 +27,17 @@
     <xs:attribute name="role" type="xs:string"/>
     <xs:attribute name="privilege" type="xs:string"/>
     <xs:attribute name="modifier" type="xs:string"/>
+    <!-- Matter CSA data model: fabric-sensitive quality on attribute/event/command access -->
+    <xs:attribute name="fabricSensitive" type="xs:boolean"/>
+    <!-- CSA-style mirrors of op/role (see connectedhomeip data_model XML) -->
+    <xs:attribute name="read" type="xs:boolean"/>
+    <xs:attribute name="write" type="xs:boolean"/>
+    <xs:attribute name="invoke" type="xs:boolean"/>
+    <xs:attribute name="readPrivilege" type="xs:string"/>
+    <xs:attribute name="writePrivilege" type="xs:string"/>
+    <xs:attribute name="invokePrivilege" type="xs:string"/>
+    <xs:attribute name="timed" type="xs:boolean"/>
+    <xs:attribute name="fabricScoped" type="xs:boolean"/>
   </xs:complexType>
   <xs:complexType name="eventField">
     <xs:attribute name="id" type="xs:string" use="optional"/>
@@ -697,6 +708,15 @@
       <xs:attribute name="role" type="xs:string" use="required"/>
       <xs:attribute name="privilege" type="xs:string" use="optional"/>
       <xs:attribute name="modifier" type="xs:string" use="optional"/>
+      <xs:attribute name="fabricSensitive" type="xs:boolean" use="optional"/>
+      <xs:attribute name="read" type="xs:boolean" use="optional"/>
+      <xs:attribute name="write" type="xs:boolean" use="optional"/>
+      <xs:attribute name="invoke" type="xs:boolean" use="optional"/>
+      <xs:attribute name="readPrivilege" type="xs:string" use="optional"/>
+      <xs:attribute name="writePrivilege" type="xs:string" use="optional"/>
+      <xs:attribute name="invokePrivilege" type="xs:string" use="optional"/>
+      <xs:attribute name="timed" type="xs:boolean" use="optional"/>
+      <xs:attribute name="fabricScoped" type="xs:boolean" use="optional"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="quality">
