Skip to content

Commit 3e3034d

Browse files
dfcoffinclaude
andauthored
docs: Add ESPI 4.0 schema analysis reports for enum implementation (#104) (#105)
Comprehensive analysis of espi.xsd and customer.xsd schemas: - 51 enumeration types documented with all values - 27 resource complex types - 47 supporting complex types - Type inheritance hierarchy - Implementation notes for Java enum mapping Reports: - 00_SCHEMA_ANALYSIS_SUMMARY.md - Overview and index - espi_enumerations.md - Usage/energy schema (35 enums) - customer_enumerations.md - Customer/PII schema (16 enums) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 53f68c3 commit 3e3034d

17 files changed

+10967
-137
lines changed

CONVERSATIONAL_WORKFLOW_GUIDE.md

Lines changed: 635 additions & 0 deletions
Large diffs are not rendered by default.

FILE_LOCATIONS.md

Lines changed: 419 additions & 0 deletions
Large diffs are not rendered by default.

GETTING_STARTED.md

Lines changed: 454 additions & 0 deletions
Large diffs are not rendered by default.

ISSUE_101_IMPLEMENTATION_PLAN.md

Lines changed: 1302 additions & 0 deletions
Large diffs are not rendered by default.

ISSUE_101_IMPLEMENTATION_STRATEGY.md

Lines changed: 758 additions & 0 deletions
Large diffs are not rendered by default.

ISSUE_101_TOOLING_GUIDE.md

Lines changed: 844 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,255 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
~ Copyright (c) 2018-2020 Green Button Alliance, Inc.
4+
~
5+
~ Portions copyright (c) 2013-2018 EnergyOS.org
6+
~
7+
~ Licensed under the Apache License, Version 2.0 (the "License");
8+
~ you may not use this file except in compliance with the License.
9+
~ You may obtain a copy of the License at
10+
~
11+
~ http://www.apache.org/licenses/LICENSE-2.0
12+
~
13+
~ Unless required by applicable law or agreed to in writing, software
14+
~ distributed under the License is distributed on an "AS IS" BASIS,
15+
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+
~ See the License for the specific language governing permissions and
17+
~ limitations under the License.
18+
-->
19+
<xs:schema xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/2005/Atom" elementFormDefault="qualified">
20+
<xs:annotation>
21+
<xs:documentation>
22+
This version of the Atom schema is based on version 1.0 of the format specifications,
23+
found here https://tools.ietf.org/pdf/rfc4287.pdf.
24+
</xs:documentation>
25+
</xs:annotation>
26+
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="https://www.w3.org/2001/03/xml.xsd"/>
27+
<xs:annotation>
28+
<xs:documentation>
29+
An Atom document may have two root elements, feed and entry, as defined in section 2.
30+
</xs:documentation>
31+
</xs:annotation>
32+
<xs:element name="feed" type="atom:feedType"/>
33+
<xs:element name="entry" type="atom:entryType"/>
34+
<xs:complexType name="textType" mixed="true">
35+
<xs:annotation>
36+
<xs:documentation>
37+
The Atom text construct is defined in section 3.1 of the format spec.
38+
</xs:documentation>
39+
</xs:annotation>
40+
<xs:sequence>
41+
<xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="0"/>
42+
</xs:sequence>
43+
<xs:attribute name="type">
44+
<xs:simpleType>
45+
<xs:restriction base="xs:token">
46+
<xs:enumeration value="text"/>
47+
<xs:enumeration value="html"/>
48+
<xs:enumeration value="xhtml"/>
49+
</xs:restriction>
50+
</xs:simpleType>
51+
</xs:attribute>
52+
<xs:attributeGroup ref="atom:commonAttributes"/>
53+
</xs:complexType>
54+
<xs:complexType name="personType">
55+
<xs:annotation>
56+
<xs:documentation>
57+
The Atom person construct is defined in section 3.2 of the format spec.
58+
</xs:documentation>
59+
</xs:annotation>
60+
<xs:choice maxOccurs="unbounded">
61+
<xs:element name="name" type="xs:string"/>
62+
<xs:element name="uri" type="atom:uriType" minOccurs="0"/>
63+
<xs:element name="email" type="atom:emailType" minOccurs="0"/>
64+
<xs:any namespace="##other"/>
65+
</xs:choice>
66+
<xs:attributeGroup ref="atom:commonAttributes"/>
67+
</xs:complexType>
68+
<xs:simpleType name="emailType">
69+
<xs:annotation>
70+
<xs:documentation>
71+
Schema definition for an email address.
72+
</xs:documentation>
73+
</xs:annotation>
74+
<xs:restriction base="xs:normalizedString">
75+
<xs:pattern value="\w+@(\w+\.)+\w+"/>
76+
</xs:restriction>
77+
</xs:simpleType>
78+
<xs:complexType name="feedType">
79+
<xs:annotation>
80+
<xs:documentation>
81+
The Atom feed construct is defined in section 4.1.1 of the format spec.
82+
</xs:documentation>
83+
</xs:annotation>
84+
<xs:choice minOccurs="3" maxOccurs="unbounded">
85+
<xs:element name="author" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
86+
<xs:element name="category" type="atom:categoryType" minOccurs="0" maxOccurs="unbounded"/>
87+
<xs:element name="contributor" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
88+
<xs:element name="generator" type="atom:generatorType" minOccurs="0"/>
89+
<xs:element name="icon" type="atom:iconType" minOccurs="0"/>
90+
<xs:element name="id" type="atom:idType"/>
91+
<xs:element name="link" type="atom:linkType"/>
92+
<xs:element name="logo" type="atom:logoType" minOccurs="0"/>
93+
<xs:element name="rights" type="atom:textType" minOccurs="0"/>
94+
<xs:element name="subtitle" type="atom:textType" minOccurs="0"/>
95+
<xs:element name="title" type="atom:textType"/>
96+
<xs:element name="updated" type="atom:dateTimeType"/>
97+
<xs:element name="entry" type="atom:entryType" maxOccurs="unbounded"/>
98+
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
99+
</xs:choice>
100+
<xs:attributeGroup ref="atom:commonAttributes"/>
101+
</xs:complexType>
102+
<xs:complexType name="entryType">
103+
<xs:annotation>
104+
<xs:documentation>
105+
The Atom entry construct is defined in section 4.1.2 of the format spec.
106+
</xs:documentation>
107+
</xs:annotation>
108+
<xs:choice maxOccurs="unbounded">
109+
<xs:element name="author" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
110+
<xs:element name="category" type="atom:categoryType" minOccurs="0" maxOccurs="unbounded"/>
111+
<xs:element name="content" type="atom:contentType" minOccurs="0"/>
112+
<xs:element name="contributor" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
113+
<xs:element name="id" type="atom:idType"/>
114+
<xs:element name="link" type="atom:linkType" minOccurs="2" maxOccurs="unbounded"/>
115+
<xs:element name="published" type="atom:dateTimeType"/>
116+
<xs:element name="rights" type="atom:textType" minOccurs="0"/>
117+
<xs:element name="source" type="atom:textType" minOccurs="0"/>
118+
<xs:element name="summary" type="atom:textType" minOccurs="0"/>
119+
<xs:element name="title" type="atom:textType"/>
120+
<xs:element name="updated" type="atom:dateTimeType"/>
121+
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
122+
</xs:choice>
123+
<xs:attributeGroup ref="atom:commonAttributes"/>
124+
</xs:complexType>
125+
<xs:complexType name="contentType" mixed="true">
126+
<xs:annotation>
127+
<xs:documentation>
128+
The Atom content construct is defined in section 4.1.3 of the format spec.
129+
</xs:documentation>
130+
</xs:annotation>
131+
<xs:sequence>
132+
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
133+
</xs:sequence>
134+
<xs:attribute name="type" type="xs:string"/>
135+
<xs:attribute name="src" type="xs:anyURI"/>
136+
<xs:attributeGroup ref="atom:commonAttributes"/>
137+
</xs:complexType>
138+
<xs:complexType name="categoryType">
139+
<xs:annotation>
140+
<xs:documentation>
141+
The Atom category construct is defined in section 4.2.2 of the format spec.
142+
</xs:documentation>
143+
</xs:annotation>
144+
<xs:attribute name="term" type="xs:string" use="required"/>
145+
<xs:attribute name="scheme" type="xs:anyURI"/>
146+
<xs:attribute name="label" type="xs:string"/>
147+
<xs:attributeGroup ref="atom:commonAttributes"/>
148+
</xs:complexType>
149+
<xs:complexType name="generatorType">
150+
<xs:annotation>
151+
<xs:documentation>
152+
The Atom generator element is defined in section 4.2.4 of the format spec.
153+
</xs:documentation>
154+
</xs:annotation>
155+
<xs:simpleContent>
156+
<xs:extension base="xs:string">
157+
<xs:attribute name="uri" type="xs:anyURI"/>
158+
<xs:attribute name="version" type="xs:string"/>
159+
<xs:attributeGroup ref="atom:commonAttributes"/>
160+
</xs:extension>
161+
</xs:simpleContent>
162+
</xs:complexType>
163+
<xs:complexType name="iconType">
164+
<xs:annotation>
165+
<xs:documentation>
166+
The Atom icon construct is defined in section 4.2.5 of the format spec.
167+
</xs:documentation>
168+
</xs:annotation>
169+
<xs:simpleContent>
170+
<xs:extension base="xs:anyURI">
171+
<xs:attributeGroup ref="atom:commonAttributes"/>
172+
</xs:extension>
173+
</xs:simpleContent>
174+
</xs:complexType>
175+
<xs:complexType name="idType">
176+
<xs:annotation>
177+
<xs:documentation>
178+
The Atom id construct is defined in section 4.2.6 of the format spec.
179+
</xs:documentation>
180+
</xs:annotation>
181+
<xs:simpleContent>
182+
<xs:extension base="xs:anyURI">
183+
<xs:attributeGroup ref="atom:commonAttributes"/>
184+
</xs:extension>
185+
</xs:simpleContent>
186+
</xs:complexType>
187+
<xs:complexType name="linkType" mixed="true">
188+
<xs:annotation>
189+
<xs:documentation>
190+
The Atom link construct is defined in section 3.4 of the format spec.
191+
</xs:documentation>
192+
</xs:annotation>
193+
<xs:attribute name="href" type="xs:anyURI" use="required"/>
194+
<xs:attribute name="rel" type="xs:string" use="required"/>
195+
<xs:attribute name="type" type="xs:string" use="required"/>
196+
<xs:attribute name="hreflang" type="xs:NMTOKEN"/>
197+
<xs:attribute name="title" type="xs:string"/>
198+
<xs:attribute name="length" type="xs:positiveInteger"/>
199+
<xs:attributeGroup ref="atom:commonAttributes"/>
200+
</xs:complexType>
201+
<xs:complexType name="logoType">
202+
<xs:annotation>
203+
<xs:documentation>
204+
The Atom logo construct is defined in section 4.2.8 of the format spec.
205+
</xs:documentation>
206+
</xs:annotation>
207+
<xs:simpleContent>
208+
<xs:extension base="xs:anyURI">
209+
<xs:attributeGroup ref="atom:commonAttributes"/>
210+
</xs:extension>
211+
</xs:simpleContent>
212+
</xs:complexType>
213+
<xs:complexType name="sourceType">
214+
<xs:annotation>
215+
<xs:documentation>
216+
The Atom source construct is defined in section 4.2.11 of the format spec.
217+
</xs:documentation>
218+
</xs:annotation>
219+
<xs:choice maxOccurs="unbounded">
220+
<xs:element name="author" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
221+
<xs:element name="category" type="atom:categoryType" minOccurs="0" maxOccurs="unbounded"/>
222+
<xs:element name="contributor" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
223+
<xs:element name="generator" type="atom:generatorType" minOccurs="0"/>
224+
<xs:element name="icon" type="atom:iconType" minOccurs="0"/>
225+
<xs:element name="id" type="atom:idType" minOccurs="0"/>
226+
<xs:element name="link" type="atom:linkType" minOccurs="0" maxOccurs="unbounded"/>
227+
<xs:element name="logo" type="atom:logoType" minOccurs="0"/>
228+
<xs:element name="rights" type="atom:textType" minOccurs="0"/>
229+
<xs:element name="subtitle" type="atom:textType" minOccurs="0"/>
230+
<xs:element name="title" type="atom:textType" minOccurs="0"/>
231+
<xs:element name="updated" type="atom:dateTimeType" minOccurs="0"/>
232+
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
233+
</xs:choice>
234+
<xs:attributeGroup ref="atom:commonAttributes"/>
235+
</xs:complexType>
236+
<xs:complexType name="uriType">
237+
<xs:simpleContent>
238+
<xs:extension base="xs:anyURI">
239+
<xs:attributeGroup ref="atom:commonAttributes"/>
240+
</xs:extension>
241+
</xs:simpleContent>
242+
</xs:complexType>
243+
<xs:complexType name="dateTimeType">
244+
<xs:simpleContent>
245+
<xs:extension base="xs:dateTime">
246+
<xs:attributeGroup ref="atom:commonAttributes"/>
247+
</xs:extension>
248+
</xs:simpleContent>
249+
</xs:complexType>
250+
<xs:attributeGroup name="commonAttributes">
251+
<xs:attribute ref="xml:base"/>
252+
<xs:attribute ref="xml:lang"/>
253+
<xs:anyAttribute namespace="##other"/>
254+
</xs:attributeGroup>
255+
</xs:schema>

0 commit comments

Comments
 (0)