DocumentID: ECMA-376/Part2/8.1.1
Title: ECMA-376, Part2: 8.1.1 Part Names
Extracted-From: ECMA-376 Office Open XML File Formats, 1st Edition / December 2006
Warning: Coverted to HTML format by a script known to have bugs

Navigation:

8.1.1 Part Names

Each part has a name. Part names refer to parts within a package. [Example: The part name "/hello/world/doc.xml" contains three segments: "hello", "world", and "doc.xml". The first two segments in the sample represent levels in the logical hierarchy and serve to organize the parts of the package, whereas the third contains actual content. Note that segments are not explicitly represented as folders in the package model, and no directory of folders exists in the package model. end example]

Part Name Syntax

The part name grammar is defined as follows:

part_name = 1*( "/" segment )

segment = 1*( pchar )

pchar is defined in RFC 3986.

The part name grammar implies the following constraints. The package implementer shall neither create any part that violates these constraints nor retrieve any data from a package as a part if the purported part name violates these constraints.

Part segments have the following additional constraints. The package implementer shall neither create any part with a part name comprised of a segment that violates these constraints nor retrieve any data from a package as a part if the purported part name contains a segment that violates these constraints.

[Example:

Example 8--1. A part name

/a/%D1%86.xml
/xml/item1.xml

Example 8--2. An invalid part name

//xml/.

end example]

8.1.1.1 Part Naming

A package implementer shall neither create nor recognize a part with a part name derived from another part name by appending segments to it. [M1.11] [Example: If a package contains a part named "/segment1/segment2/.../segmentn", then other parts in that package shall not have names such as: "/segment1", "segment1/segment2", or "/segment1/segment2/.../segmentn-1". end example]

8.1.1.2 Part Name Equivalence

Part name equivalence is determined by comparing part names as case-insensitive ASCII strings. Packages shall not contain equivalent part names and package implementers shall neither create nor recognize packages with equivalent part names. [M1.12]


Converted to HTML format by ooxmlspec2html 0.1, a Perl script provided by OpenISO.org.