Skip to content

Commit

Permalink
adding ECCN element (#336)
Browse files Browse the repository at this point in the history
PR for issue #334 adding ECCN

---------

Co-authored-by: Olivier CHERON <[email protected]>
Co-authored-by: Daniel Brondani <[email protected]>
  • Loading branch information
3 people authored Nov 13, 2024
1 parent 86e26a4 commit 08db955
Show file tree
Hide file tree
Showing 4 changed files with 158 additions and 5 deletions.
2 changes: 1 addition & 1 deletion doxygen/pack.dxy
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = "Open-CMSIS-Pack"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = "Version 1.7.42"
PROJECT_NUMBER = "Version 1.7.43"

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
6 changes: 6 additions & 0 deletions doxygen/src/General.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ The following sections provide more information:
<th>Version</th>
<th>Description</th>
</tr>
<tr>
<td>1.7.43</td>
<td>
- added optional 'ECCN' section for EU and US export control classification numbers
</td>
</tr>
<tr>
<td>1.7.42</td>
<td>
Expand Down
66 changes: 66 additions & 0 deletions doxygen/src/pdsc_format.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ found in the ARM.CMSIS pack in the directory .\\CMSIS\\Utilities.
The \ref packFormat is structured using grouping elements and contains the following top level elements:
- \subpage pdsc_package_pg "<package>": describes package related information like vendor, package name, description, version. Is the root element.
- \subpage element_package_description "<description>": brief description of the software pack with optional link to Markdown overview documentation.
- \subpage element_ECCN "<ECCN>": section listing Export Control Classification Numbers (ECCN) for EU and US.
- \subpage element_keywords "<keywords>": lists keywords to search for packages. Can be used for search engines.
- \subpage element_repository "<repository>": specifies the URL and repository type of a public repository where the pack originates from.
- \subpage element_dominate "<dominate>": the pack contains one or more device, API, or component that overrules other packs with identical items.
Expand Down Expand Up @@ -222,6 +223,13 @@ assists searching for packages.
<td>BriefDescType</td>
<td>1..1 </td>
</tr>
\anchor package_ECCN
<tr>
<td>\ref element_ECCN "<ECCN>"</td>
<td>Section listing Export Control Classification Numbers (ECCN) for EU and US.</td>
<td>ECCNType</td>
<td>0..1 </td>
</tr>
\anchor package_url
<tr>
<td>url</td>
Expand Down Expand Up @@ -488,6 +496,64 @@ This Markdown file is indented for web pages that offer software packs in form o
<hr>
*/

/**************************************************************************************************/
/**
\page element_ECCN /package/ECCN element

A pack may be bound to export control: if so, the pack should provide the related Export Control Classification Numbers (ECCN)
for both the United States and the European Union.

This section describes the <a href="https://www.bis.doc.gov/index.php/licensing/commerce-control-list-classification/export-control-classification-number-eccn" target="_blank">Export Control Classification Numbers (ECCN)</a>
for the content of the pack for both the US and the EU.
(For more information, please refer to the <a href="https://www.bis.gov/ccl-index" target="_blank">Commerce Control List (CCL) index</a>)

\b Example:
\code
<package>
...
<ECCN>
<ECCN-EU>NEC</ECCN-EU>
<ECCN-US>5D992.c</ECCN-US>
</ECCN>
...
</package>
\endcode

<p>&nbsp;</p>

<table class="cmtable" summary="Element: ECCN">
<tr>
<th>Parent Element</th>
<th colspan="3">Element Chain</th>
</tr>
<tr>
<td>\ref element_package "package"</td>
<td colspan=3>\ref element_package</td>
</tr>
<tr>
<th>Child Elements</th>
<th>Description</th>
<th>Type</th>
<th>Occurrence</th>
</tr>
<tr>
<td>ECCN-EU</td>
<td>Defines the <a href="https://www.bis.doc.gov/index.php/documents/regulations-docs/13-commerce-control-list-index/file" target="_blank">Export Control Classification Number</a> for the European Union (EU)</td>
<td>ECCNEUCodeEnum</td>
<td>1..1</td>
</tr>
<tr>
<td>ECCN-US</td>
<td>Defines the <a href="https://www.bis.doc.gov/index.php/documents/regulations-docs/13-commerce-control-list-index/file" target="_blank">Export Control Classification Number</a> for the United States (US)</td>
<td>ECCNUSCodeEnum</td>
<td>1..1</td>
</tr>
</table>

<p>&nbsp;</p>
<hr>
*/

/**************************************************************************************************/
/**
\page element_keywords /package/keywords element
Expand Down
89 changes: 85 additions & 4 deletions schema/PACK.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,15 @@
limitations under the License.
$Date: 10. Oct 2024
$Revision: 1.7.42
$Date: 12. Nov 2024
$Revision: 1.7.43
$Project: Schema File for Package Description File Format Specification
Package file name convention <vendor>.<name>.<version>.pack
SchemaVersion=1.7.42
SchemaVersion=1.7.43
12. Nov 2024: v1.7.43
- added optional 'ECCN' section for EU and US export control classification numbers
10. Oct 2024: v1.7.42
- added 'mode' attribute ExeGeneratorArgumentType
23. Sep 2024: v1.7.41
Expand Down Expand Up @@ -239,7 +241,7 @@
-->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.7.42">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.7.43">

<!-- NonNegativeInteger specifies the format in which numbers are represented in hexadecimal or decimal format -->
<xs:simpleType name="NonNegativeInteger">
Expand Down Expand Up @@ -449,6 +451,83 @@
</xs:restriction>
</xs:simpleType>

<!-- a pack can optionally specify its export control classification numbers for US and EU -->
<!-- Export Control Classification Numbers for EU -->
<xs:simpleType name="ECCNEUCodeEnum">
<xs:restriction base="xs:token">
<xs:enumeration value="3A001.a.2.c" />
<xs:enumeration value="3A001.a.7.a" />
<xs:enumeration value="3D001" />
<xs:enumeration value="3E001" />
<xs:enumeration value="3E002.a" />
<xs:enumeration value="3E002.b" />
<xs:enumeration value="3E002.c" />
<xs:enumeration value="5A002.a.1" />
<xs:enumeration value="5A002.a.1.a" />
<xs:enumeration value="5A002.a.2" />
<xs:enumeration value="5A002.a.4" />
<xs:enumeration value="5D002" />
<xs:enumeration value="5D002.a" />
<xs:enumeration value="5D002.a.1" />
<xs:enumeration value="5D002.c.1" />
<xs:enumeration value="5E002.a" />
<xs:enumeration value="5E002.b" />
<xs:enumeration value="NEC" />
</xs:restriction>
</xs:simpleType>

<!-- Export Control Classification Numbers for US -->
<xs:simpleType name="ECCNUSCodeEnum">
<xs:restriction base="xs:token">
<xs:enumeration value="3A001.a.2.c" />
<xs:enumeration value="3A001.a.7.a" />
<xs:enumeration value="3A991.a.2" />
<xs:enumeration value="3A991.a.3" />
<xs:enumeration value="3A991.b.1.a" />
<xs:enumeration value="3A991.b.1.b" />
<xs:enumeration value="3D001" />
<xs:enumeration value="3D991" />
<xs:enumeration value="3D992" />
<xs:enumeration value="3E001" />
<xs:enumeration value="3E002.a" />
<xs:enumeration value="3E002.b" />
<xs:enumeration value="3E002.c" />
<xs:enumeration value="3E991" />
<xs:enumeration value="5A002.a" />
<xs:enumeration value="5A002.a.1" />
<xs:enumeration value="5A002.a.2" />
<xs:enumeration value="5A002.a.4" />
<xs:enumeration value="5A991.b.1" />
<xs:enumeration value="5A991.b.4.a" />
<xs:enumeration value="5A991.b.6.b" />
<xs:enumeration value="5A991.g" />
<xs:enumeration value="5A992" />
<xs:enumeration value="5A992.b" />
<xs:enumeration value="5A992.c" />
<xs:enumeration value="5D002" />
<xs:enumeration value="5D002.a.1" />
<xs:enumeration value="5D002.c.1" />
<xs:enumeration value="5D992.c" />
<xs:enumeration value="5E002.a" />
<xs:enumeration value="5E002.b" />
<xs:enumeration value="5E992.a" />
<xs:enumeration value="5E992.b" />
<xs:enumeration value="7A994" />
<xs:enumeration value="7D994" />
<xs:enumeration value="9E515.f" />
<xs:enumeration value="EAR99" />
<xs:enumeration value="Not subject to EAR" />
</xs:restriction>
</xs:simpleType>

<!-- Export Control Classification types -->
<xs:complexType name="ECCNType">
<xs:sequence>
<xs:element name="ECCN-EU" minOccurs="1" maxOccurs="1" type="ECCNEUCodeEnum"/>
<xs:element name="ECCN-US" minOccurs="1" maxOccurs="1" type="ECCNUSCodeEnum"/>
</xs:sequence>
</xs:complexType>

<!-- Processor Type -->
<xs:complexType name="ProcessorType">
<!-- Pname defines an identifier for a specific processor in a multi-processor devices -->
Expand Down Expand Up @@ -2207,6 +2286,8 @@
<xs:element name="license" type="xs:string" minOccurs="0" />
<!-- optional: one or more sets of license files associated with one or more components -->
<xs:element name="licenseSets" type="LicenseSetsType" minOccurs="0" />
<!-- optional: export control classification for the whole pack -->
<xs:element name="ECCN" type="ECCNType" minOccurs="0" maxOccurs="1"/>
<!-- optional: section listing requirements (1.4.2) -->
<xs:element name="requirements" type="RequirementsType" minOccurs="0" />
<!-- Version numbers and release history -->
Expand Down

0 comments on commit 08db955

Please sign in to comment.