mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r2261] fixed an error that occurred last time i checked this file in.
This commit is contained in:
parent
30fe4cfa21
commit
356495d126
@ -1,459 +1,498 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
|
||||
<title>DDL for HDF5</title>
|
||||
<title>DDL for HDF5</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
|
||||
<hr>
|
||||
<center><table BORDER=0 WIDTH="98%" >
|
||||
<tr>
|
||||
<td ALIGN=LEFT VALIGN=TOP><a href="H5.intro.html">Introduction to HDF5</a>
|
||||
<br><a href="RM_H5Front.html">HDF5 Reference Manual</a>
|
||||
<br><a href="index.html">Other HDF5 documents and links</a>
|
||||
<br><!--
|
||||
<center>
|
||||
<table border=0 width=98%>
|
||||
<tr><td valign=top align=left>
|
||||
<a href="H5.intro.html">Introduction to HDF5</a> <br>
|
||||
<a href="RM_H5Front.html">HDF5 Reference Manual</a> <br>
|
||||
<a href="index.html">Other HDF5 documents and links</a> <br>
|
||||
<!--
|
||||
<a href="Glossary.html">Glossary</a><br>
|
||||
--></td>
|
||||
|
||||
<td ALIGN=RIGHT VALIGN=TOP>And in this document, the <b><a href="H5.user.html">HDF5
|
||||
User's Guide:</a></b>
|
||||
<br><a href="Files.html">Files</a> <a href="Datasets.html">Datasets</a>
|
||||
<a href="Datatypes.html">Datatypes</a> <a href="Dataspaces.html">Dataspaces</a>
|
||||
<a href="Groups.html">Groups</a>
|
||||
<br><a href="References.html">References</a> <a href="Attributes.html">Attributes</a>
|
||||
<a href="Properties.html">Property Lists</a> <a href="Errors.html">Error
|
||||
Handling</a>
|
||||
<br><a href="Filters.html">Filters</a> <a href="Palettes.html">Palettes</a>
|
||||
<a href="Caching.html">Caching</a> <a href="Chunking.html">Chunking</a>
|
||||
<a href="MountingFiles.html">Mounting Files</a>
|
||||
<br><a href="Performance.html">Performance</a> <a href="Debugging.html">Debugging</a>
|
||||
<a href="Environment.html">Environment</a> DDL
|
||||
<br><a href="Ragged.html">Ragged Arrays</a></td>
|
||||
</tr>
|
||||
</table></center>
|
||||
|
||||
-->
|
||||
</td>
|
||||
<td valign=top align=right>
|
||||
And in this document, the
|
||||
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>
|
||||
<br>
|
||||
<a href="Files.html">Files</a>
|
||||
<a href="Datasets.html">Datasets</a>
|
||||
<a href="Datatypes.html">Datatypes</a>
|
||||
<a href="Dataspaces.html">Dataspaces</a>
|
||||
<a href="Groups.html">Groups</a>
|
||||
<br>
|
||||
<a href="References.html">References</a>
|
||||
<a href="Attributes.html">Attributes</a>
|
||||
<a href="Properties.html">Property Lists</a>
|
||||
<a href="Errors.html">Error Handling</a>
|
||||
<br>
|
||||
<a href="Filters.html">Filters</a>
|
||||
<a href="Palettes.html">Palettes</a>
|
||||
<a href="Caching.html">Caching</a>
|
||||
<a href="Chunking.html">Chunking</a>
|
||||
<a href="MountingFiles.html">Mounting Files</a>
|
||||
<br>
|
||||
<a href="Performance.html">Performance</a>
|
||||
<a href="Debugging.html">Debugging</a>
|
||||
<a href="Environment.html">Environment</a>
|
||||
DDL
|
||||
<br>
|
||||
<a href="Ragged.html">Ragged Arrays</a>
|
||||
</td></tr>
|
||||
</table>
|
||||
</center>
|
||||
<hr>
|
||||
<h1>
|
||||
DDL in BNF for HDF5</h1>
|
||||
|
||||
<h2>
|
||||
1. Introduction</h2>
|
||||
This document contains the data description language (DDL) for an HDF5
|
||||
file. The description is in Backus-Naur Form.
|
||||
<h2>
|
||||
2. Explanation of Symbols</h2>
|
||||
|
||||
<h1>DDL in BNF for HDF5</h1>
|
||||
|
||||
|
||||
<h2>1. Introduction</h2>
|
||||
|
||||
This document contains the data description language (DDL) for an HDF5 file.
|
||||
The description is in Backus-Naur Form.
|
||||
|
||||
<h2>2. Explanation of Symbols</h2>
|
||||
|
||||
This section contains a brief explanation of the symbols used in the DDL.
|
||||
<pre> ::= defined as
|
||||
<tname> a token with the name tname
|
||||
<a> | <b> one of <a> or <b>
|
||||
<a><font size=-2>opt</font> zero or one occurrence of <a>
|
||||
<a>* zero or more occurrence of <a>
|
||||
<a>+ one or more occurrence of <a>
|
||||
TBD To Be Decided</pre>
|
||||
|
||||
<h2>
|
||||
3. The DDL</h2>
|
||||
<PRE>
|
||||
::= defined as
|
||||
<tname> a token with the name tname
|
||||
<a> | <b> one of <a> or <b>
|
||||
<a><FONT SIZE=1.7>opt</FONT> zero or one occurrence of <a>
|
||||
<a>* zero or more occurrence of <a>
|
||||
<a>+ one or more occurrence of <a>
|
||||
TBD To Be Decided
|
||||
</pre>
|
||||
|
||||
<h2>3. The DDL</h2>
|
||||
|
||||
<dir>
|
||||
<pre><file> ::= HDF5 <file_name> { <file_super_block><font size=-2>opt</font> <root_group> }
|
||||
<pre>
|
||||
<file> ::= HDF5 <file_name> { <file_super_block><FONT SIZE=1.7>opt</FONT> <root_group> }
|
||||
|
||||
<file_name> ::= <identifier>
|
||||
<file_name> ::= <identifier>
|
||||
|
||||
<file_super_block> ::= BOOT_BLOCK { <super_block_content> }
|
||||
<file_super_block> ::= BOOT_BLOCK { <super_block_content> }
|
||||
|
||||
<super_block_content> ::= TBD
|
||||
<super_block_content> ::= TBD
|
||||
|
||||
<root_group> ::= GROUP "/" { <unamed_datatype>* <object_id><font size=-2>opt</font> <group_attribute>* <group_member>* }
|
||||
<root_group> ::= GROUP "/" { <unamed_datatype>* <object_id><FONT SIZE=1.7>opt</FONT> <group_attribute>* <group_member>* }
|
||||
|
||||
<unamed_datatype> ::= DATATYPE <unamed_type_name> { <compound_type> }
|
||||
<unamed_datatype> ::= DATATYPE <unamed_type_name> { <compound_type> }
|
||||
|
||||
<unamed_type_name> ::= the assigned name for unamed type is in the form of
|
||||
#oid1:oid2, where oid1 and oid2 are the object ids of the type
|
||||
<unamed_type_name> ::= the assigned name for unamed type is in the form of
|
||||
#oid1:oid2, where oid1 and oid2 are the object ids of the type
|
||||
|
||||
<compound_type> ::= <member_type_def>+
|
||||
<compound_type> ::= <member_type_def>+
|
||||
|
||||
<member_type_def> ::= <scalar_type_def> | <array_type_def>
|
||||
<member_type_def> ::= <scalar_type_def> | <array_type_def>
|
||||
|
||||
<scalar_type_def> ::= <atomic_type> <field_name> ;
|
||||
<scalar_type_def> ::= <atomic_type> <field_name> ;
|
||||
|
||||
<atomic_type> ::= <integer> | <float> | <time> | <string> | <bitfield> | <opaque> |
|
||||
<reference> | <enum>
|
||||
<atomic_type> ::= <integer> | <float> | <time> | <string> | <bitfield> | <opaque> |
|
||||
<reference> | <enum>
|
||||
|
||||
<integer> ::= H5T_STD_I8BE | H5T_STD_I8LE | H5T_STD_I16BE | H5T_STD_I16LE | H5T_STD_I32BE |
|
||||
H5T_STD_I32LE | H5T_STD_I64BE | H5T_STD_I64LE | H5T_STD_U8BE |
|
||||
H5T_STD_U8LE | H5T_STD_U16BE | H5T_STD_U16LE | H5T_STD_U32BE |
|
||||
H5T_STD_U32LE | H5T_STD_U64BE | H5T_STD_U64LE | H5T_NATIVE_CHAR |
|
||||
H5T_NATIVE_UCHAR | H5T_NATIVE_SHORT | H5T_NATIVE_USHORT |
|
||||
H5T_NATIVE_INT | H5T_NATIVE_UINT | H5T_NATIVE_LONG | H5T_NATIVE_ULONG |
|
||||
H5T_NATIVE_LLONG | H5T_NATIVE_ULLONG
|
||||
<integer> ::= H5T_STD_I8BE | H5T_STD_I8LE | H5T_STD_I16BE | H5T_STD_I16LE | H5T_STD_I32BE |
|
||||
H5T_STD_I32LE | H5T_STD_I64BE | H5T_STD_I64LE | H5T_STD_U8BE |
|
||||
H5T_STD_U8LE | H5T_STD_U16BE | H5T_STD_U16LE | H5T_STD_U32BE |
|
||||
H5T_STD_U32LE | H5T_STD_U64BE | H5T_STD_U64LE | H5T_NATIVE_CHAR |
|
||||
H5T_NATIVE_UCHAR | H5T_NATIVE_SHORT | H5T_NATIVE_USHORT |
|
||||
H5T_NATIVE_INT | H5T_NATIVE_UINT | H5T_NATIVE_LONG | H5T_NATIVE_ULONG |
|
||||
H5T_NATIVE_LLONG | H5T_NATIVE_ULLONG
|
||||
|
||||
<float> ::= H5T_IEEE_F32BE | H5T_IEEE_F32LE | H5T_IEEE_F64BE | H5T_IEEE_F64LE |
|
||||
H5T_NATIVE_FLOAT | H5T_NATIVE_DOUBLE | H5T_NATIVE_LDOUBLE
|
||||
<float> ::= H5T_IEEE_F32BE | H5T_IEEE_F32LE | H5T_IEEE_F64BE | H5T_IEEE_F64LE |
|
||||
H5T_NATIVE_FLOAT | H5T_NATIVE_DOUBLE | H5T_NATIVE_LDOUBLE
|
||||
|
||||
<time> ::= TBD
|
||||
<time> ::= TBD
|
||||
|
||||
<string> ::= { STRSIZE <strsize> ;
|
||||
STRPAD <strpad> ;
|
||||
CSET <cset> ;
|
||||
CTYPE <ctype> ; }
|
||||
<string> ::= { STRSIZE <strsize> ;
|
||||
STRPAD <strpad> ;
|
||||
CSET <cset> ;
|
||||
CTYPE <ctype> ; }
|
||||
|
||||
<strsize> ::= an integer
|
||||
<strsize> ::= an integer
|
||||
|
||||
<strpad> ::= H5T_STR_NULLTERM | H5T_STR_NULLPAD | H5T_STR_SPACEPAD
|
||||
<strpad> ::= H5T_STR_NULLTERM | H5T_STR_NULLPAD | H5T_STR_SPACEPAD
|
||||
|
||||
<cset> ::= H5T_CSET_ASCII
|
||||
<cset> ::= H5T_CSET_ASCII
|
||||
|
||||
<ctype> ::= H5T_C_S1 | H5T_FORTRAN_S1
|
||||
<ctype> ::= H5T_C_S1 | H5T_FORTRAN_S1
|
||||
|
||||
<bitfield> ::= TBD
|
||||
<bitfield> ::= TBD
|
||||
|
||||
<opaque> ::= {
|
||||
<opaque> ::= { H5T_OPAQUE; OPAQUE_TAG <identifier>; }
|
||||
|
||||
<reference> ::= H5T_REFERENCE
|
||||
<reference> ::= H5T_REFERENCE
|
||||
|
||||
<field_name> ::= <identifier>
|
||||
<field_name> ::= <identifier>
|
||||
|
||||
<array_type_def> ::= <atomic_type> <field_name> <dim_sizes> ;
|
||||
<array_type_def> ::= <atomic_type> <field_name> <dim_sizes> ;
|
||||
|
||||
<dim_sizes> ::= [dimsize1][dimsize2]..., where dimsize1, dimsize2 are integers
|
||||
<dim_sizes> ::= [dimsize1][dimsize2]..., where dimsize1, dimsize2 are integers
|
||||
|
||||
<group_attribute> ::= <attribute>
|
||||
<group_attribute> ::= <attribute>
|
||||
|
||||
<attribute> ::= ATTRIBUTE <attr_name> { <datatype>
|
||||
<dataspace>
|
||||
<object_id><font size=-2>opt
|
||||
</font> <data><font size=-2>opt</font> }
|
||||
// <datatype> and <dataspace> must appear before <data>.
|
||||
<attribute> ::= ATTRIBUTE <attr_name> { <datatype>
|
||||
<dataspace>
|
||||
<object_id><FONT SIZE=1.7>opt</FONT>
|
||||
<data><FONT SIZE=1.7>opt</FONT> }
|
||||
// <datatype> and <dataspace> must appear before <data>.
|
||||
|
||||
<attr_name> ::= <identifier>
|
||||
<attr_name> ::= <identifier>
|
||||
|
||||
<datatype> ::= DATATYPE { <atomic_type> } |
|
||||
DATATYPE { <compound_type> } |
|
||||
DATATYPE { <named_type> }
|
||||
<datatype> ::= DATATYPE { <atomic_type> } |
|
||||
DATATYPE { <compound_type> } |
|
||||
DATATYPE { <named_type> }
|
||||
|
||||
<enum> ::= H5T_ENUM { <integer>; <enum_def>+ }
|
||||
<enum> ::= H5T_ENUM { <integer>; <enum_def>+ }
|
||||
|
||||
<enum_def> ::= <enum_symbol> <enum_val>;
|
||||
<enum_def> ::= <enum_symbol> <enum_val>;
|
||||
|
||||
<enum_symbol> ::= <identifier>
|
||||
<enum_symbol> ::= <identifier>
|
||||
|
||||
<enum_val> ::= an integer;
|
||||
<enum_val> ::= an integer;
|
||||
|
||||
<named_type> ::= <path_name>
|
||||
<named_type> ::= <path_name>
|
||||
|
||||
<path_name> ::= <identifier>
|
||||
<path_name> ::= <identifier>
|
||||
|
||||
<dataspace> ::= DATASPACE { SCALAR } |
|
||||
DATASPACE { SIMPLE <current_dims> / <max_dims> } |
|
||||
DATASPACE { COMPLEX <ds_definition>+ }
|
||||
DATASPACE { <dataspace_name> } |
|
||||
<dataspace> ::= DATASPACE { SCALAR } |
|
||||
DATASPACE { SIMPLE <current_dims> / <max_dims> } |
|
||||
DATASPACE { COMPLEX <ds_definition>+ }
|
||||
DATASPACE { <dataspace_name> } |
|
||||
|
||||
<current_dims> ::= (<i>i<font size=-2>1</font></i>, <i>i<font size=-2>2</font></i>, ... ), where <i>i<font size=-2>k</font></i> is an integer, <i>k</i> = 1,2,...
|
||||
<current_dims> ::= (<i>i<FONT SIZE=1.0>1</i></FONT>, <i>i<FONT SIZE=1.0>2</i></FONT>, ... ), where <i>i<FONT SIZE=1.0>k</i></FONT> is an integer, <i>k</i> = 1,2,...
|
||||
|
||||
<max_dims> ::= (<i>i<font size=-2>1</font></i>, <i>i<font size=-2>2</font></i>, ... ) where <i>i<font size=-2>k</font></i> is an integer or H5S_UNLIMITED
|
||||
<max_dims> ::= (<i>i<FONT SIZE=1.0>1</i></FONT>, <i>i<FONT SIZE=1.0>2</i></FONT>, ... ) where <i>i<FONT SIZE=1.0>k</i></FONT> is an integer or H5S_UNLIMITED
|
||||
|
||||
<ds_definition> ::= TBD
|
||||
<ds_definition> ::= TBD
|
||||
|
||||
<dataspace_name> ::= <identifier>
|
||||
<dataspace_name> ::= <identifier>
|
||||
|
||||
<data> ::= DATA { <scalar_space_data> | <simple_space_data> | <complex_space_data> }
|
||||
|
||||
<scalar_space_data> ::= <atomic_scalar_data> | <compound_scalar_data>
|
||||
<data> ::= DATA { <scalar_space_data> | <simple_space_data> | <complex_space_data> }
|
||||
|
||||
<scalar_space_data> ::= <atomic_scalar_data> | <compound_scalar_data>
|
||||
|
||||
<atomic_scalar_data> :: = <integer_data> | <float_data> | <time_data> | <string_data> |
|
||||
<bitfield_data> | <opaque_data> | <enum_data> | <reference_data>
|
||||
<atomic_scalar_data> :: = <integer_data> | <float_data> | <time_data> | <string_data> |
|
||||
<bitfield_data> | <opaque_data> | <enum_data> | <reference_data>
|
||||
|
||||
<integer_data> ::= an integer
|
||||
<integer_data> ::= an integer
|
||||
|
||||
<float_data> ::= a floating point number
|
||||
<float_data> ::= a floating point number
|
||||
|
||||
<time_data> ::= TBD
|
||||
<time_data> ::= TBD
|
||||
|
||||
<string_data> ::= a string
|
||||
// A string is enclosed in double quotes.
|
||||
<string_data> ::= a string
|
||||
// A string is enclosed in double quotes.
|
||||
// If a string is displayed on more than one line, string concatenate operator '//'is used.
|
||||
|
||||
<bitfield_data> ::= TBD
|
||||
<bitfield_data> ::= TBD
|
||||
|
||||
<opaque_data> ::= { H5T_OPAQUE; <opaque_tag>; }</pre>
|
||||
<opaque_data> ::= TBD
|
||||
|
||||
<pre><opaque_tag> ::= OPAQUE_TAG <identifier>
|
||||
<enum_data> ::= <enum_symbol>
|
||||
//maybe will be <enum_symbol> in the future
|
||||
|
||||
<enum_data> ::= <enum_symbol>
|
||||
//maybe will be <enum_symbol> in the future
|
||||
<reference_data> ::= <object_ref_data> | <data_region_data> | NULL
|
||||
|
||||
<reference_data> ::= <object_ref_data> | <data_region_data> | NULL
|
||||
<object_ref_data> ::= <object_type> <object_num>
|
||||
|
||||
<object_ref_data> ::= <object_type> <object_num>
|
||||
<object_type> ::= DATASET | GROUP | DATATYPE
|
||||
|
||||
<object_type> ::= DATASET | GROUP | DATATYPE
|
||||
<object_id> ::= OBJECTID { <object_num> }
|
||||
|
||||
<object_id> ::= OBJECTID { <object_num> }
|
||||
<object_num> ::= an integer:an integer | an integer
|
||||
|
||||
<object_num> ::= an integer:an integer | an integer
|
||||
<data_region_data> ::= H5T_STD_REF_DSETREG <object_num> {<data_region_data_info>,
|
||||
<data_region_data_info>, ...}
|
||||
|
||||
<data_region_data> ::= H5T_STD_REF_DSETREG <object_num> {<data_region_data_info>,
|
||||
<data_region_data_info>, ...}
|
||||
<data_region_data_info> ::= <region_info> | <point_info>
|
||||
|
||||
<data_region_data_info> ::= <region_info> | <point_info>
|
||||
<region_info> ::= (<lower_bound>:<upper_bound>, <lower_bound>:<upper_bound>, ...)
|
||||
|
||||
<region_info> ::= (<lower_bound>:<upper_bound>, <lower_bound>:<upper_bound>, ...)
|
||||
<lower_bound> ::= an integer
|
||||
|
||||
<lower_bound> ::= an integer
|
||||
<upper_bound> ::= an integer
|
||||
|
||||
<upper_bound> ::= an integer
|
||||
<point_info> ::= (an integer, an integer, ...)
|
||||
|
||||
<point_info> ::= (an integer, an integer, ...)
|
||||
<compound_scalar_data> ::= { [ <member_data> ], [ <member_data> ], ... }
|
||||
|
||||
<compound_scalar_data> ::= { [ <member_data> ], [ <member_data> ], ... }
|
||||
<member_data> ::= <atomic_scalar_data> | <atomic_simple_data>
|
||||
|
||||
<member_data> ::= <atomic_scalar_data> | <atomic_simple_data>
|
||||
<atomic_simple_data> :: = <atomic_element>, <atomic_element>, ...
|
||||
|
||||
<atomic_simple_data> :: = <atomic_element>, <atomic_element>, ...
|
||||
<atomic_element> ::= <atomic_scalar_data>
|
||||
|
||||
<atomic_element> ::= <atomic_scalar_data>
|
||||
<simple_space_data> :: = <atomic_simple_data> | <compound_simple_data>
|
||||
|
||||
<simple_space_data> :: = <atomic_simple_data> | <compound_simple_data>
|
||||
<compound_simple_data> ::= <compoud_element>, <compound_element>, ...
|
||||
|
||||
<compound_simple_data> ::= <compoud_element>, <compound_element>, ...
|
||||
<compound_element> ::= <compound_scalar_data>
|
||||
|
||||
<compound_element> ::= <compound_scalar_data>
|
||||
<complex_space_data> ::= TBD
|
||||
|
||||
<complex_space_data> ::= TBD
|
||||
<group_member> ::= <named_datatype> | <named_dataspace> | <group> | <dataset> |
|
||||
<softlink>
|
||||
|
||||
<group_member> ::= <named_datatype> | <named_dataspace> | <group> | <dataset> |
|
||||
<softlink>
|
||||
<named_datatype> ::= DATATYPE <type_name> { <compound_type> }
|
||||
|
||||
<named_datatype> ::= DATATYPE <type_name> { <compound_type> }
|
||||
<type_name> ::= <identifier>
|
||||
|
||||
<type_name> ::= <identifier>
|
||||
<named_dataspace> ::= TBD
|
||||
|
||||
<named_dataspace> ::= TBD
|
||||
<group> ::= GROUP <group_name> { <hardlink> } |
|
||||
GROUP <object_id><FONT SIZE=1.7>opt</FONT> <group_name> { <group_attribute>* <group_member>* }
|
||||
|
||||
<group_name> ::= <identifier>
|
||||
|
||||
<group> ::= GROUP <group_name> { <hardlink> } |
|
||||
GROUP <object_id><font size=-2>opt</font> <group_name> { <group_attribute>* <group_member>* }
|
||||
|
||||
<group_name> ::= <identifier>
|
||||
<hardlink> ::= HARDLINK <path_name>
|
||||
|
||||
<hardlink> ::= HARDLINK <path_name>
|
||||
<dataset> ::= DATASET <dataset_name> { <hardlink> } |
|
||||
DATASET <dataset_name> { <datatype>
|
||||
<dataspace>
|
||||
<storagelayout><FONT SIZE=1.7>opt</FONT>
|
||||
<compression><FONT SIZE=1.7>opt</FONT>
|
||||
<dataset_attribute>*
|
||||
<object_id><FONT SIZE=1.7>opt</FONT>
|
||||
<data><FONT SIZE=1.7>opt</FONT> }
|
||||
// Tokens within {} can be in any order as long as <data> and <dataset_attribute>
|
||||
// are after <datatype> and <dataspace>.
|
||||
|
||||
<dataset> ::= DATASET <dataset_name> { <hardlink> } |
|
||||
DATASET <dataset_name> { <datatype>
|
||||
<dataspace>
|
||||
<storagelayout><font size=-2>opt
|
||||
</font> <compression><font size=-2>opt
|
||||
</font> <dataset_attribute>*
|
||||
<object_id><font size=-2>opt
|
||||
</font> <data><font size=-2>opt</font> }
|
||||
// Tokens within {} can be in any order as long as <data> and <dataset_attribute>
|
||||
// are after <datatype> and <dataspace>.
|
||||
<dataset_name> ::= <identifier>
|
||||
|
||||
<dataset_name> ::= <identifier>
|
||||
<storagelayout> :: = STORAGELAYOUT <contiguous_layout> |
|
||||
STORAGELAYOUT <chunked_layout> |
|
||||
STORAGELAYOUT <compact_layout> |
|
||||
STORAGELAYOUT <external_layout>
|
||||
|
||||
<storagelayout> :: = STORAGELAYOUT <contiguous_layout> |
|
||||
STORAGELAYOUT <chunked_layout> |
|
||||
STORAGELAYOUT <compact_layout> |
|
||||
STORAGELAYOUT <external_layout>
|
||||
<contiguous_layout> ::= {CONTIGUOUS} // default
|
||||
|
||||
<contiguous_layout> ::= {CONTIGUOUS} // default
|
||||
<chunked_layout> ::= {CHUNKED <dims> }
|
||||
|
||||
<chunked_layout> ::= {CHUNKED <dims> }
|
||||
<dims> ::= (<i>i<FONT SIZE=1.0>1</i></FONT>, <i>i<FONT SIZE=1.0>2</i></FONT>, ... ), <i>i<FONT SIZE=1.0>k</i></FONT> is an integer, <i>k</i> = 1,2,...
|
||||
|
||||
<dims> ::= (<i>i<font size=-2>1</font></i>, <i>i<font size=-2>2</font></i>, ... ), <i>i<font size=-2>k</font></i> is an integer, <i>k</i> = 1,2,...
|
||||
<compact_layout> ::= TBD
|
||||
|
||||
<compact_layout> ::= TBD
|
||||
<external_layout> ::= {EXTERNAL <external_file>+ }
|
||||
|
||||
<external_layout> ::= {EXTERNAL <external_file>+ }
|
||||
<external_file> ::= (<file_name> <offset> <size>)
|
||||
|
||||
<external_file> ::= (<file_name> <offset> <size>)
|
||||
<offset> ::= an integer
|
||||
|
||||
<offset> ::= an integer
|
||||
<size> ::= an integer
|
||||
|
||||
<size> ::= an integer
|
||||
<compression> :: = COMPRESSION { TBD }
|
||||
|
||||
<compression> :: = COMPRESSION { TBD }
|
||||
<dataset_attribute> ::= <attribute>
|
||||
|
||||
<dataset_attribute> ::= <attribute>
|
||||
<softlink> ::= SOFTLINK <softlink_name> { LINKTARGET <target> }
|
||||
|
||||
<softlink> ::= SOFTLINK <softlink_name> { LINKTARGET <target> }
|
||||
<softlink_name> ::= <identifier>
|
||||
|
||||
<softlink_name> ::= <identifier>
|
||||
<target> ::= <identifier>
|
||||
|
||||
<target> ::= <identifier>
|
||||
<identifier> ::= string
|
||||
// character '/' should be used with care.
|
||||
|
||||
<identifier> ::= string
|
||||
// character '/' should be used with care.
|
||||
</PRE>
|
||||
</dir>
|
||||
|
||||
|
||||
<h2>4. An Example of an HDF5 File in DDL</h2>
|
||||
|
||||
<dir>
|
||||
<PRE>
|
||||
HDF5 "example.h5" {
|
||||
GROUP "/" {
|
||||
ATTRIBUTE "attr1" {
|
||||
DATATYPE {
|
||||
{ STRSIZE 17;
|
||||
STRPAD H5T_STR_NULLTERM;
|
||||
CSET H5T_CSET_ASCII;
|
||||
CTYPE H5T_C_S1;
|
||||
}
|
||||
}
|
||||
DATASPACE { SCALAR }
|
||||
DATA {
|
||||
"string attribute"
|
||||
}
|
||||
}
|
||||
DATASET "dset1" {
|
||||
DATATYPE { H5T_STD_I32BE }
|
||||
DATASPACE { SIMPLE ( 10, 10 ) / ( 10, 10 ) }
|
||||
DATA {
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
}
|
||||
}
|
||||
DATASET "dset2" {
|
||||
DATATYPE {
|
||||
H5T_STD_I32BE "a";
|
||||
H5T_IEEE_F32BE "b";
|
||||
H5T_IEEE_F64BE "c";
|
||||
}
|
||||
DATASPACE { SIMPLE ( 5 ) / ( 5 ) }
|
||||
DATA {
|
||||
{
|
||||
[ 1 ],
|
||||
[ 0.1 ],
|
||||
[ 0.01 ]
|
||||
},
|
||||
{
|
||||
[ 2 ],
|
||||
[ 0.2 ],
|
||||
[ 0.02 ]
|
||||
},
|
||||
{
|
||||
[ 3 ],
|
||||
[ 0.3 ],
|
||||
[ 0.03 ]
|
||||
},
|
||||
{
|
||||
[ 4 ],
|
||||
[ 0.4 ],
|
||||
[ 0.04 ]
|
||||
},
|
||||
{
|
||||
[ 5 ],
|
||||
[ 0.5 ],
|
||||
[ 0.05 ]
|
||||
}
|
||||
}
|
||||
}
|
||||
GROUP "group1" {
|
||||
DATASET "dset3" {
|
||||
DATATYPE {
|
||||
"/type1"
|
||||
}
|
||||
DATASPACE { SIMPLE ( 5 ) / ( 5 ) }
|
||||
DATA {
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
GROUP "group2" {
|
||||
HARDLINK "/group1"
|
||||
}
|
||||
SOFTLINK "slink1" {
|
||||
LINKTARGET "somevalue"
|
||||
}
|
||||
DATATYPE "type1" {
|
||||
H5T_STD_I32BE "a"[4];
|
||||
H5T_IEEE_F32BE "b"[5][6];
|
||||
}
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
</dir>
|
||||
|
||||
<h2>
|
||||
4. An Example of an HDF5 File in DDL</h2>
|
||||
|
||||
<dir>
|
||||
<pre>HDF5 "example.h5" {
|
||||
GROUP "/" {
|
||||
ATTRIBUTE "attr1" {
|
||||
DATATYPE {
|
||||
{ STRSIZE 17;
|
||||
STRPAD H5T_STR_NULLTERM;
|
||||
CSET H5T_CSET_ASCII;
|
||||
CTYPE H5T_C_S1;
|
||||
}
|
||||
}
|
||||
DATASPACE { SCALAR }
|
||||
DATA {
|
||||
"string attribute"
|
||||
}
|
||||
}
|
||||
DATASET "dset1" {
|
||||
DATATYPE { H5T_STD_I32BE }
|
||||
DATASPACE { SIMPLE ( 10, 10 ) / ( 10, 10 ) }
|
||||
DATA {
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
}
|
||||
}
|
||||
DATASET "dset2" {
|
||||
DATATYPE {
|
||||
H5T_STD_I32BE "a";
|
||||
H5T_IEEE_F32BE "b";
|
||||
H5T_IEEE_F64BE "c";
|
||||
}
|
||||
DATASPACE { SIMPLE ( 5 ) / ( 5 ) }
|
||||
DATA {
|
||||
{
|
||||
[ 1 ],
|
||||
[ 0.1 ],
|
||||
[ 0.01 ]
|
||||
},
|
||||
{
|
||||
[ 2 ],
|
||||
[ 0.2 ],
|
||||
[ 0.02 ]
|
||||
},
|
||||
{
|
||||
[ 3 ],
|
||||
[ 0.3 ],
|
||||
[ 0.03 ]
|
||||
},
|
||||
{
|
||||
[ 4 ],
|
||||
[ 0.4 ],
|
||||
[ 0.04 ]
|
||||
},
|
||||
{
|
||||
[ 5 ],
|
||||
[ 0.5 ],
|
||||
[ 0.05 ]
|
||||
}
|
||||
}
|
||||
}
|
||||
GROUP "group1" {
|
||||
DATASET "dset3" {
|
||||
DATATYPE {
|
||||
"/type1"
|
||||
}
|
||||
DATASPACE { SIMPLE ( 5 ) / ( 5 ) }
|
||||
DATA {
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
{
|
||||
[ 0, 1, 2, 3 ],
|
||||
[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
|
||||
0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
|
||||
0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
|
||||
0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
|
||||
0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
GROUP "group2" {
|
||||
HARDLINK "/group1"
|
||||
}
|
||||
SOFTLINK "slink1" {
|
||||
LINKTARGET "somevalue"
|
||||
}
|
||||
DATATYPE "type1" {
|
||||
H5T_STD_I32BE "a"[4];
|
||||
H5T_IEEE_F32BE "b"[5][6];
|
||||
}
|
||||
}
|
||||
}</pre>
|
||||
</dir>
|
||||
|
||||
<hr>
|
||||
<center><table BORDER=0 WIDTH="98%" >
|
||||
<tr>
|
||||
<td ALIGN=LEFT VALIGN=TOP><a href="H5.intro.html">Introduction to HDF5</a>
|
||||
<br><a href="RM_H5Front.html">HDF5 Reference Manual</a>
|
||||
<br><a href="index.html">Other HDF5 documents and links</a>
|
||||
<br><!--
|
||||
<center>
|
||||
<table border=0 width=98%>
|
||||
<tr><td valign=top align=left>
|
||||
<a href="H5.intro.html">Introduction to HDF5</a> <br>
|
||||
<a href="RM_H5Front.html">HDF5 Reference Manual</a> <br>
|
||||
<a href="index.html">Other HDF5 documents and links</a> <br>
|
||||
<!--
|
||||
<a href="Glossary.html">Glossary</a><br>
|
||||
--></td>
|
||||
-->
|
||||
</td>
|
||||
<td valign=top align=right>
|
||||
And in this document, the
|
||||
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>
|
||||
<br>
|
||||
<a href="Files.html">Files</a>
|
||||
<a href="Datasets.html">Datasets</a>
|
||||
<a href="Datatypes.html">Datatypes</a>
|
||||
<a href="Dataspaces.html">Dataspaces</a>
|
||||
<a href="Groups.html">Groups</a>
|
||||
<br>
|
||||
<a href="References.html">References</a>
|
||||
<a href="Attributes.html">Attributes</a>
|
||||
<a href="Properties.html">Property Lists</a>
|
||||
<a href="Errors.html">Error Handling</a>
|
||||
<br>
|
||||
<a href="Filters.html">Filters</a>
|
||||
<a href="Palettes.html">Palettes</a>
|
||||
<a href="Caching.html">Caching</a>
|
||||
<a href="Chunking.html">Chunking</a>
|
||||
<a href="MountingFiles.html">Mounting Files</a>
|
||||
<br>
|
||||
<a href="Performance.html">Performance</a>
|
||||
<a href="Debugging.html">Debugging</a>
|
||||
<a href="Environment.html">Environment</a>
|
||||
DDL
|
||||
<br>
|
||||
<a href="Ragged.html">Ragged Arrays</a>
|
||||
</td></tr>
|
||||
</table>
|
||||
</center>
|
||||
|
||||
<td ALIGN=RIGHT VALIGN=TOP>And in this document, the <b><a href="H5.user.html">HDF5
|
||||
User's Guide:</a></b>
|
||||
<br><a href="Files.html">Files</a> <a href="Datasets.html">Datasets</a>
|
||||
<a href="Datatypes.html">Datatypes</a> <a href="Dataspaces.html">Dataspaces</a>
|
||||
<a href="Groups.html">Groups</a>
|
||||
<br><a href="References.html">References</a> <a href="Attributes.html">Attributes</a>
|
||||
<a href="Properties.html">Property Lists</a> <a href="Errors.html">Error
|
||||
Handling</a>
|
||||
<br><a href="Filters.html">Filters</a> <a href="Palettes.html">Palettes</a>
|
||||
<a href="Caching.html">Caching</a> <a href="Chunking.html">Chunking</a>
|
||||
<a href="MountingFiles.html">Mounting Files</a>
|
||||
<br><a href="Performance.html">Performance</a> <a href="Debugging.html">Debugging</a>
|
||||
<a href="Environment.html">Environment</a> DDL
|
||||
<br><a href="Ragged.html">Ragged Arrays</a></td>
|
||||
</tr>
|
||||
</table></center>
|
||||
|
||||
<hr>
|
||||
<address>
|
||||
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a></address>
|
||||
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
|
||||
</address>
|
||||
|
||||
Last modified: 14 October 1999
|
||||
|
||||
<br>Last modified: 14 October 1999
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user