diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 0e3ab62c8a..488488948f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ "master" ] + branches: [ "main" ] pull_request: # The branches below must be a subset of the branches above - branches: [ "master" ] + branches: [ "main" ] schedule: - cron: '19 23 * * 3' diff --git a/.github/workflows/frequent_check.yml b/.github/workflows/frequent_check.yml index a888a6072b..b8263399a6 100644 --- a/.github/workflows/frequent_check.yml +++ b/.github/workflows/frequent_check.yml @@ -27,7 +27,7 @@ jobs: - name: test run: | cd build - ctest -C Release + ctest -C Release --output-on-failure build-linux: @@ -48,9 +48,9 @@ jobs: - name: make run: | cd build - cmake --build . -j 2 + cmake --build . -j 8 cmake --build . --target install - name: test run: | cd build - ctest + ctest --output-on-failure diff --git a/.gitignore b/.gitignore index b20a145341..52ada7d53a 100644 --- a/.gitignore +++ b/.gitignore @@ -51,7 +51,10 @@ six/Makefile six/modules/**/Makefile *_config.h *_config.hpp +# ignore build directories ... build/ +# ... but not coda-oss/build +!/externals/coda-oss/build/ # Drivers six/projects/csm/external/csm-master/ diff --git a/0_build b/0_build index c9e367089e..8f70ebe8b7 100755 --- a/0_build +++ b/0_build @@ -5,7 +5,7 @@ rm -r -f out && mkdir out && cd out cmake -DCMAKE_INSTALL_PREFIX=install-autobuild -DENABLE_PYTHON=false .. -cmake --build . -j 2 +cmake --build . -j 6 exec cmake --build . --target install diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f7dc4d6fb..825ea882ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,25 +1,19 @@ cmake_minimum_required(VERSION 3.14) project(six-library) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 14) set(CXX_STANDARD_REQUIRED true) if (${CMAKE_PROJECT_NAME} STREQUAL six-library) # we are the top-level project and are responsible for configuration - # set up warnings + # Always turn on "warnings as errors" to avoid lots of (meaningless?) build output; + # we'll dial-back warnings as necessary. if (MSVC) - # set warning level to /W3 - string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - string(REGEX REPLACE "/W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - add_compile_options(/W3 /wd4290 /wd4512) - add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS) + add_compile_options(/WX) # warnings as errors + add_compile_options(/MP) # multi-processor build elseif (UNIX) - add_compile_options( - -Wno-deprecated - -Wno-unused-value - -Wno-unused-but-set-variable - ) + add_compile_options(-Werror) # warnings as errors endif() if (EXISTS "${CMAKE_BINARY_DIR}/conan_paths.cmake") diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 7f264c6413..9f6e7205ef 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,69 +1,84 @@ -![alt tag](https://raw.github.com/ngageoint/six-library/master/docs/six_logo.png?raw=true) - -# SIX [Release](https://github.com/ngageoint/six-library/releases) Notes - -## [Version 3.1.15](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.15); March 13, 2023 -* [coda-oss](https://github.com/mdaus/coda-oss) version [2023-03-10](https://github.com/mdaus/coda-oss/releases/tag/2023-03-10) -* [nitro](https://github.com/mdaus/nitro) version [2.10.13](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.13) -* CPHD 1.1.0 fixes. -* Fixed `slantToImagePartials()` not operating in slant plane. -* Final C++11 🤞🏻 release; future releases will be C++14 from [main](https://github.com/ngageoint/six-library/tree/main). - -## [Version 3.1.14](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.14); August 30, 2022 -* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-08-30](https://github.com/mdaus/coda-oss/releases/tag/2022-08-30) -* [nitro](https://github.com/mdaus/nitro) version [2.10.12](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.12) -* Routines that "traffic" in XML strings (e.g., `parseDataFromString()` or `toXMLString()`) now use - `std::u8string` (actually `coda_oss::u8string`) instead of `std::string`. -* Fixed memory leak in `ComplexXMLParser`. -* Files in **six/projects/csm/external/csm-3.0.4** are unchanged (almost!) from [CSM 3.0.4](https://github.com/ngageoint/csm/releases/tag/v3.0.4). -* ~~Final C++11 release 🤞🏻; future releases will be C++14 from [main](https://github.com/ngageoint/six-library/tree/main).~~ - -## [Version 3.1.13](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.13); August 2, 2022 -* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-08-02](https://github.com/mdaus/coda-oss/releases/tag/2022-08-02) -* [nitro](https://github.com/mdaus/nitro) version [2.10.11](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.11) -* Better handling of optional error fields -* `vtsSetEnv` command - -## [Version 3.1.12](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.12); June 29, 2022 -* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-06-29](https://github.com/mdaus/coda-oss/releases/tag/2022-06-29) -* [nitro](https://github.com/mdaus/nitro) version [2.10.10](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.10) -* Support `OTHER.*` polarization values in XML from SIDD 3.0/SICD 1.3 -* Updated to [CSM 3.0.4](https://github.com/ngageoint/csm/releases/tag/v3.0.4). -* Implements the back-end C++ changes from #351. - - * Support writing multiple CPHD channels to file from a single wideband buffer. - * Support 1-, 2-, and 4-byte datatypes within the `PVPBlock`. All user-defined PVP were hard-coded to 8-byte types before. - * Make `cphd::PVPBlock` used `std::map` to store added PVP parameters instead of `std::unordered_map`; - this was needed to support older versions of SWIG. - * Fix signal datatype in PVP to be 8-byte integer according to the CPHD v1.x spec. Was set to double previously. - -* Fix `getARPVector()` and `getARPVelocityVector()` methods to return vectors filled with constant values; - these values are used when performing `imageToSceneAdjustment`. - -## [Version 3.1.11](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.11); May 13, 2022 -* Lastest [coda-oss](https://github.com/mdaus/coda-oss) and [nitro](https://github.com/mdaus/nitro) (updates from **master**, no new releases) -* Fix bug in XML serializaton where `double`s were given a class of `xs::double` (two `:`s) instead of `xs:double`. - -## [Version 3.1.10](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.10); May 3, 2022 -* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-05-03](https://github.com/mdaus/coda-oss/releases/tag/2022-05-03) -* [nitro](https://github.com/mdaus/nitro) version [2.10.9](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.9) -* improve performance of *AMP8I_PHS8I* reading. - -## [Version 3.1.9](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.9); February 22, 2022 (aka 2/22/22) -* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-02-22](https://github.com/mdaus/coda-oss/releases/tag/2022-02-22) -* [nitro](https://github.com/mdaus/nitro) version [2.10.8](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.8) -* replace KDTree *`std::complex` -> AMP8I_PHS8I conversion* with a - ["math based" approach](https://github.com/ngageoint/six-library/pull/537#issuecomment-1026453353). -* restore SIDD 2.0 `AngleMagnitudeType`, SIDD 3.0 is `AngleZeroToExclusive360MagnitudeType` -* bugfix: "We found a bug/mistake/error in **six.sicd/source/RadarCollection.cpp**, specifically the function to rotate the Area\Plane\SegmentList block." - -## [Version 3.1.8](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.8); December 13, 2021 -* [coda-oss](https://github.com/mdaus/coda-oss) version [2021-12-13](https://github.com/mdaus/coda-oss/releases/tag/2021-12-13) -* [nitro](https://github.com/mdaus/nitro) version [2.10.7](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.7) -* write [8AMPI_PHSI](https://github.com/ngageoint/six-library/tree/feature/8AMPI_PHSI) files -* update schema for [SIDD 3.0](https://github.com/ngageoint/six-library/tree/feature/SIDD-3.0) - ------ - -## Contact -February 2022, Dan Smith Maxar +![alt tag](https://raw.github.com/ngageoint/six-library/master/docs/six_logo.png?raw=true) + +# SIX [Release](https://github.com/ngageoint/six-library/releases) Notes + +## [Version 3.2.?](https://github.com/ngageoint/six-library/releases/tag/SIX-3.2.?); ??? ??, 2023 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2023-??-??](https://github.com/mdaus/coda-oss/releases/tag/2023-??-??) +* [nitro](https://github.com/mdaus/nitro) version [2.11.?](https://github.com/mdaus/nitro/releases/tag/NITRO-2.11.?) +* Integrated [ISM v201609](https://www.dni.gov/index.php/who-we-are/organizations/ic-cio/ic-cio-related-menus/ic-cio-related-links/ic-technical-specifications/information-security-marking-metadata) into SIDD 3.0. + +## [Version 3.2.2](https://github.com/ngageoint/six-library/releases/tag/SIX-3.2.2); December 14, 2022 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-12-14](https://github.com/mdaus/coda-oss/releases/tag/2022-12-14) +* [nitro](https://github.com/mdaus/nitro) version [2.11.2](https://github.com/mdaus/nitro/releases/tag/NITRO-2.11.2) +* [Fixed slantToImagePartials not operating in slant plane](https://github.com/ngageoint/six-library/pull/613) +* Continued effort at getting unittests to run in other projects. + +## [Version 3.2.1](https://github.com/ngageoint/six-library/releases/tag/SIX-3.2.1); November 4, 2022 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-11-04](https://github.com/mdaus/coda-oss/releases/tag/2022-11-04) +* [nitro](https://github.com/mdaus/nitro) version [2.11.1](https://github.com/mdaus/nitro/releases/tag/NITRO-2.11.1) +* cphd::PhaseSGN accepts both `1` and `+1`, toString() is now `"1"` instead of `"+1"`. +* CPHD XML parser handles URI's for versions 1.0.0, 1.0.1, and 1.1.0; unit test updated to test metadata parsing extensions + +## [Version 3.2.0](https://github.com/ngageoint/six-library/releases/tag/SIX-3.2.0); August 30, 2022 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-08-30_cpp14](https://github.com/mdaus/coda-oss/releases/tag/2022-08-30_cpp14) +* [nitro](https://github.com/mdaus/nitro) version [2.11.0](https://github.com/mdaus/nitro/releases/tag/NITRO-2.11.0) +* This version is identical to [Version 3.1.14](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.14) except that C++14 is now required. + +## [Version 3.1.14](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.14); August 30, 2022 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-08-30](https://github.com/mdaus/coda-oss/releases/tag/2022-08-30) +* [nitro](https://github.com/mdaus/nitro) version [2.10.12](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.12) +* Routines that "traffic" in XML strings (e.g., `parseDataFromString()` or `toXMLString()`) now use + `std::u8string` (actually `coda_oss::u8string`) instead of `std::string`. +* Fixed memory leak in `ComplexXMLParser`. +* Files in **six/projects/csm/external/csm-3.0.4** are unchanged (almost!) from [CSM 3.0.4](https://github.com/ngageoint/csm/releases/tag/v3.0.4). +* Final C++11 release 🤞🏻; future releases will be C++14 from [main](https://github.com/ngageoint/six-library/tree/main). + +## [Version 3.1.13](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.13); August 2, 2022 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-08-02](https://github.com/mdaus/coda-oss/releases/tag/2022-08-02) +* [nitro](https://github.com/mdaus/nitro) version [2.10.11](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.11) +* Better handling of optional error fields +* `vtsSetEnv` command + +## [Version 3.1.12](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.12); June 29, 2022 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-06-29](https://github.com/mdaus/coda-oss/releases/tag/2022-06-29) +* [nitro](https://github.com/mdaus/nitro) version [2.10.10](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.10) +* Support `OTHER.*` polarization values in XML from SIDD 3.0/SICD 1.3 +* Updated to [CSM 3.0.4](https://github.com/ngageoint/csm/releases/tag/v3.0.4). +* Implements the back-end C++ changes from #351. + + * Support writing multiple CPHD channels to file from a single wideband buffer. + * Support 1-, 2-, and 4-byte datatypes within the `PVPBlock`. All user-defined PVP were hard-coded to 8-byte types before. + * Make `cphd::PVPBlock` used `std::map` to store added PVP parameters instead of `std::unordered_map`; + this was needed to support older versions of SWIG. + * Fix signal datatype in PVP to be 8-byte integer according to the CPHD v1.x spec. Was set to double previously. + +* Fix `getARPVector()` and `getARPVelocityVector()` methods to return vectors filled with constant values; + these values are used when performing `imageToSceneAdjustment`. + +## [Version 3.1.11](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.11); May 13, 2022 +* Lastest [coda-oss](https://github.com/mdaus/coda-oss) and [nitro](https://github.com/mdaus/nitro) (updates from **master**, no new releases) +* Fix bug in XML serializaton where `double`s were given a class of `xs::double` (two `:`s) instead of `xs:double`. + +## [Version 3.1.10](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.10); May 3, 2022 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-05-03](https://github.com/mdaus/coda-oss/releases/tag/2022-05-03) +* [nitro](https://github.com/mdaus/nitro) version [2.10.9](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.9) +* improve performance of *AMP8I_PHS8I* reading. + +## [Version 3.1.9](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.9); February 22, 2022 (aka 2/22/22) +* [coda-oss](https://github.com/mdaus/coda-oss) version [2022-02-22](https://github.com/mdaus/coda-oss/releases/tag/2022-02-22) +* [nitro](https://github.com/mdaus/nitro) version [2.10.8](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.8) +* replace KDTree *`std::complex` -> AMP8I_PHS8I conversion* with a + ["math based" approach](https://github.com/ngageoint/six-library/pull/537#issuecomment-1026453353). +* restore SIDD 2.0 `AngleMagnitudeType`, SIDD 3.0 is `AngleZeroToExclusive360MagnitudeType` +* bugfix: "We found a bug/mistake/error in **six.sicd/source/RadarCollection.cpp**, specifically the function to rotate the Area\Plane\SegmentList block." + +## [Version 3.1.8](https://github.com/ngageoint/six-library/releases/tag/SIX-3.1.8); December 13, 2021 +* [coda-oss](https://github.com/mdaus/coda-oss) version [2021-12-13](https://github.com/mdaus/coda-oss/releases/tag/2021-12-13) +* [nitro](https://github.com/mdaus/nitro) version [2.10.7](https://github.com/mdaus/nitro/releases/tag/NITRO-2.10.7) +* write [8AMPI_PHSI](https://github.com/ngageoint/six-library/tree/feature/8AMPI_PHSI) files +* update schema for [SIDD 3.0](https://github.com/ngageoint/six-library/tree/feature/SIDD-3.0) + +----- + +## Contact +February 2022, Dan Smith Maxar diff --git a/UnitTest/TestCase.h b/UnitTest/TestCase.h index 61c577c942..70666e5fce 100644 --- a/UnitTest/TestCase.h +++ b/UnitTest/TestCase.h @@ -93,7 +93,7 @@ inline void assert_almost_eq(const std::string& testName, long double X1, long d #undef TEST_EXCEPTION #undef TEST_THROWS -#define TEST_EXCEPTION(X) (void)testName; try{ (X); TEST_FAIL("Should have thrown exception"); } catch (const except::Throwable&){} catch (const except::Throwable11&){} +#define TEST_EXCEPTION(X) (void)testName; try{ (X); TEST_FAIL("Should have thrown exception"); } catch (const except::Throwable&){} #define TEST_THROWS(X) (void)testName; try{ (X); TEST_FAIL("Should have thrown exception"); } catch (...){} diff --git a/UnitTest/UnitTest.vcxproj b/UnitTest/UnitTest.vcxproj index 48b77cdc08..a0cbf10908 100644 --- a/UnitTest/UnitTest.vcxproj +++ b/UnitTest/UnitTest.vcxproj @@ -63,6 +63,7 @@ pch.h true AdvancedVectorExtensions2 + stdc11 Windows @@ -82,6 +83,7 @@ pch.h true AdvancedVectorExtensions2 + stdc11 Windows @@ -298,6 +300,10 @@ {62aad4dd-35ba-41a0-8263-1f4dfd755689} + + + + diff --git a/UnitTest/UnitTest.vcxproj.filters b/UnitTest/UnitTest.vcxproj.filters index 2761012736..924b309cfc 100644 --- a/UnitTest/UnitTest.vcxproj.filters +++ b/UnitTest/UnitTest.vcxproj.filters @@ -183,4 +183,12 @@ {8d8a73fb-96b1-4bdf-a055-2b34d7f94e14} + + + sidd + + + sidd + + \ No newline at end of file diff --git a/UnitTest/pch.h b/UnitTest/pch.h index ce2f0d9265..6bfde49ced 100644 --- a/UnitTest/pch.h +++ b/UnitTest/pch.h @@ -76,8 +76,8 @@ #include #include -#include -#include +#include +#include #include #include diff --git a/copy_externals.csh b/copy_externals.csh index 8d2b9862df..436d51dc49 100755 --- a/copy_externals.csh +++ b/copy_externals.csh @@ -1,10 +1,10 @@ #!/bin/csh -f rm -r -f tmp && mkdir tmp && cd tmp -git clone --depth 1 -b master git@github.com:mdaus/coda-oss.git +git clone --depth 1 -b main git@github.com:mdaus/coda-oss.git rm -r -f coda-oss/.git -git clone --depth 1 -b master git@github.com:mdaus/nitro.git +git clone --depth 1 -b main git@github.com:mdaus/nitro.git rm -r -f nitro/.git rm -r -f nitro/externals diff --git a/externals/coda-oss/.github/workflows/build_unittest.yml b/externals/coda-oss/.github/workflows/build_unittest.yml index 5715ab091a..3f7b581659 100644 --- a/externals/coda-oss/.github/workflows/build_unittest.yml +++ b/externals/coda-oss/.github/workflows/build_unittest.yml @@ -6,14 +6,14 @@ jobs: build-cmake-windows: strategy: matrix: - os: [windows-2019] + os: [windows-latest] python-version: ['3.7'] name: ${{ matrix.os }}-${{ matrix.python-version }}-CMake runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install python dependencies @@ -46,10 +46,10 @@ jobs: - name: test run: | cd target-Release - ctest -C Release + ctest -C Release --output-on-failure cd .. cd target-Debug - ctest -C Debug + ctest -C Debug --output-on-failure build-linux-cmake: strategy: @@ -59,9 +59,9 @@ jobs: name: ${{ matrix.os }}-${{ matrix.python-version }}-CMake runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install python dependencies @@ -77,7 +77,8 @@ jobs: - name: build run: | cd target - cmake --build . -j + # "-j" spawns too many processes causing GCC to crash + cmake --build . -j 12 - name: install run: | cd target @@ -85,7 +86,7 @@ jobs: - name: test run: | cd target - ctest + ctest --output-on-failure build-waf: strategy: @@ -96,9 +97,9 @@ jobs: name: ${{ matrix.os }}-${{ matrix.python-version }}-waf runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: configure_with_swig diff --git a/externals/coda-oss/.gitignore b/externals/coda-oss/.gitignore index 40c5729551..7489cb720e 100644 --- a/externals/coda-oss/.gitignore +++ b/externals/coda-oss/.gitignore @@ -2,8 +2,8 @@ *~ *.pyc __pycache__/ -# Build artifacts +# Build artifacts install/ install-*/ target/ @@ -14,13 +14,13 @@ test_package/build/ # CMake _deps/ -*.cmake CMakeCache.txt CMakeFiles/ *_config.h Makefile modules/**/Makefile out/ +CMakeSettings.json # Waf .waf-* @@ -52,4 +52,5 @@ project.sln **/x64/ *.vcxproj.user -CMakeSettings.json +# Unit-tests +TEST_*_TMP.* diff --git a/externals/coda-oss/CMakeLists.txt b/externals/coda-oss/CMakeLists.txt index 43ab0ca87e..f1aa8e5ac9 100644 --- a/externals/coda-oss/CMakeLists.txt +++ b/externals/coda-oss/CMakeLists.txt @@ -3,10 +3,9 @@ # Author: Scott A. Colcord cmake_minimum_required(VERSION 3.14) - project(coda-oss) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 14) set(CXX_STANDARD_REQUIRED true) if (EXISTS "${CMAKE_BINARY_DIR}/conanbuildinfo.cmake") @@ -20,17 +19,23 @@ endif() if (${CMAKE_PROJECT_NAME} STREQUAL coda-oss) # this is the top level project - # set up warnings + # Always turn on "warnings as errors" to avoid lots of (meaningless?) build output; + # we'll dial-back warnings as necessary. if (MSVC) - # set warning level to /W3 - string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - string(REGEX REPLACE "/W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + add_compile_options(/WX) # warnings as errors + add_compile_options(/MP) # multi-processor compile + + if (ENABLE_ASAN) + # https://docs.microsoft.com/en-us/cpp/sanitizers/asan?view=msvc-160 + add_compile_options(/fsanitize=address) + endif() elseif (UNIX) - add_compile_options( - -Wno-deprecated - -Wno-unused-value - -Wno-unused-but-set-variable - ) + add_compile_options(-Werror) # warnings as errors + if (ENABLE_ASAN) + # https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html + add_compile_options(-fsanitize=address) + add_link_options(-fsanitize=address) + endif() endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") diff --git a/externals/coda-oss/ReleaseNotes.md b/externals/coda-oss/ReleaseNotes.md index 3909f2b02c..f473ce0160 100644 --- a/externals/coda-oss/ReleaseNotes.md +++ b/externals/coda-oss/ReleaseNotes.md @@ -11,15 +11,33 @@ ``` # coda-oss Release Notes -## [Release 2023-03-10](https://github.com/mdaus/coda-oss/releases/tag/2023-01-10) -* Final 🤞🏻 **C++11 release from [master](https://github.com/mdaus/coda-oss/tree/master) - not [main](https://github.com/mdaus/coda-oss/tree/main)/C++14** (as releases since - [2022-08-30](https://github.com/mdaus/coda-oss/releases/tag/2022-08-30) have been). -* [HDF5](https://www.hdfgroup.org/) [source code](https://github.com/HDFGroup/hdf5) added (not built). -* *waf* self-extractor rebuilt to fix FIPS warning because of insecure *md5* hashing. -* Better debug/release configurations for *waf* builds. -* Minor tweaks from other projects. +## [Release 2023-??-??](https://github.com/mdaus/coda-oss/releases/tag/2023-??-??) +* *zlib* updated to [1.2.13](https://github.com/madler/zlib/releases/tag/v1.2.13). +* new `mem::ComplexView` class to make it easier to process complex data stored in parallel. +* adjust compiler flags for clean *CMake* builds. +* wrap common "file open" routines (e.g., `fopen()`) to support `sys::expandEnvironmentVariables()`. +* add header-only [HighFive](https://github.com/BlueBrain/HighFive) HDF5-wrapper library. + +## [Release 2022-12-14](https://github.com/mdaus/coda-oss/releases/tag/2022-12-14) +* removed remaining vestiges of `std::auto_ptr`, provide `mem::AutoPtr` for the tiny handful of + places (e.g., SWIG bindings) that still need copying. +* `xml::lite::Element` overloads to make creting new XML documents easier; see unittests for examples. +* try even harder to find unittest files in various scenarios. +* build *hdf5.lite* with **waf**. +* New `--optz=fastest-possible` (**waf** only) which adds + [`-march=native`](https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/x86-Options.html#x86-Options) + to *fastest* for **waf** builds. There is a new *faster* option (the default) which is currently + the same as *fastest* (i.e., no `-march=native`). +## [Release 2022-11-04](https://github.com/mdaus/coda-oss/releases/tag/2022-11-04) +* "Cut" from [main](https://github.com/mdaus/coda-oss/tree/main), not *master*. +* The [HDFGroup](https://hdfgroup.org/)s [HDF5 library](https://github.com/HDFGroup/hdf5) is built + and installed; a simple (and very incomplete!) wrapper is provided, this is at the "hello world!" stage. +* A few **cli** routines have been tweaked to make unit-testing easier. +* Utilitiy routines for finding various files when unit-testing. +* Removed C++14 work-arounds needed in C++11. Legacy C++ exception specificatons removed. +* Rebuild `waf` for FIPS error; added more debug options. + ## [Release 2022-08-30](https://github.com/mdaus/coda-oss/releases/tag/2022-08-30) * XML is now always written as UTF-8; the code will still try to read Windows-1252. * `Uri`s are no longer validated by default. diff --git a/externals/coda-oss/UnitTest/TestCase.h b/externals/coda-oss/UnitTest/TestCase.h index 32852fa389..f4438821f1 100644 --- a/externals/coda-oss/UnitTest/TestCase.h +++ b/externals/coda-oss/UnitTest/TestCase.h @@ -10,15 +10,17 @@ #undef TEST_CHECK #undef TEST_ASSERT #undef TEST_ASSERT_NULL +#undef TEST_ASSERT_NOT_NULL #undef TEST_ASSERT_TRUE #undef TEST_ASSERT_FALSE #undef TEST_MAIN #undef TEST_CASE #define TEST_CHECK(X) #define TEST_MAIN(X) -#define TEST_ASSERT_NULL(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsNull((X)) -#define TEST_ASSERT_TRUE(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue((X)) -#define TEST_ASSERT_FALSE(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsFalse((X)) +#define TEST_ASSERT_NULL(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsNull(X) +#define TEST_ASSERT_NOT_NULL(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsNotNull(X) +#define TEST_ASSERT_TRUE(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(X) +#define TEST_ASSERT_FALSE(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsFalse(X) #define TEST_ASSERT(X) TEST_ASSERT_TRUE(X) #define CODA_OSS_testMethod_(X) testMethod ## _ ## X #define TEST_CASE(X) TEST_METHOD(X) { CODA_OSS_testMethod_(X)(#X); } void CODA_OSS_testMethod_(X)(std::string testName) @@ -30,8 +32,8 @@ namespace test static void FailOnCondition(bool condition, const unsigned short* message, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo); static std::wstring GetAssertMessage(bool equality, const std::string& expected, const std::string& actual, const wchar_t *message); }; -#define CODA_OSS_equals_message_(expected, actual, message) reinterpret_cast(test::Assert::GetAssertMessage(true, str::toString(expected), str::toString(actual), message).c_str()) -#define CODA_OSS_not_equals_message_(notExpected, actual, message) reinterpret_cast(test::Assert::GetAssertMessage(false, str::toString(notExpected), str::toString(actual), message).c_str()) +#define CODA_OSS_equals_message_(expected, actual, message) reinterpret_cast(test::Assert::GetAssertMessage(true, test::toString(expected), test::toString(actual), message).c_str()) +#define CODA_OSS_not_equals_message_(notExpected, actual, message) reinterpret_cast(test::Assert::GetAssertMessage(false, test::toString(notExpected), test::toString(actual), message).c_str()) #define CODA_OSS_message_(message) reinterpret_cast(test::Assert::GetAssertMessage(false, "", "", message).c_str()) // see Assert::AreEqual<> @@ -39,7 +41,7 @@ template inline void diePrintf_eq(const TExpected& expected, const TActual& actual, const wchar_t* message = NULL, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo = NULL) { - Assert::FailOnCondition(expected == actual, CODA_OSS_equals_message_(expected, actual, message), pLineInfo); + Assert::FailOnCondition(expected == actual, CODA_OSS_equals_message_(expected, actual, message), pLineInfo); } // see Assert::AreNotEqual<> @@ -47,7 +49,7 @@ template inline void diePrintf_ne(const TExpected& notExpected, const TActual& actual, const wchar_t* message = NULL, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo = NULL) { - Assert::FailOnCondition(notExpected != actual, CODA_OSS_not_equals_message_(notExpected, actual, message), pLineInfo); + Assert::FailOnCondition(notExpected != actual, CODA_OSS_not_equals_message_(notExpected, actual, message), pLineInfo); } template @@ -78,22 +80,22 @@ inline void diePrintf_lt(const TX1& X1, const TX2& X2, } #undef CODA_OSS_test_diePrintf_eq_ #undef CODA_OSS_test_diePrintf_not_eq_ -#define CODA_OSS_test_diePrintf_eq_(X1, X2) testName, test::diePrintf_eq(X1, X2) -#define CODA_OSS_test_diePrintf_not_eq_(X1, X2) testName, test::diePrintf_ne(X1, X2) +#define CODA_OSS_test_diePrintf_eq_(X1, X2) testName, ::test::diePrintf_eq(X1, X2) +#define CODA_OSS_test_diePrintf_not_eq_(X1, X2) testName, ::test::diePrintf_ne(X1, X2) #undef CODA_OSS_test_diePrintf_greater_eq_ #undef CODA_OSS_test_diePrintf_greater_ #undef CODA_OSS_test_diePrintf_lesser_eq_ #undef CODA_OSS_test_diePrintf_lesser_ -#define CODA_OSS_test_diePrintf_greater_eq_(X1, X2) testName, test::diePrintf_ge(X1, X2) -#define CODA_OSS_test_diePrintf_greater_(X1, X2) testName, test::diePrintf_gt(X1, X2) -#define CODA_OSS_test_diePrintf_lesser_eq_(X1, X2) testName, test::diePrintf_le(X1, X2) -#define CODA_OSS_test_diePrintf_lesser_(X1, X2) testName, test::diePrintf_lt(X1, X2) +#define CODA_OSS_test_diePrintf_greater_eq_(X1, X2) testName, ::test::diePrintf_ge(X1, X2) +#define CODA_OSS_test_diePrintf_greater_(X1, X2) testName, ::test::diePrintf_gt(X1, X2) +#define CODA_OSS_test_diePrintf_lesser_eq_(X1, X2) testName, ::test::diePrintf_le(X1, X2) +#define CODA_OSS_test_diePrintf_lesser_(X1, X2) testName, ::test::diePrintf_lt(X1, X2) template inline void test_assert_greater_(const TX1& X1, const TX2& X2) { - Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(X1 > X2); + Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(X1 > X2); } #undef TEST_ASSERT_GREATER #define TEST_ASSERT_GREATER(X1, X2) testName, test_assert_greater_(X1, X2) @@ -124,14 +126,13 @@ inline void assert_almost_eq(const std::string& testName, long double X1, long d #undef TEST_ASSERT_EQ_MSG #define TEST_ASSERT_EQ_MSG(msg, X1, X2) testName, Microsoft::VisualStudio::CppUnitTestFramework::Logger::WriteMessage(msg.c_str()); TEST_ASSERT_EQ(X1, X2) -#undef TEST_FAIL -#define TEST_FAIL(msg) { (void)testName; const str::EncodedStringView vw(msg); Microsoft::VisualStudio::CppUnitTestFramework::Assert::Fail(vw.wstring().c_str()); } +#undef TEST_FAIL_MSG +#define TEST_FAIL_MSG(msg) { (void)testName; const str::EncodedStringView vw(msg); Microsoft::VisualStudio::CppUnitTestFramework::Assert::Fail(vw.wstring().c_str()); } #undef TEST_EXCEPTION #undef TEST_THROWS #undef TEST_SPECIFIC_EXCEPTION -#define TEST_EXCEPTION(X) (void)testName; try{ (X); TEST_FAIL(#X " should have thrown."); } \ - catch (const except::Throwable&){ TEST_ASSERT_TRUE(true); } catch (const except::Throwable11&){ TEST_ASSERT_TRUE(true); } +#define TEST_EXCEPTION(X) (void)testName; try{ (X); TEST_FAIL(#X " should have thrown."); } CODA_OSS_TEST_EXCEPTION_catch_ #define TEST_THROWS(X) (void)testName; try{ (X); TEST_FAIL(#X " should have thrown."); } catch (...){ TEST_ASSERT_TRUE(true); } #define TEST_SPECIFIC_EXCEPTION(X, Y) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::ExpectException([&](){(X);}) diff --git a/externals/coda-oss/UnitTest/UnitTest.vcxproj b/externals/coda-oss/UnitTest/UnitTest.vcxproj index 1d301cb7c6..e6dd924ee7 100644 --- a/externals/coda-oss/UnitTest/UnitTest.vcxproj +++ b/externals/coda-oss/UnitTest/UnitTest.vcxproj @@ -23,16 +23,16 @@ DynamicLibrary true v143 - Unicode false + Unicode DynamicLibrary false v143 true - Unicode false + Unicode @@ -64,10 +64,13 @@ true true Guard - true - true ProgramDatabase true + true + true + true + true + /Zc:__cplusplus %(AdditionalOptions) Windows @@ -88,6 +91,11 @@ true Guard true + true + true + true + true + /Zc:__cplusplus %(AdditionalOptions) Windows @@ -249,6 +257,10 @@ true true + + true + true + true true diff --git a/externals/coda-oss/UnitTest/UnitTest.vcxproj.filters b/externals/coda-oss/UnitTest/UnitTest.vcxproj.filters index e85d2fcd02..37d7c36cf4 100644 --- a/externals/coda-oss/UnitTest/UnitTest.vcxproj.filters +++ b/externals/coda-oss/UnitTest/UnitTest.vcxproj.filters @@ -219,6 +219,9 @@ re + + mt + diff --git a/externals/coda-oss/UnitTest/mt.cpp b/externals/coda-oss/UnitTest/mt.cpp index 2de6f17fd6..6190f8aa4a 100644 --- a/externals/coda-oss/UnitTest/mt.cpp +++ b/externals/coda-oss/UnitTest/mt.cpp @@ -24,4 +24,8 @@ TEST_CLASS(work_sharing_balanced_runnable_1d_test){ public: #include "mt/unittests/work_sharing_balanced_runnable_1d_test.cpp" }; +TEST_CLASS(test_mt_byte_swap){ public: +#include "mt/unittests/test_mt_byte_swap.cpp" +}; + } \ No newline at end of file diff --git a/externals/coda-oss/UnitTest/pch.h b/externals/coda-oss/UnitTest/pch.h index 79dcfbaf50..ecbdb7c880 100644 --- a/externals/coda-oss/UnitTest/pch.h +++ b/externals/coda-oss/UnitTest/pch.h @@ -10,9 +10,12 @@ // add headers that you want to pre-compile here #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#pragma warning(push) +#pragma warning(disable: 5105) // macro expansion producing '...' has undefined behavior #include #include #include +#pragma warning(pop) #undef min #undef max @@ -20,35 +23,19 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "import/std.h" + #include #include #include #include #include -#include -#include // std::endian -#include -#include // std::accumulate #include -#include -#include -#include +#include // std::endian #include "CppUnitTest.h" +#include "coda_oss/span.h" #include "gsl/gsl.h" #include "import/sys.h" #include "import/math.h" @@ -57,6 +44,8 @@ #include "import/except.h" #include "import/mem.h" #include +#include +#include #include "import/cli.h" #include "polygon/DrawPolygon.h" #include "polygon/PolygonMask.h" @@ -85,6 +74,8 @@ #include #include #include +#include +#include #include #include #include @@ -97,11 +88,13 @@ #include #include #include +#include #include #include #include #include #include +#include "io/StringStream.h" #include "TestCase.h" diff --git a/externals/coda-oss/build/build.py b/externals/coda-oss/build/build.py index 6bc753f6ed..e9fd0ecdea 100644 --- a/externals/coda-oss/build/build.py +++ b/externals/coda-oss/build/build.py @@ -21,6 +21,12 @@ from makewheel import makewheel from package import package +try: + import hashlib + hashlib.md5() +except ValueError: + Logs.error('MD5 error - you are likely trying to use an old python on a new machine to run waf. ' + 'If you run into a fatal FIPS error try finding a newer version of python.') COMMON_EXCLUDES = '.bzr .bzrignore .git .gitignore .svn CVS .cvsignore .arch-ids {arch} SCCS BitKeeper .hg _MTN _darcs Makefile Makefile.in config.log'.split() COMMON_EXCLUDES_EXT ='~ .rej .orig .pyc .pyo .bak .tar.bz2 tar.gz .zip .swp'.split() @@ -29,8 +35,8 @@ for ext in COMMON_EXCLUDES_EXT: TaskGen.extension(ext)(Utils.nada) -if sys.version_info < (2,6,0): - raise Errors.WafError('Build system requires at least Python 2.6') +if sys.version_info < (3,6,0): + raise Errors.WafError('Build system requires at least Python 3.6') # provide a partial function if we don't have one try: @@ -761,10 +767,20 @@ def options(opt): help='Set non-standard LINKFLAGS (C/C++)', metavar='FLAGS') opt.add_option('--with-defs', action='store', nargs=1, dest='_defs', help='Use DEFS as macro definitions', metavar='DEFS') + + # This approach might not be sustainable as users might want (much) better control + # over the optimation flags. The "problem" is that different optimzation levels + # can, in particular, cause slight floating-point differences which can break + # e.g., existing regression tests. + # + # For example, GCC has a -Ofast flag which generates "even faster" code at the risk + # of violating C/C++ standards. There is also on-going research into faster floating-point + # math, those efforts are slowly making their way into language standards and compilers. opt.add_option('--with-optz', action='store', - choices=['med', 'fast', 'fastest'], - default='fastest', metavar='OPTZ', + choices=['med', 'fast', 'faster', 'fastest', 'fastest-possible'], + default='faster', metavar='OPTZ', help='Specify the optimization level for optimized/release builds') + opt.add_option('--libs-only', action='store_true', dest='libs_only', help='Only build the libs (skip building the tests, etc.)') opt.add_option('--shared', action='store_true', dest='shared_libs', @@ -796,23 +812,7 @@ def options(opt): 'results. NOOP if junit_xml cannot be imported') -def ensureCpp11Support(self): - # Visual Studio 2013 has nullptr but not constexpr. Need to check for - # both in here to make sure we have full C++11 support... otherwise, - # long-term we may need multiple separate configure checks and - # corresponding defines - - cpp11_str = ''' - int main() - { - constexpr void* FOO = nullptr; - } - ''' - self.check_cxx(fragment=cpp11_str, - execute=0, - msg='Checking for C++11 support', - mandatory=True) - +def ensureCpp14Support(self): # DEPRECATED. # Keeping for now in case downstream code is still looking for it self.env['cpp11support'] = True @@ -822,7 +822,6 @@ def configureCompilerOptions(self): sys_platform = getPlatform(default=Options.platform) appleRegex = r'i.86-apple-.*' linuxRegex = r'.*-.*-linux-.*|i686-pc-.*|linux' - solarisRegex = r'sparc-sun.*|i.86-pc-solaris.*|sunos' winRegex = r'win32' osxRegex = r'darwin' @@ -851,7 +850,9 @@ def configureCompilerOptions(self): config['cxx']['optz_debug'] = '' config['cxx']['optz_med'] = '-O1' config['cxx']['optz_fast'] = '-O2' - config['cxx']['optz_fastest'] = '-O3' + config['cxx']['optz_faster'] = '-O3' + config['cxx']['optz_fastest'] = config['cxx']['optz_faster'] + config['cxx']['optz_fastest-possible'] = config['cxx']['optz_fastest'] # TODO: -march=native ? #self.env.append_value('LINKFLAGS', '-fPIC -dynamiclib'.split()) self.env.append_value('LINKFLAGS', '-fPIC'.split()) @@ -864,7 +865,9 @@ def configureCompilerOptions(self): config['cc']['optz_debug'] = config['cxx']['optz_debug'] config['cc']['optz_med'] = config['cxx']['optz_med'] config['cc']['optz_fast'] = config['cxx']['optz_fast'] + config['cc']['optz_faster'] = config['cxx']['optz_faster'] config['cc']['optz_fastest'] = config['cxx']['optz_fastest'] + config['cc']['optz_fastest-possible'] = config['cxx']['optz_fastest-possible'] self.env.append_value('DEFINES', '_FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE'.split()) self.env.append_value('CFLAGS', '-fPIC -dynamiclib'.split()) @@ -879,9 +882,6 @@ def configureCompilerOptions(self): self.env.append_value('LINKFLAGS_THREAD', '-pthread') self.check_cc(lib='pthread', mandatory=True) - if re.match(solarisRegex, sys_platform): - self.env.append_value('LIB_SOCKET', 'socket') - warningFlags = '-Wall' if ccCompiler == 'gcc': #warningFlags += ' -Wno-deprecated-declarations -Wold-style-cast' @@ -904,12 +904,19 @@ def configureCompilerOptions(self): config['cxx']['linkflags_64'] = '-m64' config['cxx']['optz_med'] = '-O1' config['cxx']['optz_fast'] = '-O2' - config['cxx']['optz_fastest'] = '-O3' - + # https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/x86-Options.html#x86-Options + # "Using -march=native enables all instruction subsets supported by the local machine ..." + config['cxx']['optz_faster'] = '-O3' # no -march=native + config['cxx']['optz_fastest'] = config['cxx']['optz_faster'] # TODO: add -march=native ? + # This "should" be part of fastest, but that could cause unexpected floating point differences. + # The "fastest-possible" option is new; see comments above. + config['cxx']['optz_fastest-possible'] = [ config['cxx']['optz_fastest'], '-march=native' ] + + self.env.append_value('CXXFLAGS', '-fPIC'.split()) if not Options.options.enablecpp17: - gxxCompileFlags='-fPIC -std=c++11' + gxxCompileFlags='-std=c++14' else: - gxxCompileFlags='-fPIC -std=c++17' + gxxCompileFlags='-std=c++17' self.env.append_value('CXXFLAGS', gxxCompileFlags.split()) # DEFINES and LINKFLAGS will apply to both gcc and g++ @@ -919,7 +926,7 @@ def configureCompilerOptions(self): # Is there an equivalent to get the same functionality or # is this an OS limitation? linkFlags = '-fPIC' - if (not re.match(osxRegex, sys_platform)) and (not re.match(solarisRegex, sys_platform)): + if (not re.match(osxRegex, sys_platform)): linkFlags += ' -Wl,-E' self.env.append_value('LINKFLAGS', linkFlags.split()) @@ -946,61 +953,17 @@ def configureCompilerOptions(self): config['cc']['linkflags_64'] = '-m64' config['cc']['optz_med'] = '-O1' config['cc']['optz_fast'] = '-O2' - config['cc']['optz_fastest'] = '-O3' + # https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/x86-Options.html#x86-Options + # "Using -march=native enables all instruction subsets supported by the local machine ..." + config['cc']['optz_faster'] = '-O3' # no -march=native + config['cc']['optz_fastest'] = config['cc']['optz_faster'] # TODO: add -march=native ? + # This "should" be part of fastest, but that could cause unexpected floating point differences. + # The "fastest-possible" option is new; see comments above. + config['cc']['optz_fastest-possible'] = [ config['cc']['optz_fastest'], '-march=native' ] self.env.append_value('CFLAGS', '-fPIC'.split()) - - # Solaris (Studio compiler) - elif re.match(solarisRegex, sys_platform): - self.env.append_value('LIB_DL', 'dl') - self.env.append_value('LIB_NSL', 'nsl') - self.env.append_value('LIB_SOCKET', 'socket') - self.env.append_value('LIB_THREAD', 'thread') - self.env.append_value('LIB_MATH', 'm') - self.env.append_value('LIB_CRUN', 'Crun') - self.env.append_value('LIB_CSTD', 'Cstd') - self.check_cc(lib='thread', mandatory=True) - - warningFlags = '' - if Options.options.warningsAsErrors: - warningFlags = '-errwarn=%all' - - if cxxCompiler == 'sunc++': - bitFlag64 = getSolarisFlags(self.env['CXX'][0]) - config['cxx']['debug'] = '-g' - config['cxx']['warn'] = warningFlags.split() - config['cxx']['nowarn'] = '-erroff=%all' - config['cxx']['verbose'] = '-v' - config['cxx']['64'] = bitFlag64 - config['cxx']['optz_debug'] = '' - config['cxx']['optz_med'] = '-xO3' - config['cxx']['optz_fast'] = '-xO4' - config['cxx']['optz_fastest'] = '-xO5' - self.env['CXXFLAGS_cxxshlib'] = ['-KPIC', '-DPIC'] - - # DEFINES apply to both suncc and sunc++ - self.env.append_value('DEFINES', '_FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE'.split()) - self.env.append_value('CXXFLAGS', '-KPIC -instances=global'.split()) - self.env.append_value('CXXFLAGS_THREAD', '-mt') - - if ccCompiler == 'suncc': - bitFlag64 = getSolarisFlags(self.env['CC'][0]) - config['cc']['debug'] = '-g' - config['cc']['warn'] = warningFlags.split() - config['cc']['nowarn'] = '-erroff=%all' - config['cc']['verbose'] = '-v' - config['cc']['64'] = bitFlag64 - config['cc']['linkflags_64'] = bitFlag64 - config['cc']['optz_debug'] = '' - config['cc']['optz_med'] = '-xO3' - config['cc']['optz_fast'] = '-xO4' - config['cc']['optz_fastest'] = '-xO5' - self.env['CFLAGS_cshlib'] = ['-KPIC', '-DPIC'] - - # C99 is required for Solaris to be compatible with - # macros that openjpeg sets - self.env.append_value('CFLAGS', ['-KPIC', '-xc99=all']) - self.env.append_value('CFLAGS_THREAD', '-mt') + # "gnu99" enables POSIX and BSD + self.env.append_value('CFLAGS', '-std=gnu99'.split()) elif re.match(winRegex, sys_platform): crtFlag = '/%s' % Options.options.crt @@ -1031,7 +994,9 @@ def configureCompilerOptions(self): vars['optz_debug'] = ['', crtFlag] vars['optz_med'] = ['-O2', crtFlag] vars['optz_fast'] = ['-O2', crtFlag] + vars['optz_faster'] = vars['optz_fast'] vars['optz_fastest'] = ['-Ox', crtFlag] + vars['optz_fastest-possible'] = vars['optz_fastest'] # The MACHINE flag is is probably not actually necessary # The linker should be able to infer it from the object files # But doing this just to make sure we're really building 32/64 bit @@ -1063,6 +1028,8 @@ def configureCompilerOptions(self): #If building with cpp17 add flags/defines to enable auto_ptr if Options.options.enablecpp17: flags.append('/std:c++17') + else: + flags.append('/std:c++14') self.env.append_value('DEFINES', defines) self.env.append_value('CXXFLAGS', flags) @@ -1283,7 +1250,7 @@ def configure(self): if Options.options._defs: env.append_unique('DEFINES', Options.options._defs.split(',')) configureCompilerOptions(self) - ensureCpp11Support(self) + ensureCpp14Support(self) env['PLATFORM'] = sys_platform @@ -1332,7 +1299,6 @@ def process_swig_linkage(tsk): # options for specifying soname and passing linker # flags - solarisRegex = r'sparc-sun.*|i.86-pc-solaris.*|sunos' darwinRegex = r'i.86-apple-.*' osxRegex = r'darwin' @@ -1355,12 +1321,6 @@ def process_swig_linkage(tsk): rpath_pattern = '-Wl,-rpath=%s' soname_pattern = '-soname=%s' - # overrides for solaris's cc and ld - if re.match(solarisRegex,platform) and compiler != 'g++' and compiler != 'icpc': - linkarg_pattern = '%s' - soname_pattern = '-h%s' - rpath_pattern = '-Rpath%s' - # overrides for osx if re.match(darwinRegex,platform) or re.match(osxRegex,platform): while '-bundle' in tsk.env.LINKFLAGS: diff --git a/externals/coda-oss/cmake/CodaFindSystemDependencies.cmake b/externals/coda-oss/cmake/CodaFindSystemDependencies.cmake index 479b30fed6..5efe5c73b9 100644 --- a/externals/coda-oss/cmake/CodaFindSystemDependencies.cmake +++ b/externals/coda-oss/cmake/CodaFindSystemDependencies.cmake @@ -12,18 +12,6 @@ macro(coda_find_system_dependencies) # creates imported target Boost::serialization, if found # see https://cmake.org/cmake/help/latest/module/FindBoost.html set(ENABLE_BOOST OFF CACHE BOOL "Enable building modules dependent on Boost") - set(BOOST_HOME "" CACHE PATH "path to boost installation") - if (ENABLE_BOOST OR BOOST_HOME) - if (BOOST_HOME) - set(BOOST_ROOT ${BOOST_HOME}) - endif() - find_package(Boost COMPONENTS serialization) - if (NOT Boost_FOUND) - message(FATAL_ERROR "Unable to find Boost. Set BOOST_HOME to help \ - locate it, or set ENABLE_BOOST=OFF.") - endif() - set(HAVE_BOOST ${Boost_FOUND}) - endif() # sets the following variables if Python installation found: # Python_FOUND - flag indicating system has the requested components diff --git a/externals/coda-oss/conanfile.py b/externals/coda-oss/conanfile.py index ca428dc12f..c168d74ac6 100644 --- a/externals/coda-oss/conanfile.py +++ b/externals/coda-oss/conanfile.py @@ -78,7 +78,7 @@ class CodaOssConan(ConanFile): def set_version(self): git = tools.Git(folder=self.recipe_folder) - self.version = "%s_%s" % (git.get_branch(), git.get_revision()[:16]) + self.version = git.get_revision()[:16] def _get_in_tree_dependencies(self): # The in-tree dependencies ("drivers"). @@ -115,7 +115,7 @@ def _get_in_tree_dependencies(self): enable_option="ENABLE_XML", ), "zlib": dict( - version="1.2.12", + version="1.2.13", user="coda", channel="driver", path=os.path.join("modules", "drivers", "zlib"), diff --git a/externals/coda-oss/modules/c++/CMakeLists.txt b/externals/coda-oss/modules/c++/CMakeLists.txt index 1d320256df..5d6ec9ed88 100644 --- a/externals/coda-oss/modules/c++/CMakeLists.txt +++ b/externals/coda-oss/modules/c++/CMakeLists.txt @@ -1,11 +1,25 @@ set(TARGET_LANGUAGE c++) -# turn on warnings as errors +# turn on maximum warnings if (MSVC) - add_compile_options(/WX) - add_compile_options(/W4) + add_compile_options(/std:c++14) + + # By default, there is a /W3 on the command-line from somewhere (?); adding + # /Wn results in a compiler warning. + #add_compile_options(/W4) # /Wall + string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # /Wall + elseif (UNIX) - add_compile_options(-Werror) + add_compile_options(-std=c++14) + + add_compile_options(-Wall -pedantic -Wextra) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wregister") # -Wvolatile + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weffc++") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual") + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsuggest-final-types -Wsuggest-final-methods") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsuggest-override") endif() # add an interface library for unittests @@ -18,34 +32,7 @@ install(FILES "include/TestCase.h" DESTINATION "${CODA_STD_PROJECT_INCLUDE_DIR}" install(TARGETS TestCase EXPORT ${CODA_EXPORT_SET_NAME}) # common configuration checks, used by config and sys modules -check_include_file("pthread.h" HAVE_PTHREAD_H) -check_include_file("execinfo.h" HAVE_EXECINFO_H) -check_symbol_exists("clock_gettime" "time.h" HAVE_CLOCK_GETTIME) -if (NOT HAVE_CLOCK_GETTIME) # On old systems this was in librt, not libc - unset("HAVE_CLOCK_GETTIME" CACHE) # check_xxx_exists set CACHE variables, which cannot be re-used without being unset. - find_library(RT_LIB rt) - if (RT_LIB) - check_library_exists(rt clock_gettime ${RT_LIB} HAVE_CLOCK_GETTIME) - if (HAVE_CLOCK_GETTIME) # Record the necessary extra link library - set(CLOCK_GETTIME_EXTRALIBS "rt" CACHE INTERNAL "") - endif() - endif() -endif() -check_include_file("atomic.h" HAVE_ATOMIC_H) -check_include_file("sys/time.h" HAVE_SYS_TIME_H) -check_symbol_exists("localtime_r" "time.h" HAVE_LOCALTIME_R) -check_symbol_exists("gmtime_r" "time.h" HAVE_GMTIME_R) -check_symbol_exists("setenv" "stdlib.h" HAVE_SETENV) -check_symbol_exists("posix_memalign" "stdlib.h" HAVE_POSIX_MEMALIGN) -check_symbol_exists("memalign" "stdlib.h" HAVE_MEMALIGN) test_big_endian(BIGENDIAN) -check_type_size("size_t" SIZEOF_SIZE_T) -check_cxx_source_compiles( - "int __attribute__((noinline)) fn() { return 0; } int main() { return fn(); }" - HAVE_ATTRIBUTE_NOINLINE) -check_cxx_source_compiles( - "int main() { int var __attribute__((aligned (32))); return var; }" - HAVE_ATTRIBUTE_ALIGNED) add_subdirectory("config") add_subdirectory("coda_oss") @@ -75,5 +62,7 @@ add_subdirectory("polygon") add_subdirectory("math.linear") add_subdirectory("math.poly") add_subdirectory("numpyutils") +add_subdirectory("hdf5.lite") add_subdirectory("gsl") add_subdirectory("std") + diff --git a/externals/coda-oss/modules/c++/avx/include/avx/extractf.h b/externals/coda-oss/modules/c++/avx/include/avx/extractf.h index d6244bee1f..1d401f9293 100644 --- a/externals/coda-oss/modules/c++/avx/include/avx/extractf.h +++ b/externals/coda-oss/modules/c++/avx/include/avx/extractf.h @@ -24,11 +24,6 @@ #define CODA_OSS_avx_extractf_h_INCLUDED_ #pragma once -// Not supported on GCC < 7.1; see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80322 (also 80323-80325) -#if ((__GNUC__) && (GCC_VERSION < 70100)) -#pragma warning Disabling CODA AVX m256 support due to gcc compiler bug. -#else - #include #ifndef CODA_OSS_mm256_extractf_DEFINED_ @@ -59,6 +54,4 @@ #endif -#endif // gcc version checking - #endif // CODA_OSS_avx_extractf_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/avx/unittests/test_m256.cpp b/externals/coda-oss/modules/c++/avx/unittests/test_m256.cpp index 0a50298864..8c6cdc47b9 100644 --- a/externals/coda-oss/modules/c++/avx/unittests/test_m256.cpp +++ b/externals/coda-oss/modules/c++/avx/unittests/test_m256.cpp @@ -47,7 +47,7 @@ TEST_CASE(extractf) val = avx::mm256_extractf(ymm, 7); if (val) {} // suppress compiler warning about unused "val" */ - TEST_ASSERT_SUCCESS; + TEST_SUCCESS; } diff --git a/externals/coda-oss/modules/c++/cli/include/cli/ArgumentParser.h b/externals/coda-oss/modules/c++/cli/include/cli/ArgumentParser.h index cabc41ff78..f04878ba90 100644 --- a/externals/coda-oss/modules/c++/cli/include/cli/ArgumentParser.h +++ b/externals/coda-oss/modules/c++/cli/include/cli/ArgumentParser.h @@ -20,17 +20,18 @@ * */ -#ifndef __CLI_ARGUMENT_PARSER_H__ -#define __CLI_ARGUMENT_PARSER_H__ +#ifndef CODA_OSS_cli_ArgumentParser_h_INCLUDED_ +#define CODA_OSS_cli_ArgumentParser_h_INCLUDED_ +#pragma once #include +#include +#include +#include +#include "config/Exports.h" #include "cli/Argument.h" #include "cli/Results.h" -#include -#include -#include -#include "config/Exports.h" namespace cli { @@ -125,11 +126,19 @@ class CODA_OSS_API ArgumentParser return parse(argc, const_cast(argv)); } + /** + * Copies argc into a std::vector that can be passed directly + * to parse(). setProgram(argv[0]) is called if setProgram() hasn't already been called. + */ + static std::vector make_args(int argc, const char** argv, std::string& program); + std::vector make_args(int argc, const char** argv); + /** * Parses the arguments. args[0] is NOT used as the program name, so you * will need to specify it explicitly using setProgramName(). */ Results* parse(const std::vector& args); + std::unique_ptr parse(const std::string& program, const std::vector& args); protected: friend class Argument; @@ -169,4 +178,4 @@ class CODA_OSS_API ArgumentParser }; } -#endif +#endif // CODA_OSS_cli_ArgumentParser_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/cli/source/ArgumentParser.cpp b/externals/coda-oss/modules/c++/cli/source/ArgumentParser.cpp index a5a36ebace..b2d47fab92 100644 --- a/externals/coda-oss/modules/c++/cli/source/ArgumentParser.cpp +++ b/externals/coda-oss/modules/c++/cli/source/ArgumentParser.cpp @@ -21,9 +21,13 @@ */ #include "cli/ArgumentParser.h" + #include #include +#include +#include + namespace { static const size_t MAX_ARG_LINE_LENGTH = 21; @@ -246,19 +250,43 @@ void cli::ArgumentParser::printHelp(std::ostream& out, bool andExit) const exit(cli::EXIT_USAGE); } -cli::Results* cli::ArgumentParser::parse(int argc, const char** argv) +std::vector cli::ArgumentParser::make_args(int argc, const char** argv, std::string& program) { - if (mProgram.empty() && argc > 0) - setProgram(std::string(argv[0])); - std::vector < std::string > args; + if (argc > 0) + program = std::string(argv[0]); + std::vector args; for (int i = 1; i < argc; ++i) - args.push_back(std::string(argv[i])); - return parse(args); + args.emplace_back(argv[i]); + return args; +} +std::vector cli::ArgumentParser::make_args(int argc, const char** argv) +{ + std::string program; + auto args = make_args(argc, argv, program); + if (mProgram.empty() && !program.empty()) + setProgram(program); + return args; +} + +cli::Results* cli::ArgumentParser::parse(int argc, const char** argv) +{ + return parse(make_args(argc, argv)); } cli::Results* cli::ArgumentParser::parse(const std::vector& args) { - if (mProgram.empty()) - setProgram("program"); + if (!mProgram.empty()) + { + return parse("" /*don't change any value already set*/, args).release(); + } + else + { + return parse("cli::ArgumentParser::parse" /*program*/, args).release(); // provide a "meaningful" default program name + } +} +std::unique_ptr cli::ArgumentParser::parse(const std::string& program, const std::vector& args) +{ + if (!program.empty()) + setProgram(program); std::map shortFlags; std::map longFlags; @@ -384,7 +412,7 @@ cli::Results* cli::ArgumentParser::parse(const std::vector& args) } } - auto results = coda_oss::make_unique(); + auto results = std::make_unique(); cli::Results *currentResults = NULL; for (size_t i = 0, s = explodedArgs.size(); i < s; ++i) { @@ -679,7 +707,7 @@ cli::Results* cli::ArgumentParser::parse(const std::vector& args) } } - return results.release(); + return results; } void cli::ArgumentParser::printUsage(std::ostream& out, bool andExit, diff --git a/externals/coda-oss/modules/c++/cli/unittests/test_cli.cpp b/externals/coda-oss/modules/c++/cli/unittests/test_cli.cpp index ce0dcfbb05..62fa2192f9 100644 --- a/externals/coda-oss/modules/c++/cli/unittests/test_cli.cpp +++ b/externals/coda-oss/modules/c++/cli/unittests/test_cli.cpp @@ -90,7 +90,7 @@ TEST_CASE(testChoices) try { results.reset(parser.parse(str::split("-t type2 -t type1", " "))); - TEST_FAIL("Shouldn't allow multiple types"); + TEST_FAIL_MSG("Shouldn't allow multiple types"); } catch(except::Exception&) { @@ -171,10 +171,10 @@ TEST_CASE(testRequired) parser.addArgument("-v --verbose", "Toggle verbose", cli::STORE_TRUE); parser.addArgument("-c --config", "Specify a config file", cli::STORE)->setRequired(true); - std::unique_ptr results; - TEST_EXCEPTION(results.reset(parser.parse(str::split("")))); - TEST_EXCEPTION(results.reset(parser.parse(str::split("-c")))); - results.reset(parser.parse(str::split("-c configFile"))); + const std::string program(testName); + TEST_EXCEPTION(parser.parse(program, str::split(""))); + TEST_EXCEPTION(parser.parse(program, str::split("-c"))); + const auto results = parser.parse(program, str::split("-c configFile")); TEST_ASSERT_EQ(results->get("config"), "configFile"); } diff --git a/externals/coda-oss/modules/c++/coda-oss-lite.vcxproj b/externals/coda-oss/modules/c++/coda-oss-lite.vcxproj index a77411eb36..d5e4e5cf81 100644 --- a/externals/coda-oss/modules/c++/coda-oss-lite.vcxproj +++ b/externals/coda-oss/modules/c++/coda-oss-lite.vcxproj @@ -28,6 +28,7 @@ + @@ -114,7 +115,9 @@ + + @@ -146,6 +149,7 @@ + @@ -173,6 +177,9 @@ + + + @@ -184,17 +191,12 @@ - - - - + + - - - @@ -209,11 +211,9 @@ + - - - @@ -229,22 +229,16 @@ - - - + - - - - @@ -347,10 +341,7 @@ - - - @@ -362,14 +353,13 @@ + - - + - @@ -379,18 +369,12 @@ - - - - - - @@ -462,6 +446,8 @@ true + true + AllRules.ruleset false @@ -471,16 +457,20 @@ EnableAllWarnings true _DEBUG;_LIB;%(PreprocessorDefinitions);CODA_OSS_EXPORTS;CODA_OSS_DLL;MT_DEFAULT_PINNING=0;RE_ENABLE_STD_REGEX=1 - true pch.h cli\include\;coda_oss\include;config\include\;except\include\;gsl\include\;io\include\;logging\include\;math\include\;math.linear\include\;math.poly\include\;mem\include\;mt\include\;plugin\include\;polygon\include\;re\include\;sio.lite\include\;std\include\;str\include\;sys\include\;tiff\include;types\include\;units\include\ Use pch.h true Guard - true ProgramDatabase true + true + true + true + true + /Zc:__cplusplus %(AdditionalOptions) + true @@ -495,15 +485,18 @@ true true NDEBUG;_LIB;%(PreprocessorDefinitions);CODA_OSS_EXPORTS;CODA_OSS_DLL;MT_DEFAULT_PINNING=0;RE_ENABLE_STD_REGEX=1 - true pch.h cli\include\;coda_oss\include;config\include\;except\include\;gsl\include\;io\include\;logging\include\;math\include\;math.linear\include\;math.poly\include\;mem\include\;mt\include\;plugin\include\;polygon\include\;re\include\;sio.lite\include\;std\include\;str\include\;sys\include\;tiff\include;types\include\;units\include\ Use pch.h true Guard - true true + true + true + true + true + /Zc:__cplusplus %(AdditionalOptions) diff --git a/externals/coda-oss/modules/c++/coda-oss-lite.vcxproj.filters b/externals/coda-oss/modules/c++/coda-oss-lite.vcxproj.filters index 1a824ec313..a8119ff835 100644 --- a/externals/coda-oss/modules/c++/coda-oss-lite.vcxproj.filters +++ b/externals/coda-oss/modules/c++/coda-oss-lite.vcxproj.filters @@ -108,18 +108,6 @@ sys - - sys - - - sys - - - sys - - - sys - sys @@ -129,18 +117,9 @@ sys - - sys - - - sys - sys - - sys - sys @@ -186,18 +165,9 @@ sys - - sys - - - sys - sys - - sys - sys @@ -243,18 +213,9 @@ sys - - sys - - - sys - sys - - sys - sys @@ -264,9 +225,6 @@ sys - - sys - sys @@ -279,18 +237,9 @@ sys - - sys - - - sys - sys - - sys - sys @@ -765,6 +714,39 @@ plugin + + sys + + + mem + + + mem + + + std + + + std + + + std + + + config + + + sys + + + sys + + + mt + + + sys + @@ -804,18 +786,9 @@ sys - - sys - - - sys - sys - - sys - sys @@ -861,18 +834,9 @@ sys - - sys - - - sys - sys - - sys - sys @@ -900,42 +864,24 @@ sys - - sys - sys - - sys - sys sys - - sys - sys sys - - sys - - - sys - sys - - sys - sys @@ -1137,6 +1083,12 @@ plugin + + sys + + + sys + diff --git a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/CPlusPlus.h b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/CPlusPlus.h index f1f8d72a8b..b912e9c3e7 100644 --- a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/CPlusPlus.h +++ b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/CPlusPlus.h @@ -48,25 +48,30 @@ #if defined(__GNUC__) #endif // __GNUC__ + + #if defined(__INTEL_COMPILER) + #endif // __INTEL_COMPILER #endif // CODA_OSS_cplusplus + #if CODA_OSS_cplusplus < 202002L // oops ... try to fix - #if defined(__GNUC__) && (__cplusplus >= 201709L) // note > C++ 17 of 201703L + #if defined(__GNUC__) && (__cplusplus >= 201709L) // note > C++ 17 of 201703L // Enough C++20 for our needs #undef CODA_OSS_cplusplus #define CODA_OSS_cplusplus 202002L - #endif + #endif #endif // CODA_OSS_cplusplus // Define a few macros as that's less verbose than testing against a version number +// https://en.cppreference.com/w/cpp/preprocessor/replace#Predefined_macros #define CODA_OSS_cpp11 (CODA_OSS_cplusplus >= 201103L) #define CODA_OSS_cpp14 (CODA_OSS_cplusplus >= 201402L) #define CODA_OSS_cpp17 (CODA_OSS_cplusplus >= 201703L) #define CODA_OSS_cpp20 (CODA_OSS_cplusplus >= 202002L) -#define CODA_OSS_cpp23 0 +#define CODA_OSS_cpp23 (CODA_OSS_cplusplus >= 202302L) -#if !CODA_OSS_cpp11 -#error "Must compile with C++11 or greater." +#if !CODA_OSS_cpp14 +#error "Must compile with C++14 or greater." #endif #endif // CODA_OSS_coda_oss_CPlusPlus_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/bit.h b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/bit.h index 99045bba17..32ef77862e 100644 --- a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/bit.h +++ b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/bit.h @@ -22,6 +22,14 @@ #define CODA_OSS_coda_oss_bit_h_INCLUDED_ #pragma once +#include +#include +#ifdef __GNUC__ +#include // "These functions are GNU extensions." +#endif + +#include + #include "coda_oss/namespace_.h" namespace coda_oss { @@ -38,6 +46,58 @@ namespace coda_oss native = __BYTE_ORDER__ #endif }; + + // https://en.cppreference.com/w/cpp/numeric/byteswap + namespace details + { + // Overloads for common types + inline constexpr uint8_t byteswap(uint8_t val) noexcept + { + return val; // no-op + } + #if defined(_MSC_VER) + // These routines should generate a single instruction; see + // https://devblogs.microsoft.com/cppblog/a-tour-of-4-msvc-backend-improvements/ + inline uint16_t byteswap(uint16_t val) + { + return _byteswap_ushort(val); + } + inline uint32_t byteswap(uint32_t val) + { + return _byteswap_ulong(val); + } + inline uint64_t byteswap(uint64_t val) + { + return _byteswap_uint64(val); + } + #elif defined(__GNUC__) + inline uint16_t byteswap(uint16_t val) + { + return bswap_16(val); + } + inline uint32_t byteswap(uint32_t val) + { + return bswap_32(val); + } + inline uint64_t byteswap(uint64_t val) + { + return bswap_64(val); + } + #else + #error "No platform-specific byteswap()" // TODO: do something else? + #endif + } + + template + inline T byteswap(T n) noexcept + { + // "std::byteswap participates in overload resolution only if T satisfies integral, i.e., T is an integer type. The program is + // ill-formed if T has padding bits." + static_assert(std::is_integral::value, "T must be integral"); + + using unsigned_t = std::make_unsigned_t; // "Since C++14" https://en.cppreference.com/w/cpp/types/make_unsigned + return details::byteswap(static_cast(n)); + } } #endif // CODA_OSS_coda_oss_bit_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/cstddef.h b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/cstddef.h index e6e19a8add..c8c51ed421 100644 --- a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/cstddef.h +++ b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/cstddef.h @@ -22,7 +22,10 @@ #define CODA_OSS_coda_oss_cstddef_h_INCLUDED_ #pragma once +#include + #include +#include // Need a fairly decent C++ compiler to use the real GSL. This brings in more than // we really need for span (e.g., gsl::narrow()), but it keeps things simple. @@ -37,5 +40,6 @@ namespace coda_oss enum class byte : unsigned char {}; #endif // GSL_BYTE_H } +static_assert(!std::is_same::value, "'coda_oss::byte' should be a unique type."); #endif // CODA_OSS_coda_oss_cstddef_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/optional_.h b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/optional_.h index 9ce2bf2efc..8aa35e198d 100644 --- a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/optional_.h +++ b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/optional_.h @@ -63,27 +63,21 @@ class optional final using value_type = T; #if defined(_MSC_VER) && _PREFAST_ // Visual Studio /analyze - __pragma(warning(push)) __pragma(warning( - disable : 26495)) // Variable '...' is uninitialized. Always - // initialize a member variable(type.6). + __pragma(warning(push)) __pragma(warning(disable : 26495)) // Variable '...' is uninitialized. Always initialize a member variable(type.6). #endif - optional() noexcept + optional() noexcept { } #if defined(_MSC_VER) && _PREFAST_ __pragma(warning(pop)) #endif - optional(const value_type& v) : - value_(v), has_value_(true) + optional(const value_type& v) : value_(v), has_value_(true) { } #if defined(_MSC_VER) && _PREFAST_ // Visual Studio /analyze - __pragma(warning(push)) __pragma(warning( - disable : 26495)) // Variable '...' is uninitialized. Always - // initialize a member variable(type.6). + __pragma(warning(push)) __pragma(warning(disable : 26495)) // Variable '...' is uninitialized. Always initialize a member variable(type.6). #endif - optional(const optional& other) : - has_value_(other.has_value_) + optional(const optional& other) : has_value_(other.has_value_) { if (has_value()) { @@ -93,19 +87,30 @@ class optional final #if defined(_MSC_VER) && _PREFAST_ __pragma(warning(pop)) #endif + optional& operator=(const optional& other) + { + if (has_value() && !other.has_value()) + { + reset(); + } + else if (other.has_value()) + { + value_ = other.value_; + has_value_ = true; + } + + return *this; + } - template < - typename... Args> // https://en.cppreference.com/w/cpp/utility/Optional/emplace - T& emplace(Args&&... args) + template // https://en.cppreference.com/w/cpp/utility/Optional/emplace + T& emplace(Args&&... args) { value_ = value_type(std::forward(args)...); has_value_ = true; return value_; } - template < - typename U = - T> // https://en.cppreference.com/w/cpp/utility/optional/operator%3D + template // https://en.cppreference.com/w/cpp/utility/optional/operator%3D optional& operator=(U&& value) noexcept { value_ = std::forward(value); @@ -124,6 +129,7 @@ class optional final void reset() noexcept { + value_ = T{}; has_value_ = false; } @@ -163,11 +169,10 @@ class optional final // contains a value!" } - const T& operator*() const& + const T& operator*() const& noexcept { assert(has_value()); - return value_; // "This operator does not check whether the optional - // contains a value!" + return value_; // "This operator does not check whether the optional contains a value!" } T& operator*() & { diff --git a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/span.h b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/span.h index c33375c3e7..b225f35fe1 100644 --- a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/span.h +++ b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/span.h @@ -25,6 +25,7 @@ #include "coda_oss/namespace_.h" #include "coda_oss/span_.h" +#include "coda_oss/cstddef.h" // byte // Need a fairly decent C++ compiler to use the real GSL. This brings in more than // we really need for span (e.g., gsl::narrow()), but it keeps things simple. @@ -37,6 +38,26 @@ namespace coda_oss #else // no gsl::span, use our own using details::span; #endif // GSL_SPAN_H + +// https://en.cppreference.com/w/cpp/container/span/as_bytes +template +span as_bytes(span s) noexcept +{ + const void* const p = s.data(); + return span(static_cast(p), s.size_bytes()); +} +template +span as_bytes(span s) noexcept +{ + return as_bytes(span(s.data(), s.size())); +} +template +span as_writable_bytes(span s) noexcept +{ + void* const p = s.data(); + return span(static_cast(p), s.size_bytes()); +} + } #endif // CODA_OSS_coda_oss_span_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/type_traits.h b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/type_traits.h index 037adf2f46..5c92c1d321 100644 --- a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/type_traits.h +++ b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/type_traits.h @@ -29,18 +29,7 @@ #include "coda_oss/namespace_.h" namespace coda_oss { -// workaround missing "is_trivially_copyable" in g++ < 5.0 -// https://stackoverflow.com/a/31798726/8877 -#if defined(__GNUC__) && (__GNUC__ < 5) -template -struct is_trivially_copyable final -{ - static_assert(CODA_OSS_cplusplus < 201402L, "C++14 must have is_trivially_copyable."); - static constexpr bool value = __has_trivial_copy(T); -}; -#else using std::is_trivially_copyable; -#endif } #endif // CODA_OSS_coda_oss_type_traits_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/config/include/config/Version.h b/externals/coda-oss/modules/c++/config/include/config/Version.h index 846540ac95..bcb4979bdc 100644 --- a/externals/coda-oss/modules/c++/config/include/config/Version.h +++ b/externals/coda-oss/modules/c++/config/include/config/Version.h @@ -41,13 +41,13 @@ static_assert(CODA_OSS_MAKE_VERSION_MMPB(9999, 9999, 9999, 9999) <= UINT64_MAX, #define CODA_OSS_GET_VERSION_BUILD(version) CODA_OSS_GET_VERSION_(version, 1 /*factor*/) // Do this ala C++ ... we don't currently have major/minor/patch -//#define CODA_OSS_VERSION_ 20230310L // c.f. __cplusplus -#define CODA_OSS_VERSION_ 2023 ## 0003 ## 0010 ## 0000 ## L +//#define CODA_OSS_VERSION_ 20210910L // c.f. __cplusplus +#define CODA_OSS_VERSION_ 2022 ## 0012 ## 0014 ## 0000 ## L // Use the same macros other projects might want to use; overkill for us. -#define CODA_OSS_VERSION_MAJOR 2023 -#define CODA_OSS_VERSION_MINOR 3 -#define CODA_OSS_VERSION_PATCH 10 +#define CODA_OSS_VERSION_MAJOR 2022 +#define CODA_OSS_VERSION_MINOR 12 +#define CODA_OSS_VERSION_PATCH 14 #define CODA_OSS_VERSION_BUILD 0 #define CODA_OSS_VERSION CODA_OSS_MAKE_VERSION_MMPB(CODA_OSS_VERSION_MAJOR, CODA_OSS_VERSION_MINOR, CODA_OSS_VERSION_PATCH, CODA_OSS_VERSION_BUILD) diff --git a/externals/coda-oss/modules/c++/config/include/config/coda_oss_config.h.in b/externals/coda-oss/modules/c++/config/include/config/coda_oss_config.h.in index 18e81c2e75..8eb531267c 100644 --- a/externals/coda-oss/modules/c++/config/include/config/coda_oss_config.h.in +++ b/externals/coda-oss/modules/c++/config/include/config/coda_oss_config.h.in @@ -3,15 +3,6 @@ #ifndef _CODA_OSS_CONFIG_H_ #define _CODA_OSS_CONFIG_H_ -/* these should no longer be needed */ -#cmakedefine HAVE_PTHREAD_H @HAVE_PTHREAD_H@ -#cmakedefine HAVE_EXECINFO_H @HAVE_EXECINFO_H@ -#cmakedefine HAVE_CLOCK_GETTIME @HAVE_CLOCK_GETTIME@ -#cmakedefine HAVE_ATOMIC_H @HAVE_ATOMIC_H@ -#cmakedefine HAVE_SYS_TIME_H @HAVE_SYS_TIME_H@ -#cmakedefine HAVE_LOCALTIME_R @HAVE_LOCALTIME_R@ -#cmakedefine HAVE_GMTIME_R @HAVE_GMTIME_R@ -#cmakedefine HAVE_SETENV @HAVE_SETENV@ #ifndef BIGENDIAN #cmakedefine01 BIGENDIAN #else @@ -23,11 +14,6 @@ #endif #undef CODA_OSS_CHECK_BIGENDIAN #endif -#cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@ -#cmakedefine HAVE_POSIX_MEMALIGN @HAVE_POSIX_MEMALIGN@ -#cmakedefine HAVE_MEMALIGN @HAVE_MEMALIGN@ -#cmakedefine HAVE_ATTRIBUTE_ALIGNED @HAVE_ATTRIBUTE_ALIGNED@ -#cmakedefine HAVE_ATTRIBUTE_NOINLINE @HAVE_ATTRIBUTE_NOINLINE@ /* still might need these ... for now */ #cmakedefine CODA_EXPORT @CODA_EXPORT@ diff --git a/externals/coda-oss/modules/c++/config/include/config/disable_compiler_warnings.h b/externals/coda-oss/modules/c++/config/include/config/disable_compiler_warnings.h new file mode 100644 index 0000000000..a3b1a5125e --- /dev/null +++ b/externals/coda-oss/modules/c++/config/include/config/disable_compiler_warnings.h @@ -0,0 +1,49 @@ +/* ========================================================================= + * This file is part of config-c++ + * ========================================================================= + * + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * config-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ +#ifndef CODA_OSS_config_disable_compiler_warnings_h_INCLUDED_ +#define CODA_OSS_config_disable_compiler_warnings_h_INCLUDED_ +#pragma once + +#include "compiler_extensions.h" + +#if defined(_MSC_VER) +// We don't care about any padding added to structs +#pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' + +// Assume any unreferenced functions will be used in other code +#pragma warning(disable: 4514) // '...': unreferenced inline function has been removed + +// ??? +#pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' + +// ??? +#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified + + +#elif defined(__GNUC__) || defined(__clang__) + +// don't care about compatibility between different -std=c++nn values +CODA_OSS_disable_warning(-Wnoexcept-type) + +#endif // _MSC_VER + +#endif // CODA_OSS_config_disable_compiler_warnings_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/config/wscript b/externals/coda-oss/modules/c++/config/wscript index 99ff4f3d1a..85d0000357 100644 --- a/externals/coda-oss/modules/c++/config/wscript +++ b/externals/coda-oss/modules/c++/config/wscript @@ -1,5 +1,4 @@ NAME = 'config' -MAINTAINER = 'jonathan.means@maxar.com' VERSION = '1.2' USELIB = 'THREAD DL RT SOCKET' @@ -10,23 +9,8 @@ from waflib import Utils options = distclean = lambda p: None def configure(conf): - # this check defines HAVE_CLOCK_GETTIME, undefine it to keep it out of dumpenv - if conf.check_cc(lib='rt', uselib_store='RT', function_name='clock_gettime', header_name='time.h', mandatory=False): - conf.undefine('HAVE_CLOCK_GETTIME') - # callback function to check for all #defines used by the sys module def sys_callback(conf): - conf.check_cc(header_name='pthread.h', mandatory=False) - conf.check_cc(header_name='execinfo.h', mandatory=False) - conf.check_cc(function_name='clock_gettime', header_name='time.h', mandatory=False) - conf.check_cc(header_name="atomic.h", mandatory=False) - conf.check_cc(header_name="sys/time.h", mandatory=False) - conf.check_cc(function_name='localtime_r', header_name="time.h", mandatory=False) - conf.check_cc(function_name='gmtime_r', header_name="time.h", mandatory=False) - conf.check_cc(function_name='setenv', header_name="stdlib.h", mandatory=False) - conf.check_cc(function_name='posix_memalign', header_name="stdlib.h", mandatory=False) - conf.check_cc(function_name='memalign', header_name="stdlib.h", mandatory=False) - #find out the size of some types, etc. # TODO: This is not using the 32 vs. 64 bit linker flags, so if you're # building with --enable-32bit on 64 bit Linux, sizeof(size_t) will @@ -59,82 +43,6 @@ def configure(conf): v = False conf.define(k.upper(), v) - attribute_noinline_str = ''' - int __attribute__((noinline)) fn() { return 0; } - int main() - { - return fn(); - } - ''' - conf.check_cxx(fragment=attribute_noinline_str, - msg='Checking for __attribute__(noinline)', - define_name='HAVE_ATTRIBUTE_NOINLINE', - mandatory=False) - - declspec_noinline_str = ''' - __declspec(noinline) int fn() { return 0; } - int main() - { - return fn(); - } - ''' - conf.check_cxx(fragment=declspec_noinline_str, - msg='Checking for __declspec(noinline)', - define_name='HAVE_DECLSPEC_NOINLINE', - mandatory=False) - - attribute_aligned_str = ''' - int main() - { - int var __attribute__((aligned (32))); - return var; - } - ''' - conf.check_cxx(fragment=attribute_aligned_str, - msg='Checking for __attribute__(aligned (x))', - define_name='HAVE_ATTRIBUTE_ALIGNED', - mandatory=False) - - declspec_align_str = ''' - int main() - { - __declspec(align(32)) int var; - return var; - } - ''' - conf.check_cxx(fragment=declspec_align_str, - msg='Checking for __declspec(align(x))', - define_name='HAVE_DECLSPEC_ALIGN', - mandatory=False) - - direct_m256_extract_str = ''' - #include - int main() - { - __m256 ymm = _mm256_setzero_ps(); - float val = ymm[7]; - return 0; - } - ''' - conf.check_cxx(fragment=direct_m256_extract_str, - msg='Checking for __m256::operator[]', - define_name='HAVE_M256_DIRECT_INDEX', - mandatory=False) - - member_m256_extract_str = ''' - #include - int main() - { - __m256 ymm = _mm256_setzero_ps(); - float val = ymm.m256_f32[7]; - return 0; - } - ''' - conf.check_cxx(fragment=member_m256_extract_str, - msg='Checking for __m256::m256_f32', - define_name='HAVE_M256_MEMBER_INDEX', - mandatory=False) - conf.define('CODA_EXPORT', conf.env['declspec_decoration'], quote=False) # DEPRECATED. diff --git a/externals/coda-oss/modules/c++/dbi/include/dbi/DatabaseConnection.h b/externals/coda-oss/modules/c++/dbi/include/dbi/DatabaseConnection.h index 89cd8e07cf..8f15624242 100644 --- a/externals/coda-oss/modules/c++/dbi/include/dbi/DatabaseConnection.h +++ b/externals/coda-oss/modules/c++/dbi/include/dbi/DatabaseConnection.h @@ -261,7 +261,7 @@ class Row std::vector< Field > mData; }; -//typedef mem::auto_ptr< Row > pRow; +//typedef std::unique_ptr< Row > pRow; /*! * \class ResultSet @@ -303,7 +303,7 @@ class ResultSet Row mCurrentRow; }; -typedef mem::auto_ptr< ResultSet > pResultSet; +typedef std::unique_ptr< ResultSet > pResultSet; /*! * \class DatabaseConnection diff --git a/externals/coda-oss/modules/c++/except/include/except/Backtrace.h b/externals/coda-oss/modules/c++/except/include/except/Backtrace.h index 97bee2952d..42cf6ba6a4 100644 --- a/externals/coda-oss/modules/c++/except/include/except/Backtrace.h +++ b/externals/coda-oss/modules/c++/except/include/except/Backtrace.h @@ -40,7 +40,17 @@ #endif namespace version { namespace except { +#if _MSC_VER +#pragma warning(push) +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' +#pragma warning(disable: 5264) // '...': '...' variable is not used +#endif // _MSC_VER + constexpr auto backtrace = CODA_OSS_except_Backtrace; + +#if _MSC_VER +#pragma warning(pop) +#endif // _MSC_VER } } namespace except diff --git a/externals/coda-oss/modules/c++/except/include/except/Context.h b/externals/coda-oss/modules/c++/except/include/except/Context.h index cef7af1763..83f80acee3 100644 --- a/externals/coda-oss/modules/c++/except/include/except/Context.h +++ b/externals/coda-oss/modules/c++/except/include/except/Context.h @@ -29,6 +29,7 @@ #include #include "config/Exports.h" +#include "config/disable_compiler_warnings.h" /*! * \file diff --git a/externals/coda-oss/modules/c++/except/include/except/Error.h b/externals/coda-oss/modules/c++/except/include/except/Error.h index 392a6fd1c8..56fcdb78ca 100644 --- a/externals/coda-oss/modules/c++/except/include/except/Error.h +++ b/externals/coda-oss/modules/c++/except/include/except/Error.h @@ -37,24 +37,23 @@ /*! * Useful macro for defining Exception classes */ -#define DECLARE_EXTENDED_ERROR_(_Name, Error_, _Base, getType_specifiers) \ +#define DECLARE_EXTENDED_ERROR_(_Name, Error_, _Base) \ struct _Name##Error_ : public _Base \ { \ _Name##Error_() = default; virtual ~_Name##Error_() = default; \ _Name##Error_(const except::Context& c) : _Base(c){} \ _Name##Error_(const std::string& msg) : _Base(msg){} \ _Name##Error_(const except::Throwable& t, const except::Context& c) : _Base(t, c){} \ - _Name##Error_(const except::Throwable11& t, const except::Context& c) : _Base(t, c){} \ - std::string getType() getType_specifiers { return #_Name; } \ - }; -#define DECLARE_EXTENDED_ERROR(_Name, _Base) \ - DECLARE_EXTENDED_ERROR_(_Name, Error, _Base, const override) -#define DECLARE_EXTENDED_ERROR11(_Name, _Base) \ - DECLARE_EXTENDED_ERROR_(_Name, Error11, _Base, const noexcept override) + _Name##Error_(const except::ThrowableEx& t, const except::Context& c) : _Base(t, c){} \ + std::string getType() const noexcept override { return #_Name; } \ + } +#define DECLARE_EXTENDED_ERROR(_Name, _Base) DECLARE_EXTENDED_ERROR_(_Name, Error, _Base) +#define DECLARE_EXTENDED_ERROREX(_Name, _Base) DECLARE_EXTENDED_ERROR_(_Name, ErrorEx, _Base) +// Need to keep this around for existing code #define DECLARE_ERROR(_Name) \ - DECLARE_EXTENDED_ERROR(_Name, except::Error); \ - DECLARE_EXTENDED_ERROR11(_Name, except::Error11) + DECLARE_EXTENDED_ERROR(_Name, except::Error); \ + DECLARE_EXTENDED_ERROREX(_Name, except::ErrorEx) namespace except { @@ -99,7 +98,7 @@ struct Error : public Throwable Throwable(t, c) { } - Error(const Throwable11& t, const Context& c) : Throwable(t, c) + Error(const ThrowableEx& t, const Context& c) : Throwable(t, c) { } @@ -109,16 +108,20 @@ struct Error : public Throwable } }; -struct Error11 : public Throwable11 +// Use this in new code: name is FooErrror (not FooErrorEx), base is except::ErrorEx (not except::Error). +#define CODA_OSS_DECLARE_EXTENDED_ERROR(name_, base_) DECLARE_EXTENDED_ERROR_(name_, Error, base_) +#define CODA_OSS_DECLARE_ERROR(name_) CODA_OSS_DECLARE_EXTENDED_ERROR(name_, except::ErrorEx) + +struct ErrorEx : public ThrowableEx { - Error11() = default; - virtual ~Error11() = default; + ErrorEx() = default; + virtual ~ErrorEx() = default; /*! * Constructor. Takes a Context * \param c The Context */ - Error11(const Context& c) : Throwable11(c) + ErrorEx(const Context& c) : ThrowableEx(c) { } @@ -126,7 +129,7 @@ struct Error11 : public Throwable11 * Constructor. Takes a message * \param message The message */ - Error11(const std::string& message) : Throwable11(message) + ErrorEx(const std::string& message) : ThrowableEx(message) { } @@ -135,24 +138,25 @@ struct Error11 : public Throwable11 * \param t The Throwable * \param c The Context */ - Error11(const Throwable11& t, const Context& c) : Throwable11(t, c) + ErrorEx(const ThrowableEx& t, const Context& c) : ThrowableEx(t, c) { } - Error11(const Throwable& t, const Context& c) : Throwable11(t, c) + ErrorEx(const Throwable& t, const Context& c) : ThrowableEx(t, c) { } std::string getType() const noexcept override { - return "Error11"; + return "ErrorEx"; } }; +using Error11 = ErrorEx; // keep old name around for other projects /*! * \class InvalidDerivedTypeError * \brief Represents an invalid derived type error. */ -DECLARE_ERROR(InvalidDerivedType) +DECLARE_ERROR(InvalidDerivedType); } diff --git a/externals/coda-oss/modules/c++/except/include/except/Exception.h b/externals/coda-oss/modules/c++/except/include/except/Exception.h index f7d95c924c..33a8563632 100644 --- a/externals/coda-oss/modules/c++/except/include/except/Exception.h +++ b/externals/coda-oss/modules/c++/except/include/except/Exception.h @@ -51,7 +51,7 @@ #endif #endif -#define DECLARE_EXTENDED_EXCEPTION_(_Name, Exception_, _Base, getType_specifiers) \ +#define DECLARE_EXTENDED_EXCEPTION_(_Name, Exception_, _Base) \ struct _Name##Exception_ : public _Base \ { \ _Name##Exception_() = default; virtual ~_Name##Exception_() = default; \ @@ -60,18 +60,17 @@ _Name##Exception_(const except::Context& c) : _Base(c){} \ _Name##Exception_(const std::string& msg) : _Base(msg){} \ _Name##Exception_(const except::Throwable& t, const except::Context& c) : _Base(t, c){} \ - _Name##Exception_(const except::Throwable11& t, const except::Context& c) : _Base(t, c){} \ + _Name##Exception_(const except::ThrowableEx& t, const except::Context& c) : _Base(t, c){} \ CODA_OSS_except_Exception_suppress_26447_BEGIN_ \ - std::string getType() getType_specifiers { return #_Name #Exception_; } \ - CODA_OSS_except_Exception_suppress_26447_END_ }; -#define DECLARE_EXTENDED_EXCEPTION(_Name, _Base) \ - DECLARE_EXTENDED_EXCEPTION_(_Name, Exception, _Base, const override) -#define DECLARE_EXTENDED_EXCEPTION11(_Name, _Base) \ - DECLARE_EXTENDED_EXCEPTION_(_Name, Exception11, _Base, const noexcept override) + std::string getType() const noexcept override { return #_Name #Exception_; } \ + CODA_OSS_except_Exception_suppress_26447_END_ } +#define DECLARE_EXTENDED_EXCEPTION(_Name, _Base) DECLARE_EXTENDED_EXCEPTION_(_Name, Exception, _Base) +#define DECLARE_EXTENDED_EXCEPTIONEX(_Name, _Base) DECLARE_EXTENDED_EXCEPTION_(_Name, ExceptionEx, _Base) +// Need to keep this around for existing code #define DECLARE_EXCEPTION(_Name) \ - DECLARE_EXTENDED_EXCEPTION(_Name, except::Exception) \ - DECLARE_EXTENDED_EXCEPTION11(_Name, except::Exception11) + DECLARE_EXTENDED_EXCEPTION(_Name, except::Exception); \ + DECLARE_EXTENDED_EXCEPTIONEX(_Name, except::ExceptionEx) namespace except { @@ -105,7 +104,7 @@ struct Exception : public Throwable Throwable(t, c) { } - Exception(const Throwable11& t, const Context& c) : Throwable(t, c) + Exception(const ThrowableEx& t, const Context& c) : Throwable(t, c) { } @@ -124,16 +123,21 @@ struct Exception : public Throwable } }; -struct Exception11 : public Throwable11 + +// Use this in new code: name is FooException (not FooExceptionEx), base is except::ExceptionEx (not except::Exception). +#define CODA_OSS_DECLARE_EXTENDED_EXCEPTION(name_, base_) DECLARE_EXTENDED_EXCEPTION_(name_, Exception, base_) +#define CODA_OSS_DECLARE_EXCEPTION(name_) CODA_OSS_DECLARE_EXTENDED_EXCEPTION(name_, except::ExceptionEx) + +struct ExceptionEx : public ThrowableEx { - Exception11() = default; - virtual ~Exception11() = default; + ExceptionEx() = default; + virtual ~ExceptionEx() = default; /*! * Constructor. Takes a Context * \param c The Context */ - Exception11(const Context& c) : Throwable11(c) + ExceptionEx(const Context& c) : ThrowableEx(c) { } @@ -142,10 +146,10 @@ struct Exception11 : public Throwable11 * \param t The Throwable * \param c The Context */ - Exception11(const Throwable11& t, const Context& c) : Throwable11(t, c) + ExceptionEx(const ThrowableEx& t, const Context& c) : ThrowableEx(t, c) { } - Exception11(const Throwable& t, const Context& c) : Throwable11(t, c) + ExceptionEx(const Throwable& t, const Context& c) : ThrowableEx(t, c) { } @@ -153,51 +157,52 @@ struct Exception11 : public Throwable11 * Constructor. Takes a message * \param message The message */ - Exception11(const std::string& message) : Throwable11(message) + ExceptionEx(const std::string& message) : ThrowableEx(message) { } std::string getType() const noexcept override { - return "Exception11"; + return "ExceptionEx"; } }; +using Exception11 = ExceptionEx; // keep old name around for other projects /*! * \class IOException * \brief Throwable related to IO problems. */ -DECLARE_EXCEPTION(IO) +DECLARE_EXCEPTION(IO); /*! * \class FileNotFoundException * \brief Throwable related to a file not found. */ -DECLARE_EXTENDED_EXCEPTION(FileNotFound, except::IOException) +DECLARE_EXTENDED_EXCEPTION(FileNotFound, except::IOException); /*! * \class BadCastException * \brief Exception for bad casting operations */ -DECLARE_EXCEPTION(BadCast) +DECLARE_EXCEPTION(BadCast); /*! * \class InvalidFormatException * \brief Throwable related to an invalid file format. */ -DECLARE_EXCEPTION(InvalidFormat) +DECLARE_EXCEPTION(InvalidFormat); /*! * \class IndexOutOfRangeException * \brief Throwable related to an index being out of range. */ -DECLARE_EXCEPTION(IndexOutOfRange) +DECLARE_EXCEPTION(IndexOutOfRange); /*! * \class OutOfMemoryException * \brief Throwable related to memory allocation problems. */ -DECLARE_EXCEPTION(OutOfMemory) +DECLARE_EXCEPTION(OutOfMemory); /*! * \class NullPointerReference @@ -206,7 +211,7 @@ DECLARE_EXCEPTION(OutOfMemory) * This class is currently treated as an exception, meaning that its * behavior is not necessarily fatal. */ -DECLARE_EXCEPTION(NullPointerReference) +DECLARE_EXCEPTION(NullPointerReference); //! For backwards-compatibility typedef NullPointerReferenceException NullPointerReference; @@ -214,43 +219,43 @@ typedef NullPointerReferenceException NullPointerReference; * \class NoSuchKeyException * \brief Throwable related to unknown keys. */ -DECLARE_EXCEPTION(NoSuchKey) +DECLARE_EXCEPTION(NoSuchKey); /*! * \class NoSuchReferenceException * \brief Throwable related to unknown references. */ -DECLARE_EXCEPTION(NoSuchReference) +DECLARE_EXCEPTION(NoSuchReference); /*! * \class KeyAlreadyExistsException * \brief Throwable related to duplicate keys. */ -DECLARE_EXCEPTION(KeyAlreadyExists) +DECLARE_EXCEPTION(KeyAlreadyExists); /*! * \class NotImplementedException * \brief Throwable related to code not being implemented yet. */ -DECLARE_EXCEPTION(NotImplemented) +DECLARE_EXCEPTION(NotImplemented); /*! * \class InvalidArgumentException * \brief Throwable related to an invalid argument being passed. */ -DECLARE_EXCEPTION(InvalidArgument) +DECLARE_EXCEPTION(InvalidArgument); /*! * \class SerializationException * \brief Throwable related to failing to serialize/deserialize data. */ -DECLARE_EXTENDED_EXCEPTION(Serialization, except::IOException) +DECLARE_EXTENDED_EXCEPTION(Serialization, except::IOException); /*! * \class ParseException * \brief Throwable related to failing to parse data. */ -DECLARE_EXTENDED_EXCEPTION(Parse, except::IOException) +DECLARE_EXTENDED_EXCEPTION(Parse, except::IOException); } diff --git a/externals/coda-oss/modules/c++/except/include/except/Throwable.h b/externals/coda-oss/modules/c++/except/include/except/Throwable.h index ac322a9747..84fe4d0385 100644 --- a/externals/coda-oss/modules/c++/except/include/except/Throwable.h +++ b/externals/coda-oss/modules/c++/except/include/except/Throwable.h @@ -34,8 +34,29 @@ #include "config/Exports.h" #include "config/compiler_extensions.h" +#include "config/disable_compiler_warnings.h" #include "except/Trace.h" +/* Determine whether except::Throwable derives from std::exception. + * + * It can be quite convenient to derive from std::exception as often one less + * "catch" will be needed and we'll have standard what(). But doing so could + * break existing code as "catch (const std::exception&)" will catch + * except::Throwable when it didn't before. + * + * A lot of existing code has "catch (std::exception)" BEFORE "catch (except::Throwable)" + * making it difficult to change without the risk of breaking something. :-( + */ +#ifdef CODA_OSS_THROWABLE_ISA_STD_EXCEPTION // -DCODA_OSS_THROWABLE_ISA_STD_EXCEPTION +#ifdef CODA_OSS_except_Throwable_ISA_std_exception +#error "CODA_OSS_except_Throwable_ISA_std_exception is already #define'd." +#endif +#define CODA_OSS_except_Throwable_ISA_std_exception 1 +#endif +#ifndef CODA_OSS_except_Throwable_ISA_std_exception // or, -DCODA_OSS_except_Throwable_ISA_std_exception=1 +#define CODA_OSS_except_Throwable_ISA_std_exception 0 +#endif + /*! * \file Throwable.h * \brief Contains the classes to do with error handling @@ -53,14 +74,18 @@ namespace except * This class provides the base interface for exceptions and errors. */ -class Throwable11; +class ThrowableEx; class CODA_OSS_API Throwable +#if CODA_OSS_except_Throwable_ISA_std_exception + : public std::exception +#endif { void doGetBacktrace(); template Throwable(const Context*, const TThrowable* pT, const std::string* pMessage, bool callGetBacktrace, std::nullptr_t); +protected: Throwable(const Context*, const Throwable* pT = nullptr, const std::string* pMessage = nullptr, bool callGetBacktrace = false); - Throwable(const Context*, const Throwable11* pT, const std::string* pMessage = nullptr, bool callGetBacktrace = false); + Throwable(const Context*, const ThrowableEx* pT, const std::string* pMessage = nullptr, bool callGetBacktrace = false); public: Throwable() = default; @@ -69,7 +94,7 @@ class CODA_OSS_API Throwable Throwable(Throwable&&) = default; Throwable& operator=(Throwable&&) = default; - Throwable(const Throwable11&); + Throwable(const ThrowableEx&); /*! * Constructor. Takes a message @@ -89,7 +114,7 @@ class CODA_OSS_API Throwable * \param c The Context */ Throwable(const Throwable&, Context); - Throwable(const Throwable11&, Context); + Throwable(const ThrowableEx&, Context); /*! * Destructor @@ -169,6 +194,10 @@ class CODA_OSS_API Throwable } const char* what() const noexcept + #if CODA_OSS_except_Throwable_ISA_std_exception + // can't use "final" unless what() is virtual + final // derived classes override toString() + #endif { // adding this to toString() output could (significantly) alter existing display mWhat = toString(true /*includeBacktrace*/); // call any derived toString() @@ -187,7 +216,7 @@ class CODA_OSS_API Throwable }; /*! - * \class Throwable11 + * \class ThrowableEx * \brief The interface for exceptions and errors * * This class provides the base interface for exceptions and errors. @@ -199,146 +228,51 @@ class CODA_OSS_API Throwable * break existing code as "catch (const std::exception&)" will catch * except::Throwable when it didn't before. */ -class Throwable11 : public std::exception +// Use multiple-inheritance :-( to reduce duplicated boilerplate code. +class ThrowableEx : public Throwable // "ThrowableEx" = "Throwable exception" +#if !CODA_OSS_except_Throwable_ISA_std_exception + , public std::exception +#endif { - void doGetBacktrace(); - template - Throwable11(const Context*, - const TThrowable* pT, - const std::string* pMessage, - bool callGetBacktrace, - std::nullptr_t); - Throwable11(const Context*, - const Throwable11* pT = nullptr, - const std::string* pMessage = nullptr, - bool callGetBacktrace = false); - Throwable11(const Context*, - const Throwable* pT, - const std::string* pMessage = nullptr, - bool callGetBacktrace = false); - public: - Throwable11() = default; - virtual ~Throwable11() = default; - Throwable11(const Throwable11&) = default; - Throwable11& operator=(const Throwable11&) = default; - Throwable11(Throwable11&&) = default; - Throwable11& operator=(Throwable11&&) = default; + ThrowableEx() = default; + virtual ~ThrowableEx() = default; + ThrowableEx(const ThrowableEx&) = default; + ThrowableEx& operator=(const ThrowableEx&) = default; + ThrowableEx(ThrowableEx&&) = default; + ThrowableEx& operator=(ThrowableEx&&) = default; - Throwable11(const Throwable&); + ThrowableEx(const Throwable& t) : Throwable(t){} /*! * Constructor. Takes a message * \param message The message */ - Throwable11(const std::string& message); + ThrowableEx(const std::string& message) : Throwable(message) {} /*! * Constructor. Takes a Context. * \param c The Context */ - Throwable11(const Context&); + ThrowableEx(const Context& ctx) : Throwable(ctx) {} /*! * Constructor. Takes a Throwable and a Context * \param t The throwable * \param c The Context */ - Throwable11(const Throwable11&, const Context&); - Throwable11(const Throwable&, const Context&); - - /*! - * Get the message - * \return The message - */ - std::string getMessage() const - { - return mMessage; - } - - /*! - * Get the trace - * \return The trace (const) - */ - const Trace& getTrace() const noexcept - { - return mTrace; - } - - /*! - * Get the trace - * \return The trace (non-const) - */ - Trace& getTrace() noexcept - { - return mTrace; - } - - /*! - * Get the type id - * \return The type - */ - virtual std::string getType() const noexcept - { - return "Throwable11"; - } - - virtual std::string toString() const - { - std::ostringstream s; - s << getType() << ": " << getMessage(); - - const Trace& t = getTrace(); - if (t.getSize() > 0) - s << ": " << t; - return s.str(); - } - - const std::vector& getBacktrace() const noexcept - { - return mBacktrace; - } - - // It seems that overloading constructors creates ambiguities ... so allow - // for a "fluent" way of doing this.: throw Exception(...).backtrace() - Throwable11& backtrace() - { - doGetBacktrace(); - return *this; - } - - virtual std::string toString(bool includeBacktrace) const - { - // Adding the backtrace to existing toString() output could substantally - // alter existing strings. - std::string backtrace; - if (includeBacktrace) - { - backtrace = "***** getBacktrace() *****\n"; - backtrace += std::accumulate(mBacktrace.begin(), - mBacktrace.end(), - std::string()); - } - return toString() + backtrace; - } + ThrowableEx(const ThrowableEx& t, const Context& ctx) : Throwable(t, ctx) {} + ThrowableEx(const Throwable& t, const Context& ctx) : Throwable(t, ctx) {} + #if !CODA_OSS_except_Throwable_ISA_std_exception const char* what() const noexcept final // derived classes override toString() { - // adding this to toString() output could (significantly) alter existing display - mWhat = toString(true /*includeBacktrace*/); // call any derived toString() - return mWhat.c_str(); + const Throwable* pThrowable = this; + return pThrowable->what(); } - -protected: - //! The name of exception trace - Trace mTrace; - //! The name of the message the exception was thrown - std::string mMessage; - -private: - mutable std::string mWhat; - std::vector mBacktrace; + #endif }; +using Throwable11 = ThrowableEx; // keep old name around for other projects } #endif // CODA_OSS_except_Throwable_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/except/source/Backtrace.cpp b/externals/coda-oss/modules/c++/except/source/Backtrace.cpp index 3131668082..a6a326415e 100644 --- a/externals/coda-oss/modules/c++/except/source/Backtrace.cpp +++ b/externals/coda-oss/modules/c++/except/source/Backtrace.cpp @@ -28,6 +28,8 @@ #include #include +#include "config/disable_compiler_warnings.h" + #if !CODA_OSS_except_Backtrace static std::string getBacktrace_(bool& supported, std::vector&) @@ -55,6 +57,10 @@ struct BacktraceHelper final BacktraceHelper(char** stackSymbols) : mStackSymbols(stackSymbols) {} + BacktraceHelper(const BacktraceHelper&) = delete; + BacktraceHelper& operator=(const BacktraceHelper&) = delete; + BacktraceHelper(BacktraceHelper&&) = default; + BacktraceHelper& operator=(BacktraceHelper&&) = default; ~BacktraceHelper() { diff --git a/externals/coda-oss/modules/c++/except/source/Throwable.cpp b/externals/coda-oss/modules/c++/except/source/Throwable.cpp index 96dce68eca..a30d484dfb 100644 --- a/externals/coda-oss/modules/c++/except/source/Throwable.cpp +++ b/externals/coda-oss/modules/c++/except/source/Throwable.cpp @@ -76,7 +76,7 @@ except::Throwable::Throwable(const Context* pContext, const Throwable* pThrowabl : Throwable(pContext, pThrowable, pMessage, callGetBacktrace, nullptr) { } -except::Throwable::Throwable(const Context* pContext, const Throwable11* pThrowable, const std::string* pMessage, bool callGetBacktrace) +except::Throwable::Throwable(const Context* pContext, const ThrowableEx* pThrowable, const std::string* pMessage, bool callGetBacktrace) : Throwable(pContext, pThrowable, pMessage, callGetBacktrace, nullptr) { } @@ -92,101 +92,9 @@ except::Throwable::Throwable(except::Context c) : Throwable(&c) except::Throwable::Throwable(const except::Throwable& t, except::Context c) : Throwable(&c, &t) { } -except::Throwable::Throwable(const except::Throwable11& t, except::Context c) : Throwable(&c, &t) +except::Throwable::Throwable(const except::ThrowableEx& t, except::Context c) : Throwable(&c, &t) { } -except::Throwable::Throwable(const except::Throwable11& t) : Throwable(nullptr, &t) -{ -} - -//****************************************************************************** - -void except::Throwable11::doGetBacktrace() -{ - // This could be time-consuming or generate a lot of (noisy) output; only do - // it if requested - bool supported; - (void)except::getBacktrace(supported, mBacktrace); -} - -template -except::Throwable11::Throwable11(const Context* pContext, - const TThrowable* pThrowable, - const std::string* pMessage, - bool callGetBacktrace, - std::nullptr_t) -{ - if (pThrowable != nullptr) - { - // Copy t's exception stack and push c onto local one - mTrace = pThrowable->getTrace(); - } - - if (pContext != nullptr) - { - assert(pMessage == nullptr); - - // Push context onto exception stack - mTrace.pushContext(*pContext); - - // Assign c's message as our internal one - mMessage = pContext->getMessage(); - } - - if (pMessage != nullptr) - { - assert(pContext == nullptr); - mMessage = *pMessage; - } - - // This will record a back-trace from where the Throwable object was - // instantiated. That's not necessarily where the "throw" will occur, but - // it's often the case; Throwable instances ususally aren't passed around. - // That is, hardly anybody does: - // Exception e; // Throwable instance - // might_throw(e); - // rather, the idiom is usually - // throw Exception(...); // instantiate and throw - if (callGetBacktrace) - { - doGetBacktrace(); - } -} -except::Throwable11::Throwable11(const Context* pContext, - const Throwable11* pThrowable, - const std::string* pMessage, - bool callGetBacktrace) : - Throwable11(pContext, pThrowable, pMessage, callGetBacktrace, nullptr) -{ -} -except::Throwable11::Throwable11(const Context* pContext, - const Throwable* pThrowable, - const std::string* pMessage, - bool callGetBacktrace) : - Throwable11(pContext, pThrowable, pMessage, callGetBacktrace, nullptr) -{ -} - -except::Throwable11::Throwable11(const std::string& message) : - Throwable11(nullptr, static_cast(nullptr), &message) -{ -} - -except::Throwable11::Throwable11(const except::Context& c) : Throwable11(&c) -{ -} - -except::Throwable11::Throwable11(const except::Throwable11& t, - const except::Context& c) : - Throwable11(&c, &t) -{ -} -except::Throwable11::Throwable11(const except::Throwable& t, - const except::Context& c) : - Throwable11(&c, &t) -{ -} -except::Throwable11::Throwable11(const except::Throwable& t) : - Throwable11(nullptr, &t) +except::Throwable::Throwable(const except::ThrowableEx& t) : Throwable(nullptr, &t) { } diff --git a/externals/coda-oss/modules/c++/except/tests/Gen2Test.cpp b/externals/coda-oss/modules/c++/except/tests/Gen2Test.cpp index 65623ff21c..b7d641d898 100644 --- a/externals/coda-oss/modules/c++/except/tests/Gen2Test.cpp +++ b/externals/coda-oss/modules/c++/except/tests/Gen2Test.cpp @@ -29,7 +29,7 @@ using std::endl; using std::cout; using namespace except; -DECLARE_EXCEPTION(DivideByZero) +DECLARE_EXCEPTION(DivideByZero); typedef DivideByZeroException DivideByZero; double Divide(double x, double y); diff --git a/externals/coda-oss/modules/c++/framework.h b/externals/coda-oss/modules/c++/framework.h index 4b63b165b6..ced33cae73 100644 --- a/externals/coda-oss/modules/c++/framework.h +++ b/externals/coda-oss/modules/c++/framework.h @@ -8,8 +8,11 @@ #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers #define NOMINMAX // no min()/max() macros +#pragma warning(push) +#pragma warning(disable: 5105) // macro expansion producing '...' has undefined behavior #include #include #include +#pragma warning(pop) #pragma comment(lib, "Ws2_32") #pragma warning(pop) diff --git a/externals/coda-oss/modules/c++/gsl/include/gsl/Gsl_.h b/externals/coda-oss/modules/c++/gsl/include/gsl/Gsl_.h index 46ef55ddf5..711458fed4 100644 --- a/externals/coda-oss/modules/c++/gsl/include/gsl/Gsl_.h +++ b/externals/coda-oss/modules/c++/gsl/include/gsl/Gsl_.h @@ -29,7 +29,7 @@ #include "gsl/Gsl_narrow.h" #include "gsl/use_gsl.h" // Can't compile all of GSL with older versions of GCC/MSVC -#if !CODA_OSS_gsl_use_real_gsl_ +#if !CODA_OSS_use_real_gsl_ // Add to "gsl" if we're not using the real thing namespace gsl { @@ -45,6 +45,6 @@ namespace gsl return Gsl::narrow(u); } } -#endif // CODA_OSS_gsl_use_real_gsl_ +#endif // CODA_OSS_coda_oss_use_real_gsl_ #endif // CODA_OSS_gsl_Gsl__h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/gsl/include/gsl/gsl.h b/externals/coda-oss/modules/c++/gsl/include/gsl/gsl.h index 45ed51505d..bd7b33a097 100644 --- a/externals/coda-oss/modules/c++/gsl/include/gsl/gsl.h +++ b/externals/coda-oss/modules/c++/gsl/include/gsl/gsl.h @@ -32,9 +32,10 @@ // always compile Gsl (not "gsl") code--our own simple implementation #include "gsl/Gsl_.h" // our own "fake" GSL -#if CODA_OSS_gsl_use_real_gsl_ +#if CODA_OSS_use_real_gsl_ CODA_OSS_disable_warning_push #if _MSC_VER + #pragma warning(disable: 4619) // #pragma warning : there is no warning number '..' #pragma warning(disable: 4626) // '...' : assignment operator was implicitly defined as deleted #pragma warning(disable: 5027) // '...' : move assignment operator was implicitly defined as deleted #pragma warning(disable: 26487) // Don 't return a pointer '...' that may be invalid (lifetime.4). diff --git a/externals/coda-oss/modules/c++/gsl/include/gsl/use_gsl.h b/externals/coda-oss/modules/c++/gsl/include/gsl/use_gsl.h index c19faaae25..8135edf1d8 100644 --- a/externals/coda-oss/modules/c++/gsl/include/gsl/use_gsl.h +++ b/externals/coda-oss/modules/c++/gsl/include/gsl/use_gsl.h @@ -24,17 +24,17 @@ #pragma once // Need a fairly decent C++ compiler to use the real GSL -#ifndef CODA_OSS_coda_oss_use_real_gsl_ +#ifndef CODA_OSS_use_real_gsl_ #if defined(_MSC_VER) // need VS2017 or later to compile the real GSL code - #define CODA_OSS_coda_oss_use_real_gsl_ (_MSC_VER >= 1910) // VS2017: https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-160 + #define CODA_OSS_use_real_gsl_ (_MSC_VER >= 1910) // VS2017: https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-160 #elif defined (__GNUC__) // GCC 4.9.1 and 4.9.4 won't compile GSL - #define CODA_OSS_coda_oss_use_real_gsl_ (__GNUC__ >= 5) + #define CODA_OSS_use_real_gsl_ (__GNUC__ >= 5) #else // assume GSL can be compiled with any C++14 compiler #include "coda_oss/CPlusPlus.h" - #define CODA_OSS_coda_oss_use_real_gsl_ CODA_OSS_cpp14 + #define CODA_OSS_use_real_gsl_ CODA_OSS_cpp14 #endif #endif diff --git a/externals/coda-oss/modules/c++/hdf5.lite/CMakeLists.txt b/externals/coda-oss/modules/c++/hdf5.lite/CMakeLists.txt new file mode 100644 index 0000000000..0efec0c88a --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/CMakeLists.txt @@ -0,0 +1,18 @@ +set(MODULE_NAME hdf5.lite) + +if(CODA_ENABLE_HDF5) + set(MODULE_DEPS highfive-c++ hdf5-c++) + list(APPEND MODULE_DEPS except-c++ types-c++ io-c++ coda_oss-c++) + + coda_add_module( + ${MODULE_NAME} + VERSION 1.0 + DEPS ${MODULE_DEPS}) + + coda_add_tests( + MODULE_NAME ${MODULE_NAME} + DIRECTORY "unittests" + UNITTEST) +else() + message("${MODULE_NAME} will not be built since HDF5 is not enabled") +endif() diff --git a/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/HDF5Exception.h b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/HDF5Exception.h new file mode 100644 index 0000000000..83fd276bba --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/HDF5Exception.h @@ -0,0 +1,55 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_hdf5_lite_HDF5Exception_h_INCLUDED_ +#define CODA_OSS_hdf5_lite_HDF5Exception_h_INCLUDED_ + +#include "except/Exception.h" + +/*! + * \file HDF5Exception.h + * \brief Contains the exceptions specific to HDF5 + * + * This file contains all of the specialized HDF5 exceptions used by + * the hdf5::lite package + */ +namespace hdf5 +{ +namespace lite +{ + +/*! + * \class HDF5Exception + * \brief The base HDF5 exception class + * + * This is the default HDF5 exception, for when + * other, more specialized exception make no sense + */ +CODA_OSS_DECLARE_EXCEPTION(HDF5); + +CODA_OSS_DECLARE_EXTENDED_EXCEPTION(DataSet, hdf5::lite::HDF5Exception); +CODA_OSS_DECLARE_EXTENDED_EXCEPTION(DataSpace, hdf5::lite::HDF5Exception); +CODA_OSS_DECLARE_EXTENDED_EXCEPTION(DataType, hdf5::lite::HDF5Exception); + +} +} +#endif // CODA_OSS_hdf5_lite_HDF5Exception_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Info.h b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Info.h new file mode 100644 index 0000000000..ee62c137d0 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Info.h @@ -0,0 +1,109 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_hdf5_lite_Info_h_INCLUDED_ +#define CODA_OSS_hdf5_lite_Info_h_INCLUDED_ +#pragma once + +#include +#include + +#include "config/Exports.h" +#include "sys/filesystem.h" + +/*! + * \file Read.h + * \brief HDF File-reading API + * + * These are simple routines to read HDF5 files; they're modeled after the MATLab API + * https://www.mathworks.com/help/matlab/ref/h5info.html + */ +namespace hdf5 +{ +namespace lite +{ +enum class Class +{ + NoClass = -1, /**< error */ + Integer = 0, /**< integer types */ + Float = 1, /**< floating-point types */ + Time = 2, /**< date and time types */ + String = 3, /**< character string types */ + Bitfield = 4, /**< bit field types */ + Opaque = 5, /**< opaque types */ + Compound = 6, /**< compound types */ + Reference = 7, /**< reference types */ + Enum = 8, /**< enumeration types */ + Vlen = 9, /**< variable-Length types */ + Array = 10, /**< array types */ +}; + +// https://docs.hdfgroup.org/hdf5/develop/_h5_d_m__u_g.html +struct NamedObject +{ + std::string filename; // could be a URL, so not std::filesystem::path + std::string name; +}; + +struct DataTypeInfo final : public NamedObject +{ + Class h5Class; + // Type + size_t size = 0; +}; + +struct DataSpaceInfo final +{ +}; + +struct DataSetInfo final : public NamedObject +{ + DataTypeInfo dataType; + DataSpaceInfo dataSpace; + // ChunkSize + // FillValue + // Filter + // Attributes +}; + +struct GroupInfo : public NamedObject +{ + std::vector groups; + std::vector dataSets; + std::vector dataTypes; + // Links + // Attributes +}; + +struct FileInfo final : public GroupInfo +{ +}; + + +CODA_OSS_API FileInfo fileInfo(const coda_oss::filesystem::path&); +CODA_OSS_API GroupInfo groupInfo(const coda_oss::filesystem::path&, const std::string& loc); +CODA_OSS_API DataSetInfo dataSetInfo(const coda_oss::filesystem::path&, const std::string& loc); + +} +} + +#endif // CODA_OSS_hdf5_lite_Info_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Read.h b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Read.h new file mode 100644 index 0000000000..09a8502ee4 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Read.h @@ -0,0 +1,55 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_hdf5_lite_Read_h_INCLUDED_ +#define CODA_OSS_hdf5_lite_Read_h_INCLUDED_ +#pragma once + +/*! + * \file Read.h + * \brief HDF File-reading API + * + * These are simple routines to read HDF5 files; they're loosely modeled after the MATLab API + * https://www.mathworks.com/help/matlab/import_export/import-hdf5-files.html + */ + +#include +#include + +#include "config/Exports.h" +#include "sys/filesystem.h" +#include "types/RowCol.h" + +#include "SpanRC.h" + +namespace hdf5 +{ +namespace lite +{ + +CODA_OSS_API SpanRC readFile(const coda_oss::filesystem::path&, const std::string& loc, std::vector&); +CODA_OSS_API SpanRC readFile(const coda_oss::filesystem::path&, const std::string& loc, std::vector&); + +} +} + +#endif // CODA_OSS_hdf5_lite_Read_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/SpanRC.h b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/SpanRC.h new file mode 100644 index 0000000000..9392890bb2 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/SpanRC.h @@ -0,0 +1,115 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_hdf5_lite_SpanRC_h_INCLUDED_ +#define CODA_OSS_hdf5_lite_SpanRC_h_INCLUDED_ +#pragma once + +/*! + * \file SpanRC.h + * + * This is a super-simple version of C++23's mdspan. It's here because 1) don't want widespread use, and + * 2) CODA already has a View2D. + */ + +#include + +#include "config/Exports.h" +#include "coda_oss/span.h" +#include "types/RowCol.h" + +namespace hdf5 +{ +namespace lite +{ + +template +struct SpanRC final +{ + using size_type = types::RowCol; + using element_type = T; + using pointer = T*; + using reference = T&; + + SpanRC() = default; + SpanRC(pointer p, size_type rc) noexcept : s_(p, rc.area()), rc_(rc) + { + } + SpanRC(pointer p, size_t r, size_t c) noexcept : SpanRC(p, size_type(r, c)) + { + } + SpanRC(const SpanRC&) noexcept = default; + + constexpr pointer data() const noexcept + { + return s_.data(); + } + + /*constexpr*/ reference operator[](size_t idx) const noexcept + { + assert(idx < size()); // prevents "constexpr" in C++11 + return data()[idx]; + } + /*constexpr*/ reference operator()(size_t r, size_t c) const noexcept + { + const auto offset = (r * dims().col) + c; + return (*this)[offset]; + } + /*constexpr*/ reference operator[](size_type idx) const noexcept + { + return (*this)(idx.row, idx.col); + } + + constexpr size_t size() const noexcept + { + assert(s_.size() == rc_.area()); + return s_.size(); + } + constexpr size_t area() const noexcept + { + return size(); + } + + constexpr size_type size_bytes() const noexcept + { + return s_.size_bytes(); + } + + constexpr bool empty() const noexcept + { + return s_.empty(); + } + + const auto& dims() const + { + return rc_; + } + + private: + coda_oss::span s_; + types::RowCol rc_; +}; + +} +} + +#endif // CODA_OSS_hdf5_lite_SpanRC_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Write.h b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Write.h new file mode 100644 index 0000000000..dea204a7f9 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/Write.h @@ -0,0 +1,80 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_hdf5_lite_Write_h_INCLUDED_ +#define CODA_OSS_hdf5_lite_Write_h_INCLUDED_ +#pragma once + +/*! + * \file Write.h + * \brief HDF File-writing API + * + * These are simple routines to write HDF5 files; they're loosely modeled after the MATLab API + * https://www.mathworks.com/help/matlab/ref/h5create.html + * https://www.mathworks.com/help/matlab/ref/h5write.html + */ + +#include +#include + +#include "config/Exports.h" +#include "sys/filesystem.h" +#include "types/RowCol.h" + +#include "SpanRC.h" + +namespace hdf5 +{ +namespace lite +{ +template // currently implemented for float and double +CODA_OSS_API void createFile(const coda_oss::filesystem::path&, const std::string& ds, const types::RowCol&); +CODA_OSS_API void createFile(const coda_oss::filesystem::path&, const std::string& ds, SpanRC); +inline void createFile(const coda_oss::filesystem::path& path, const std::string& ds, SpanRC data_) +{ + SpanRC data(data_.data(), data_.dims()); + createFile(path, ds, data); +} +CODA_OSS_API void createFile(const coda_oss::filesystem::path&, const std::string& ds, SpanRC); +inline void createFile(const coda_oss::filesystem::path& path, const std::string& ds, SpanRC data_) +{ + SpanRC data(data_.data(), data_.dims()); + createFile(path, ds, data); +} + +CODA_OSS_API void writeFile(const coda_oss::filesystem::path&, const std::string& loc, SpanRC); +inline void writeFile(const coda_oss::filesystem::path& path, const std::string& ds, SpanRC data_) +{ + SpanRC data(data_.data(), data_.dims()); + writeFile(path, ds, data); +} +CODA_OSS_API void writeFile(const coda_oss::filesystem::path&, const std::string& loc, SpanRC); +inline void writeFile(const coda_oss::filesystem::path& path, const std::string& ds, SpanRC data_) +{ + SpanRC data(data_.data(), data_.dims()); + writeFile(path, ds, data); +} + +} +} + +#endif // CODA_OSS_hdf5_lite_Write_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/highfive.h b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/highfive.h new file mode 100644 index 0000000000..d6f525ff65 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/include/hdf5/lite/highfive.h @@ -0,0 +1,144 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_hdf5_lite_highfive_h_INCLUDED_ +#define CODA_OSS_hdf5_lite_highfive_h_INCLUDED_ +#pragma once + +/*! + * \file highfive.h + * \brief Utility routines for using HighFive + */ + +#include +#include +#include + +#include "highfive/H5Easy.hpp" +#include "highfive/H5DataSet.hpp" + +#include "SpanRC.h" + +namespace hdf5 +{ +namespace lite +{ + +// Save the trouble of specifying a return type of std::vector<> +template +inline auto v_load(const H5Easy::File& file, const std::string& dataset_name) +{ + return H5Easy::load>(file, dataset_name); +} +template +inline auto vv_load(const H5Easy::File& file, const std::string& dataset_name) +{ + return H5Easy::load>>(file, dataset_name); +} + +template +inline HighFive::DataSet writeDataSet(H5Easy::File& file, const std::string& dataset_name, SpanRC data /*, TODO ...*/) +{ + const std::vector dims{data.dims().row, data.dims().col}; + const HighFive::DataSpace dataspace{dims}; + auto retval = file.createDataSet(dataset_name, dataspace); + retval.write_raw(data.data()); + return retval; +} + +template +inline HighFive::DataSet writeDataSet(const H5Easy::File& file, const std::string& dataset_name, const T& values /*, TODO ...*/) +{ + auto dataset = file.createDataSet(dataset_name, HighFive::DataSpace::From(values)); + dataset.write(values); + return dataset; +} + +// This loads 2D data into one large block of contiguous memory. +// (HighFive::DataSet::read() uses a vector of vectors). +template +inline SpanRC readDataSet(const HighFive::DataSet& dataSet, std::vector& result /*, TODO ...*/) +{ + const auto dimensions = dataSet.getSpace().getDimensions(); + if (dimensions.size() > 2) + { + throw std::invalid_argument("'dataSet' has unexpected dimensions."); + } + const auto col = dimensions.size() == 2 ? dimensions[1] : 1; + const types::RowCol dims(dimensions[0], col); + + result.resize(dims.area()); + dataSet.read(result.data()); + + return SpanRC(result.data(), dims); +} + +template +inline SpanRC loadDataSet(const H5Easy::File& file, const std::string& dataset_name, std::vector& result /*, TODO ...*/) +{ + auto dataSet = file.getDataSet(dataset_name); + return readDataSet(dataSet, result); +} + +// Wrapper around HighFive::Attribute::read() to fix problems bug with reading strings +template +inline void read(const HighFive::Attribute& attribute, T& array) +{ + attribute.read(array); +} +template <> +inline void read(const HighFive::Attribute& attribute, std::string& array) +{ + // Attribute::read() doesn't seem to work for fixed length strings + const auto dataType = attribute.getDataType(); + if (!dataType.isFixedLenStr()) + { + return attribute.read(array); // let HighFive deal with it + } + + // https://stackoverflow.com/questions/31344648/c-c-hdf5-read-string-attribute + std::vector buf(attribute.getStorageSize() + 1, '\0'); + const auto err = H5Aread(attribute.getId(), dataType.getId(), buf.data()); + if (err < 0) + { + throw std::runtime_error("H5Aread() failed."); + } + array = buf.data(); +} + +template +inline T read(const HighFive::Attribute& a) +{ + return a.read(); +} +template<> +inline std::string read(const HighFive::Attribute& a) +{ + std::string retval; + read(a, retval); + return retval; +} + +} +} + +#endif // CODA_OSS_hdf5_lite_highfive_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreIrix.h b/externals/coda-oss/modules/c++/hdf5.lite/include/import/hdf5/lite.h similarity index 53% rename from externals/coda-oss/modules/c++/sys/include/sys/SemaphoreIrix.h rename to externals/coda-oss/modules/c++/hdf5.lite/include/import/hdf5/lite.h index a45fa8236b..9996da8ab3 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreIrix.h +++ b/externals/coda-oss/modules/c++/hdf5.lite/include/import/hdf5/lite.h @@ -1,10 +1,10 @@ /* ========================================================================= - * This file is part of sys-c++ + * This file is part of xml.lite-c++ * ========================================================================= * * (C) Copyright 2004 - 2014, MDA Information Systems LLC * - * sys-c++ is free software; you can redistribute it and/or modify + * xml.lite-c++ is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. @@ -20,37 +20,10 @@ * */ +#ifndef CODA_OSS_hd5_lite_import_lite_h_INCLUDED_ +#define CODA_OSS_hd5_lite_import_lite_h_INCLUDED_ +#pragma once -#ifndef __SYS_SEMAPHORE_IRIX_H__ -#define __SYS_SEMAPHORE_IRIX_H__ +#include "hdf5/lite/Read.h" -#if defined(__sgi) - -#include -#include "sys/SyncFactoryIrix.h" -#include "sys/SemaphoreInterface.h" - -namespace sys -{ -class SemaphoreIrix : public SemaphoreInterface -{ -public: - SemaphoreIrix(unsigned int count = 0); - virtual ~SemaphoreIrix(); - void wait(); - void signal(); - usema_t*& getNative(); - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } -}; -} - -#endif -#endif +#endif // CODA_OSS_hd5_lite_import_lite_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/source/H5.cpp b/externals/coda-oss/modules/c++/hdf5.lite/source/H5.cpp new file mode 100644 index 0000000000..265f25de88 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/source/H5.cpp @@ -0,0 +1,81 @@ +/* ========================================================================= + * This file is part of hd5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hd5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include "H5.h" + +#include +#include // std::ignore + +int hdf5::lite::details::getSimpleExtentNdims(const H5::DataSpace& dataspace) +{ + /* + * Get the number of dimensions in the dataspace. + */ + const auto rank = dataspace.getSimpleExtentNdims(); + // we only support 1- and 2-D data + if ((rank != 1) && (rank != 2)) + { + throw std::invalid_argument("'rank' must be 1 or 2."); + } + return rank; +} + +std::vector hdf5::lite::details::getSimpleExtentDims(const H5::DataSpace& dataspace) +{ + /* + * Get the number of dimensions in the dataspace. + */ + const auto rank = getSimpleExtentNdims(dataspace); + + /* + * Get the dimension size of each dimension in the dataspace. + */ + std::vector dims_out(rank); + dims_out.resize(rank); + const auto ndims = dataspace.getSimpleExtentDims(dims_out.data()); + dims_out.resize(ndims); + if (dims_out.empty() || (dims_out.size() > 2)) + { + throw std::invalid_argument("dims_out.size() must be 1 or 2."); + } + + return dims_out; +} + +types::RowCol hdf5::lite::details::getSimpleExtentSize(const H5::DataSet& dataset) +{ + /* + * Get dataspace of the dataset. + */ + const auto dataspace = dataset.getSpace(); + + /* + * Get the dimension size of each dimension in the dataspace. + */ + const auto dims_out = getSimpleExtentDims(dataspace); + + // Does it matter whether it's 1-row and n-cols or n-cols and 1-row? + types::RowCol retval; + retval.row = dims_out[0]; + retval.col = dims_out.size() == 2 ? dims_out[1] : 1; + return retval; +} diff --git a/externals/coda-oss/modules/c++/hdf5.lite/source/H5.h b/externals/coda-oss/modules/c++/hdf5.lite/source/H5.h new file mode 100644 index 0000000000..24b0d8cfc1 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/source/H5.h @@ -0,0 +1,51 @@ +/* ========================================================================= + * This file is part of hd5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hd5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_hdf5_lite_H5_h_INCLUDED_ +#define CODA_OSS_hdf5_lite_H5_h_INCLUDED_ +#pragma once + +#include + +// see https://docs.hdfgroup.org/archive/support/HDF5/doc1.8/cpplus_RM/readdata_8cpp-example.html +#include + +#include "types/RowCol.h" + +// Utility routines for INTERNAL use! + +namespace hdf5 +{ +namespace lite +{ +namespace details +{ + +int getSimpleExtentNdims(const H5::DataSpace&); +std::vector getSimpleExtentDims(const H5::DataSpace&); +types::RowCol getSimpleExtentSize(const H5::DataSet&); + +} +} +} + +#endif // CODA_OSS_hdf5_lite_H5_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/source/Info.cpp b/externals/coda-oss/modules/c++/hdf5.lite/source/Info.cpp new file mode 100644 index 0000000000..18062343ab --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/source/Info.cpp @@ -0,0 +1,212 @@ +/* ========================================================================= + * This file is part of hd5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hd5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include "hdf5/lite/Info.h" + +#include // std::ignore +#include + +#include "H5.h" +#include "hdf5.lite.h" + + +// https://docs.hdfgroup.org/archive/support/HDF5/doc1.8/cpplus_RM/h5group_8cpp-example.html +static herr_t group_info(hid_t loc_id, const char *name, const H5L_info_t* /*linfo*/, void *opdata) +{ + // only interested in groups + const auto obj = H5Gopen2(loc_id, name, H5P_DEFAULT); + if (obj > 0) + { + H5Gclose(obj); + + hdf5::lite::GroupInfo info; + info.name = name; + + auto pRetval = static_cast*>(opdata); + pRetval->push_back(info); + } + + return 0; +} +static std::vector getGroups(H5::Group& group) +{ + std::vector retval; + + const auto herr = H5Literate(group.getId(), H5_INDEX_NAME, H5_ITER_INC, nullptr /*idx*/, group_info, &retval); + if (herr != 0) + { + // How can this happen? + throw std::logic_error("H5Literate failed."); + } + + return retval; + } + +// https://docs.hdfgroup.org/archive/support/HDF5/doc1.8/cpplus_RM/h5group_8cpp-example.html +static herr_t dataset_info(hid_t loc_id, const char *name, const H5L_info_t* /*linfo*/, void *opdata) +{ + // only interested in Datasets + const auto obj = H5Dopen2(loc_id, name, H5P_DEFAULT); + if (obj > 0) + { + H5Dclose(obj); + + hdf5::lite::DataSetInfo info; + info.name = name; + + auto pRetval = static_cast*>(opdata); + pRetval->push_back(info); + } + + return 0; +} +static std::vector getDataSets(H5::Group& group) + { + std::vector retval; + + const auto herr = H5Literate(group.getId(), H5_INDEX_NAME, H5_ITER_INC, nullptr /*idx*/, dataset_info, &retval); + if (herr != 0) + { + // How can this happen? + throw std::logic_error("H5Literate failed."); + } + + return retval; + } + +// https://docs.hdfgroup.org/archive/support/HDF5/doc1.8/cpplus_RM/h5group_8cpp-example.html +static herr_t datatype_info(hid_t loc_id, const char *name, const H5L_info_t* /*linfo*/, void *opdata) +{ + // only interested in Datatypes + const auto obj = H5Topen2(loc_id, name, H5P_DEFAULT); + if (obj > 0) + { + H5Tclose(obj); + + hdf5::lite::DataTypeInfo info; + info.name = name; + + auto pRetval = static_cast*>(opdata); + pRetval->push_back(info); + } + + return 0; +} +static std::vector getDataTypes(H5::Group& group) + { + std::vector retval; + + const auto herr = H5Literate(group.getId(), H5_INDEX_NAME, H5_ITER_INC, nullptr /*idx*/, datatype_info, &retval); + if (herr != 0) + { + // How can this happen? + throw std::logic_error("H5Literate failed."); + } + + return retval; + } + +// https://docs.hdfgroup.org/archive/support/HDF5/doc1.8/cpplus_RM/readdata_8cpp-example.html +static hdf5::lite::GroupInfo groupInfo_(const coda_oss::filesystem::path& filename, const std::string& loc) +{ + hdf5::lite::GroupInfo retval; + retval.filename = filename.string(); + retval.name = loc; + + /* + * Open the specified file and the specified dataset in the file. + */ + H5::H5File file(retval.filename, H5F_ACC_RDONLY); + auto group = file.openGroup(retval.name); + + retval.groups = getGroups(group); + retval.dataSets = getDataSets(group); + retval.dataTypes = getDataTypes(group); + + return retval; +} +hdf5::lite::GroupInfo hdf5::lite::groupInfo(const coda_oss::filesystem::path& filename, const std::string& loc) +{ + return details::try_catch_H5Exceptions(groupInfo_, __FILE__, __LINE__, filename, loc); +} +hdf5::lite::FileInfo hdf5::lite::fileInfo(const coda_oss::filesystem::path& filename) +{ + hdf5::lite::FileInfo retval; + hdf5::lite::GroupInfo& retval_ = retval; + retval_= groupInfo(filename, "/" /*loc*/); + return retval; +} + +static hdf5::lite::Class H5T_class_to_Class(H5T_class_t type_class) +{ + switch (type_class) + { + case H5T_NO_CLASS: return hdf5::lite::Class::NoClass; + case H5T_INTEGER: return hdf5::lite::Class::Integer; + case H5T_FLOAT: return hdf5::lite::Class::Float; + case H5T_TIME: return hdf5::lite::Class::Time; + case H5T_STRING: return hdf5::lite::Class::String; + case H5T_BITFIELD: return hdf5::lite::Class::Bitfield; + case H5T_OPAQUE: return hdf5::lite::Class::Opaque; + case H5T_COMPOUND: return hdf5::lite::Class::Compound; + case H5T_REFERENCE: return hdf5::lite::Class::Reference; + case H5T_ENUM: return hdf5::lite::Class::Enum; + case H5T_VLEN: return hdf5::lite::Class::Vlen; + case H5T_ARRAY: return hdf5::lite::Class::Array; + + case H5T_NCLASSES: /*shouldn't be used*/ + throw std::logic_error("Unexpected H5T_class_t."); + default: + throw std::logic_error("Unknown H5T_class_t."); + } +} +static hdf5::lite::Class H5T_class_to_Class(const H5::DataSet& dataset) +{ + return H5T_class_to_Class(dataset.getTypeClass()); +} + +// https://docs.hdfgroup.org/archive/support/HDF5/doc1.8/cpplus_RM/readdata_8cpp-example.html +static hdf5::lite::DataSetInfo dataSetInfo_(const coda_oss::filesystem::path& filename, const std::string& loc) +{ + hdf5::lite::DataSetInfo retval; + retval.filename = filename.string(); + + /* + * Open the specified file and the specified dataset in the file. + */ + H5::H5File file(retval.filename, H5F_ACC_RDONLY); + const auto dataset = file.openDataSet(loc); + + const coda_oss::filesystem::path name = dataset.getObjName(); // e.g., "/g4/time" + retval.name = name.filename().string(); // "time" + + /* + * Get the class of the datatype that is used by the dataset. + */ + retval.dataType.h5Class = H5T_class_to_Class(dataset); + + return retval; +} +hdf5::lite::DataSetInfo hdf5::lite::dataSetInfo(const coda_oss::filesystem::path& filename, const std::string& loc) +{ + return details::try_catch_H5Exceptions(dataSetInfo_, __FILE__, __LINE__, filename, loc); +} diff --git a/externals/coda-oss/modules/c++/hdf5.lite/source/Read.cpp b/externals/coda-oss/modules/c++/hdf5.lite/source/Read.cpp new file mode 100644 index 0000000000..325111a4fe --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/source/Read.cpp @@ -0,0 +1,107 @@ +/* ========================================================================= + * This file is part of hd5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hd5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include "hdf5/lite/Read.h" + +#include // std::ignore +#include + +#include "coda_oss/cstddef.h" // byte + +#include "hdf5/lite/HDF5Exception.h" +#include "H5.h" +#include "hdf5.lite.h" + +static void read(const H5::DataSet& dataset, std::vector& result) +{ + static_assert(sizeof(double) * 8 == 64, "'double' should be 64-bits"); // IEEE_F64LE + + const auto mem_type = dataset.getDataType(); + if (mem_type != H5::PredType::IEEE_F64LE) + { + const except::Context context("getDataType() != IEEE_F64LE", __FILE__, __LINE__, "read"); + throw hdf5::lite::DataSetException(context); + } + dataset.read(result.data(), mem_type); +} +static void read(const H5::DataSet& dataset, std::vector& result) +{ + static_assert(sizeof(float) * 8 == 32, "'float' should be 32-bits"); // IEEE_F32LE + + const auto mem_type = dataset.getDataType(); + if (mem_type != H5::PredType::IEEE_F32LE) + { + const except::Context context("getDataType() != IEEE_F32LE", __FILE__, __LINE__, "read"); + throw hdf5::lite::DataSetException(context); + } + dataset.read(result.data(), mem_type); +} +template +static hdf5::lite::SpanRC readDatasetT(const H5::DataSet& dataset, std::vector& result) +{ + if (dataset.getTypeClass() != H5T_FLOAT) + { + const except::Context context("getTypeClass() != H5T_FLOAT", __FILE__, __LINE__, "readDatasetT"); + throw hdf5::lite::DataSetException(context); + } + + const auto dims = hdf5::lite::details::getSimpleExtentSize(dataset); + result.resize(dims.area()); + hdf5::lite::SpanRC retval(result.data(), dims); + + // dataset.read() doesn't care about the buffer type ... that's because H5Dread() also + // uses void*. However, the LT API has H5LTread_dataset_double() and H5LTread_dataset_float(), + read(dataset, result); // data.read(result.data(), mem_type); + + return retval; +} + +inline hdf5::lite::SpanRC readDataset_(const H5::DataSet& dataset, std::vector& result) +{ + return readDatasetT(dataset, result); +} +inline hdf5::lite::SpanRC readDataset_(const H5::DataSet& dataset, std::vector& result) +{ + return readDatasetT(dataset, result); +} +template +static hdf5::lite::SpanRC readFile_(const coda_oss::filesystem::path& fileName, const std::string& datasetName, + std::vector& result) +{ + /* + * Open the specified file and the specified dataset in the file. + */ + H5::H5File file(fileName.string(), H5F_ACC_RDONLY); + const auto dataset = file.openDataSet(datasetName); + return readDataset_(dataset, result); +} + +hdf5::lite::SpanRC hdf5::lite::readFile(const coda_oss::filesystem::path& fileName, const std::string& loc, + std::vector& result) +{ + return details::try_catch_H5Exceptions(readFile_, __FILE__, __LINE__, fileName, loc, result); +} +hdf5::lite::SpanRC hdf5::lite::readFile(const coda_oss::filesystem::path& fileName, const std::string& loc, + std::vector& result) +{ + return details::try_catch_H5Exceptions(readFile_, __FILE__, __LINE__, fileName, loc, result); +} diff --git a/externals/coda-oss/modules/c++/hdf5.lite/source/Write.cpp b/externals/coda-oss/modules/c++/hdf5.lite/source/Write.cpp new file mode 100644 index 0000000000..ce140935aa --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/source/Write.cpp @@ -0,0 +1,115 @@ +/* ========================================================================= + * This file is part of hd5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * hd5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include "hdf5/lite/Write.h" + +#include // std::ignore +#include + +#include "coda_oss/cstddef.h" // byte + +#include "hdf5/lite/HDF5Exception.h" +#include "H5.h" +#include "hdf5.lite.h" + +// https://raw.githubusercontent.com/HDFGroup/hdf5/develop/c++/examples/h5tutr_rdwt.cpp + +template static H5::PredType getPredType(); +template <> +inline H5::PredType getPredType() +{ + static_assert(sizeof(float) * 8 == 32, "'float' should be 32-bits"); // IEEE_F32LE + return H5::PredType::IEEE_F32LE; +} +template <> +inline H5::PredType getPredType() +{ + static_assert(sizeof(double) * 8 == 64, "'double' should be 64-bits"); // IEEE_F64LE + return H5::PredType::IEEE_F64LE; +} + +template +static void createFile_(const coda_oss::filesystem::path& fileName, const std::string& ds, const types::RowCol& sz) +{ + // https://raw.githubusercontent.com/HDFGroup/hdf5/develop/c++/examples/h5tutr_crtdat.cpp + // + // Create a new file using the default property lists. + H5::H5File file(fileName.string(), H5F_ACC_TRUNC); + + // Create the data space for the dataset. + constexpr int RANK = 2; + const hsize_t dims[]{sz.row, sz.col}; // dataset dimensions + H5::DataSpace dataspace(RANK, dims); + + // Create the dataset. + const auto data_type = getPredType(); + std::ignore = file.createDataSet(ds, data_type, dataspace); +} +template<> +void hdf5::lite::createFile(const coda_oss::filesystem::path& fileName, const std::string& ds, const types::RowCol& sz) +{ + details::try_catch_H5ExceptionsV(createFile_, __FILE__, __LINE__, fileName, ds, sz); +} +template<> +void hdf5::lite::createFile(const coda_oss::filesystem::path& fileName, const std::string& ds, const types::RowCol& sz) +{ + details::try_catch_H5ExceptionsV(createFile_, __FILE__, __LINE__, fileName, ds, sz); +} +void hdf5::lite::createFile(const coda_oss::filesystem::path& fileName, const std::string& ds, hdf5::lite::SpanRC data) +{ + createFile(fileName, ds, data.dims()); +} +void hdf5::lite::createFile(const coda_oss::filesystem::path& fileName, const std::string& ds, hdf5::lite::SpanRC data) +{ + createFile(fileName, ds, data.dims()); +} + + +template +static void writeFile_(const coda_oss::filesystem::path& fileName, const std::string& ds, hdf5::lite::SpanRC data) +{ + // https://raw.githubusercontent.com/HDFGroup/hdf5/develop/c++/examples/h5tutr_rdwt.cpp + + // Open an existing file and dataset. + H5::H5File file(fileName.string(), H5F_ACC_RDWR); + auto dataset = file.openDataSet(ds); + + const auto dims = hdf5::lite::details::getSimpleExtentSize(dataset); + if (data.dims() != dims) + { + const except::Context ctx("dataSet dimensions do not match data dimensions", __FILE__, __LINE__, "writeFile"); + throw hdf5::lite::DataSetException(ctx); + } + + // Write the data to the dataset using default memory space, file + // space, and transfer properties. + const auto data_type = getPredType(); + dataset.write(data.data(), data_type); +} +void hdf5::lite::writeFile(const coda_oss::filesystem::path& fileName, const std::string& ds, SpanRC data) +{ + details::try_catch_H5ExceptionsV(writeFile_, __FILE__, __LINE__, fileName, ds, data); +} +void hdf5::lite::writeFile(const coda_oss::filesystem::path& fileName, const std::string& ds, SpanRC data) +{ + details::try_catch_H5ExceptionsV(writeFile_, __FILE__, __LINE__, fileName, ds, data); +} diff --git a/externals/coda-oss/modules/c++/hdf5.lite/source/hdf5.lite.cpp b/externals/coda-oss/modules/c++/hdf5.lite/source/hdf5.lite.cpp new file mode 100644 index 0000000000..609e6da30d --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/source/hdf5.lite.cpp @@ -0,0 +1,66 @@ +/* ========================================================================= + * This file is part of hd5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hd5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include "hdf5.lite.h" + +inline except::Context make_Context(const H5::Exception& error, const char* file, int line) +{ + return except::Context(error.getDetailMsg(), file, line, error.getFuncName()); +} + +void hdf5::lite::details::try_catch_H5Exceptions_(std::function f, const char* file, int line, void* context) +{ + try + { + /* + * Turn off the auto-printing when failure occurs so that we can + * handle the errors appropriately + */ + H5::Exception::dontPrint(); + + f(context); + } + + // catch failure caused by the H5File operations + catch (const H5::FileIException& error) + { + throw except::IOException(make_Context(error, file, line)); + } + + // catch failure caused by the DataSet operations + catch (const H5::DataSetIException& error) + { + throw hdf5::lite::DataSetException(make_Context(error, file, line)); + } + + // catch failure caused by the DataSpace operations + catch (const H5::DataSpaceIException& error) + { + throw hdf5::lite::DataSpaceException(make_Context(error, file, line)); + } + + // catch failure caused by the DataType operations + catch (const H5::DataTypeIException& error) + { + throw hdf5::lite::DataTypeException(make_Context(error, file, line)); + } +} diff --git a/externals/coda-oss/modules/c++/hdf5.lite/source/hdf5.lite.h b/externals/coda-oss/modules/c++/hdf5.lite/source/hdf5.lite.h new file mode 100644 index 0000000000..fce6fb7c0d --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/source/hdf5.lite.h @@ -0,0 +1,74 @@ +/* ========================================================================= + * This file is part of hd5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hd5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_hdf5_lite_hdf5_lite_h_INCLUDED_ +#define CODA_OSS_hdf5_lite_hdf5_lite_h_INCLUDED_ +#pragma once + +#include +#include +#include + +// see https://docs.hdfgroup.org/archive/support/HDF5/doc1.8/cpplus_RM/readdata_8cpp-example.html +#include + +#include "except/Exception.h" +#include "hdf5/lite/HDF5Exception.h" + +// Utility routines for INTERNAL use! + +namespace hdf5 +{ +namespace lite +{ +namespace details +{ +// Call the given function, converting H5 exceptions to our own. +void try_catch_H5Exceptions_(std::function f, const char* file, int line, void* context = nullptr); + +template +R return_type_of(R (*)(Args...)); + +template +auto try_catch_H5Exceptions(TFunc f, const char* file, int line, TArgs&&... args) +{ + // Figure out return type by "calling" the function at compile-time + // https://stackoverflow.com/a/53673522/8877 + decltype(return_type_of(f)) retval; + + // "Hide" the arguments inside of a lambda + auto call_f = [&](void*) { retval = f(std::forward(args)...); }; + details::try_catch_H5Exceptions_(call_f, file, line, &retval /*context*/); + return retval; +} +template +auto try_catch_H5ExceptionsV(TFunc f, const char* file, int line, TArgs&&... args) +{ + // "Hide" the arguments inside of a lambda + auto call_f = [&](void*) { f(std::forward(args)...); }; + details::try_catch_H5Exceptions_(call_f, file, line, nullptr /*context*/); +} + +} +} +} +#endif // CODA_OSS_hdf5_lite_hdf5_lite_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/123_barfoo_catdog_cx.h5 b/externals/coda-oss/modules/c++/hdf5.lite/unittests/123_barfoo_catdog_cx.h5 new file mode 100644 index 0000000000..3ede040cf9 Binary files /dev/null and b/externals/coda-oss/modules/c++/hdf5.lite/unittests/123_barfoo_catdog_cx.h5 differ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/H5_creation_dummy.ipynb b/externals/coda-oss/modules/c++/hdf5.lite/unittests/H5_creation_dummy.ipynb new file mode 100644 index 0000000000..fa6be7e3db --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/unittests/H5_creation_dummy.ipynb @@ -0,0 +1,3851 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import itertools\n", + "import h5py\n", + "from pathlib import Path\n", + "from datetime import datetime\n", + "\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "NUM_PTS = 400\n", + "bin1 = ['foo', 'bar']\n", + "bin2 = ['dog', 'cat']\n", + "bin3 = ['a', 'b', 'c', 'd']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Creates nested dictionary" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'1/foo/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/foo/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/foo/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/foo/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/foo/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/foo/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/foo/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/foo/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/foo/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/foo/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/foo/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/foo/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/foo/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/foo/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/foo/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/foo/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/bar/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/bar/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/bar/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/bar/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/bar/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/bar/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/bar/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/bar/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/bar/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/bar/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/bar/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/bar/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/bar/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/bar/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '1/bar/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '1/bar/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/foo/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/foo/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/foo/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/foo/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/foo/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/foo/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/foo/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/foo/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/foo/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/foo/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/foo/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/foo/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/foo/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/foo/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/foo/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/foo/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/bar/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/bar/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/bar/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/bar/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/bar/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/bar/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/bar/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/bar/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/bar/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/bar/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/bar/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/bar/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/bar/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/bar/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '2/bar/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '2/bar/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/foo/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/foo/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/foo/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/foo/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/foo/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/foo/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/foo/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/foo/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/foo/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/foo/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/foo/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/foo/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/foo/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/foo/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/foo/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/foo/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/bar/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/bar/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/bar/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/bar/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/bar/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/bar/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/bar/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/bar/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/bar/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/bar/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/bar/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/bar/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/bar/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/bar/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '3/bar/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '3/bar/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/foo/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/foo/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/foo/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/foo/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/foo/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/foo/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/foo/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/foo/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/foo/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/foo/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/foo/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/foo/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/foo/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/foo/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/foo/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/foo/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/bar/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/bar/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/bar/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/bar/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/bar/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/bar/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/bar/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/bar/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/bar/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/bar/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/bar/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/bar/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/bar/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/bar/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '4/bar/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '4/bar/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/foo/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/foo/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/foo/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/foo/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/foo/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/foo/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/foo/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/foo/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/foo/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/foo/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/foo/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/foo/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/foo/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/foo/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/foo/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/foo/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/bar/dog/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/bar/dog/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/bar/dog/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/bar/dog/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/bar/dog/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/bar/dog/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/bar/dog/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/bar/dog/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/bar/cat/a/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/bar/cat/a/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/bar/cat/b/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/bar/cat/b/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/bar/cat/c/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/bar/cat/c/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), '5/bar/cat/d/r': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32), '5/bar/cat/d/i': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)}\n" + ] + } + ], + "source": [ + "file_dict = {}\n", + "dummy_arr_real = np.ones((NUM_PTS,), dtype=np.float32)\n", + "dummy_arr_imag = np.zeros((NUM_PTS,), dtype=np.float32)\n", + "\n", + "for idx in range(5):\n", + " for jdx in range(len(bin1)):\n", + " for kdx in range(len(bin2)):\n", + " for ldx in range(len(bin3)):\n", + " key = f'{idx + 1}/{bin1[jdx]}/{bin2[kdx]}/{bin3[ldx]}'\n", + " file_dict[key + '/r'] = dummy_arr_real\n", + " file_dict[key + '/i'] = dummy_arr_imag\n", + "print(file_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Creates H5 file" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'nested_complex_float32_data_large.h5'" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "out_path = 'nested_complex_float32_data_large.h5'\n", + "out_path" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def add_data(key, data_dict, handle):\n", + " data = handle.create_group(key)\n", + " for key, val in data_dict.items():\n", + " grp = data\n", + " sub_keys = key.split('/')\n", + " for sub_key in sub_keys:\n", + " if sub_key == sub_keys[-1]:\n", + " grp.create_dataset(\n", + " sub_key,\n", + " data=val,\n", + " dtype=val.dtype\n", + " )\n", + " continue\n", + " if sub_key not in grp:\n", + " grp.create_group(sub_key)\n", + " grp = grp[sub_key]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "with h5py.File(out_path, 'w') as handle:\n", + " add_data('Data', file_dict, handle)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/create_123_barfoo_catdog_cx.m b/externals/coda-oss/modules/c++/hdf5.lite/unittests/create_123_barfoo_catdog_cx.m new file mode 100644 index 0000000000..58fcef2405 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/unittests/create_123_barfoo_catdog_cx.m @@ -0,0 +1,55 @@ +% https://www.mathworks.com/help/matlab/ref/h5write.html +mydata = rand(10, 1); + +h5create('123_barfoo_catdog_cx.h5', '/1/bar/cat/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/1/bar/cat/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/1/bar/cat/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/1/bar/cat/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/1/bar/dog/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/1/bar/dog/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/1/bar/dog/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/1/bar/dog/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/1/foo/cat/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/1/foo/cat/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/1/foo/cat/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/1/foo/cat/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/1/foo/dog/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/1/foo/dog/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/1/foo/dog/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/1/foo/dog/r', mydata) + +h5create('123_barfoo_catdog_cx.h5', '/2/bar/cat/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/2/bar/cat/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/2/bar/cat/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/2/bar/cat/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/2/bar/dog/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/2/bar/dog/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/2/bar/dog/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/2/bar/dog/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/2/foo/cat/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/2/foo/cat/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/2/foo/cat/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/2/foo/cat/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/2/foo/dog/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/2/foo/dog/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/2/foo/dog/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/2/foo/dog/r', mydata) + +h5create('123_barfoo_catdog_cx.h5', '/3/bar/cat/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/3/bar/cat/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/3/bar/cat/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/3/bar/cat/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/3/bar/dog/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/3/bar/dog/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/3/bar/dog/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/3/bar/dog/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/3/foo/cat/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/3/foo/cat/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/3/foo/cat/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/3/foo/cat/r', mydata) +h5create('123_barfoo_catdog_cx.h5', '/3/foo/dog/i', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/3/foo/dog/i', mydata) +h5create('123_barfoo_catdog_cx.h5', '/3/foo/dog/r', [10, 1]) +h5write('123_barfoo_catdog_cx.h5', '/3/foo/dog/r', mydata) + +h5disp('123_barfoo_catdog_cx.h5') diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/example.h5 b/externals/coda-oss/modules/c++/hdf5.lite/unittests/example.h5 new file mode 100644 index 0000000000..83e0ba7e70 Binary files /dev/null and b/externals/coda-oss/modules/c++/hdf5.lite/unittests/example.h5 differ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/nested_complex_float32_data_small.h5 b/externals/coda-oss/modules/c++/hdf5.lite/unittests/nested_complex_float32_data_small.h5 new file mode 100644 index 0000000000..3dfccd7ed7 Binary files /dev/null and b/externals/coda-oss/modules/c++/hdf5.lite/unittests/nested_complex_float32_data_small.h5 differ diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5info.cpp b/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5info.cpp new file mode 100644 index 0000000000..8516c4655b --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5info.cpp @@ -0,0 +1,277 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include +#include + +#include + +#include "sys/FileFinder.h" + +#include "hdf5/lite/Info.h" + +static std::filesystem::path find_unittest_file(const std::filesystem::path& name) +{ + static const auto unittests = std::filesystem::path("modules") / "c++" / "hdf5.lite" / "unittests"; + return sys::test::findGITModuleFile("coda-oss", unittests, name); +} + +TEST_CASE(test_hdf5Info_IOException) +{ + static const std::filesystem::path path = "does not exist . h5"; + try + { + // https://www.mathworks.com/help/matlab/ref/h5info.html + const auto info = hdf5::lite::fileInfo(path); + TEST_FAIL; + } + catch (const except::IOException&) + { + TEST_SUCCESS; + } +} + + +TEST_CASE(test_hdf5FileInfo) +{ + static const auto path = find_unittest_file("example.h5"); + + // https://www.mathworks.com/help/matlab/ref/h5info.html + /* + info = struct with fields: + Filename: '/mathworks/devel/bat/Bdoc22b/build/matlab/toolbox/matlab/demos/example.h5' + Name: '/' + Groups: [4x1 struct] + Datasets: [] + Datatypes: [] + Links: [] + Attributes: [2x1 struct] + */ + const auto info = hdf5::lite::fileInfo(path); + TEST_ASSERT_EQ(path.string(), info.filename); + TEST_ASSERT_EQ("/", info.name); + TEST_ASSERT_EQ(info.groups.size(), 4); + TEST_ASSERT_TRUE(info.dataSets.empty()); + TEST_ASSERT_TRUE(info.dataTypes.empty()); + //TEST_ASSERT_TRUE(info.links.empty()); + //TEST_ASSERT_EQ(info.attributes.size(), 2); +} + +TEST_CASE(test_hdf5GroupInfo) +{ + static const auto path = find_unittest_file("example.h5"); + + // https://www.mathworks.com/help/matlab/ref/h5info.html + const auto info = hdf5::lite::groupInfo(path, "/g4"); + /* + info = struct with fields: + Filename: '/mathworks/devel/bat/Bdoc22b/build/matlab/toolbox/matlab/demos/example.h5' + Name: '/g4' + Groups: [] + Datasets: [4x1 struct] + Datatypes: [] + Links: [] + Attributes: [] + */ + TEST_ASSERT_EQ(path.string(), info.filename); + TEST_ASSERT_EQ("/g4", info.name); + TEST_ASSERT_TRUE(info.groups.empty()); + TEST_ASSERT_EQ(info.dataSets.size(), 4); + TEST_ASSERT_TRUE(info.dataTypes.empty()); + //TEST_ASSERT_TRUE(info.links.empty()); + //TEST_ASSERT_TRUE(info.attributes.empty()); +} + +TEST_CASE(test_hdf5DatasetInfo) +{ + static const auto path = find_unittest_file("example.h5"); + + // https://www.mathworks.com/help/matlab/ref/h5info.html + const auto info = hdf5::lite::dataSetInfo(path, "/g4/time"); + /* + info = struct with fields: + Filename: '/mathworks/devel/bat/Bdoc22b/build/matlab/toolbox/matlab/demos/example.h5' + Name: 'time' + Datatype: [1x1 struct] + Dataspace: [1x1 struct] + ChunkSize: 10 + FillValue: 0 + Filters: [] + Attributes: [2x1 struct] + */ + TEST_ASSERT_EQ(path.string(), info.filename); + TEST_ASSERT_EQ("time", info.name); + TEST_ASSERT(info.dataType.h5Class == hdf5::lite::Class::Float); + //TEST_ASSERT(info.dataspace == hdf5::lite::Class::Float); + //TEST_ASSERT_EQ(info.chunkSize, 10); + //TEST_ASSERT_EQ(info.fillValue, 0); + //TEST_ASSERT_TRUE(info.filters.empty()); + //TEST_ASSERT_EQ(info.attributes.size(), 2); +} + +static void read_complex(const std::string& testName, + const std::filesystem::path& path, const std::string& datasetPath) +{ + const auto i_info = hdf5::lite::dataSetInfo(path, datasetPath + "/i"); + TEST_ASSERT(i_info.dataType.h5Class == hdf5::lite::Class::Float); + + const auto r_info = hdf5::lite::dataSetInfo(path, datasetPath + "/r"); + TEST_ASSERT(r_info.dataType.h5Class == hdf5::lite::Class::Float); +} + +TEST_CASE(test_hdf5Info_nested) +{ + /* + Group '/' + Group '/1' + Group '/1/bar' + Group '/1/bar/cat' + Dataset 'i' + Size: 10x1 + MaxSize: 10x1 + Datatype: H5T_IEEE_F64LE (double) + ChunkSize: [] + Filters: none + FillValue: 0.000000 + */ + + static const auto path = find_unittest_file("123_barfoo_catdog_cx.h5"); + + // https://www.mathworks.com/help/matlab/ref/h5info.html + const auto info = hdf5::lite::fileInfo(path); + TEST_ASSERT_EQ(path.string(), info.filename); + TEST_ASSERT_EQ("/", info.name); + TEST_ASSERT_TRUE(info.dataSets.empty()); + TEST_ASSERT_TRUE(info.dataTypes.empty()); + + const std::vector expectedOuterGroupNames{"1" , "2", "3"}; + TEST_ASSERT_EQ(info.groups.size(), expectedOuterGroupNames.size()); + for (size_t outer = 0; outer < info.groups.size(); outer++) + { + const auto groupName = info.groups[outer].name; + TEST_ASSERT_EQ(groupName, expectedOuterGroupNames[outer]); + + const auto subGroupInfo = hdf5::lite::groupInfo(path, "/" + groupName); + + const std::vector expectedSubGroupNames{"bar", "foo"}; + TEST_ASSERT_EQ(subGroupInfo.groups.size(), expectedSubGroupNames.size()); + for (size_t sub = 0; sub < subGroupInfo.groups.size(); sub++) + { + const auto subGroupName = subGroupInfo.groups[sub].name; + TEST_ASSERT_EQ(subGroupName, expectedSubGroupNames[sub]); + + const auto subSubGroupInfo = hdf5::lite::groupInfo(path, "/" + groupName + "/" + subGroupName); + + const std::vector expectedSubSubGroupNames{"cat", "dog"}; + TEST_ASSERT_EQ(subSubGroupInfo.groups.size(), expectedSubSubGroupNames.size()); + for (size_t subsub = 0; subsub < subSubGroupInfo.groups.size(); subsub++) + { + const auto subSubGroupName = subSubGroupInfo.groups[subsub].name; + TEST_ASSERT_EQ(subSubGroupName, expectedSubSubGroupNames[subsub]); + + const auto datasetPath = "/" + groupName + "/" + subGroupName + "/" + subSubGroupName; + read_complex(testName, path, datasetPath); + } + } + } +} + +TEST_CASE(test_hdf5Info_nested_small) +{ + // top group: Data + // outer groups: 1, 2, 3, 4, 5 + // sub groups: bar, foo + // sub-sub groups: cat, dog + // sub-sub-sub groups: a, b, c, d + // data: i (float array), r (float array) + static const auto path = find_unittest_file("nested_complex_float32_data_small.h5"); + + // https://www.mathworks.com/help/matlab/ref/h5info.html + const auto info = hdf5::lite::fileInfo(path); + TEST_ASSERT_EQ(path.string(), info.filename); + TEST_ASSERT_EQ("/", info.name); + TEST_ASSERT_TRUE(info.dataSets.empty()); + TEST_ASSERT_TRUE(info.dataTypes.empty()); + + const std::vector expectedDataGroupNames{"Data"}; + TEST_ASSERT_EQ(info.groups.size(), expectedDataGroupNames.size()); + TEST_ASSERT_EQ(info.groups.size(), 1); + const auto dataGroupName = info.groups[0].name; + TEST_ASSERT_EQ(dataGroupName, expectedDataGroupNames[0]); + const auto dataRootPath = "/" + dataGroupName; + + const auto dataGroupInfo = hdf5::lite::groupInfo(path, dataRootPath); + const std::vector expectedOuterGroupNames{"1", "2", "3", "4", "5"}; + TEST_ASSERT_EQ(dataGroupInfo.groups.size(), expectedOuterGroupNames.size()); + for (size_t outer = 0; outer < dataGroupInfo.groups.size(); outer++) + { + const auto groupName = dataGroupInfo.groups[outer].name; + TEST_ASSERT_EQ(groupName, expectedOuterGroupNames[outer]); + + const auto subGroupRoot = dataRootPath + "/" + groupName; + const auto subGroupInfo = hdf5::lite::groupInfo(path, subGroupRoot); + + const std::vector expectedSubGroupNames{"bar", "foo"}; + TEST_ASSERT_EQ(subGroupInfo.groups.size(), expectedSubGroupNames.size()); + for (size_t sub = 0; sub < subGroupInfo.groups.size(); sub++) + { + const auto subGroupName = subGroupInfo.groups[sub].name; + TEST_ASSERT_EQ(subGroupName, expectedSubGroupNames[sub]); + + const auto subSubGroupRoot = subGroupRoot + "/" + subGroupName; + const auto subSubGroupInfo = hdf5::lite::groupInfo(path, subSubGroupRoot); + + const std::vector expectedSubSubGroupNames{"cat", "dog"}; + TEST_ASSERT_EQ(subSubGroupInfo.groups.size(), expectedSubSubGroupNames.size()); + for (size_t subsub = 0; subsub < subSubGroupInfo.groups.size(); subsub++) + { + const auto subSubGroupName = subSubGroupInfo.groups[subsub].name; + TEST_ASSERT_EQ(subSubGroupName, expectedSubSubGroupNames[subsub]); + + const auto abcdGroupRoot = subSubGroupRoot + "/" + subSubGroupName; + const auto abcdGroupInfo = hdf5::lite::groupInfo(path, abcdGroupRoot); + + const std::vector expected_abcd_names { "a", "b", "c", "d"}; + TEST_ASSERT_EQ(abcdGroupInfo.groups.size(), expected_abcd_names.size()); + for (size_t abcd = 0; abcd < abcdGroupInfo.groups.size(); abcd++) + { + const auto abcdGroupName = abcdGroupInfo.groups[abcd].name; + TEST_ASSERT_EQ(abcdGroupName, expected_abcd_names[abcd]); + + const auto datasetPath = abcdGroupRoot + "/" + abcdGroupName; + read_complex(testName, path, datasetPath); + } + } + } + } +} + +TEST_MAIN( + TEST_CHECK(test_hdf5Info_IOException); + + TEST_CHECK(test_hdf5FileInfo); + TEST_CHECK(test_hdf5GroupInfo); + TEST_CHECK(test_hdf5DatasetInfo); + + TEST_CHECK(test_hdf5Info_nested); + TEST_CHECK(test_hdf5Info_nested_small); +) diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5read.cpp b/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5read.cpp new file mode 100644 index 0000000000..9abc451e3f --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5read.cpp @@ -0,0 +1,131 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include +#include +#include +#include + +#include + +#include "sys/FileFinder.h" + +#include "hdf5/lite/Read.h" +#include "hdf5/lite/HDF5Exception.h" + +static std::filesystem::path find_unittest_file(const std::filesystem::path& name) +{ + static const auto unittests = std::filesystem::path("modules") / "c++" / "hdf5.lite" / "unittests"; + return sys::test::findGITModuleFile("coda-oss", unittests, name); +} + +TEST_CASE(test_hdf5Read) +{ + static const auto path = find_unittest_file("example.h5"); + + // https://www.mathworks.com/help/matlab/ref/h5read.html + std::vector data; + const auto rc = hdf5::lite::readFile(path, "/g4/lat", data); + TEST_ASSERT_EQ(rc.area(), 19); + TEST_ASSERT_ALMOST_EQ(data[0], -90.0); + TEST_ASSERT_ALMOST_EQ(data[0], -data[18]); +} + +TEST_CASE(test_hdf5Read_IOException) +{ + static const std::filesystem::path path = "does not exist . h5"; + std::vector data; + TEST_SPECIFIC_EXCEPTION( + hdf5::lite::readFile(path, "/g4/lat", data), + except::IOException); +} + +TEST_CASE(test_hdf5Read_nested) +{ + /* + Group '/' + Group '/1' + Group '/1/bar' + Group '/1/bar/cat' + Dataset 'i' + Size: 10x1 + MaxSize: 10x1 + Datatype: H5T_IEEE_F64LE (double) + ChunkSize: [] + Filters: none + FillValue: 0.000000 + */ + static const auto path = find_unittest_file("123_barfoo_catdog_cx.h5"); + + // https://www.mathworks.com/help/matlab/ref/h5read.html + std::vector data; + auto rc = hdf5::lite::readFile(path, "/1/bar/cat/i", data); + TEST_ASSERT_EQ(rc.area(), 10); + TEST_ASSERT_EQ(rc.area(), data.size()); + + rc = hdf5::lite::readFile(path, "/3/foo/dog/r", data); + TEST_ASSERT_EQ(rc.area(), 10); + TEST_ASSERT_EQ(rc.area(), data.size()); +} + +TEST_CASE(test_hdf5Read_nested_small) +{ + // top group: Data + // outer groups: 1, 2, 3, 4, 5 + // sub groups: bar, foo + // sub-sub groups: cat, dog + // sub-sub-sub groups: a, b, c, d + // data: i (float array), r (float array) + static const auto path = find_unittest_file("nested_complex_float32_data_small.h5"); + + // https://www.mathworks.com/help/matlab/ref/h5read.html + std::vector data; + auto rc = hdf5::lite::readFile(path, "/Data/1/bar/cat/a/i", data); + TEST_ASSERT_EQ(rc.area(), 10); + TEST_ASSERT_EQ(rc.area(), data.size()); + auto actual = std::accumulate(data.cbegin(), data.cend(), 0.0); + TEST_ASSERT_EQ(actual, 0.0); + + rc = hdf5::lite::readFile(path, "/Data/5/foo/dog/d/r", data); + TEST_ASSERT_EQ(rc.area(), 10); + TEST_ASSERT_EQ(rc.area(), data.size()); + actual = std::accumulate(data.cbegin(), data.cend(), 0.0); + TEST_ASSERT_EQ(actual, 10.0); +} + +TEST_CASE(test_hdf5Read_nested_small_wrongType) +{ + static const auto path = find_unittest_file("nested_complex_float32_data_small.h5"); + + std::vector data; + TEST_SPECIFIC_EXCEPTION( + hdf5::lite::readFile(path, "/Data/1/bar/cat/a/r", data), + hdf5::lite::DataSetException); +} + +TEST_MAIN( + TEST_CHECK(test_hdf5Read); + TEST_CHECK(test_hdf5Read_IOException); + TEST_CHECK(test_hdf5Read_nested); + TEST_CHECK(test_hdf5Read_nested_small); + TEST_CHECK(test_hdf5Read_nested_small_wrongType); +) diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5write.cpp b/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5write.cpp new file mode 100644 index 0000000000..7a4412fe05 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_hdf5write.cpp @@ -0,0 +1,95 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include +#include +#include +#include + +#include + +#include "sys/FileFinder.h" + +#include "hdf5/lite/Write.h" +#include "hdf5/lite/HDF5Exception.h" +#include "hdf5/lite/Info.h" +#include "hdf5/lite/Read.h" + +static std::filesystem::path find_unittest_file(const std::filesystem::path& name) +{ + static const auto unittests = std::filesystem::path("modules") / "c++" / "hdf5.lite" / "unittests"; + return sys::test::findGITModuleFile("coda-oss", unittests, name); +} + +TEST_CASE(test_hdf5Create) +{ + static const auto path_ = find_unittest_file("example.h5"); + static const auto path = path_.parent_path() / "TEST_hdf5Create_TMP.h5"; + + // https://www.mathworks.com/help/matlab/ref/h5write.html + hdf5::lite::createFile(path, "/DS1", {10, 20}); + + TEST_ASSERT_TRUE(true); // need to use hidden "testName" parameter +} + +TEST_CASE(test_hdf5Write) +{ + static const auto path_ = find_unittest_file("example.h5"); + static const auto path = path_.parent_path() / "TEST_hdf5Write_TMP.h5"; + + const types::RowCol dims{10, 20}; + std::vector data_(dims.area()); + const hdf5::lite::SpanRC data(data_.data(), dims); + double d = 0.0; + for (size_t r = 0; r result; + const auto rc = hdf5::lite::readFile(path, "/DS1", result); + TEST_ASSERT(rc.dims() == dims); + TEST_ASSERT_EQ(dims.area(), result.size()); + for (size_t i = 0; i < result.size(); i++) + { + const auto expected = static_cast(i); + TEST_ASSERT_EQ(result[i], expected); + } +} + +TEST_MAIN( + TEST_CHECK(test_hdf5Create); + TEST_CHECK(test_hdf5Write); +) diff --git a/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_highfive.cpp b/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_highfive.cpp new file mode 100644 index 0000000000..14e9f8af23 --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/unittests/test_highfive.cpp @@ -0,0 +1,571 @@ +/* ========================================================================= + * This file is part of hdf5.lite-c++ + * ========================================================================= + * + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * hdf5.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include "import/std.h" +#include + +#include + +#include "sys/FileFinder.h" +#include "types/RowCol.h" +#include "mem/ComplexView.h" + +#include "highfive/H5Easy.hpp" +#include "highfive/H5DataSet.hpp" +#include "highfive/H5File.hpp" + +#include "hdf5/lite/SpanRC.h" +#include "hdf5/lite/highfive.h" + +static std::filesystem::path find_unittest_file(const std::filesystem::path& name) +{ + static const auto unittests = std::filesystem::path("modules") / "c++" / "hdf5.lite" / "unittests"; + return sys::test::findGITModuleFile("coda-oss", unittests, name); +} + +TEST_CASE(test_highfive_load) +{ + static const auto path = find_unittest_file("example.h5"); + + const H5Easy::File file(path.string()); + + { + const auto lat = H5Easy::load>(file, "/g4/lat"); + TEST_ASSERT_EQ(lat.size(), 19); + TEST_ASSERT_ALMOST_EQ(lat[0], -90.0); + TEST_ASSERT_ALMOST_EQ(lat[0], -lat[18]); + } + { + std::vector lat; + const auto rc = hdf5::lite::loadDataSet(file, "/g4/lat", lat); + TEST_ASSERT_EQ(lat.size(), 19); + TEST_ASSERT_EQ(lat.size(), rc.area()); + TEST_ASSERT_EQ(rc.dims().row, 19); + TEST_ASSERT_EQ(rc.dims().col, 1); + TEST_ASSERT_ALMOST_EQ(lat[0], -90.0); + TEST_ASSERT_ALMOST_EQ(lat[0], -lat[18]); + } +} + +TEST_CASE(test_highfive_FileException) +{ + static const std::filesystem::path path = "does not exist . h5"; + HighFive::SilenceHDF5 silencer; // no need for diagnostics, we're expecting a failure + TEST_SPECIFIC_EXCEPTION(H5Easy::File(path.string()), HighFive::FileException); +} + +TEST_CASE(test_highfive_nested) +{ + /* + Group '/' + Group '/1' + Group '/1/bar' + Group '/1/bar/cat' + Dataset 'i' + Size: 10x1 + MaxSize: 10x1 + Datatype: H5T_IEEE_F64LE (double) + ChunkSize: [] + Filters: none + FillValue: 0.000000 + */ + static const auto path = find_unittest_file("123_barfoo_catdog_cx.h5"); + + const H5Easy::File file(path.string()); + const auto i = hdf5::lite::vv_load(file, "/1/bar/cat/i"); + TEST_ASSERT_EQ(i.size(), 1); + TEST_ASSERT_EQ(i[0].size(), 10); + + const auto r = hdf5::lite::vv_load(file, "/1/bar/dog/r"); + TEST_ASSERT_EQ(r.size(), 1); + TEST_ASSERT_EQ(r[0].size(), 10); + + TEST_ASSERT_EQ(i.size(), r.size()); + TEST_ASSERT_EQ(i[0].size(), r[0].size()); +} + +template +static auto read_complex(const HighFive::DataSet& r, const HighFive::DataSet& i) +{ + std::vector r_result; + hdf5::lite::readDataSet(r, r_result); + std::vector i_result; + hdf5::lite::readDataSet(i, i_result); + return std::make_pair(r, i); +} +template +static auto read_complex(const HighFive::Group& group) +{ + const auto i = group.getDataSet("i"); + const auto r = group.getDataSet("r"); + return read_complex(r, i); +} +template +static auto load_complex(const H5Easy::File& file, + const std::string& r_path, const std::string& i_path) +{ + const auto r = hdf5::lite::v_load(file, r_path); + const auto i = hdf5::lite::v_load(file, i_path); + return std::make_pair(r, i); +} + +TEST_CASE(test_highfive_nested_small) +{ + // top group: Data + // outer groups: 1, 2, 3, 4, 5 + // sub groups: bar, foo + // sub-sub groups: cat, dog + // sub-sub-sub groups: a, b, c, d + // data: i (float array), r (float array) + static const auto path = find_unittest_file("nested_complex_float32_data_small.h5"); + + const H5Easy::File file(path.string()); + + const auto i = hdf5::lite::v_load(file, "/Data/1/bar/cat/a/i"); + TEST_ASSERT_EQ(i.size(), 10); + auto actual = std::accumulate(i.begin(), i.end(), 0.0f); + TEST_ASSERT_EQ(actual, 0.0f); + + const auto r = hdf5::lite::v_load(file, "/Data/5/foo/dog/d/r"); + TEST_ASSERT_EQ(r.size(), 10); + actual = std::accumulate(r.begin(), r.end(), 0.0f); + TEST_ASSERT_EQ(actual, 10.0f); + + const auto a = load_complex(file, "/Data/1/bar/cat/a/r", "/Data/1/bar/cat/a/i"); + const auto cx_view = mem::make_ComplexSpansView(a.first, a.second); + const auto cx_actual = std::accumulate(cx_view.begin(), cx_view.end(), std::complex(0.0)); + TEST_ASSERT_EQ(cx_actual.real(), 10.0f); + TEST_ASSERT_EQ(cx_actual.imag(), 0.0f); +} + +TEST_CASE(test_highfive_nested_small_wrongType) +{ + static const auto path = find_unittest_file("nested_complex_float32_data_small.h5"); + + const H5Easy::File file(path.string()); + HighFive::SilenceHDF5 silencer; // no need for diagnostics, we're expecting a failure + TEST_SPECIFIC_EXCEPTION( + H5Easy::load>>(file, "/Data/1/bar/cat/a/i"), + HighFive::DataSetException); +} + + +//******************************************************************************* + +TEST_CASE(test_highfive_info) +{ + static const auto path = find_unittest_file("example.h5"); + const H5Easy::File file(path.string()); + + // https://www.mathworks.com/help/matlab/ref/h5info.html + /* + info = struct with fields: + Filename: '/mathworks/devel/bat/Bdoc22b/build/matlab/toolbox/matlab/demos/example.h5' + Name: '/' + Groups: [4x1 struct] + Datasets: [] + Datatypes: [] + Links: [] + Attributes: [2x1 struct] + */ + + TEST_ASSERT_EQ(path.string(), file.getName()); + TEST_ASSERT_EQ("/", file.getPath()); + TEST_ASSERT_EQ(file.getNumberObjects(), 4); // 4 groups + const auto objectNames = file.listObjectNames(); + TEST_ASSERT_EQ(objectNames.size(), 4); // 4 groups + for (auto&& name : objectNames) + { + const auto type = file.getObjectType(name); + TEST_ASSERT(type == HighFive::ObjectType::Group); + + const auto group = file.getGroup(name); + TEST_ASSERT_EQ(group.getPath(), "/" + name); + } + TEST_ASSERT_EQ(file.getNumberAttributes(), 2); +} + +TEST_CASE(test_highfive_groupinfo) +{ + static const auto path = find_unittest_file("example.h5"); + const H5Easy::File file(path.string()); + + // https://www.mathworks.com/help/matlab/ref/h5info.html + const auto g4 = file.getGroup("g4"); + /* + info = struct with fields: + Filename: '/mathworks/devel/bat/Bdoc22b/build/matlab/toolbox/matlab/demos/example.h5' + Name: '/g4' + Groups: [] + Datasets: [4x1 struct] + Datatypes: [] + Links: [] + Attributes: [] + */ + TEST_ASSERT_EQ(path.string(), g4.getFile().getName()); + const std::string groupPath("/g4"); + TEST_ASSERT_EQ(groupPath, g4.getPath()); + TEST_ASSERT_EQ(g4.getNumberObjects(), 4); // 4 dataSets + const auto objectNames = g4.listObjectNames(); + TEST_ASSERT_EQ(objectNames.size(), 4); // 4 dataSets + for (auto&& name : objectNames) + { + const auto type = g4.getObjectType(name); + TEST_ASSERT(type == HighFive::ObjectType::Dataset); + + const auto dataset = g4.getDataSet(name); + TEST_ASSERT_EQ(dataset.getPath(), groupPath + "/" + name); + } +} + +TEST_CASE(test_highfive_datasetinfo) +{ + static const auto path = find_unittest_file("example.h5"); + const H5Easy::File file(path.string()); + + // https://www.mathworks.com/help/matlab/ref/h5info.html + const auto time = file.getDataSet("/g4/time"); + /* + info = struct with fields: + Filename: '/mathworks/devel/bat/Bdoc22b/build/matlab/toolbox/matlab/demos/example.h5' + Name: 'time' + Datatype: [1x1 struct] + Dataspace: [1x1 struct] + ChunkSize: 10 + FillValue: 0 + Filters: [] + Attributes: [2x1 struct] + */ + TEST_ASSERT_EQ(path.string(), time.getFile().getName()); + const std::string dsPath("/g4/time"); + TEST_ASSERT_EQ(dsPath, time.getPath()); + + const auto dataType = time.getDataType(); + TEST_ASSERT(dataType.getClass() == HighFive::DataTypeClass::Float); + + auto dims = time.getDimensions(); + TEST_ASSERT_EQ(dims.size(), 1); + TEST_ASSERT_EQ(10, dims[0]); // ChunkSize ??? + + const auto dataSpace = time.getSpace(); + dims = dataSpace.getDimensions(); + TEST_ASSERT_EQ(dims.size(), 1); + TEST_ASSERT_EQ(10, dims[0]); // ChunkSize ??? + + TEST_ASSERT_EQ(time.listAttributeNames().size(), 2); +} + +static void read_complex(const std::string& testName, const HighFive::DataSet& r, const HighFive::DataSet& i) +{ + TEST_ASSERT(r.getDataType().getClass() == HighFive::DataTypeClass::Float); + TEST_ASSERT_EQ(r.getElementCount(), 10); + TEST_ASSERT(i.getDataType().getClass() == HighFive::DataTypeClass::Float); + TEST_ASSERT_EQ(i.getElementCount(), 10); + std::ignore = read_complex(r, i); +} +static void read_complex(const std::string& testName, const HighFive::Group& group) +{ + read_complex(testName, group.getDataSet("r"), group.getDataSet("i")); + std::ignore = read_complex(group); +} +TEST_CASE(test_highfive_info_nested) +{ + /* + Group '/' + Group '/1' + Group '/1/bar' + Group '/1/bar/cat' + Dataset 'i' + Size: 10x1 + MaxSize: 10x1 + Datatype: H5T_IEEE_F64LE (double) + ChunkSize: [] + Filters: none + FillValue: 0.000000 + */ + + static const auto path = find_unittest_file("123_barfoo_catdog_cx.h5"); + const H5Easy::File file(path.string()); + + TEST_ASSERT_EQ(path.string(), file.getName()); + TEST_ASSERT_EQ("/", file.getPath()); + + TEST_ASSERT_EQ(file.getNumberObjects(), 3); // 3 groups + auto objectNames = file.listObjectNames(); + const std::vector expectedOuterGroupNames{"1", "2", "3"}; + TEST_ASSERT_EQ(objectNames.size(), expectedOuterGroupNames.size()); + for (auto&& outer : expectedOuterGroupNames) + { + const auto groupPath = "/" + outer; + const auto group = file.getGroup(groupPath); + TEST_ASSERT_EQ(group.getPath(), groupPath); + + TEST_ASSERT_EQ(group.getNumberObjects(), 2); // 2 groups + objectNames = group.listObjectNames(); + const std::vector expectedSubGroupNames{"bar", "foo"}; + TEST_ASSERT_EQ(objectNames.size(), expectedSubGroupNames.size()); + for (auto&& subGroupName : expectedSubGroupNames) + { + const auto subGroup = group.getGroup(subGroupName); + const auto subGroupPath = groupPath + "/" + subGroupName; + TEST_ASSERT_EQ(subGroup.getPath(), subGroupPath); + + + TEST_ASSERT_EQ(subGroup.getNumberObjects(), 2); // 2 groups + objectNames = subGroup.listObjectNames(); + const std::vector expectedSubSubGroupNames{"cat", "dog"}; + TEST_ASSERT_EQ(objectNames.size(), expectedSubSubGroupNames.size()); + for (auto&& subSubGroupName : expectedSubSubGroupNames) + { + const auto subSubGroup = subGroup.getGroup(subSubGroupName); + const auto subSubGroupPath = subGroupPath + "/" + subSubGroupName; + TEST_ASSERT_EQ(subSubGroup.getPath(), subSubGroupPath); + + read_complex(testName, subSubGroup); + } + } + } +} + +//******************************************************************************* + +template +static auto make_data(const types::RowCol& dims) +{ + std::vector> retval(dims.row); + int d = 0; + for (auto&& r : retval) + { + r.resize(dims.col); + for (auto&& v : r) + { + v = static_cast(d++); + } + } + return retval; +} + +TEST_CASE(test_highfive_dump) +{ + static const std::string dataset_name("/DS1"); + using dataset_t = float; + static const auto path_ = find_unittest_file("example.h5"); + const auto path = path_.parent_path() / "TEST_highfive_create_TMP.h5"; + + { + const std::vector data{1, 2, 3, 4, 5}; + H5Easy::File file(path.string(), H5Easy::File::Overwrite); + //std::ignore = H5Easy::dump(file, dataset_name, data); + TEST_SUCCESS; + } + + const types::RowCol dims{10, 20}; + const auto data = make_data(dims); + { + H5Easy::File file(path.string(), H5Easy::File::Overwrite); + //std::ignore = H5Easy::dump(file, dataset_name, data); + TEST_SUCCESS; + } + + // Be sure we can read the file just written + const H5Easy::File file(path.string(), H5Easy::File::ReadOnly); + //const auto DS1 = hdf5::lite::vv_load(file, dataset_name); + //TEST_ASSERT_EQ(DS1.size(), dims.row); + //TEST_ASSERT_EQ(DS1[0].size(), dims.col); + //for (size_t r = 0; r < DS1.size(); r++) + //{ + // for (size_t c = 0; c < DS1[r].size(); c++) + // { + // const auto expected = data[r][c]; + // const auto actual = DS1[r][c]; + // TEST_ASSERT_EQ(actual, expected); + // } + //} +} + +TEST_CASE(test_highfive_write) +{ + static const auto path_ = find_unittest_file("example.h5"); + static const auto path = path_.parent_path() / "TEST_highfive_write_TMP.h5"; + + const types::RowCol dims{10, 20}; + std::vector data_(dims.area()); + const hdf5::lite::SpanRC data(data_.data(), dims); + double d = 0.0; + for (size_t r = 0; r(file, "/DS1"); + TEST_ASSERT_EQ(DS1.size(), dims.row); + TEST_ASSERT_EQ(DS1[0].size(), dims.col); + + for (size_t r = 0; r < DS1.size(); r++) + { + for (size_t c = 0; c < DS1[r].size(); c++) + { + const auto expected = data(r, c); + const auto actual = DS1[r][c]; + TEST_ASSERT_EQ(actual, expected); + } + } + } + { + H5Easy::File file(path.string()); + + std::vector result; + const auto rc = hdf5::lite::loadDataSet(file, "/DS1", result); + TEST_ASSERT(rc.dims() == dims); + TEST_ASSERT_EQ(dims.area(), result.size()); + for (size_t i = 0; i < result.size(); i++) + { + const auto expected = static_cast(i); + TEST_ASSERT_EQ(result[i], expected); + } + } +} + +TEST_CASE(test_highfive_getDataType) +{ + static const auto path = find_unittest_file("example.h5"); + const H5Easy::File file(path.string(), H5Easy::File::ReadOnly); + + const auto time = file.getDataSet("/g4/time"); + TEST_ASSERT(time.getType() == HighFive::ObjectType::Dataset); + TEST_ASSERT_EQ(time.getElementCount(), 10); + const auto dims = time.getDimensions(); + TEST_ASSERT_EQ(dims.size(), 1); + TEST_ASSERT_EQ(dims[0], 10); + + const auto dataType = time.getDataType(); + TEST_ASSERT(dataType.getClass() == HighFive::DataTypeClass::Float); + TEST_ASSERT_EQ(dataType.string(), "Float64"); + TEST_ASSERT_EQ(dataType.getSize(), sizeof(double)); + const auto doubleDataType = HighFive::create_and_check_datatype(); + TEST_ASSERT(doubleDataType == dataType); + + TEST_ASSERT_FALSE(dataType.isVariableStr()); + TEST_ASSERT_FALSE(dataType.isFixedLenStr()); + TEST_ASSERT_FALSE(dataType.isReference()); +} + +template +static auto getAttribute(const std::string& testName, + const THighFive& obj, const std::string& name, + HighFive::DataTypeClass typeClass, const std::string& typeName) +{ + auto attribute = obj.getAttribute(name); + TEST_ASSERT_EQ(attribute.getName(), name); + TEST_ASSERT(attribute.getType() == HighFive::ObjectType::Attribute); + TEST_ASSERT(attribute.getDataType().getClass() == typeClass); + TEST_ASSERT_EQ(attribute.getDataType().string(), typeName); + return attribute; +} +TEST_CASE(test_highfive_getAttribute) +{ + static const auto path = find_unittest_file("example.h5"); + const H5Easy::File file(path.string(), H5Easy::File::ReadOnly); + + { + const auto attribute = getAttribute(testName, file, "attr1", HighFive::DataTypeClass::Integer, "Integer8"); + const auto memSpace = attribute.getMemSpace(); + const auto elements = memSpace.getElementCount(); + TEST_ASSERT_EQ(elements, 10); + std::vector v; + attribute.read(v); + TEST_ASSERT_EQ(v.size(), elements); + } + { + const auto attribute = getAttribute(testName, file, "attr2", HighFive::DataTypeClass::Integer, "Integer32"); + const auto memSpace = attribute.getMemSpace(); + const auto elements = memSpace.getElementCount(); + TEST_ASSERT_EQ(elements, 4); + std::vector> v; + attribute.read(v); + TEST_ASSERT_EQ(v[0][0], 0); + TEST_ASSERT_EQ(v[0][1], 1); + TEST_ASSERT_EQ(v[1][0], 2); + TEST_ASSERT_EQ(v[1][1], 3); + } + + const auto time = file.getDataSet("/g4/time"); + { + const auto attribute = getAttribute(testName, time, "NAME", HighFive::DataTypeClass::String, "String40"); + // throw DataSetException("Can't output std::string as fixed-length. Use raw arrays or FixedLenStringArray"); + // std::string value; + // attribute.read(value); + // HighFive::FixedLenStringArray<16> arr; + // attribute.read(arr); + const auto value = hdf5::lite::read(attribute); + TEST_ASSERT_EQ(value, "time"); + } + { + const auto attribute = getAttribute(testName, time, "CLASS", HighFive::DataTypeClass::String, "String128"); + // attribute.read(value); + const auto value = hdf5::lite::read(attribute); + TEST_ASSERT_EQ(value, "DIMENSION_SCALE"); + } + + const auto lat = file.getDataSet("/g4/lat"); + { + const auto attribute = getAttribute(testName, lat, "units", HighFive::DataTypeClass::String, "String104"); + //HighFive::FixedLenStringArray<104> value; + //attribute.read(value); + const auto value = hdf5::lite::read(attribute); + TEST_ASSERT_EQ(value, "degrees_north"); + } +} + +TEST_MAIN( + TEST_CHECK(test_highfive_load); + TEST_CHECK(test_highfive_FileException); + TEST_CHECK(test_highfive_nested); + TEST_CHECK(test_highfive_nested_small); + TEST_CHECK(test_highfive_nested_small_wrongType); + + TEST_CHECK(test_highfive_info); + TEST_CHECK(test_highfive_groupinfo); + TEST_CHECK(test_highfive_datasetinfo); + TEST_CHECK(test_highfive_info_nested); + + TEST_CHECK(test_highfive_dump); + //TEST_CHECK(test_highfive_write); + + TEST_CHECK(test_highfive_getDataType); + TEST_CHECK(test_highfive_getAttribute); + ) diff --git a/externals/coda-oss/modules/c++/hdf5.lite/wscript b/externals/coda-oss/modules/c++/hdf5.lite/wscript new file mode 100644 index 0000000000..32be36054d --- /dev/null +++ b/externals/coda-oss/modules/c++/hdf5.lite/wscript @@ -0,0 +1,9 @@ +NAME = 'hdf5.lite' +VERSION = '1.0' +MODULE_DEPS = 'highfive hdf5 hdf5cpp except types io coda_oss' +USELIB_LOCAL = 'hdf5-c hdf5cpp-c' + +options = configure = distclean = lambda p: None + +def build(bld): + bld.module(**globals()) diff --git a/externals/coda-oss/modules/c++/include/TestCase.h b/externals/coda-oss/modules/c++/include/TestCase.h index a552dbe796..a068260e0d 100644 --- a/externals/coda-oss/modules/c++/include/TestCase.h +++ b/externals/coda-oss/modules/c++/include/TestCase.h @@ -30,9 +30,11 @@ # include # include # include +#include # include # include # include +# include # define IS_NAN(X) X != X @@ -64,34 +66,42 @@ inline void diePrintf(const char* format, const std::string& testName, const cha // older C++ compilers don't like __VA_ARGS__ :-( #define test_diePrintf0(format) test::diePrintf(format, testName, __FILE__, SYS_FUNC, __LINE__) +// Route all toString() for unittests through here ... so that we can have more control +// over the routine used. +template +inline std::string toString(const TX& X) +{ + return str::toString(X); +} + template inline void diePrintf_(const char* format, const std::string& testName, const char* file, const char* func, int line, const TX& X) { - diePrintf(format, testName, file, func, line, str::toString(X)); + diePrintf(format, testName, file, func, line, test::toString(X)); } -#define test_diePrintf1(format, X1) test::diePrintf_(format, testName, __FILE__, SYS_FUNC, __LINE__, (X1)) // might not want str::toString() +#define test_diePrintf1(format, X1) test::diePrintf_(format, testName, __FILE__, SYS_FUNC, __LINE__, X1) template inline void diePrintf_(const char* format, const std::string& testName, const char* file, const char* func, int line, const TX1& X1, const TX2& X2) { - diePrintf(format, testName, file, func, line, str::toString(X1), str::toString(X2)); + diePrintf(format, testName, file, func, line, test::toString(X1), test::toString(X2)); } -#define test_diePrintf2(format, X1, X2) test::diePrintf_(format, testName, __FILE__, SYS_FUNC, __LINE__, (X1), (X2)) // might not want str::toString() +#define test_diePrintf2(format, X1, X2) test::diePrintf_(format, testName, __FILE__, SYS_FUNC, __LINE__, X1, X2) template inline void diePrintf_(const char* format, const std::string& testName, const char* file, int line, const std::string& msg, const TX1& X1, const TX2& X2) { - diePrintf(format, testName, file, line, msg, str::toString(X1), str::toString(X2)); + diePrintf(format, testName, file, line, msg, test::toString(X1), test::toString(X2)); } -#define test_diePrintf2_msg(format, msg, X1, X2) test::diePrintf_(format, testName, __FILE__, __LINE__, msg, (X1), (X2)) // might not want str::toString() +#define test_diePrintf2_msg(format, msg, X1, X2) test::diePrintf_(format, testName, __FILE__, __LINE__, msg, X1, X2) -#define CODA_OSS_test_diePrintf_eq_(X1, X2) test_diePrintf2("%s (%s,%s,%d): FAILED: Recv'd %s, Expected %s\n", (X1), (X2)) -#define CODA_OSS_test_diePrintf_eq_msg_(msg, X1, X2) test_diePrintf2_msg("%s (%s,%d): FAILED (%s): Recv'd %s, Expected %s\n", msg, (X1), (X2)) +#define CODA_OSS_test_diePrintf_eq_(X1, X2) test_diePrintf2("%s (%s,%s,%d): FAILED: Recv'd %s, Expected %s\n", X1, X2) +#define CODA_OSS_test_diePrintf_eq_msg_(msg, X1, X2) test_diePrintf2_msg("%s (%s,%d): FAILED (%s): Recv'd %s, Expected %s\n", msg, X1, X2) #define CODA_OSS_test_diePrintf_not_eq_(X1, X2) test_diePrintf2("%s (%s,%s,%d): FAILED: Recv'd %s should not equal %s\n", X1, X2) -#define CODA_OSS_test_diePrintf_not_eq_msg_(msg, X1, X2) test_diePrintf2_msg("%s (%s,%d): FAILED (%s): Recv'd %s should not equal %s\n", msg, (X1), (X2)) +#define CODA_OSS_test_diePrintf_not_eq_msg_(msg, X1, X2) test_diePrintf2_msg("%s (%s,%d): FAILED (%s): Recv'd %s should not equal %s\n", msg, X1, X2) #define CODA_OSS_test_diePrintf_greater_eq_(X1, X2) test_diePrintf0("%s (%s,%s,%d): FAILED: Value should be greater than or equal\n") #define CODA_OSS_test_diePrintf_greater_(X1, X2) test_diePrintf0("%s (%s,%s,%d): FAILED: Value should be greater than\n") #define CODA_OSS_test_diePrintf_lesser_eq_(X1, X2) test_diePrintf0("%s (%s,%s,%d): FAILED: Value should be less than or equal\n") @@ -104,7 +114,6 @@ inline void diePrintf_(const char* format, const std::string& testName, const ch // if (!(X1 == X2)) { ... } // behaves differently when it is in the functon (X1 and X2 are arguments). An easy example // is std::vector::size() (size_t) compared to a literal 1 which is an "int" not "size_t". - template inline void assert_almost_eq_eps(const TX1& X1, const TX2& X2, const TEPS& EPS, const std::string& testName, const char* file, const char* func, int line) @@ -126,11 +135,13 @@ inline void specific_exception(TFunc f, diePrintf(format, testName, file, func, line); } catch (const TException&) { } + #if !CODA_OSS_except_Throwable_ISA_std_exception catch (const except::Throwable&) { diePrintf(format, testName, file, func, line); } - catch (const except::Throwable11&) + #endif + catch (const std::exception&) { diePrintf(format, testName, file, func, line); } @@ -144,10 +155,12 @@ inline int main(TFunc f) f(); return EXIT_SUCCESS; } + #if !CODA_OSS_except_Throwable_ISA_std_exception catch (const except::Exception& ex) { - std::cerr << ex.toString() << std::endl; + std::cerr << ex.what() << std::endl; } + #endif catch (const std::exception& e) { std::cerr << e.what() << std::endl; @@ -160,26 +173,33 @@ inline int main(TFunc f) } } -#define TEST_CHECK(X) try{ X(std::string(#X)); std::cerr << #X << ": PASSED\n"; } \ - catch(const except::Throwable& ex) { test::diePrintf("%s: FAILED: Exception thrown: %s\n", #X, ex.toString().c_str()); } \ - catch(const except::Throwable11& ex) { test::diePrintf("%s: FAILED: Exception thrown: %s\n", #X, ex.what()); } +#define CODA_OSS_TEST_CHECK_catch_diePrintf_(X, name_) \ + catch(const name_& ex) { test::diePrintf("%s: FAILED: Exception thrown: %s\n", #X, ex.what()); } +#define CODA_OSS_TEST_CHECK_catch_(X) CODA_OSS_TEST_CHECK_catch_diePrintf_(X, except::Throwable) \ + CODA_OSS_TEST_CHECK_catch_diePrintf_(X, std::exception) +#define TEST_CHECK(X) try{ X(std::string(#X)); std::cerr << #X << ": PASSED\n"; } CODA_OSS_TEST_CHECK_catch_(X) #define TEST_ASSERT_NULL(X) if ((X) != nullptr) { test_diePrintf0("%s (%s,%s,%d): FAILED: Value should be NULL\n"); } #define TEST_ASSERT_NOT_NULL(X) if ((X) == nullptr) { test_diePrintf0("%s (%s,%s,%d): FAILED: Value should *not* be NULL\n"); } #define TEST_ASSERT_FALSE(X) if ((X)) { test_diePrintf0("%s (%s,%s,%d): FAILED: Value should evaluate to false\n"); } #define TEST_ASSERT_TRUE(X) if (!(X)) { test_diePrintf0("%s (%s,%s,%d): FAILED: Value should evaluate to true\n"); } #define TEST_ASSERT(X) TEST_ASSERT_TRUE(X) -#define TEST_ASSERT_SUCCESS TEST_ASSERT_TRUE(true) // for "We better get here, always." -#define TEST_ASSERT_FAILURE TEST_ASSERT_TRUE(false) // for "This should NEVER happen." + +#define TEST_SUCCESS TEST_ASSERT_TRUE(true) // for "We better get here, always." +#define TEST_FAIL_MSG(msg) test_diePrintf1("%s (%s,%s,%d): FAILED: %s\n", test::toString(msg).c_str()) +#define TEST_FAIL TEST_FAIL_MSG("This should NEVER happen.") #define TEST_ASSERT_ALMOST_EQ_EPS(X1, X2, EPS) test::assert_almost_eq_eps(X1, X2, EPS, testName, __FILE__, SYS_FUNC, __LINE__) #define TEST_ASSERT_ALMOST_EQ(X1, X2) TEST_ASSERT_ALMOST_EQ_EPS(X1, X2, std::numeric_limits::epsilon()) -#define TEST_FAIL(msg) test_diePrintf1("%s (%s,%s,%d): FAILED: %s\n", str::toString(msg).c_str()) + +#define CODA_OSS_TEST_EXCEPTION_catch_ \ + catch (const except::Throwable&){ TEST_ASSERT_TRUE(true); } catch (const std::exception&){ TEST_ASSERT_TRUE(true); } #define TEST_EXCEPTION(X) try{ (X); test_diePrintf0("%s (%s,%s,%d): FAILED: Should have thrown exception\n"); } \ - catch (const except::Throwable&){} catch (const except::Throwable11&){} + CODA_OSS_TEST_EXCEPTION_catch_ #define TEST_THROWS(X) try{ (X); test_diePrintf0("%s (%s,%s,%d): FAILED: Should have thrown exception\n"); } catch (...){} # define TEST_SPECIFIC_EXCEPTION(X, Y) test::specific_exception([&](){(X);}, \ "%s (%s,%s,%d): FAILED: Should have thrown exception: " # Y , testName, __FILE__, SYS_FUNC, __LINE__) + # define TEST_CASE(X) void X(std::string testName) #define TEST_MAIN(X) int main() { return test::main([&](){X;}); } #define TEST_MAIN_ARGS(X) int main(int argc, char* argv[]) { return test::main([&](){X;}); } @@ -205,16 +225,6 @@ inline int main(TFunc f) #define CODA_OSS_test_lt(X1, X2) (CODA_OSS_test_lt_(X1, X2) && !CODA_OSS_test_ge_(X1, X2)) # define TEST_ASSERT_LESSER_EQ(X1, X2) if (!CODA_OSS_test_le((X1), (X2))) { CODA_OSS_test_diePrintf_lesser_eq_(X1, X2); } # define TEST_ASSERT_LESSER(X1, X2) if (!CODA_OSS_test_lt((X1), (X2))) { CODA_OSS_test_diePrintf_lesser_(X1, X2); } -/* -# define TEST_SPECIFIC_EXCEPTION(X,Y) try{ (X); die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception: " # Y , testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } catch(const Y&) { } \ - catch (const except::Throwable&){ die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception: " # Y , testName.c_str(), __FILE__, SYS_FUNC, __LINE__);} \ - catch (const except::Throwable11&){ die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception: " # Y , testName.c_str(), __FILE__, SYS_FUNC, __LINE__);} # define TEST_CASE(X) void X(std::string testName) -#define TEST_MAIN(X) int main(int argc, char** argv) { try { X; return EXIT_SUCCESS; } \ - catch (const except::Exception& ex) { std::cerr << ex.toString() << std::endl; } \ - catch (const std::exception& e) { std::cerr << e.what() << std::endl; } \ - catch (...) { std::cerr << "Unknown exception\n"; } \ - return EXIT_FAILURE; } -*/ #else /* C only */ # include diff --git a/externals/coda-oss/modules/c++/io/include/io/BufferViewStream.h b/externals/coda-oss/modules/c++/io/include/io/BufferViewStream.h index 45bc468189..beb00d23a2 100644 --- a/externals/coda-oss/modules/c++/io/include/io/BufferViewStream.h +++ b/externals/coda-oss/modules/c++/io/include/io/BufferViewStream.h @@ -61,7 +61,7 @@ struct BufferViewStream: public SeekableInputStream, public SeekableOutputStream BufferViewStream& operator=(BufferViewStream&&) = delete; //! Returns current location in buffer in bytes - virtual sys::Off_T tell() + virtual sys::Off_T tell() override { return gsl::narrow(mPosition * sizeof(T)); } @@ -73,12 +73,12 @@ struct BufferViewStream: public SeekableInputStream, public SeekableOutputStream * \param whence Location to seek from * \return new position */ - virtual sys::Off_T seek(sys::Off_T offset, Whence whence); + virtual sys::Off_T seek(sys::Off_T offset, Whence whence) override; /* * \return The available bytes to read from the stream */ - virtual sys::Off_T available() + virtual sys::Off_T available() override { return gsl::narrow((mBufferView.size - mPosition) * sizeof(T)); } @@ -92,7 +92,7 @@ struct BufferViewStream: public SeekableInputStream, public SeekableOutputStream * \param buffer The data to write to the stream * \param size The number of bytes to write to the stream */ - virtual void write(const void* buffer, size_t size); + virtual void write(const void* buffer, size_t size) override; /*! * Get a pointer to the internal buffer. @@ -139,7 +139,7 @@ struct BufferViewStream: public SeekableInputStream, public SeekableOutputStream * \param len The length to read * \return The number of bytes read */ - virtual sys::SSize_T readImpl(void* buffer, size_t len); + virtual sys::SSize_T readImpl(void* buffer, size_t len) override; private: diff --git a/externals/coda-oss/modules/c++/io/include/io/ByteStream.h b/externals/coda-oss/modules/c++/io/include/io/ByteStream.h index fe2efe1844..a64b7efc82 100644 --- a/externals/coda-oss/modules/c++/io/include/io/ByteStream.h +++ b/externals/coda-oss/modules/c++/io/include/io/ByteStream.h @@ -68,20 +68,20 @@ struct CODA_OSS_API ByteStream : public SeekableInputStream, public SeekableOutp } virtual - sys::Off_T tell() + sys::Off_T tell() override { return mPosition; } virtual - sys::Off_T seek(sys::Off_T offset, Whence whence); + sys::Off_T seek(sys::Off_T offset, Whence whence) override; /*! * Returns the available bytes to read from the stream * \return the available bytes to read */ virtual - sys::Off_T available(); + sys::Off_T available() override; using OutputStream::write; using InputStream::streamTo; @@ -92,7 +92,7 @@ struct CODA_OSS_API ByteStream : public SeekableInputStream, public SeekableOutp * \param size the number of bytes to write to the stream */ virtual - void write(const void* buffer, size_t size); + void write(const void* buffer, size_t size) override; void reset() { @@ -132,7 +132,7 @@ struct CODA_OSS_API ByteStream : public SeekableInputStream, public SeekableOutp * \throw IoException * \return The number of bytes read */ - virtual sys::SSize_T readImpl(void* buffer, size_t len); + virtual sys::SSize_T readImpl(void* buffer, size_t len) override; private: std::vector mData; diff --git a/externals/coda-oss/modules/c++/io/include/io/CountingStreams.h b/externals/coda-oss/modules/c++/io/include/io/CountingStreams.h index bebca3a5f5..9e7707f378 100644 --- a/externals/coda-oss/modules/c++/io/include/io/CountingStreams.h +++ b/externals/coda-oss/modules/c++/io/include/io/CountingStreams.h @@ -48,7 +48,7 @@ struct CODA_OSS_API CountingOutputStream : public ProxyOutputStream * \param buffer The byte array to write to the stream * \param len The length of the byte array to write to the stream */ - virtual void write(const void* buffer, size_t len) + virtual void write(const void* buffer, size_t len) override { ProxyOutputStream::write(buffer, len); mByteCount += len; diff --git a/externals/coda-oss/modules/c++/io/include/io/DataStream.h b/externals/coda-oss/modules/c++/io/include/io/DataStream.h index 599a609e17..ec42d215eb 100644 --- a/externals/coda-oss/modules/c++/io/include/io/DataStream.h +++ b/externals/coda-oss/modules/c++/io/include/io/DataStream.h @@ -76,7 +76,7 @@ struct DataStream: public io::Serializable * Outputs this object into an output stream. * \param os the OutputStream to write to */ - virtual void serialize(io::OutputStream& os) + virtual void serialize(io::OutputStream& os) override { mStringStream.streamTo(os); } @@ -85,7 +85,7 @@ struct DataStream: public io::Serializable * Unpack this input stream to the object * \param is Stream to read object from */ - virtual void deserialize(io::InputStream& is) + virtual void deserialize(io::InputStream& is) override { is.streamTo(mStringStream); } diff --git a/externals/coda-oss/modules/c++/io/include/io/DbgStream.h b/externals/coda-oss/modules/c++/io/include/io/DbgStream.h index 85bb702528..0750f84566 100644 --- a/externals/coda-oss/modules/c++/io/include/io/DbgStream.h +++ b/externals/coda-oss/modules/c++/io/include/io/DbgStream.h @@ -89,7 +89,7 @@ struct DbgStream : public OutputStream * \param len The length * \throw IOException */ - virtual void write(const void* buffer, sys::Size_T len) + virtual void write(const void* buffer, sys::Size_T len) override { if (mOn) { @@ -116,7 +116,7 @@ struct DbgStream : public OutputStream } protected: //! The bound stream - mem::auto_ptr mStream; + std::unique_ptr mStream; //! On or off?? bool mOn = false; }; diff --git a/externals/coda-oss/modules/c++/io/include/io/FileInputStreamOS.h b/externals/coda-oss/modules/c++/io/include/io/FileInputStreamOS.h index ec445fea1e..6c16641b7d 100644 --- a/externals/coda-oss/modules/c++/io/include/io/FileInputStreamOS.h +++ b/externals/coda-oss/modules/c++/io/include/io/FileInputStreamOS.h @@ -23,6 +23,8 @@ #ifndef __IO_FILE_INPUT_STREAM_OS_H__ #define __IO_FILE_INPUT_STREAM_OS_H__ +#include "config/Exports.h" + #if !defined(USE_IO_STREAMS) #include "except/Exception.h" @@ -51,7 +53,7 @@ namespace io * method is based on the pos in the file, and the streamTo() and read() * are file operations */ -struct FileInputStreamOS : public SeekableInputStream +struct CODA_OSS_API FileInputStreamOS : public SeekableInputStream { protected: sys::File mFile; @@ -97,7 +99,7 @@ struct FileInputStreamOS : public SeekableInputStream * \return number of bytes which are readable * */ - virtual sys::Off_T available(); + virtual sys::Off_T available() override; /*! * Report whether or not the file is open @@ -128,7 +130,7 @@ struct FileInputStreamOS : public SeekableInputStream * Go to the offset at the location specified. * \return The number of bytes between off and our origin. */ - virtual sys::Off_T seek(sys::Off_T off, Whence whence) + virtual sys::Off_T seek(sys::Off_T off, Whence whence) override { int from = sys::File::FROM_CURRENT; switch (whence) @@ -152,7 +154,7 @@ struct FileInputStreamOS : public SeekableInputStream * Tell the current offset * \return The byte offset */ - virtual sys::Off_T tell() + virtual sys::Off_T tell() override { return mFile.getCurrentOffset(); } @@ -173,7 +175,7 @@ struct FileInputStreamOS : public SeekableInputStream * \return The number of bytes read * */ - virtual sys::SSize_T readImpl(void* buffer, size_t len); + virtual sys::SSize_T readImpl(void* buffer, size_t len) override; }; } diff --git a/externals/coda-oss/modules/c++/io/include/io/FileOutputStreamOS.h b/externals/coda-oss/modules/c++/io/include/io/FileOutputStreamOS.h index b2091d7904..5347f4c43d 100644 --- a/externals/coda-oss/modules/c++/io/include/io/FileOutputStreamOS.h +++ b/externals/coda-oss/modules/c++/io/include/io/FileOutputStreamOS.h @@ -103,16 +103,16 @@ class FileOutputStreamOS : public SeekableOutputStream int creationFlags = sys::File::CREATE | sys::File::TRUNCATE); //! Close the file - void close() + void close() override { mFile.close(); } - virtual void flush(); + virtual void flush() override; - sys::Off_T seek(sys::Off_T offset, io::Seekable::Whence whence); + sys::Off_T seek(sys::Off_T offset, io::Seekable::Whence whence) override; - sys::Off_T tell(); + sys::Off_T tell() override; using OutputStream::write; @@ -124,7 +124,7 @@ class FileOutputStreamOS : public SeekableOutputStream * \param len the length of bytes to write * \throw IoException */ - virtual void write(const void* buffer, size_t len); + virtual void write(const void* buffer, size_t len) override; }; } diff --git a/externals/coda-oss/modules/c++/io/include/io/NullStreams.h b/externals/coda-oss/modules/c++/io/include/io/NullStreams.h index 40f7ed37fd..3243185305 100644 --- a/externals/coda-oss/modules/c++/io/include/io/NullStreams.h +++ b/externals/coda-oss/modules/c++/io/include/io/NullStreams.h @@ -41,19 +41,19 @@ struct NullInputStream : public InputStream { } - virtual sys::Off_T available() + virtual sys::Off_T available() override { return mAvailable; } virtual sys::SSize_T readln(sys::byte *cStr, - const sys::Size_T strLenPlusNullByte) + const sys::Size_T strLenPlusNullByte) override { return read(cStr, strLenPlusNullByte); } virtual sys::SSize_T streamTo(OutputStream& soi, - sys::SSize_T numBytes = IS_END) + sys::SSize_T numBytes = IS_END) override { const sys::SSize_T toProcess = (numBytes == IS_END) ? numBytes : (mAvailable >= numBytes ? numBytes : mAvailable); @@ -77,7 +77,7 @@ struct NullInputStream : public InputStream memset(buffer, 0, len); } - virtual sys::SSize_T readImpl(void* buffer, size_t len) + virtual sys::SSize_T readImpl(void* buffer, size_t len) override { const auto numToRead = mAvailable >= gsl::narrow(len) ? len : gsl::narrow(mAvailable); @@ -108,11 +108,11 @@ struct NullOutputStream : public OutputStream { } - virtual void write(const void* , size_t ) + virtual void write(const void* , size_t ) override { } - virtual void flush() + virtual void flush() override { } }; diff --git a/externals/coda-oss/modules/c++/io/include/io/PipeStream.h b/externals/coda-oss/modules/c++/io/include/io/PipeStream.h index f806280b22..0a6b910355 100644 --- a/externals/coda-oss/modules/c++/io/include/io/PipeStream.h +++ b/externals/coda-oss/modules/c++/io/include/io/PipeStream.h @@ -23,7 +23,7 @@ #ifndef __IO_PIPE_STREAM_H__ #define __IO_PIPE_STREAM_H__ -#include +#include #include #include @@ -54,7 +54,7 @@ struct PipeStream : InputStream size_t streamBufferSize = DEFAULT_CHUNK_SIZE) : InputStream(), mExecPipe(cmd), - mCharString(coda_oss::make_unique(streamBufferSize)), + mCharString(std::make_unique(streamBufferSize)), mBufferSize(streamBufferSize) { mExecPipe.run(); @@ -76,7 +76,7 @@ struct PipeStream : InputStream * (default 0 means read until max or newline) */ virtual sys::SSize_T readln(sys::byte *cStr, - const sys::Size_T strLenPlusNullByte = 0); + const sys::Size_T strLenPlusNullByte = 0) override; /*! * The streaming occurs as follows: If the numBytes is IS_END, @@ -90,7 +90,7 @@ struct PipeStream : InputStream * input stream to the output stream */ virtual sys::SSize_T streamTo(OutputStream& soi, - sys::SSize_T numBytes = IS_END); + sys::SSize_T numBytes = IS_END) override; PipeStream(const PipeStream&) = delete; PipeStream& operator=(const PipeStream&) = delete; @@ -99,7 +99,7 @@ struct PipeStream : InputStream /*! * \brief returns the requested size in bytes from the stream */ - virtual sys::SSize_T readImpl(void* buffer, size_t len); + virtual sys::SSize_T readImpl(void* buffer, size_t len) override; sys::ExecPipe mExecPipe; diff --git a/externals/coda-oss/modules/c++/io/include/io/ProxyStreams.h b/externals/coda-oss/modules/c++/io/include/io/ProxyStreams.h index 9f578f36f5..7ec3c11c7c 100644 --- a/externals/coda-oss/modules/c++/io/include/io/ProxyStreams.h +++ b/externals/coda-oss/modules/c++/io/include/io/ProxyStreams.h @@ -47,7 +47,7 @@ struct CODA_OSS_API ProxyInputStream : public InputStream mProxy.release(); } - virtual sys::Off_T available() + virtual sys::Off_T available() override { return mProxy->available(); } @@ -61,12 +61,12 @@ struct CODA_OSS_API ProxyInputStream : public InputStream } protected: - virtual sys::SSize_T readImpl(void* buffer, size_t len) + virtual sys::SSize_T readImpl(void* buffer, size_t len) override { return mProxy->read(buffer, len); } - mem::auto_ptr mProxy; + std::unique_ptr mProxy; bool mOwnPtr; }; @@ -93,17 +93,17 @@ struct CODA_OSS_API ProxyOutputStream : public OutputStream using OutputStream::write; - virtual void write(const void* buffer, size_t len) + virtual void write(const void* buffer, size_t len) override { mProxy->write(buffer, len); } - virtual void flush() + virtual void flush() override { mProxy->flush(); } - virtual void close() + virtual void close() override { mProxy->close(); } @@ -117,7 +117,7 @@ struct CODA_OSS_API ProxyOutputStream : public OutputStream } protected: - mem::auto_ptr mProxy; + std::unique_ptr mProxy; bool mOwnPtr = false; }; @@ -152,7 +152,7 @@ struct CODA_OSS_API ToggleOutputStream : public io::ProxyOutputStream return mEnabled; } - void close() + void close() override { if (mEnabled && mPtr) mPtr->close(); diff --git a/externals/coda-oss/modules/c++/io/include/io/RotatingFileOutputStream.h b/externals/coda-oss/modules/c++/io/include/io/RotatingFileOutputStream.h index c1c30dcefb..c766bfdb68 100644 --- a/externals/coda-oss/modules/c++/io/include/io/RotatingFileOutputStream.h +++ b/externals/coda-oss/modules/c++/io/include/io/RotatingFileOutputStream.h @@ -46,7 +46,7 @@ struct CODA_OSS_API RotatingFileOutputStream : public CountingOutputStream using CountingOutputStream::write; - virtual void write(const void* buffer, size_t len); + virtual void write(const void* buffer, size_t len) override; protected: std::string mFilename; diff --git a/externals/coda-oss/modules/c++/io/include/io/SerializableFile.h b/externals/coda-oss/modules/c++/io/include/io/SerializableFile.h index 7895bf1c45..f4244586b6 100644 --- a/externals/coda-oss/modules/c++/io/include/io/SerializableFile.h +++ b/externals/coda-oss/modules/c++/io/include/io/SerializableFile.h @@ -55,13 +55,13 @@ class SerializableFile: public Serializable /*! * Transfer this object into a byte stream */ - void serialize(io::OutputStream& os); + void serialize(io::OutputStream& os) override; /*! * Unpack this input stream to the object * \param is Stream to read object from */ - void deserialize(io::InputStream& is); + void deserialize(io::InputStream& is) override; protected: std::string mFilename; diff --git a/externals/coda-oss/modules/c++/io/include/io/StandardStreams.h b/externals/coda-oss/modules/c++/io/include/io/StandardStreams.h index 633fd7a8de..791ffded7c 100644 --- a/externals/coda-oss/modules/c++/io/include/io/StandardStreams.h +++ b/externals/coda-oss/modules/c++/io/include/io/StandardStreams.h @@ -62,12 +62,12 @@ struct StandardOutStream final : public OutputStream * \param len the length of bytes to read * \throw except::IOException */ - virtual void write(const void* buffer, size_t len); + virtual void write(const void* buffer, size_t len) override; /*! * Flushes stdout */ - virtual void flush(); + virtual void flush() override; using OutputStream::write; using OutputStream::writeln; @@ -91,12 +91,12 @@ struct StandardErrStream final : public OutputStream * \param len the length of bytes to read * \throw except::IOException */ - virtual void write(const void* buffer, sys::Size_T len); + virtual void write(const void* buffer, sys::Size_T len) override; /*! * Flushes stderr */ - virtual void flush(); + virtual void flush() override; protected: _STDSTREAM_DECLARE_MUTEX_SEMICOLON_ diff --git a/externals/coda-oss/modules/c++/io/include/io/StringStream.h b/externals/coda-oss/modules/c++/io/include/io/StringStream.h index d8a03ddb9c..80e147d51b 100644 --- a/externals/coda-oss/modules/c++/io/include/io/StringStream.h +++ b/externals/coda-oss/modules/c++/io/include/io/StringStream.h @@ -63,12 +63,12 @@ struct StringStreamT final : public SeekableBidirectionalStream return mData; } - sys::Off_T tell() + sys::Off_T tell() override { return mData.tellg(); } - sys::Off_T seek(sys::Off_T offset, Whence whence) + sys::Off_T seek(sys::Off_T offset, Whence whence) override { std::ios::seekdir flags = std::ios::cur; switch (whence) @@ -94,7 +94,7 @@ struct StringStreamT final : public SeekableBidirectionalStream * Returns the available bytes to read from the stream * \return the available bytes to read */ - sys::Off_T available() + sys::Off_T available() override { const auto where = tell(); @@ -112,7 +112,7 @@ struct StringStreamT final : public SeekableBidirectionalStream * \param buffer the data to write to the stream * \param size the number of bytes to write to the stream */ - void write(const void* buffer, sys::Size_T size) + void write(const void* buffer, sys::Size_T size) override { auto buffer_ = static_cast(buffer); mData.write(buffer_, gsl::narrow(size)); diff --git a/externals/coda-oss/modules/c++/io/include/io/TempFile.h b/externals/coda-oss/modules/c++/io/include/io/TempFile.h index 8e80e054be..b997bc948b 100644 --- a/externals/coda-oss/modules/c++/io/include/io/TempFile.h +++ b/externals/coda-oss/modules/c++/io/include/io/TempFile.h @@ -33,7 +33,7 @@ namespace io * RAII object for a temporary file that gets deleted * upon object destruction */ -struct CODA_OSS_API TempFile +struct CODA_OSS_API TempFile final { /*! * Constructor for TempFile object. Provided a directory, @@ -49,7 +49,7 @@ struct CODA_OSS_API TempFile * * \return The pathname of the created file */ - inline std::string pathname() const + const std::string& pathname() const { return mPathname; } @@ -58,7 +58,6 @@ struct CODA_OSS_API TempFile TempFile& operator=(const TempFile&) = delete; private: - const sys::OS mOS; const std::string mPathname; }; } diff --git a/externals/coda-oss/modules/c++/io/source/FileInputStreamIOS.cpp b/externals/coda-oss/modules/c++/io/source/FileInputStreamIOS.cpp index 5358e61d36..e1585d16ba 100644 --- a/externals/coda-oss/modules/c++/io/source/FileInputStreamIOS.cpp +++ b/externals/coda-oss/modules/c++/io/source/FileInputStreamIOS.cpp @@ -115,18 +115,8 @@ sys::SSize_T io::FileInputStreamIOS::readImpl(void* buffer, size_t len) if (avail > 0) { sys::SSize_T bytesRead(0); - // There is a 'huge-gantic' bug in Forte 6.2 - // in which 'read()' reads the first character twice -#if defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x530) - - while (bytesRead < avail && mFStream.good()) - { - bufferPtr[bytesRead++] = mFStream.get(); - } -#else mFStream.read(bufferPtr, avail); bytesRead = mFStream.gcount(); -#endif return bytesRead; } diff --git a/externals/coda-oss/modules/c++/io/source/FileUtils.cpp b/externals/coda-oss/modules/c++/io/source/FileUtils.cpp index cdcd1e7c0f..9de78af1f1 100644 --- a/externals/coda-oss/modules/c++/io/source/FileUtils.cpp +++ b/externals/coda-oss/modules/c++/io/source/FileUtils.cpp @@ -40,7 +40,7 @@ void copyPermissions(const std::string& src, const std::string& dest) { -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 // set up permissions on unix -- // copy the source's permissions struct stat statBuf; diff --git a/externals/coda-oss/modules/c++/io/source/InputStream.cpp b/externals/coda-oss/modules/c++/io/source/InputStream.cpp index a6e8c01523..3fd81e2f6c 100644 --- a/externals/coda-oss/modules/c++/io/source/InputStream.cpp +++ b/externals/coda-oss/modules/c++/io/source/InputStream.cpp @@ -65,7 +65,9 @@ sys::SSize_T InputStream::streamTo(OutputStream& soi, sys::SSize_T bytesToPipe) sys::SSize_T bytesRead = 0; sys::SSize_T totalBytesTransferred = 0; - sys::SSize_T sizeOfVec = (bytesToPipe <= DEFAULT_CHUNK_SIZE) ? (bytesToPipe) : (DEFAULT_CHUNK_SIZE); + constexpr auto defaultChunkSize = static_cast(DEFAULT_CHUNK_SIZE); + + sys::SSize_T sizeOfVec = (bytesToPipe <= defaultChunkSize) ? bytesToPipe : defaultChunkSize; sys::byte vec[DEFAULT_CHUNK_SIZE]; memset(vec, 0, DEFAULT_CHUNK_SIZE); @@ -79,8 +81,8 @@ sys::SSize_T InputStream::streamTo(OutputStream& soi, sys::SSize_T bytesToPipe) soi.write(vec, bytesRead); totalBytesTransferred += bytesRead; memset(vec, 0, DEFAULT_CHUNK_SIZE); - sizeOfVec = (bytesToPipe - totalBytesTransferred <= DEFAULT_CHUNK_SIZE) ? - (bytesToPipe - totalBytesTransferred) : (DEFAULT_CHUNK_SIZE); + sizeOfVec = (bytesToPipe - totalBytesTransferred <= defaultChunkSize) ? + (bytesToPipe - totalBytesTransferred) : defaultChunkSize; } // Return the number of bytes we piped return totalBytesTransferred; diff --git a/externals/coda-oss/modules/c++/io/source/StringStream.cpp b/externals/coda-oss/modules/c++/io/source/StringStream.cpp index e65b3fcdbc..1530070c5d 100644 --- a/externals/coda-oss/modules/c++/io/source/StringStream.cpp +++ b/externals/coda-oss/modules/c++/io/source/StringStream.cpp @@ -32,16 +32,7 @@ // // if (len <= 0) return 0; // -//#if defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x530) -// sys::SSize_T bytesRead(0); -// while (bytesRead < len && mData.good()) -// { -// b[bytesRead++] = mData.get(); -// } -// len = bytesRead; -//#else // mData.read((char *)buffer, len); -//#endif // // Could be problem if streams are broken // // alternately could return gcount in else // // case above diff --git a/externals/coda-oss/modules/c++/io/source/TempFile.cpp b/externals/coda-oss/modules/c++/io/source/TempFile.cpp index e23bc29c37..1424aac29b 100644 --- a/externals/coda-oss/modules/c++/io/source/TempFile.cpp +++ b/externals/coda-oss/modules/c++/io/source/TempFile.cpp @@ -22,8 +22,8 @@ #include + static const sys::OS mOS; io::TempFile::TempFile(const std::string& dirname) : - mOS(sys::OS()), mPathname(mOS.getTempName(dirname)) { } diff --git a/externals/coda-oss/modules/c++/io/tests/serializeTest1.cpp b/externals/coda-oss/modules/c++/io/tests/serializeTest1.cpp index c3c37d2527..2037899aee 100644 --- a/externals/coda-oss/modules/c++/io/tests/serializeTest1.cpp +++ b/externals/coda-oss/modules/c++/io/tests/serializeTest1.cpp @@ -44,7 +44,7 @@ class A : public Serializable vec[2] = 0.0; } virtual ~A() {} - virtual void serialize(OutputStream& os) + virtual void serialize(OutputStream& os) override { os.writeln("Class A"); os.writeln(FmtX("%f", vec[0])); @@ -52,7 +52,7 @@ class A : public Serializable os.writeln(FmtX("%f", vec[2])); } - virtual void deserialize(InputStream& is) + virtual void deserialize(InputStream& is) override { string classType = fillString(is); string vec_0 = fillString(is); diff --git a/externals/coda-oss/modules/c++/io/tests/test_read_file_contents.cpp b/externals/coda-oss/modules/c++/io/tests/test_read_file_contents.cpp index b545353f75..1f970502dc 100644 --- a/externals/coda-oss/modules/c++/io/tests/test_read_file_contents.cpp +++ b/externals/coda-oss/modules/c++/io/tests/test_read_file_contents.cpp @@ -40,14 +40,14 @@ int main(int argc, char** argv) std::cout << io::readFileContents(argv[1]) << std::endl; } - catch (const std::exception& ex) + catch (const except::Exception& ex) { - std::cerr << ex.what() << std::endl; + std::cerr << ex.toString() << std::endl; return 1; } - catch (const except::Exception& ex) + catch (const std::exception& ex) { - std::cerr << ex.toString() << std::endl; + std::cerr << ex.what() << std::endl; return 1; } catch (...) diff --git a/externals/coda-oss/modules/c++/io/unittests/test_streams.cpp b/externals/coda-oss/modules/c++/io/unittests/test_streams.cpp index e847909e4c..63587403e7 100644 --- a/externals/coda-oss/modules/c++/io/unittests/test_streams.cpp +++ b/externals/coda-oss/modules/c++/io/unittests/test_streams.cpp @@ -311,7 +311,7 @@ TEST_CASE(testRotateReset) try { out.write("0"); - TEST_FAIL("Stream is closed; should throw."); + TEST_FAIL_MSG("Stream is closed; should throw."); } catch(except::Exception&) { diff --git a/externals/coda-oss/modules/c++/io/unittests/test_tempfile.cpp b/externals/coda-oss/modules/c++/io/unittests/test_tempfile.cpp index ae391a26d6..60e5398c29 100644 --- a/externals/coda-oss/modules/c++/io/unittests/test_tempfile.cpp +++ b/externals/coda-oss/modules/c++/io/unittests/test_tempfile.cpp @@ -41,7 +41,8 @@ TEST_CASE(testFileDestroyed) { const io::TempFile tempFile; pathname = tempFile.pathname(); - std::ofstream out(pathname.c_str()); + std::ofstream out(pathname); + TEST_ASSERT_TRUE(static_cast(out)); out << "Test text"; } // File should be destroyed on destruction diff --git a/externals/coda-oss/modules/c++/logging/include/logging/Enums.h b/externals/coda-oss/modules/c++/logging/include/logging/Enums.h index 9dd89b63ef..95d7edeae7 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/Enums.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/Enums.h @@ -40,7 +40,7 @@ namespace logging * * Enumeration used to represent LogLevels */ -struct LogLevel +struct LogLevel final { //! The enumerations allowed enum @@ -124,7 +124,7 @@ struct LogLevel } //! destructor - ~LogLevel(){} + ~LogLevel() = default; //! Returns string representation of the value std::string toString() const @@ -149,14 +149,10 @@ struct LogLevel } //! assignment operator - LogLevel& operator=(const LogLevel& o) - { - if (&o != this) - { - value = o.value; - } - return *this; - } + LogLevel& operator=(const LogLevel&) = default; + LogLevel(const LogLevel&) = default; + LogLevel& operator=(LogLevel&&) = default; + LogLevel(LogLevel&&) = default; bool operator==(const LogLevel& o) const { return value == o.value; } bool operator!=(const LogLevel& o) const { return value != o.value; } diff --git a/externals/coda-oss/modules/c++/logging/include/logging/ExceptionLogger.h b/externals/coda-oss/modules/c++/logging/include/logging/ExceptionLogger.h index 27e2642992..32ba2bbe7b 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/ExceptionLogger.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/ExceptionLogger.h @@ -43,20 +43,24 @@ namespace logging class ExceptionLogger { protected: - sys::Mutex mLock; + mutable sys::Mutex mLock; - Logger* mLogger; + Logger* mLogger = nullptr; - bool mHasLogged; + bool mHasLogged = false; public: - ExceptionLogger(Logger* logger) : mLogger(logger), mHasLogged(false) + ExceptionLogger(Logger* logger) : mLogger(logger) {} - virtual ~ExceptionLogger() {} + virtual ~ExceptionLogger() = default; + ExceptionLogger(const ExceptionLogger&) = delete; + ExceptionLogger& operator=(const ExceptionLogger&) = delete; + ExceptionLogger(ExceptionLogger&&) = delete; + ExceptionLogger& operator=(ExceptionLogger&&) = delete; //! Tells whether it has logged at least one exception - bool hasLogged() + bool hasLogged() const { mt::CriticalSection crit(&mLock); return mHasLogged; diff --git a/externals/coda-oss/modules/c++/logging/include/logging/FileHandler.h b/externals/coda-oss/modules/c++/logging/include/logging/FileHandler.h index d23fd2c10b..c87f28cdc0 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/FileHandler.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/FileHandler.h @@ -29,6 +29,8 @@ #include #include +#include + #include "logging/LogRecord.h" #include "logging/StreamHandler.h" #include @@ -45,7 +47,7 @@ struct FileHandler : public StreamHandler { FileHandler(const coda_oss::filesystem::path& fname, LogLevel level = LogLevel::LOG_NOTSET, int creationFlags = sys::File::CREATE | sys::File::TRUNCATE) : - StreamHandler(coda_oss::make_unique(fname.string(), creationFlags), level) + StreamHandler(std::make_unique(fname.string(), creationFlags), level) { // In case we are in append mode if (auto pStream = dynamic_cast(mStream.get())) diff --git a/externals/coda-oss/modules/c++/logging/include/logging/Handler.h b/externals/coda-oss/modules/c++/logging/include/logging/Handler.h index 9c144f45a8..a9df56434c 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/Handler.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/Handler.h @@ -53,7 +53,10 @@ struct CODA_OSS_API Handler : public Filterer */ Handler(LogLevel level = LogLevel::LOG_NOTSET); virtual ~Handler() = default; + Handler(const Handler&) = delete; Handler& operator=(const Handler&) = delete; + Handler(Handler&&) = delete; + Handler& operator=(Handler&&) = delete; /*! * Sets the Formatter to use when formatting LogRecords diff --git a/externals/coda-oss/modules/c++/logging/include/logging/LogRecord.h b/externals/coda-oss/modules/c++/logging/include/logging/LogRecord.h index 9423dc7468..df81ba04b8 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/LogRecord.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/LogRecord.h @@ -50,7 +50,7 @@ class LogRecord std::string file, std::string function, int lineNum, std::string timestamp) : mName(name), mMsg(msg), mLevel(level), mFile(file), mFunction(function), mLineNum(lineNum), mTimestamp(timestamp){} - virtual ~LogRecord(){} + virtual ~LogRecord() = default; LogLevel getLevel() const { return mLevel; } std::string getLevelName() const; diff --git a/externals/coda-oss/modules/c++/logging/include/logging/MemoryHandler.h b/externals/coda-oss/modules/c++/logging/include/logging/MemoryHandler.h index 479696d603..6654333183 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/MemoryHandler.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/MemoryHandler.h @@ -43,13 +43,16 @@ struct MemoryHandler : public Handler { MemoryHandler(LogLevel level = LogLevel::LOG_NOTSET); + MemoryHandler(const MemoryHandler&) = delete; MemoryHandler& operator=(const MemoryHandler&) = delete; + MemoryHandler(MemoryHandler&&) = delete; + MemoryHandler& operator=(MemoryHandler&&) = delete; const std::vector& getLogs(LogLevel level = LogLevel::LOG_NOTSET) const; protected: - virtual void write(const std::string& str); + virtual void write(const std::string& str) override; void emitRecord(const LogRecord* record) override; diff --git a/externals/coda-oss/modules/c++/logging/include/logging/Setup.h b/externals/coda-oss/modules/c++/logging/include/logging/Setup.h index def4ae4dc8..1f1e960c6f 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/Setup.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/Setup.h @@ -57,7 +57,7 @@ using path = std::filesystem::path; #else using path = coda_oss::filesystem::path; #endif -mem::auto_ptr setupLogger( +std::unique_ptr setupLogger( const path& program, const std::string& logLevel = "warning", const path& logFile = "console", diff --git a/externals/coda-oss/modules/c++/logging/include/logging/StandardFormatter.h b/externals/coda-oss/modules/c++/logging/include/logging/StandardFormatter.h index 0e11d3d30c..798082e819 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/StandardFormatter.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/StandardFormatter.h @@ -67,7 +67,7 @@ class CODA_OSS_API StandardFormatter : public Formatter StandardFormatter& operator=(const StandardFormatter&) = delete; - virtual void format(const LogRecord* record, io::OutputStream& os) const; + virtual void format(const LogRecord* record, io::OutputStream& os) const override; }; diff --git a/externals/coda-oss/modules/c++/logging/include/logging/StreamHandler.h b/externals/coda-oss/modules/c++/logging/include/logging/StreamHandler.h index d6786d76a7..49d12f1aff 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/StreamHandler.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/StreamHandler.h @@ -57,10 +57,10 @@ struct CODA_OSS_API StreamHandler : public Handler //! adds the need to write epilogue before deleting formatter // and then writing the prologue with the new formatter - virtual void setFormatter(Formatter* formatter); - virtual void setFormatter(std::unique_ptr&&); + virtual void setFormatter(Formatter* formatter) override; + virtual void setFormatter(std::unique_ptr&&) override; - virtual void close(); + virtual void close() override; protected: // This is necessary so this class and an inherited class can call a @@ -68,13 +68,13 @@ struct CODA_OSS_API StreamHandler : public Handler void closeImpl(); //! for general string write - virtual void write(const std::string&); + virtual void write(const std::string&) override; //! for writing directly to stream, // used for the bulk of the logging for speed void emitRecord(const LogRecord* record) override; - mem::auto_ptr mStream; + std::unique_ptr mStream; private: bool mClosed; diff --git a/externals/coda-oss/modules/c++/logging/include/logging/XMLFormatter.h b/externals/coda-oss/modules/c++/logging/include/logging/XMLFormatter.h index 7eb6556152..b6d8e8e834 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/XMLFormatter.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/XMLFormatter.h @@ -63,7 +63,7 @@ struct XMLFormatter : public logging::Formatter XMLFormatter& operator=(const XMLFormatter&) = delete; - virtual void format(const logging::LogRecord* record, io::OutputStream& os) const; + virtual void format(const logging::LogRecord* record, io::OutputStream& os) const override; }; diff --git a/externals/coda-oss/modules/c++/logging/source/LogRecord.cpp b/externals/coda-oss/modules/c++/logging/source/LogRecord.cpp index a8e7f58e59..1919c30b79 100644 --- a/externals/coda-oss/modules/c++/logging/source/LogRecord.cpp +++ b/externals/coda-oss/modules/c++/logging/source/LogRecord.cpp @@ -34,5 +34,4 @@ logging::LogRecord::LogRecord(std::string name, std::string msg, logging::LogLev } -std::string logging::LogRecord::getLevelName() const { return mLevel.toString(); }; - +std::string logging::LogRecord::getLevelName() const { return mLevel.toString(); } diff --git a/externals/coda-oss/modules/c++/logging/source/Setup.cpp b/externals/coda-oss/modules/c++/logging/source/Setup.cpp index 446be6f930..3c1c363638 100644 --- a/externals/coda-oss/modules/c++/logging/source/Setup.cpp +++ b/externals/coda-oss/modules/c++/logging/source/Setup.cpp @@ -19,6 +19,10 @@ * see . * */ +#include "logging/Setup.h" + +#include +#include #include @@ -28,9 +32,7 @@ #include "logging/StandardFormatter.h" #include "logging/XMLFormatter.h" -#include "logging/Setup.h" - -mem::auto_ptr +std::unique_ptr logging::setupLogger(const path& program_, const std::string& logLevel, const path& logFile_, @@ -69,9 +71,14 @@ logging::setupLogger(const path& program_, logHandler.reset(new logging::StreamHandler()); else { + // Existing code was checking whether a 'size_t' was <0; that of course can't + // ever happen because 'size_t' is an unsigned type. But, in the spirit of + // the existing code, assume that somebody thought such a check was meaningful + // ... using the value of a 32-bit integer (we now only build on 64-bit platforms). + // create a rotating logger - logCount = (logCount < 0) ? 0 : logCount; - logBytes = (logBytes < 0) ? 0 : logBytes; + logCount = logCount > std::numeric_limits::max() ? 0 : logCount; // logCount = (logCount < 0) ? 0 : logCount; + logBytes = logBytes > std::numeric_limits::max() ? 0 : logBytes; // logBytes = (logBytes < 0) ? 0 : logBytes; if (logBytes > 0) { logHandler.reset(new logging::RotatingFileHandler(logFile, @@ -89,5 +96,5 @@ logging::setupLogger(const path& program_, logHandler->setFormatter(formatter.release()); log->addHandler(logHandler.release(), true); - return mem::auto_ptr(log.release()); + return std::unique_ptr(log.release()); } diff --git a/externals/coda-oss/modules/c++/logging/unittests/test_exception_logger.cpp b/externals/coda-oss/modules/c++/logging/unittests/test_exception_logger.cpp index 6efde85a9a..f85d8cc54a 100644 --- a/externals/coda-oss/modules/c++/logging/unittests/test_exception_logger.cpp +++ b/externals/coda-oss/modules/c++/logging/unittests/test_exception_logger.cpp @@ -45,7 +45,7 @@ class RunNothing final : public sys::Runnable public: RunNothing(size_t& c, logging::ExceptionLogger* el, bool getBacktrace=false) : counter(c), exLog(el), getBacktrace(getBacktrace) {} - virtual void run() + virtual void run() override { if(exLog->hasLogged()) return; @@ -98,7 +98,7 @@ TEST_CASE(testExceptionWithBacktrace) try { throw except::Exception("Bad run"); - TEST_FAIL("Should not get here"); + TEST_FAIL; } catch (const except::Throwable& t) { @@ -117,11 +117,12 @@ TEST_CASE(testExceptionWithBacktrace) try { throw except::Exception("Bad run").backtrace(); - TEST_FAIL("Should not get here"); + TEST_FAIL; } catch (const except::Throwable& t) { - TEST_ASSERT_GREATER(t.getBacktrace().size(), static_cast(0)); + const auto backtraceSize = static_cast(t.getBacktrace().size()); + TEST_ASSERT_GREATER(backtraceSize, 0); s = t.toString(true /*includeBacktrace*/); what = t.what(); } diff --git a/externals/coda-oss/modules/c++/logging/unittests/test_rotating_log.cpp b/externals/coda-oss/modules/c++/logging/unittests/test_rotating_log.cpp index 2404c72c2b..6f0c4f7251 100644 --- a/externals/coda-oss/modules/c++/logging/unittests/test_rotating_log.cpp +++ b/externals/coda-oss/modules/c++/logging/unittests/test_rotating_log.cpp @@ -53,17 +53,18 @@ TEST_CASE(testRotate) { logging::Logger log("test"); - auto logHandler = coda_oss::make_unique(outFile, 10, maxFiles); + auto logHandler = std::make_unique(outFile, 10, maxFiles); logHandler->setLevel(logging::LogLevel::LOG_DEBUG); - logHandler->setFormatter(coda_oss::make_unique("%m")); + logHandler->setFormatter(std::make_unique("%m")); log.addHandler(std::move(logHandler)); log.debug("0123456789"); TEST_ASSERT(os.exists(outFile)); - TEST_ASSERT_FALSE(os.isFile(outFile + ".1")); + const auto outFile1 = outFile + ".1"; + TEST_ASSERT_FALSE(os.isFile(outFile1)); log.debug("1"); - TEST_ASSERT(os.isFile(outFile + ".1")); + TEST_ASSERT(os.isFile(outFile1)); } cleanupFiles( outFile); diff --git a/externals/coda-oss/modules/c++/math.linear/include/math/linear/Matrix2D.h b/externals/coda-oss/modules/c++/math.linear/include/math/linear/Matrix2D.h index 256d9fad12..49c4bc0289 100644 --- a/externals/coda-oss/modules/c++/math.linear/include/math/linear/Matrix2D.h +++ b/externals/coda-oss/modules/c++/math.linear/include/math/linear/Matrix2D.h @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include @@ -80,7 +80,7 @@ class Matrix2D void reset() { - mStorage = coda_oss::make_unique<_T[]>(mMN); + mStorage = std::make_unique<_T[]>(mMN); mRaw = mStorage.get(); } Matrix2D(size_t M, size_t N, std::nullptr_t) : diff --git a/externals/coda-oss/modules/c++/math.linear/include/math/linear/MatrixMxN.h b/externals/coda-oss/modules/c++/math.linear/include/math/linear/MatrixMxN.h index e7ee84deec..39006e1348 100644 --- a/externals/coda-oss/modules/c++/math.linear/include/math/linear/MatrixMxN.h +++ b/externals/coda-oss/modules/c++/math.linear/include/math/linear/MatrixMxN.h @@ -19,8 +19,9 @@ * see . * */ -#ifndef __MATH_LINEAR_MATRIX_M_X_N_H__ -#define __MATH_LINEAR_MATRIX_M_X_N_H__ +#ifndef CODA_OSS_math_linear_MatrixMxN_h_INCLUDED_ +#define CODA_OSS_math_linear_MatrixMxN_h_INCLUDED_ +#pragma once #include #include @@ -35,7 +36,7 @@ namespace linear { // Create a safe comparison -template bool equals(const _T& e1, const _T& e2) +template inline bool equals(const _T& e1, const _T& e2) { return e1 == e2; } @@ -121,19 +122,8 @@ class MatrixMxN typedef MatrixMxN<_MD, _ND, _T> Like_T; //! Public but really should be avoided - #if _MSC_VER - __pragma(warning(push)) - __pragma(warning(disable: 26495)) // 26495: Variable '...' is uninitialized. Always initialize a member variable (type.6). - #endif - _T mRaw[_MD][_ND]; - #if _MSC_VER - __pragma(warning(pop)) - #endif + _T mRaw[_MD][_ND]{}; - /*! - * No initialization here! - * - */ MatrixMxN() = default; /*! @@ -149,9 +139,9 @@ class MatrixMxN */ MatrixMxN(_T cv) { - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mRaw[i][j] = cv; } @@ -175,16 +165,23 @@ class MatrixMxN * * \param raw A raw pointer to copy internally */ - MatrixMxN(const _T* raw) +private: + template + void assign_from_raw(const TVectorLike& raw) { - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { - mRaw[i][j] = raw[i * _ND + j]; + mRaw[i][j] = raw[i * cols() + j]; } } } +public: + MatrixMxN(const _T* raw) + { + assign_from_raw(raw); + } /*! * Construct a matrix from a 1D M*N vector. @@ -200,14 +197,7 @@ class MatrixMxN { if (raw.size() < size()) throw except::Exception(Ctxt("Invalid size exception")); - - for (size_t i = 0; i < _MD; ++i) - { - for (size_t j = 0; j < _ND; ++j) - { - mRaw[i][j] = raw[i * _ND + j]; - } - } + assign_from_raw(raw); } /*! @@ -223,9 +213,9 @@ class MatrixMxN */ MatrixMxN(const MatrixMxN& mx) { - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mRaw[i][j] = mx.mRaw[i][j]; } @@ -249,13 +239,7 @@ class MatrixMxN */ MatrixMxN& operator=(const _T* raw) { - for (size_t i = 0; i < _MD; i++) - { - for (size_t j = 0; j < _ND; j++) - { - mRaw[i][j] = raw[i * _ND + j]; - } - } + assign_from_raw(raw); return *this; } @@ -273,13 +257,7 @@ class MatrixMxN { if (raw.size() < size()) throw except::Exception(Ctxt("Invalid size exception")); - for (size_t i = 0; i < _MD; i++) - { - for (size_t j = 0; j < _ND; j++) - { - mRaw[i][j] = raw[i * _ND + j]; - } - } + assign_from_raw(raw); return *this; } @@ -297,9 +275,9 @@ class MatrixMxN MatrixMxN& operator=(const MatrixMxN& mx) { if (this != &mx) - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mRaw[i][j] = mx.mRaw[i][j]; } @@ -322,9 +300,9 @@ class MatrixMxN */ MatrixMxN& operator=(const _T& sv) { - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mRaw[i][0] = sv; } @@ -347,7 +325,7 @@ class MatrixMxN inline const _T& operator()(size_t i, size_t j) const noexcept { #if defined(MATH_LINEAR_BOUNDS) - assert( i < _MD && j < _ND ); + assert( i < rows() && j < cols() ); #endif return mRaw[i][j]; } @@ -365,7 +343,7 @@ class MatrixMxN inline _T& operator()(size_t i, size_t j) noexcept { #if defined(MATH_LINEAR_BOUNDS) - assert( i < _MD && j < _ND ); + assert( i < rows() && j < cols() ); #endif return mRaw[i][j]; } @@ -407,7 +385,7 @@ class MatrixMxN inline const _T* row(size_t i) const noexcept { #if defined(MATH_LINEAR_BOUNDS) - assert( i < _MD); + assert( i < rows()); #endif return mRaw[i]; } @@ -420,7 +398,7 @@ class MatrixMxN inline _T* row(size_t i) noexcept { #if defined(MATH_LINEAR_BOUNDS) - assert( i < _MD); + assert( i < rows()); #endif return mRaw[i]; } @@ -440,7 +418,7 @@ class MatrixMxN */ inline void row(size_t i, const _T* vec) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mRaw[i][j] = vec[j]; } @@ -480,8 +458,8 @@ class MatrixMxN */ std::vector<_T> col(size_t j) const { - std::vector<_T> jth(_MD); - for (size_t i = 0; i < _MD; ++i) + std::vector<_T> jth(rows()); + for (size_t i = 0; i < rows(); ++i) { jth[i] = mRaw[i][j]; } @@ -503,7 +481,7 @@ class MatrixMxN */ void col(size_t j, const _T* vec) { - for (size_t i = 0; i < _MD; ++i) + for (size_t i = 0; i < rows(); ++i) { mRaw[i][j] = vec[i]; } @@ -543,7 +521,7 @@ class MatrixMxN */ void col(size_t colIdx, const MatrixMxN<_MD, 1, _T>& vec) { - for (size_t row = 0; row < _MD; ++row) + for (size_t row = 0; row < rows(); ++row) { mRaw[row][colIdx] = vec(row, 0); } @@ -562,7 +540,7 @@ class MatrixMxN * * \return _MD */ - inline size_t rows() const noexcept { return _MD; } + constexpr size_t rows() const noexcept { return _MD; } /*! * This function is not really necessary, but @@ -574,14 +552,14 @@ class MatrixMxN * * \return _ND */ - inline size_t cols() const noexcept { return _ND; } + constexpr size_t cols() const noexcept { return _ND; } /*! * Gives back the value full size of the matrix * - * \return _MD * _ND + * \return _MD * cols() */ - inline size_t size() const noexcept { return rows() * cols(); } + constexpr size_t size() const noexcept { return rows() * cols(); } @@ -606,12 +584,12 @@ class MatrixMxN template inline bool operator==(const Matrix_T& mx) const { - if (_MD != mx.rows() || _ND != mx.cols()) + if (rows() != mx.rows() || cols() != mx.cols()) return false; - for (size_t i = 0; i < _MD; ++i) + for (size_t i = 0; i < rows(); ++i) { - for (size_t j = 0; j < _ND; ++j) + for (size_t j = 0; j < cols(); ++j) { if (! equals(mRaw[i][j], mx(i, j))) return false; @@ -664,9 +642,9 @@ class MatrixMxN */ MatrixMxN& scale(_T scalar) { - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mRaw[i][j] *= scalar; } @@ -694,9 +672,9 @@ class MatrixMxN MatrixMxN<_MD, _ND> multiply(_T scalar) const { MatrixMxN<_MD, _ND> mx = *this; - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mx[i][j] *= scalar; } @@ -733,12 +711,12 @@ class MatrixMxN { MatrixMxN<_MD, _PD, _T> newM{}; - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { for (size_t j = 0; j < _PD; j++) { newM.mRaw[i][j] = 0; - for (size_t k = 0; k < _ND; k++) + for (size_t k = 0; k < cols(); k++) { newM.mRaw[i][j] += mRaw[i][k] * mx.mRaw[k][j]; } @@ -769,9 +747,9 @@ class MatrixMxN MatrixMxN& scaleDiagonal(const MatrixMxN<_ND, _ND, _T>& mx) { size_t i, j; - for (i = 0; i < _MD; i++) + for (i = 0; i < rows(); i++) { - for (j = 0; j < _ND; j++) + for (j = 0; j < cols(); j++) { mRaw[i][j] *= mx.mRaw[j][j]; } @@ -821,9 +799,9 @@ class MatrixMxN Like_T& operator+=(const Like_T& mx) { - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mRaw[i][j] += mx.mRaw[i][j]; } @@ -850,9 +828,9 @@ class MatrixMxN Like_T& operator-=(const Like_T& mx) { - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { mRaw[i][j] -= mx(i, j); } @@ -956,8 +934,8 @@ class MatrixMxN { MatrixMxN<_ND, _MD, _T> x{}; - for (size_t i = 0; i < _MD; i++) - for (size_t j = 0; j < _ND; j++) + for (size_t i = 0; i < rows(); i++) + for (size_t j = 0; j < cols(); j++) x.mRaw[j][i] = mRaw[i][j]; return x; @@ -982,11 +960,11 @@ class MatrixMxN Like_T lu; - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { // Start by making our pivots unpermuted pivotsM[i] = i; - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { // And copying elements lu(i, j) = mRaw[i][j]; @@ -996,14 +974,14 @@ class MatrixMxN std::vector<_T> colj(_MD); _T* rowi; - for (size_t j = 0; j < _ND; j++) + for (size_t j = 0; j < cols(); j++) { - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { colj[i] = lu(i, j); } - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { rowi = lu[i]; @@ -1018,7 +996,7 @@ class MatrixMxN } size_t p = j; - for (size_t i = j + 1; i < _MD; i++) + for (size_t i = j + 1; i < rows(); i++) { if (std::abs(colj[i]) > std::abs(colj[p])) p = i; @@ -1027,7 +1005,7 @@ class MatrixMxN if (p != j) { size_t k = 0; - for (; k < _ND; k++) + for (; k < cols(); k++) { // We are swapping _T t = lu(p, k); @@ -1038,9 +1016,9 @@ class MatrixMxN pivotsM[p] = pivotsM[j]; pivotsM[j] = k; } - if (j < _MD && std::abs( lu(j, j) )) + if (j < rows() && std::abs( lu(j, j) )) { - for (size_t i = j + 1; i < _MD; i++) + for (size_t i = j + 1; i < rows(); i++) { // Divide out our rows lu(i, j) /= lu(j, j); @@ -1069,7 +1047,7 @@ class MatrixMxN Like_T permute(const std::vector& pivotsM, size_t n = _ND) const { Like_T perm; - for (size_t i = 0; i < _MD; i++) + for (size_t i = 0; i < rows(); i++) { for (size_t j = 0; j < n; j++) { @@ -1086,9 +1064,9 @@ class MatrixMxN _T normSq() const { _T acc(0); - for (size_t i = 0; i < _MD; ++i) + for (size_t i = 0; i < rows(); ++i) { - for (size_t j = 0; j < _ND; ++j) + for (size_t j = 0; j < cols(); ++j) { acc += mRaw[i][j] * mRaw[i][j]; } @@ -1204,9 +1182,9 @@ class MatrixMxN Like_T operator-() const { Like_T neg{}; - for (size_t ii = 0; ii < _MD; ++ii) + for (size_t ii = 0; ii < rows(); ++ii) { - for (size_t jj = 0; jj < _ND; ++jj) + for (size_t jj = 0; jj < cols(); ++jj) { neg.mRaw[ii][jj] = -mRaw[ii][jj]; } @@ -1566,4 +1544,4 @@ template Matrix_T tidy(const Matrix_T& constMatrix, return mx; } -#endif +#endif // CODA_OSS_math_linear_MatrixMxN_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/math.linear/include/math/linear/VectorN.h b/externals/coda-oss/modules/c++/math.linear/include/math/linear/VectorN.h index 6e9b7c177f..4c1539f122 100644 --- a/externals/coda-oss/modules/c++/math.linear/include/math/linear/VectorN.h +++ b/externals/coda-oss/modules/c++/math.linear/include/math/linear/VectorN.h @@ -19,12 +19,14 @@ * see . * */ -#ifndef __MATH_LINEAR_VECTOR_N_H__ -#define __MATH_LINEAR_VECTOR_N_H__ +#ifndef CODA_OSS_math_linear_VectorN_h_INCLUDED_ +#define CODA_OSS_math_linear_VectorN_h_INCLUDED_ +#pragma once -#include #include +#include + namespace math { namespace linear @@ -33,19 +35,11 @@ namespace linear template class VectorN { - #if _MSC_VER - __pragma(warning(push)) - __pragma(warning(disable: 26495)) // 26495: Variable '...' is uninitialized. Always initialize a member variable (type.6). - #endif - MatrixMxN<_ND, 1, _T> mRaw; - #if _MSC_VER - __pragma(warning(pop)) - #endif + MatrixMxN<_ND, 1, _T> mRaw{}; public: typedef VectorN<_ND, _T> Like_T; - //! Default constructor (no initialization) VectorN() = default; /*! @@ -96,10 +90,7 @@ template class VectorN */ VectorN(const std::vector<_T>& raw) { - if (raw.size() < _ND) - throw except::Exception(Ctxt("Not enough elements")); - - mRaw = raw; + *this = raw; } /*! @@ -111,7 +102,7 @@ template class VectorN */ VectorN& operator=(const std::vector<_T>& raw) { - if (raw.size() < _ND) + if (raw.size() < size()) throw except::Exception(Ctxt("Not enough elements")); mRaw = raw; @@ -171,25 +162,25 @@ template class VectorN inline _T operator[](size_t i) const noexcept { #if defined(MATH_LINEAR_BOUNDS) - assert( i < _ND ); + assert( i < size() ); #endif return mRaw[i][0]; } inline _T& operator[](size_t i) noexcept { #if defined(MATH_LINEAR_BOUNDS) - assert( i < _ND ); + assert( i < size() ); #endif return mRaw[i][0]; } - inline size_t size() const noexcept { return _ND; } + constexpr size_t size() const noexcept { return _ND; } _T dot(const VectorN<_ND>& vec) const { _T acc(0); - for (size_t i = 0; i < _ND; ++i) + for (size_t i = 0; i < size(); ++i) { acc += (*this)[i] * vec[i]; } @@ -294,7 +285,7 @@ template class VectorN Like_T& operator *=(const Like_T& v) { - for (size_t i = 0; i < _ND; i++) + for (size_t i = 0; i < size(); i++) { mRaw(i, 0) *= v[i]; } @@ -321,7 +312,7 @@ template class VectorN Like_T& operator /=(const Like_T& v) { - for (size_t i = 0; i < _ND; i++) + for (size_t i = 0; i < size(); i++) { mRaw(i, 0) /= v[i]; } @@ -412,4 +403,4 @@ inline bool operator!=(const VectorN& lhs, const Vector_T& rhs) } // linear } // math -#endif +#endif // CODA_OSS_math_linear_VectorN_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/math.linear/unittests/test_VectorN.cpp b/externals/coda-oss/modules/c++/math.linear/unittests/test_VectorN.cpp index 148cd4c181..7090f1ab56 100644 --- a/externals/coda-oss/modules/c++/math.linear/unittests/test_VectorN.cpp +++ b/externals/coda-oss/modules/c++/math.linear/unittests/test_VectorN.cpp @@ -42,10 +42,10 @@ TEST_CASE(testDefaultConstructor) //VectorN<0, double> v0; //TEST_ASSERT_EQ(v0.size(), 0); - VectorN<1,double> v1; + VectorN<1,double> v1{}; TEST_ASSERT_EQ(v1.size(), static_cast(1)); - VectorN<2,double> v2; + VectorN<2,double> v2{}; TEST_ASSERT_EQ(v2.size(), static_cast(2)); } diff --git a/externals/coda-oss/modules/c++/math.linear/unittests/test_lin.cpp b/externals/coda-oss/modules/c++/math.linear/unittests/test_lin.cpp index 3dc706ea9e..cc46d74a5d 100644 --- a/externals/coda-oss/modules/c++/math.linear/unittests/test_lin.cpp +++ b/externals/coda-oss/modules/c++/math.linear/unittests/test_lin.cpp @@ -81,6 +81,7 @@ TEST_CASE(testSTLVectorAssign) TEST_CASE(testEmptyDim) { math::linear::Matrix2D AScale(3, 0); + TEST_ASSERT_TRUE(true); // need to use hidden "testName" parameter } TEST_CASE(testPtrDecorator) @@ -100,6 +101,7 @@ TEST_CASE(testPtrAdopt) { // valgrind to ensure that we don't have a leak math::linear::Matrix2D AScale(3, 3, new double[9], true); + TEST_ASSERT_TRUE(true); // need to use hidden "testName" parameter } TEST_CASE(testArithmetic) @@ -216,4 +218,4 @@ TEST_MAIN( std::cout << cross(v3, y) << std::endl; */ -) \ No newline at end of file +) diff --git a/externals/coda-oss/modules/c++/math/CMakeLists.txt b/externals/coda-oss/modules/c++/math/CMakeLists.txt index 5c468908fd..7af371b07a 100644 --- a/externals/coda-oss/modules/c++/math/CMakeLists.txt +++ b/externals/coda-oss/modules/c++/math/CMakeLists.txt @@ -1,13 +1,5 @@ set(MODULE_NAME math) -check_symbol_exists("isnan" "math.h" HAVE_ISNAN) -# The auto-generated test code doesn't work for overloaded functions -check_cxx_source_compiles(" - #include - int main() { return std::isnan(0.0); }" - HAVE_STD_ISNAN) -coda_generate_module_config_header(${MODULE_NAME}) - coda_add_module( ${MODULE_NAME} VERSION 0.1 diff --git a/externals/coda-oss/modules/c++/math/include/math/ConvexHull.h b/externals/coda-oss/modules/c++/math/include/math/ConvexHull.h index 9c178bf1fa..787e231195 100644 --- a/externals/coda-oss/modules/c++/math/include/math/ConvexHull.h +++ b/externals/coda-oss/modules/c++/math/include/math/ConvexHull.h @@ -146,7 +146,7 @@ class ConvexHull static sys::SSize_T direction(const RowCol& p0, const RowCol& p1, - const RowCol& p2) + const RowCol& p2) noexcept { const T firstTerm = (p0.col - p1.col) * (p2.row - p1.row); const T secondTerm = (p2.col - p1.col) * (p0.row - p1.row); diff --git a/externals/coda-oss/modules/c++/math/include/math/math_config.h.cmake.in b/externals/coda-oss/modules/c++/math/include/math/math_config.h.cmake.in deleted file mode 100644 index 3677f9ac8b..0000000000 --- a/externals/coda-oss/modules/c++/math/include/math/math_config.h.cmake.in +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _@tgt_munged_name@_CONFIG_H_ -#define _@tgt_munged_name@_CONFIG_H_ - -#cmakedefine HAVE_ISNAN @HAVE_ISNAN@ -#cmakedefine HAVE_STD_ISNAN @HAVE_STD_ISNAN@ - -#endif /* _@tgt_munged_name@_CONFIG_H_ */ diff --git a/externals/coda-oss/modules/c++/math/wscript b/externals/coda-oss/modules/c++/math/wscript index 4bd1822fa8..1c048f0c45 100644 --- a/externals/coda-oss/modules/c++/math/wscript +++ b/externals/coda-oss/modules/c++/math/wscript @@ -10,17 +10,7 @@ options = distclean = lambda p: None def configure(conf): def math_callback(conf): - conf.check_cc(function_name='isnan', header_name='math.h', - mandatory=False) - # The auto-generated code would be ambiguous and not compile - # Formatted for consistency with waf's output - conf.check_cxx(fragment="#include \n" - "int main(int argc, char **argv) {\n" - " (void)argc; (void)argv;\n" - " return std::isnan(0);\n" - "}", - msg='Checking for function std::isnan', - mandatory=False, define_name='HAVE_STD_ISNAN') + print("math_callback"); writeConfig(conf, math_callback, NAME) diff --git a/externals/coda-oss/modules/c++/mem/CMakeLists.txt b/externals/coda-oss/modules/c++/mem/CMakeLists.txt index 174ea256aa..297850c3ba 100644 --- a/externals/coda-oss/modules/c++/mem/CMakeLists.txt +++ b/externals/coda-oss/modules/c++/mem/CMakeLists.txt @@ -3,7 +3,7 @@ set(MODULE_NAME mem) coda_add_module( ${MODULE_NAME} VERSION 1.0 - DEPS sys-c++ gsl-c++) + DEPS sys-c++ gsl-c++ coda_oss-c++ std-c++) coda_add_tests( MODULE_NAME ${MODULE_NAME} diff --git a/externals/coda-oss/modules/c++/mem/include/mem/AutoPtr.h b/externals/coda-oss/modules/c++/mem/include/mem/AutoPtr.h new file mode 100644 index 0000000000..0061b47262 --- /dev/null +++ b/externals/coda-oss/modules/c++/mem/include/mem/AutoPtr.h @@ -0,0 +1,134 @@ +/* ========================================================================= + * This file is part of mem-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2018, MDA Information Systems LLC + * (C) Copyright 2022, Maxar Technologies, Inc. + * + * mem-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_mem_AutoPtr_h_INCLUDED_ +#define CODA_OSS_mem_AutoPtr_h_INCLUDED_ +#pragma once + +#include + +#include "coda_oss/memory.h" +#include "mem/SharedPtr.h" + +namespace mem +{ +// std::auto_ptr (deprecated in C++17) is copyable while +// std::unique_ptr (new in C++11) isn't. While unique_ptr +// is right, making the change doesn't always work well with +// legacy code. Using shared_ptr instead of unique_ptr is +// copyable, but that changes semantics: the "old" copied-from +// object is still valid. +// +// Thus, this class to help make the transition easier. +// Using (very) sparingly! + +template +class AutoPtr final +{ + std::unique_ptr ptr_; + +public: + // https://en.cppreference.com/w/cpp/memory/auto_ptr/auto_ptr + explicit AutoPtr(T* p = nullptr) noexcept : ptr_(p) + { + } + + AutoPtr& operator=(AutoPtr& r) noexcept + { + reset(r.release()); + return *this; + } + AutoPtr(AutoPtr& r) noexcept + { + *this = r; + } + AutoPtr& operator=(const AutoPtr&) = delete; // can't change a "const" object + AutoPtr(const AutoPtr&) = delete; + + ~AutoPtr() = default; + AutoPtr(AutoPtr&&) = default; + AutoPtr& operator=(AutoPtr&&) = default; + + template + AutoPtr& operator=(std::unique_ptr&& p) noexcept + { + ptr_ = std::move(p); + return *this; + } + template + AutoPtr(std::unique_ptr&& p) noexcept + { + *this = std::move(p); + } + + template // std::auto_ptr can cause deprecated warnings + AutoPtr& assign(TAutoPtr p) noexcept + { + ptr_.reset(p.release()); + return *this; + } + template // std::auto_ptr can cause deprecated warnings + AutoPtr& operator=(TAutoPtr p) noexcept + { + return assign(p); + } + template // std::auto_ptr can cause deprecated warnings + AutoPtr(TAutoPtr p) noexcept + { + *this = assign(p); + } + + + T* get() const noexcept + { + return ptr_.get(); + } + + T* release() noexcept + { + return ptr_.release(); + } + + template + void reset(U* p = nullptr) noexcept + { + ptr_.reset(p); + } + + T& operator*() const noexcept + { + return *get(); + } + T* operator->() const noexcept + { + return get(); + } + + operator std::unique_ptr& () { return ptr_; } + operator const std::unique_ptr& () const { return ptr_; } + +}; + +} // namespace mem + +#endif // CODA_OSS_mem_AutoPtr_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/mem/include/mem/ComplexView.h b/externals/coda-oss/modules/c++/mem/include/mem/ComplexView.h new file mode 100644 index 0000000000..6b8a60c0dc --- /dev/null +++ b/externals/coda-oss/modules/c++/mem/include/mem/ComplexView.h @@ -0,0 +1,367 @@ +/* ========================================================================= + * This file is part of mem-c++ + * ========================================================================= + * + * (C) Copyright 2013 - 2014, MDA Information Systems LLC + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * mem-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_mem_ComplexView_h_INCLUDED_ +#define CODA_OSS_mem_ComplexView_h_INCLUDED_ +#pragma once + +#include +#include + +#include +#include +#include +#include +#include + +#include "coda_oss/span.h" +#include "config/disable_compiler_warnings.h" + +namespace mem +{ + + /*! + * \class ComplexViewConstIterator + * \brief Iterate over a ComplexView class only needing to know the + * "axis" of the std::complex<>, i.e., "float" or "double". + * + * This allows view-independent code to be written without having to use + * a TView-template; instead ComplexViewConstIterator can be used. + * And often such code is dependent on T (i.e., "float", but not "double") + * which means implementation can be in a CPP file. + */ +template +struct ComplexViewConstIterator final +{ + // https://stackoverflow.com/questions/8054273/how-to-implement-an-stl-style-iterator-and-avoid-common-pitfalls + using iterator_category = std::random_access_iterator_tag; + using value_type = std::complex; + using difference_type = ptrdiff_t; + using size_type = size_t; + using pointer = const value_type*; + using reference = const value_type&; + + template + explicit ComplexViewConstIterator(TView view) : + size_(view.size()) // Saving the size avoids the need for another constructor. + { + index_f_ = [view](size_type i) { return view[i]; }; + } + // Help ensure the iterators use the same view + auto end_() const + { + auto retval = *this; + retval.index_ = size_; + return retval; + } + + ComplexViewConstIterator() = default; + ~ComplexViewConstIterator() = default; + ComplexViewConstIterator(const ComplexViewConstIterator&) = default; + ComplexViewConstIterator& operator=(const ComplexViewConstIterator&) = default; + ComplexViewConstIterator(ComplexViewConstIterator&&) = default; + ComplexViewConstIterator& operator=(ComplexViewConstIterator&&) = default; + + bool operator==(const ComplexViewConstIterator& rhs) const + { + // Checking the target() helps ensure the same type of view is used. + return (index_ == rhs.index_) && (size_ == rhs.size_) && + (index_f_.target_type() == rhs.index_f_.target_type()); + } + bool operator!=(const ComplexViewConstIterator& rhs) const + { + return !(*this == rhs); + } + + ComplexViewConstIterator& operator++() + { + ++index_; + return *this; + } + ComplexViewConstIterator operator++(int) + { + auto retval = *this; + ++(*this); + return retval; + } + ComplexViewConstIterator& operator+=(size_type i) + { + index_ += i; + return *this; + } + + difference_type operator-(const ComplexViewConstIterator& other) const + { + return index_ - other.index_; + } + + reference operator*() const + { + return *(current()); + } + + pointer operator->() const + { + return current(); + } + +private: + // Need to store the current value because ->() returns a pointer + mutable value_type current_value_; + pointer current() const + { + current_value_ = index_f_(index_); + return ¤t_value_; + } + + size_type index_ = 0; + std::function index_f_; + size_type size_; // used to create the end_() iterator +}; + + /*! + * \class ComplexView + * \brief These classes class provide read-only views onto a collection of complex + * numbers. For the simple case, it's roughtly std::span>. However, + * sometimes the data is in two parallel arrays: + * const float* reals; + * const float* imags; + * This classes have (almost) the same access routines regardless of how the underlying data is actually stored. + * + * Thing are intentinally kept very simple (for now), because it's not yet clear + * what functionality will be needed; YAGNI. + */ + +template +struct ComplexSpanView final +{ + using size_type = size_t; + using value_type = std::complex; + using cxvalue_t_ = value_type; + using span_t_ = coda_oss::span; + using axis_t_ = typename cxvalue_t_::value_type; // i.e., float + using const_iterator = ComplexViewConstIterator; + using iterator = const_iterator; + + ComplexSpanView() = delete; + ~ComplexSpanView() = default; + explicit ComplexSpanView(span_t_ data) : data_(data) + { + } + ComplexSpanView(const ComplexSpanView&) = default; + ComplexSpanView& operator=(const ComplexSpanView&) = default; + ComplexSpanView(ComplexSpanView&&) = default; + ComplexSpanView& operator=(ComplexSpanView&&) = default; + + // This class is almost the same as std::span> ... but + // don't provide data() as ComplexSpansView stores complex numbers in two + // parallel arrays. Also see reals(), imags() and values(); below. + // const value_type* data() const noexcept = delete; + + constexpr auto real(size_type idx) const noexcept + { + return data_[idx].real(); + } + constexpr auto imag(size_type idx) const noexcept + { + return data_[idx].imag(); + } + + // const& vs. value makes little difference here as cxvalue_type is + // std::complex<> (copying one pointer vs. two doubles). But this + // provides a (subtle) way for clients to know what "view style" they're + // using, should that be needed; it also more closely matches std::span<>. + constexpr const cxvalue_t_& index(size_type idx) const noexcept // i.e., std::complex + { + return data_[idx]; + } + constexpr const auto& operator[](size_type idx) const noexcept + { + return index(idx); + } + + constexpr size_type size() const noexcept + { + return data_.size(); + } + + const_iterator begin() const + { + // not data_.begin(), we want our "generic" ComplexViewConstIterator iterator + return ComplexViewConstIterator(data_); + } + const_iterator end() const + { + return begin().end_(); + } + +private: + template + auto copy_axis(TAxisFunc axis) const + { + std::vector retval(size()); + for (size_t i = 0; i < size(); i++) + { + retval[i] = (this->*axis)(i); // call via pointer to member function + } + return retval; + } + +public: + auto reals() const + { + return copy_axis(&ComplexSpanView::real); + } + auto imags() const + { + return copy_axis(&ComplexSpanView::imag); + } + auto values() const + { + return std::vector(data_.begin(), data_.end()); + } + +private: + span_t_ data_; // i.e., std::span> +}; +template +inline ComplexSpanView make_ComplexSpanView(coda_oss::span> s) +{ + return ComplexSpanView(s); +} +template +inline auto make_ComplexSpanView(const TVectorLike& v) +{ + using cxvalue_t = typename TVectorLike::value_type; // i.e., std::complex + using span_t = coda_oss::span; + + return make_ComplexSpanView(span_t(v.data(), v.size())); +} + +template +struct ComplexSpansView final // "Span_s_,", i.e., two spans. Avoiding "parallel" because that can conjure up multi-threading thoughts. +{ + using size_type = size_t; + using value_type = T; + using cxvalue_t_ = std::complex; + using axis_t_ = typename cxvalue_t_::value_type; // i.e., float + using span_t_ = coda_oss::span; + using const_iterator = ComplexViewConstIterator; + using iterator = const_iterator; + + ComplexSpansView() = delete; + ~ComplexSpansView() = default; + ComplexSpansView(span_t_ reals, span_t_ imags) : reals_(reals), imags_(imags) + { + if (reals_.size() != imags_.size()) + { + throw std::invalid_argument("real and imag must be the same size."); + } + } + ComplexSpansView(const T* reals, const T* imags, size_t sz) : + ComplexSpansView(span_t_(reals, sz), span_t_(imags, sz)) + { + } + ComplexSpansView(const ComplexSpansView&) = default; + ComplexSpansView& operator=(const ComplexSpansView&) = default; + ComplexSpansView(ComplexSpansView&&) = default; + ComplexSpansView& operator=(ComplexSpansView&&) = default; + + constexpr auto real(size_type idx) const noexcept + { + return reals_[idx]; + } + constexpr auto imag(size_type idx) const noexcept + { + return imags_[idx]; + } + + constexpr cxvalue_t_ index(size_type idx) const noexcept // i.e., std::complex + { + // Note that this is a COPY because the "real" and "imag" parts MUST be + // next to each other. https://en.cppreference.com/w/cpp/numeric/complex + return cxvalue_t_(real(idx), imag(idx)); + } + constexpr auto operator[](size_type idx) const noexcept + { + return index(idx); + } + + constexpr size_type size() const noexcept + { + return reals_.size(); + } + + iterator begin() const + { + return iterator(*this); + } + iterator end() const + { + return begin().end_(); + } + + auto reals() const + { + return std::vector(reals_.begin(), reals_.end()); + } + auto imags() const + { + return std::vector(imags_.begin(), imags_.end()); + } + auto values() const + { + std::vector retval(size()); + for (size_t i = 0; i < size(); i++) + { + retval[i] = (*this)[i]; + } + return retval; + } + +private: + span_t_ reals_; // i.e., std::span + span_t_ imags_; +}; +template +inline ComplexSpansView make_ComplexSpansView( + coda_oss::span reals, coda_oss::span imags) +{ + return ComplexSpansView(reals, imags); +} +template +inline auto make_ComplexSpansView(const TVectorLike& reals_, const TVectorLike& imags_) +{ + using value_type = typename TVectorLike::value_type; // i.e., float + using cxvalue_t = std::complex; // i.e., std::complex + using axis_t = typename cxvalue_t::value_type; // i.e., float + using span_t = coda_oss::span; + + const span_t reals(reals_.data(), reals_.size()); + const span_t imags(imags_.data(), imags_.size()); + return make_ComplexSpansView(reals, imags); +} + +} + +#endif // CODA_OSS_mem_ComplexView_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/mem/include/mem/ScopedArray.h b/externals/coda-oss/modules/c++/mem/include/mem/ScopedArray.h index e93dad76a6..2fd12a9aa7 100644 --- a/externals/coda-oss/modules/c++/mem/include/mem/ScopedArray.h +++ b/externals/coda-oss/modules/c++/mem/include/mem/ScopedArray.h @@ -26,7 +26,7 @@ #include #include -#include "mem/SharedPtr.h" // coda_oss::make_unique +#include "mem/SharedPtr.h" // std::make_unique namespace mem { diff --git a/externals/coda-oss/modules/c++/mem/include/mem/ScopedCloneablePtr.h b/externals/coda-oss/modules/c++/mem/include/mem/ScopedCloneablePtr.h index f409f5f67f..a2e30e9951 100644 --- a/externals/coda-oss/modules/c++/mem/include/mem/ScopedCloneablePtr.h +++ b/externals/coda-oss/modules/c++/mem/include/mem/ScopedCloneablePtr.h @@ -31,7 +31,7 @@ namespace mem /*! * \class ScopedCloneablePtr * \brief This class provides RAII for object allocations via new. It is a - * light wrapper around std::auto_ptr and has the same semantics + * light wrapper around std::unique_ptr and has the same semantics * except that the copy constructor and assignment operator are deep * copies (by using T's clone() method) rather than transferring * ownership. @@ -39,7 +39,7 @@ namespace mem * This is useful for cases where you have a class which has a member * variable that's dynamically allocated and you want to provide a * valid copy constructor / assignment operator. With raw pointers or - * std::auto_ptr's, you'll have to write the copy constructor / + * std::unique_ptr's, you'll have to write the copy constructor / * assignment operator for this class - this is tedious and * error-prone since you need to include all the members in the class. * Using ScopedCloneablePtr's instead, the compiler-generated copy diff --git a/externals/coda-oss/modules/c++/mem/include/mem/ScopedCopyablePtr.h b/externals/coda-oss/modules/c++/mem/include/mem/ScopedCopyablePtr.h index bcfbb4a2c9..b62108402a 100644 --- a/externals/coda-oss/modules/c++/mem/include/mem/ScopedCopyablePtr.h +++ b/externals/coda-oss/modules/c++/mem/include/mem/ScopedCopyablePtr.h @@ -31,7 +31,7 @@ namespace mem /*! * \class ScopedCopyablePtr * \brief This class provides RAII for object allocations via new. It is a - * light wrapper around std::auto_ptr and has the same semantics + * light wrapper around std::unique_ptr and has the same semantics * except that the copy constructor and assignment operator are deep * copies (that is, they use T's copy constructor) rather than * transferring ownership. @@ -39,7 +39,7 @@ namespace mem * This is useful for cases where you have a class which has a member * variable that's dynamically allocated and you want to provide a * valid copy constructor / assignment operator. With raw pointers or - * std::auto_ptr's, you'll have to write the copy constructor / + * std::unique_ptr's, you'll have to write the copy constructor / * assignment operator for this class - this is tedious and * error-prone since you need to include all the members in the class. * Using ScopedCopyablePtr's instead, the compiler-generated copy diff --git a/externals/coda-oss/modules/c++/mem/include/mem/ScopedPtr.h b/externals/coda-oss/modules/c++/mem/include/mem/ScopedPtr.h index de36b8b205..11a57072b6 100644 --- a/externals/coda-oss/modules/c++/mem/include/mem/ScopedPtr.h +++ b/externals/coda-oss/modules/c++/mem/include/mem/ScopedPtr.h @@ -26,7 +26,7 @@ #pragma once #include -#include +#include #include #include "sys/Conf.h" @@ -37,7 +37,7 @@ namespace mem /*! * \class ScopedPtr * \brief This class provides RAII for object allocations via new. It is a - * light wrapper around std::auto_ptr and has the same semantics + * light wrapper around std::unique_ptr and has the same semantics * except that the copy constructor and assignment operator are deep * copies (by using T's clone() method) rather than transferring * ownership. @@ -45,7 +45,7 @@ namespace mem * This is useful for cases where you have a class which has a member * variable that's dynamically allocated and you want to provide a * valid copy constructor / assignment operator. With raw pointers or - * std::auto_ptr's, you'll have to write the copy constructor / + * std::unique_ptr's, you'll have to write the copy constructor / * assignment operator for this class - this is tedious and * error-prone since you need to include all the members in the class. * Using ScopedCloneablePtr's instead, the compiler-generated copy @@ -64,7 +64,7 @@ class ScopedPtr } void duplicate(const T& from, std::false_type) { - reset(coda_oss::make_unique(from)); + reset(std::make_unique(from)); } public: @@ -77,12 +77,6 @@ class ScopedPtr { reset(std::move(ptr)); } -#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - explicit ScopedPtr(mem::auto_ptr ptr) - { - reset(ptr); - } -#endif ScopedPtr(const ScopedPtr& rhs) { @@ -161,12 +155,6 @@ class ScopedPtr { mPtr = std::move(ptr); } -#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - void reset(mem::auto_ptr ptr) - { - reset(std::unique_ptr(ptr.release())); - } -#endif }; } diff --git a/externals/coda-oss/modules/c++/mem/include/mem/SharedPtr.h b/externals/coda-oss/modules/c++/mem/include/mem/SharedPtr.h index 296de8d7bd..2a1d18f4aa 100644 --- a/externals/coda-oss/modules/c++/mem/include/mem/SharedPtr.h +++ b/externals/coda-oss/modules/c++/mem/include/mem/SharedPtr.h @@ -35,13 +35,8 @@ // as part of a SWIG interface will result in a missing template type error. namespace mem { -#if !CODA_OSS_enable_mem_SharedPtr template using SharedPtr = std::shared_ptr; -#else -template -class SharedPtr; -#endif } #include diff --git a/externals/coda-oss/modules/c++/mem/include/mem/SharedPtrCpp11.h b/externals/coda-oss/modules/c++/mem/include/mem/SharedPtrCpp11.h index e04a1f90e5..867634180f 100644 --- a/externals/coda-oss/modules/c++/mem/include/mem/SharedPtrCpp11.h +++ b/externals/coda-oss/modules/c++/mem/include/mem/SharedPtrCpp11.h @@ -32,116 +32,12 @@ namespace mem { -// This won't work everywhere since C++11's std::unique_ptr<> often requries -// "&&" and std::move. But for member data and the like it can reduce some -// boiler-plate code; note that it's often possible to just use std::unique_ptr -// directly. This is mostly needed to support existing interfaces. -#if CODA_OSS_cpp17 // std::auto_ptr removed in C++17 - #if defined(CODA_OSS_no_autoptr) && (!CODA_OSS_no_autoptr) - #error "std::auto_ptr was removed in C++17." - #endif - #define CODA_OSS_autoptr_is_std 0 // mem::auto_ptr != std::auto_ptr -#else // C++11 or C++14 still have std::auto_ptr, but it's depricated - #ifdef CODA_OSS_no_autoptr // don't use std::auto_ptr even if it's available - #define CODA_OSS_autoptr_is_std 0 // mem::auto_ptr != std::auto_ptr - #else - #define CODA_OSS_autoptr_is_std 1 // mem::auto_ptr == std::auto_ptr - #endif -#endif - template using auto_ptr = -#if CODA_OSS_autoptr_is_std - std::auto_ptr; -#else - std::unique_ptr; -#endif - // Pretty much give-up on mem::SharedPtr as it's too hard to get something that will // compile with all the different compilers; let somebody else worry about that // via std::shared_ptr. The only code change is use_count() instead of getCount(), // and that's mostly used in unit-tests. -#if !CODA_OSS_enable_mem_SharedPtr template using SharedPtr = std::shared_ptr; -#else -/*! - * \class SharedPtr - * \brief This is a derived class of std::shared_ptr. The purpose of this - * class is to provide backwards compatibility in systems that do - * not have C++11 support. - * Because this inherits from std::shared_ptr it can be directly - * passed into interfaces requiring std::shared_ptr or legacy - * interfaces. - * For future work, prefer std::shared_ptr when possible. - * - * WARNING: std::shared_ptr* foo = new SharedPtr will leak! - */ -template -class SharedPtr : public std::shared_ptr -{ -public: - SharedPtr() = default; - ~SharedPtr() = default; - - using std::shared_ptr::shared_ptr; - - using std::shared_ptr::reset; - - SharedPtr(const SharedPtr&) = default; - SharedPtr& operator=(const SharedPtr&) = default; - SharedPtr(SharedPtr&&) = default; - SharedPtr& operator=(SharedPtr&&) = default; - - template - SharedPtr(const std::shared_ptr& ptr) - { - *this = ptr; - } - template - SharedPtr& operator=(const std::shared_ptr& ptr) - { - std::shared_ptr& base = *this; - base = ptr; - return *this; - } - - template - explicit SharedPtr(std::unique_ptr&& ptr) : - std::shared_ptr(ptr.release()) - { - } - - void reset(std::unique_ptr&& scopedPtr) - { - std::shared_ptr::reset(scopedPtr.release()); - } - - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - // The base class only handles auto_ptr&& - explicit SharedPtr(mem::auto_ptr ptr) : - std::shared_ptr(ptr.release()) - { - } - - // The base class only handles auto_ptr&& - template - explicit SharedPtr(mem::auto_ptr ptr) : - std::shared_ptr(ptr.release()) - { - } - - void reset(mem::auto_ptr scopedPtr) - { - std::shared_ptr::reset(scopedPtr.release()); - } - #endif - - // Implemented to support the legacy SharedPtr. Prefer use_count. - long getCount() const - { - return std::shared_ptr::use_count(); - } -}; -#endif // CODA_OSS_enable_mem_SharedPtr } // namespace mem // try to make code changes a tiny bit easier? diff --git a/externals/coda-oss/modules/c++/mem/include/mem/VectorOfPointers.h b/externals/coda-oss/modules/c++/mem/include/mem/VectorOfPointers.h index c7e793c3a0..d244dc1531 100644 --- a/externals/coda-oss/modules/c++/mem/include/mem/VectorOfPointers.h +++ b/externals/coda-oss/modules/c++/mem/include/mem/VectorOfPointers.h @@ -90,14 +90,6 @@ struct VectorOfPointers mValues.resize(mValues.size() + 1); mValues.back() = value.release(); } - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - template - void push_back(mem::auto_ptr value) - { - std::unique_ptr scopedValue(value.release()); - push_back(std::move(scopedValue)); - } - #endif typedef typename std::vector::iterator iterator; typedef typename std::vector::const_iterator const_iterator; @@ -199,14 +191,6 @@ template mValues.resize(mValues.size() + 1); mValues.back().reset(value.release()); } - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - template - void push_back(mem::auto_ptr value) - { - std::unique_ptr scopedValue(value.release()); - push_back(std::move(scopedValue)); - } - #endif template void push_back(std::shared_ptr value) diff --git a/externals/coda-oss/modules/c++/mem/tests/ScratchVisualization.cpp b/externals/coda-oss/modules/c++/mem/tests/ScratchVisualization.cpp index d9058e0f75..2585f7473f 100644 --- a/externals/coda-oss/modules/c++/mem/tests/ScratchVisualization.cpp +++ b/externals/coda-oss/modules/c++/mem/tests/ScratchVisualization.cpp @@ -329,7 +329,7 @@ int main(int argc, char** argv) const cli::Results* options(parser.parse(argc, argv)); const std::string testType(options->get("test")); - srand((unsigned)time(0)); + srand((unsigned)time(nullptr)); std::ofstream htmlFile; htmlFile.open("scratch_release.html"); diff --git a/externals/coda-oss/modules/c++/mem/unittests/test_Span.cpp b/externals/coda-oss/modules/c++/mem/unittests/test_Span.cpp index 472a879925..28a76ad203 100644 --- a/externals/coda-oss/modules/c++/mem/unittests/test_Span.cpp +++ b/externals/coda-oss/modules/c++/mem/unittests/test_Span.cpp @@ -26,6 +26,7 @@ #include #include +#include #include "TestCase.h" @@ -94,8 +95,43 @@ TEST_CASE(testGslNarrow) TEST_THROWS(gsl::narrow(d)); } +TEST_CASE(test_sys_make_span) +{ + int i = 314; + int* const p = &i; + auto s = sys::make_span(p, 1); + TEST_ASSERT(s.data() == p); + TEST_ASSERT_EQ(s[0], i); + s[0] = 123; + TEST_ASSERT_EQ(i, 123); + s[0] = 314; + + const int* const q = &i; + auto cs = sys::make_span(q, 1); + TEST_ASSERT(cs.data() == q); + TEST_ASSERT_EQ(cs[0], i); + //cs[0] = 123; // cs = span + TEST_ASSERT_EQ(i, 314); + + std::vector v{314}; + s = sys::make_span(v); + TEST_ASSERT(s.data() == v.data()); + TEST_ASSERT_EQ(s[0], v[0]); + s[0] = 123; + TEST_ASSERT_EQ(v[0], 123); + s[0] = 314; + + const std::vector& u = v; + cs = sys::make_span(u); + TEST_ASSERT(cs.data() == u.data()); + TEST_ASSERT_EQ(cs[0], u[0]); + // cs[0] = 123; // cs = span + TEST_ASSERT_EQ(u[0], 314); +} + TEST_MAIN( TEST_CHECK(testSpanBuffer); TEST_CHECK(testSpanVector); TEST_CHECK(testGslNarrow); + TEST_CHECK(test_sys_make_span); ) diff --git a/externals/coda-oss/modules/c++/mem/unittests/test_scratch_memory.cpp b/externals/coda-oss/modules/c++/mem/unittests/test_scratch_memory.cpp index 421f4eb052..8ef51ee4fd 100644 --- a/externals/coda-oss/modules/c++/mem/unittests/test_scratch_memory.cpp +++ b/externals/coda-oss/modules/c++/mem/unittests/test_scratch_memory.cpp @@ -254,7 +254,7 @@ struct Operation TEST_CASE(testReleaseConcurrentKeys) { - srand((unsigned)time(0)); + srand((unsigned)time(nullptr)); mem::ScratchMemory scratch; std::vector operations; @@ -344,7 +344,7 @@ TEST_CASE(testReleaseConcurrentKeys) TEST_CASE(testReleaseConnectedKeys) { - srand((unsigned)time(0)); + srand((unsigned)time(nullptr)); mem::ScratchMemory scratch; std::vector operations; @@ -434,7 +434,7 @@ TEST_CASE(testReleaseConnectedKeys) TEST_CASE(testGenerateBuffersForRelease) { - srand((unsigned)time(0)); + srand((unsigned)time(nullptr)); for (unsigned int run = 0; run < 50; ++run) { diff --git a/externals/coda-oss/modules/c++/mem/unittests/test_unique_ptr.cpp b/externals/coda-oss/modules/c++/mem/unittests/test_unique_ptr.cpp index a43442c69a..9b462b4b63 100644 --- a/externals/coda-oss/modules/c++/mem/unittests/test_unique_ptr.cpp +++ b/externals/coda-oss/modules/c++/mem/unittests/test_unique_ptr.cpp @@ -23,6 +23,7 @@ #include #include +#include #include "TestCase.h" @@ -48,12 +49,12 @@ TEST_CASE(testStdUniquePtr) TEST_ASSERT_EQ(123, fooCtor->mVal); } { - auto fooCtor = coda_oss::make_unique(123); + auto fooCtor = std::make_unique(123); TEST_ASSERT_NOT_EQ(nullptr, fooCtor.get()); TEST_ASSERT_EQ(123, fooCtor->mVal); } { - auto pFoos = coda_oss::make_unique(123); // 123 instances of Foo + auto pFoos = std::make_unique(123); // 123 instances of Foo TEST_ASSERT_NOT_EQ(nullptr, pFoos.get()); TEST_ASSERT_EQ(0, pFoos[0].mVal); TEST_ASSERT_EQ(0, pFoos[122].mVal); @@ -63,12 +64,12 @@ TEST_CASE(testStdUniquePtr) TEST_CASE(test_make_unique) { { - auto fooCtor = coda_oss::make_unique(123); + auto fooCtor = std::make_unique(123); TEST_ASSERT_NOT_EQ(nullptr, fooCtor.get()); TEST_ASSERT_EQ(123, fooCtor->mVal); } { - auto pFoos = coda_oss::make_unique(123); // 123 instances of Foo + auto pFoos = std::make_unique(123); // 123 instances of Foo TEST_ASSERT_NOT_EQ(nullptr, pFoos.get()); TEST_ASSERT_EQ(0, pFoos[0].mVal); TEST_ASSERT_EQ(0, pFoos[122].mVal); @@ -87,7 +88,47 @@ TEST_CASE(test_make_unique) } } +static void f(const std::string& testName, mem::AutoPtr p) +{ + TEST_ASSERT_NOT_NULL(p.get()); + TEST_ASSERT_EQ(123, p->mVal); +} +TEST_CASE(memAutoPtr) +{ + { + mem::AutoPtr fooCtor; + TEST_ASSERT_NULL(fooCtor.get()); + + fooCtor.reset(new Foo(123)); + TEST_ASSERT_NOT_NULL(fooCtor.get()); + TEST_ASSERT_EQ(123, fooCtor->mVal); + } + { + mem::AutoPtr fooCtor(new Foo(123)); + TEST_ASSERT_NOT_NULL(fooCtor.get()); + TEST_ASSERT_EQ(123, fooCtor->mVal); + } + { + mem::AutoPtr fooCtor(new Foo(123)); + mem::AutoPtr other(fooCtor); + TEST_ASSERT_NOT_NULL(other.get()); + TEST_ASSERT_EQ(123, other->mVal); + } + { + mem::AutoPtr fooCtor(new Foo(123)); + f(testName, fooCtor); + TEST_ASSERT_NULL(fooCtor.get()); + } + { + std::unique_ptr fooCtor(new Foo(123)); + f(testName, std::move(fooCtor)); + TEST_ASSERT_NULL(fooCtor.get()); + } +} + + TEST_MAIN( TEST_CHECK(testStdUniquePtr); TEST_CHECK(test_make_unique); + TEST_CHECK(memAutoPtr); ) diff --git a/externals/coda-oss/modules/c++/mem/unittests/test_vector_pointers.cpp b/externals/coda-oss/modules/c++/mem/unittests/test_vector_pointers.cpp index a4d5da5d11..74c11f1a7b 100644 --- a/externals/coda-oss/modules/c++/mem/unittests/test_vector_pointers.cpp +++ b/externals/coda-oss/modules/c++/mem/unittests/test_vector_pointers.cpp @@ -20,7 +20,13 @@ * */ +#include +#include +#include +#include + #include +#include #include "TestCase.h" @@ -112,10 +118,144 @@ TEST_CASE(testVecOfSharedPointers) { std::vector> myVec2 = std_vector_shared_ptr_int(); // copy } +} + +template +static void test_cx_view(const std::string& testName, const TView& view) +{ + TEST_ASSERT_EQ(4, view.size()); + TEST_ASSERT_EQ(view[0].real(), 1.0f); + TEST_ASSERT_EQ(view[0].imag(), 2.0f); + TEST_ASSERT_EQ(view[1].real(), 3.0f); + TEST_ASSERT_EQ(view[1].imag(), 4.0f); + TEST_ASSERT_EQ(view[2].real(), 5.0f); + TEST_ASSERT_EQ(view[2].imag(), 6.0f); + TEST_ASSERT_EQ(view[3].real(), 7.0f); + TEST_ASSERT_EQ(view[3].imag(), 8.0f); +} +template +static void test_mem_ComplexView(const std::string& testName, const TView& view) +{ + test_cx_view(testName, view); + + TEST_ASSERT_EQ(view.real(0), 1.0f); + TEST_ASSERT_EQ(view.imag(0), 2.0f); + TEST_ASSERT_EQ(view.real(1), 3.0f); + TEST_ASSERT_EQ(view.imag(1), 4.0f); + TEST_ASSERT_EQ(view.real(2), 5.0f); + TEST_ASSERT_EQ(view.imag(2), 6.0f); + TEST_ASSERT_EQ(view.real(3), 7.0f); + TEST_ASSERT_EQ(view.imag(3), 8.0f); + + const auto reals_ = view.reals(); + const auto imags_ = view.imags(); + TEST_ASSERT_EQ(reals_.size(), imags_.size()); + TEST_ASSERT_EQ(reals_[0], 1.0f); + TEST_ASSERT_EQ(reals_[1], 3.0f); + TEST_ASSERT_EQ(reals_[2], 5.0f); + TEST_ASSERT_EQ(reals_[3], 7.0f); + + TEST_ASSERT_EQ(imags_[0], 2.0f); + TEST_ASSERT_EQ(imags_[1], 4.0f); + TEST_ASSERT_EQ(imags_[2], 6.0f); + TEST_ASSERT_EQ(imags_[3], 8.0f); +} + +using cx_float = std::complex; +static const std::vector& cx_data() +{ + static const std::vector retval {{1, 2}, {3, 4}, {5, 6}, {7, 8}}; + return retval; +} + +TEST_CASE(testSpanCxFloat) +{ + const std::span view(cx_data().data(), cx_data().size()); + TEST_ASSERT_EQ(cx_data().size(), view.size()); + test_cx_view(testName, view); +} + +TEST_CASE(testComplexViewFloat) +{ + { + const auto view = mem::make_ComplexSpanView(cx_data()); + TEST_ASSERT_EQ(cx_data().size(), view.size()); + test_mem_ComplexView(testName, view); + test_cx_view(testName, view.values()); + } + + const std::vector reals{1, 3, 5, 7}; + const std::vector imags{2, 4, 6, 8}; + TEST_ASSERT_EQ(imags.size(), reals.size()); + { + const auto view = mem::make_ComplexSpansView(reals, imags); + TEST_ASSERT_EQ(reals.size(), view.size()); + test_mem_ComplexView(testName, view); + test_cx_view(testName, view.values()); + } +} + +static void test_mem_ComplexViewConstIterator(const std::string& testName, + mem::ComplexViewConstIterator begin, mem::ComplexViewConstIterator end) +{ + TEST_ASSERT(begin != end); + + const auto distance = std::distance(begin, end); + TEST_ASSERT_EQ(4, distance); + + auto it = begin; + TEST_ASSERT_EQ((*it).real(), 1.0f); + TEST_ASSERT_EQ((*it).imag(), 2.0f); + ++it; + TEST_ASSERT_EQ((*it).real(), 3.0f); + TEST_ASSERT_EQ((*it).imag(), 4.0f); + + it++; + TEST_ASSERT_EQ((*it).real(), 5.0f); + TEST_ASSERT_EQ((*it).imag(), 6.0f); + + it += 1; + TEST_ASSERT_EQ(it->real(), 7.0f); + TEST_ASSERT_EQ(it->imag(), 8.0f); +} +template +static void test_mem_ComplexViewConstIterator(const std::string& testName, TView view) +{ + test_mem_ComplexViewConstIterator(testName, view.begin(), view.end()); + + using cxvalue_t = typename decltype(view.begin())::value_type; // i.e., std::complex + cxvalue_t cx{1.0f, 2.0f}; + for (auto&& v : view) + { + TEST_ASSERT_EQ(v.real(), cx.real()); + TEST_ASSERT_EQ(v.imag(), cx.imag()); + + cx = cxvalue_t{cx.real() + 2.0f, cx.imag() + 2.0f}; + } +} + +TEST_CASE(testComplexViewFloatIterator) +{ + { + const auto view = mem::make_ComplexSpanView(cx_data()); + test_mem_ComplexViewConstIterator(testName, view); + } + + const std::vector reals{1, 3, 5, 7}; + const std::vector imags{2, 4, 6, 8}; + TEST_ASSERT_EQ(imags.size(), reals.size()); + { + const auto view = mem::make_ComplexSpansView(reals, imags); + test_mem_ComplexViewConstIterator(testName, view); + } } TEST_MAIN( TEST_CHECK(testVecOfRawPointers); TEST_CHECK(testVecOfSharedPointers); + + TEST_CHECK(testSpanCxFloat); + TEST_CHECK(testComplexViewFloat); + TEST_CHECK(testComplexViewFloatIterator); ) diff --git a/externals/coda-oss/modules/c++/mem/wscript b/externals/coda-oss/modules/c++/mem/wscript index 112f2eddef..044f80abb3 100644 --- a/externals/coda-oss/modules/c++/mem/wscript +++ b/externals/coda-oss/modules/c++/mem/wscript @@ -1,6 +1,6 @@ NAME = 'mem' VERSION = '1.0' -MODULE_DEPS = 'sys gsl std' +MODULE_DEPS = 'sys gsl coda_oss std' TEST_DEPS = 'cli std' UNITTEST_DEPS = 'std' diff --git a/externals/coda-oss/modules/c++/mt/CMakeLists.txt b/externals/coda-oss/modules/c++/mt/CMakeLists.txt index 4d2864f989..540c222472 100644 --- a/externals/coda-oss/modules/c++/mt/CMakeLists.txt +++ b/externals/coda-oss/modules/c++/mt/CMakeLists.txt @@ -7,7 +7,7 @@ coda_generate_module_config_header(${MODULE_NAME}) coda_add_module( ${MODULE_NAME} VERSION 1.1 - DEPS sys-c++ except-c++ math-c++ mem-c++ types-c++) + DEPS sys-c++ except-c++ math-c++ mem-c++ types-c++ std-c++) coda_add_tests( MODULE_NAME ${MODULE_NAME} diff --git a/externals/coda-oss/modules/c++/mt/include/mt/AbstractCPUAffinityInitializer.h b/externals/coda-oss/modules/c++/mt/include/mt/AbstractCPUAffinityInitializer.h index 677942a49f..b543bb8e9b 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/AbstractCPUAffinityInitializer.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/AbstractCPUAffinityInitializer.h @@ -44,9 +44,9 @@ class AbstractCPUAffinityInitializer * \returns a new thread initializer. In general, this should return * a different affinity initializer each time it is called. */ - mem::auto_ptr newThreadInitializer() + std::unique_ptr newThreadInitializer() { - return mem::auto_ptr( + return std::unique_ptr( newThreadInitializerImpl()); } diff --git a/externals/coda-oss/modules/c++/mt/include/mt/AbstractTiedThreadPool.h b/externals/coda-oss/modules/c++/mt/include/mt/AbstractTiedThreadPool.h index 8f697fd9ad..bf26339e40 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/AbstractTiedThreadPool.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/AbstractTiedThreadPool.h @@ -48,10 +48,10 @@ class AbstractTiedThreadPool : public AbstractThreadPool mAffinityInit = affinityInit; } - virtual mem::auto_ptr + virtual std::unique_ptr getCPUAffinityThreadInitializer() { - mem::auto_ptr threadInit(nullptr); + std::unique_ptr threadInit(nullptr); // If we were passed a schematic // for initializing thread affinity... @@ -71,18 +71,7 @@ class AbstractTiedThreadPool : public AbstractThreadPool protected: virtual mt::TiedWorkerThread* newTiedWorker(mt::RequestQueue* q, -#if CODA_OSS_cpp17 std::unique_ptr&& init) = 0; -#else - mem::auto_ptr init) = 0; - virtual mt::TiedWorkerThread* - newTiedWorker(mt::RequestQueue* q, - std::unique_ptr&& init) { - mem::auto_ptr init_(init.release()); - return newTiedWorker(q, init_); - } -#endif - private: CPUAffinityInitializer* mAffinityInit; diff --git a/externals/coda-oss/modules/c++/mt/include/mt/Algorithm.h b/externals/coda-oss/modules/c++/mt/include/mt/Algorithm.h index 4ef5b5ec99..ba17f39f51 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/Algorithm.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/Algorithm.h @@ -30,41 +30,12 @@ namespace mt { -namespace details -{ - template - inline OutputIt transform_async(const InputIt first1, const InputIt last1, OutputIt d_first, TFunc f, - typename std::iterator_traits::difference_type cutoff, std::launch policy) - { - // https://en.cppreference.com/w/cpp/thread/async - const auto len = std::distance(first1, last1); - if (len < cutoff) - { - return std::transform(first1, last1, d_first, f); - } - - const auto mid1 = first1 + len / 2; - const auto d_mid = d_first + len / 2; - auto handle = std::async(policy, transform_async, mid1, last1, d_mid, f, cutoff, policy); - details::transform_async(first1, mid1, d_first, f, cutoff, policy); - return handle.get(); - } -} -template -inline OutputIt transform_async(const InputIt first1, const InputIt last1, OutputIt d_first, TFunc f, - typename std::iterator_traits::difference_type cutoff, std::launch policy) -{ - // details::... eliminates the overload - return details::transform_async(first1, last1, d_first, f, cutoff, policy); -} -template -inline OutputIt transform_async(const InputIt first1, const InputIt last1, OutputIt d_first, TFunc f, - typename std::iterator_traits::difference_type cutoff) -{ - const std::launch policy = std::launch::deferred | std::launch::async; - return transform_async(first1, last1, d_first, f, cutoff, policy); +// There was a transform_async() utility here, but I removed it. +// +// First of all, C++11's std::async() is now (in 2023) thought of as maybe a +// bit "half baked," and perhaps shouldn't be emulated. Then, C++17 added +// parallel algorithms which might be a better ... although we're still at C++14. } -} #endif // CODA_OSS_mt_Algorithm_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/mt/include/mt/BalancedRunnable1D.h b/externals/coda-oss/modules/c++/mt/include/mt/BalancedRunnable1D.h index dc2248df01..c7af782fb7 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/BalancedRunnable1D.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/BalancedRunnable1D.h @@ -74,7 +74,7 @@ class BalancedRunnable1D : public sys::Runnable { } - virtual void run() + virtual void run() override { while (true) { diff --git a/externals/coda-oss/modules/c++/mt/include/mt/BasicThreadPool.h b/externals/coda-oss/modules/c++/mt/include/mt/BasicThreadPool.h index e48d035490..112a113c8a 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/BasicThreadPool.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/BasicThreadPool.h @@ -24,7 +24,7 @@ #define __MT_BASIC_THREAD_POOL_H__ #include -#include +#include #include "except/Exception.h" #include "sys/Mutex.h" @@ -139,7 +139,7 @@ struct BasicThreadPool // For instance, you may want an IterativeRequestHandler virtual RequestHandler_T *newRequestHandler() { - return coda_oss::make_unique(&mHandlerQueue).release(); + return std::make_unique(&mHandlerQueue).release(); } void destroy() diff --git a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializer.h b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializer.h index 2fe3eb3b63..88737cd9a5 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializer.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializer.h @@ -26,7 +26,7 @@ #include -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include namespace mt { diff --git a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializerLinux.h b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializerLinux.h index e8f428faa5..cde51eb615 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializerLinux.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializerLinux.h @@ -39,7 +39,7 @@ namespace mt { struct AbstractNextCPUProviderLinux { - virtual mem::auto_ptr nextCPU() = 0; + virtual std::unique_ptr nextCPU() = 0; }; /*! @@ -69,9 +69,9 @@ class CPUAffinityInitializerLinux : public AbstractCPUAffinityInitializer * \returns a new CPUAffinityInitializerLinux for the next available * CPU that can be bound to. */ - mem::auto_ptr newThreadInitializer() + std::unique_ptr newThreadInitializer() { - return mem::auto_ptr( + return std::unique_ptr( newThreadInitializerImpl()); } diff --git a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializerWin32.h b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializerWin32.h index 52c7ceec7e..be84e15e8e 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializerWin32.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityInitializerWin32.h @@ -24,7 +24,7 @@ #ifndef __MT_CPU_AFFINITY_INITIALIZER_WIN32_H__ #define __MT_CPU_AFFINITY_INITIALIZER_WIN32_H__ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include #include @@ -44,9 +44,9 @@ class CPUAffinityInitializerWin32 : public AbstractCPUAffinityInitializer * \todo Not yet implemented * \returns NULL */ - mem::auto_ptr newThreadInitializer() + std::unique_ptr newThreadInitializer() { - return mem::auto_ptr( + return std::unique_ptr( newThreadInitializerImpl()); } diff --git a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializer.h b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializer.h index fa69259736..4ffb36e081 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializer.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializer.h @@ -26,7 +26,7 @@ #include -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include namespace mt { diff --git a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializerLinux.h b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializerLinux.h index d60862dbd9..ea3349939a 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializerLinux.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializerLinux.h @@ -52,17 +52,13 @@ class CPUAffinityThreadInitializerLinux : */ CPUAffinityThreadInitializerLinux( std::unique_ptr&& cpu); -#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - CPUAffinityThreadInitializerLinux( - mem::auto_ptr cpu); -#endif /*! * Attempt to bind to the affinity mask given during construction * * \throws if setting the thread affinity fails */ - virtual void initialize(); + virtual void initialize() override; private: std::unique_ptr mCPU; diff --git a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializerWin32.h b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializerWin32.h index ef45f42deb..132f31cf8b 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializerWin32.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/CPUAffinityThreadInitializerWin32.h @@ -24,7 +24,7 @@ #ifndef __MT_CPU_AFFINITY_THREAD_INITIALIZER_WIN32_H__ #define __MT_CPU_AFFINITY_THREAD_INITIALIZER_WIN32_H__ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include diff --git a/externals/coda-oss/modules/c++/mt/include/mt/CriticalSection.h b/externals/coda-oss/modules/c++/mt/include/mt/CriticalSection.h index b4aeb42c0d..2aa60dfe9a 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/CriticalSection.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/CriticalSection.h @@ -21,8 +21,9 @@ */ -#ifndef __MT_CRITICAL_SECTION_H__ -#define __MT_CRITICAL_SECTION_H__ +#ifndef CODA_OSS_mt_CriticalSection_h_INCLUDED_ +#define CODA_OSS_mt_CriticalSection_h_INCLUDED_ +#pragma once /*! * \file @@ -60,6 +61,7 @@ template struct CriticalSection { manualLock(); } + CriticalSection(T& mutex) : CriticalSection(&mutex){} //! Destructor. Unlock the mutex (if necessary). ~CriticalSection() @@ -100,4 +102,4 @@ template struct CriticalSection }; } -#endif +#endif // CODA_OSS_mt_CriticalSection_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/mt/include/mt/GenerationThreadPool.h b/externals/coda-oss/modules/c++/mt/include/mt/GenerationThreadPool.h index f22b6be4b0..6a2e53d2fb 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/GenerationThreadPool.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/GenerationThreadPool.h @@ -63,7 +63,7 @@ namespace mt // If we have a thread initializer, tie down our handler to a CPU virtual void initialize(); - virtual void run(); + virtual void run() override; }; class CODA_OSS_API GenerationThreadPool : public BasicThreadPool @@ -83,7 +83,7 @@ namespace mt GenerationThreadPool(const GenerationThreadPool&) = delete; GenerationThreadPool& operator=(const GenerationThreadPool&) = delete; - virtual TiedRequestHandler *newRequestHandler() + virtual TiedRequestHandler *newRequestHandler() override { TiedRequestHandler* handler = BasicThreadPool::newRequestHandler(); assert(handler != nullptr); diff --git a/externals/coda-oss/modules/c++/mt/include/mt/GenericRequestHandler.h b/externals/coda-oss/modules/c++/mt/include/mt/GenericRequestHandler.h index 0382594de5..5483cc4cd7 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/GenericRequestHandler.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/GenericRequestHandler.h @@ -55,7 +55,7 @@ class GenericRequestHandler : public sys::Runnable /*! * Dequeue and run requests in a non-terminating loop */ - virtual void run(); + virtual void run() override; protected: RunnableRequestQueue *mRequest; diff --git a/externals/coda-oss/modules/c++/mt/include/mt/Runnable1D.h b/externals/coda-oss/modules/c++/mt/include/mt/Runnable1D.h index bb73e94bfc..406f9903f1 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/Runnable1D.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/Runnable1D.h @@ -25,7 +25,7 @@ class Runnable1D : public sys::Runnable { } - virtual void run() + virtual void run() override { for (size_t ii = mStartElement; ii < mEndElement; ++ii) { diff --git a/externals/coda-oss/modules/c++/mt/include/mt/Singleton.h b/externals/coda-oss/modules/c++/mt/include/mt/Singleton.h index a9829f5491..2e8d5ec26a 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/Singleton.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/Singleton.h @@ -25,6 +25,7 @@ #define __MT_SINGLETON_H__ #include +#include #include #include @@ -139,7 +140,7 @@ T& Singleton::getInstance() std::lock_guard obtainLock(mMutex); if (mInstance == nullptr) { - mInstance = coda_oss::make_unique().release(); //create the instance + mInstance = std::make_unique().release(); //create the instance SingletonAutoDestroyer::registerAtExit(destroy); } } diff --git a/externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h b/externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h index 745aff022e..e12cbf8a9b 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h @@ -84,9 +84,6 @@ struct CODA_OSS_API ThreadGroup * \param runnable auto_ptr to sys::Runnable */ void createThread(std::unique_ptr&& runnable); - #if CODA_OSS_autoptr_is_std - void createThread(mem::auto_ptr runnable); - #endif /*! * Waits for all threads to complete. @@ -138,7 +135,7 @@ struct CODA_OSS_API ThreadGroup * the internal CPUAffinityInitializer. If no initializer * was created, will return NULL. */ - mem::auto_ptr getNextInitializer(); + std::unique_ptr getNextInitializer(); /*! * \class ThreadGroupRunnable @@ -164,13 +161,6 @@ struct CODA_OSS_API ThreadGroup mt::ThreadGroup& parentThreadGroup, std::unique_ptr&& threadInit = std::unique_ptr(nullptr)); - #if CODA_OSS_autoptr_is_std - ThreadGroupRunnable( - mem::auto_ptr runnable, - mt::ThreadGroup& parentThreadGroup, - mem::auto_ptr threadInit = - mem::auto_ptr(nullptr)); - #endif ThreadGroupRunnable(const ThreadGroupRunnable&) = delete; ThreadGroupRunnable& operator=(const ThreadGroupRunnable&) = delete; @@ -178,7 +168,7 @@ struct CODA_OSS_API ThreadGroup /*! * Call run() on the Runnable passed to createThread */ - virtual void run(); + virtual void run() override; private: std::unique_ptr mRunnable; diff --git a/externals/coda-oss/modules/c++/mt/include/mt/ThreadedByteSwap.h b/externals/coda-oss/modules/c++/mt/include/mt/ThreadedByteSwap.h new file mode 100644 index 0000000000..0b97e1171d --- /dev/null +++ b/externals/coda-oss/modules/c++/mt/include/mt/ThreadedByteSwap.h @@ -0,0 +1,90 @@ +#ifndef CODA_OSS_mt_ThreadedByteSwap_h_INCLUDED_ +#define CODA_OSS_mt_ThreadedByteSwap_h_INCLUDED_ +#pragma once + +#include + +#include "sys/ByteSwap.h" + +#include "ThreadPlanner.h" +#include "ThreadGroup.h" + +namespace mt +{ +/* + * Threaded byte-swapping + * + * \param buffer Buffer to swap (contents will be overridden) + * \param elemSize Size of each element in 'buffer' + * \param numElements Number of elements in 'buffer' + * \param numThreads Number of threads to use for byte-swapping + */ +inline void threadedByteSwap(void* buffer, size_t elemSize, size_t numElements, size_t numThreads) +{ + if (numThreads <= 1) + { + sys::byteSwap(buffer, elemSize, numElements); + } + else + { + mt::ThreadGroup threads; + const mt::ThreadPlanner planner(numElements, numThreads); + + size_t threadNum(0); + size_t startElement(0); + size_t numElementsThisThread(0); + while (planner.getThreadInfo(threadNum++, startElement, numElementsThisThread)) + { + auto thread = std::make_unique( + buffer, + elemSize, + startElement, + numElementsThisThread); + + threads.createThread(thread.release()); + } + threads.joinAll(); + } +} + +/* + * Threaded byte-swapping and copy + * + * \param buffer Buffer to swap + * \param elemSize Size of each element in 'buffer' + * \param numElements Number of elements in 'buffer' + * \param numThreads Number of threads to use for byte-swapping + * \param outputBuffer buffer to write into + */ +inline void threadedByteSwap(const void* buffer, size_t elemSize, size_t numElements, size_t numThreads, void* outputBuffer) +{ + if (numThreads <= 1) + { + sys::byteSwap(buffer, elemSize, numElements, outputBuffer); + } + else + { + mt::ThreadGroup threads; + const mt::ThreadPlanner planner(numElements, numThreads); + + size_t threadNum(0); + size_t startElement(0); + size_t numElementsThisThread(0); + while (planner.getThreadInfo(threadNum++, startElement, numElementsThisThread)) + { + auto thread = std::make_unique( + buffer, + elemSize, + startElement, + numElementsThisThread, + outputBuffer); + + threads.createThread(thread.release()); + } + threads.joinAll(); + + } +} +} + +#endif // CODA_OSS_mt_ThreadedByteSwap_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/mt/include/mt/TiedWorkerThread.h b/externals/coda-oss/modules/c++/mt/include/mt/TiedWorkerThread.h index eb73bd111a..86c8a084b5 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/TiedWorkerThread.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/TiedWorkerThread.h @@ -46,15 +46,6 @@ class TiedWorkerThread : public mt::WorkerThread mCPUAffinityInit(std::move(cpuAffinityInit)) { } -#if !CODA_OSS_cpp17 - TiedWorkerThread( - mt::RequestQueue* requestQueue, - mem::auto_ptr cpuAffinityInit = - mem::auto_ptr(nullptr)) : - TiedWorkerThread(requestQueue, std::unique_ptr(cpuAffinityInit.release())) - { - } -#endif virtual void initialize() { diff --git a/externals/coda-oss/modules/c++/mt/include/mt/WorkSharingBalancedRunnable1D.h b/externals/coda-oss/modules/c++/mt/include/mt/WorkSharingBalancedRunnable1D.h index fa4af345c3..dd8e4553de 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/WorkSharingBalancedRunnable1D.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/WorkSharingBalancedRunnable1D.h @@ -99,7 +99,7 @@ struct WorkSharingBalancedRunnable1D : public sys::Runnable WorkSharingBalancedRunnable1D(WorkSharingBalancedRunnable1D&&) = default; WorkSharingBalancedRunnable1D& operator=(WorkSharingBalancedRunnable1D&&) = delete; - virtual void run() + virtual void run() override { // Operate over this thread's range processElements(mCounter, mEndElement); @@ -247,7 +247,8 @@ void runWorkSharingBalanced1D(size_t numElements, { threadPoolEndElements.push_back(numElements); - threadPoolCounters.push_back(std::make_shared(0)); + constexpr size_t zero = 0; + threadPoolCounters.push_back(std::make_shared(zero)); const types::Range range(0, numElements); WorkSharingBalancedRunnable1D(range, diff --git a/externals/coda-oss/modules/c++/mt/include/mt/WorkerThread.h b/externals/coda-oss/modules/c++/mt/include/mt/WorkerThread.h index 0cf0ce2dd4..4e865d0fff 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/WorkerThread.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/WorkerThread.h @@ -60,7 +60,7 @@ template class WorkerThread : public sys::Thread /*! * Run this request */ - virtual void run() + virtual void run() override { initialize(); while (!isDone()) diff --git a/externals/coda-oss/modules/c++/mt/source/CPUAffinityInitializerLinux.cpp b/externals/coda-oss/modules/c++/mt/source/CPUAffinityInitializerLinux.cpp index fec4ad2562..01181be6b7 100644 --- a/externals/coda-oss/modules/c++/mt/source/CPUAffinityInitializerLinux.cpp +++ b/externals/coda-oss/modules/c++/mt/source/CPUAffinityInitializerLinux.cpp @@ -60,7 +60,7 @@ class AvailableCPUProvider : public AbstractNextCPUProviderLinux { } - virtual mem::auto_ptr nextCPU() + virtual std::unique_ptr nextCPU() override { if (mNextCPUIndex >= mCPUs.size()) { @@ -69,9 +69,9 @@ class AvailableCPUProvider : public AbstractNextCPUProviderLinux throw except::Exception(Ctxt(msg.str())); } - mem::auto_ptr mask(new sys::ScopedCPUMaskUnix()); + std::unique_ptr mask(new sys::ScopedCPUMaskUnix()); CPU_SET_S(mCPUs.at(mNextCPUIndex++), mask->getSize(), mask->getMask()); - return mem::auto_ptr(mask.release()); + return std::unique_ptr(mask.release()); } private: @@ -87,11 +87,11 @@ class OffsetCPUProvider : public AbstractNextCPUProviderLinux { } - virtual mem::auto_ptr nextCPU() + virtual std::unique_ptr nextCPU() override { - mem::auto_ptr mask(new sys::ScopedCPUMaskUnix()); + std::unique_ptr mask(new sys::ScopedCPUMaskUnix()); CPU_SET_S(mNextCPU++, mask->getSize(), mask->getMask()); - return mem::auto_ptr(mask.release()); + return std::unique_ptr(mask.release()); } private: diff --git a/externals/coda-oss/modules/c++/mt/source/CPUAffinityThreadInitializerLinux.cpp b/externals/coda-oss/modules/c++/mt/source/CPUAffinityThreadInitializerLinux.cpp index 30cc43c700..ab0db6dffa 100644 --- a/externals/coda-oss/modules/c++/mt/source/CPUAffinityThreadInitializerLinux.cpp +++ b/externals/coda-oss/modules/c++/mt/source/CPUAffinityThreadInitializerLinux.cpp @@ -40,13 +40,6 @@ CPUAffinityThreadInitializerLinux::CPUAffinityThreadInitializerLinux( mCPU(std::move(cpu)) { } -#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 -CPUAffinityThreadInitializerLinux::CPUAffinityThreadInitializerLinux( - mem::auto_ptr cpu) : - CPUAffinityThreadInitializerLinux(std::unique_ptr(cpu.release())) -{ -} -#endif void CPUAffinityThreadInitializerLinux::initialize() { diff --git a/externals/coda-oss/modules/c++/mt/source/ThreadGroup.cpp b/externals/coda-oss/modules/c++/mt/source/ThreadGroup.cpp index d6f25c6985..85bf054c58 100644 --- a/externals/coda-oss/modules/c++/mt/source/ThreadGroup.cpp +++ b/externals/coda-oss/modules/c++/mt/source/ThreadGroup.cpp @@ -71,12 +71,6 @@ void ThreadGroup::createThread(std::unique_ptr&& runnable) mThreads.push_back(thread); thread->start(); } -#if CODA_OSS_autoptr_is_std -void ThreadGroup::createThread(mem::auto_ptr runnable) -{ - createThread(std::unique_ptr(runnable.release())); -} -#endif void ThreadGroup::joinAll() { @@ -121,7 +115,7 @@ void ThreadGroup::addException(const except::Exception& ex) } } -mem::auto_ptr ThreadGroup::getNextInitializer() +std::unique_ptr ThreadGroup::getNextInitializer() { std::unique_ptr threadInit; if (mAffinityInit.get()) @@ -129,7 +123,7 @@ mem::auto_ptr ThreadGroup::getNextInitializer() threadInit = mAffinityInit->newThreadInitializer(); } - return mem::auto_ptr(threadInit.release()); + return std::unique_ptr(threadInit.release()); } ThreadGroup::ThreadGroupRunnable::ThreadGroupRunnable( @@ -141,17 +135,6 @@ ThreadGroup::ThreadGroupRunnable::ThreadGroupRunnable( mCPUInit(std::move(threadInit)) { } -#if CODA_OSS_autoptr_is_std -ThreadGroup::ThreadGroupRunnable::ThreadGroupRunnable( - mem::auto_ptr runnable, - ThreadGroup& parentThreadGroup, - mem::auto_ptr threadInit) : - ThreadGroupRunnable(std::unique_ptr(runnable.release()), - parentThreadGroup, - std::unique_ptr(threadInit.release())) -{ -} -#endif void ThreadGroup::ThreadGroupRunnable::run() { diff --git a/externals/coda-oss/modules/c++/mt/tests/BasicThreadPoolTest.cpp b/externals/coda-oss/modules/c++/mt/tests/BasicThreadPoolTest.cpp index aece0cd81b..56b9903012 100644 --- a/externals/coda-oss/modules/c++/mt/tests/BasicThreadPoolTest.cpp +++ b/externals/coda-oss/modules/c++/mt/tests/BasicThreadPoolTest.cpp @@ -51,7 +51,7 @@ class MyRunTask : public Runnable { } - virtual void run() + virtual void run() override { sleep(TO_SLEEP); mSem.signal(); diff --git a/externals/coda-oss/modules/c++/mt/tests/GenerationThreadPoolTest.cpp b/externals/coda-oss/modules/c++/mt/tests/GenerationThreadPoolTest.cpp index 26b873c5de..498ab6f25a 100644 --- a/externals/coda-oss/modules/c++/mt/tests/GenerationThreadPoolTest.cpp +++ b/externals/coda-oss/modules/c++/mt/tests/GenerationThreadPoolTest.cpp @@ -50,7 +50,7 @@ class MyRunTask : public sys::Runnable { } - void run() + void run() override { sleep(TO_SLEEP); diff --git a/externals/coda-oss/modules/c++/mt/tests/MTSingletonTest.cpp b/externals/coda-oss/modules/c++/mt/tests/MTSingletonTest.cpp index 86405f3a03..beb1719e35 100644 --- a/externals/coda-oss/modules/c++/mt/tests/MTSingletonTest.cpp +++ b/externals/coda-oss/modules/c++/mt/tests/MTSingletonTest.cpp @@ -51,7 +51,7 @@ class StopsWhenEmpty : public GenericRequestHandler { } - void run() + void run() override { while (true) { @@ -101,7 +101,7 @@ class Thespian : public Runnable virtual ~Thespian() { } - void run() + void run() override { //__debugln__(FmtX("[%s]:", mName.c_str())); doLines(); @@ -122,7 +122,7 @@ class Soothsayer : public Thespian { } - void doLines() + void doLines() override { //__warning__("Beware the ides of March."); } @@ -138,7 +138,7 @@ class Calpurnia : public Thespian ~Calpurnia() { } - void doLines() + void doLines() override { //__warning__("Caesar, I never stood on ceremonies, Yet now they fright me. There is one within, 15 Besides the things that we have heard and seen, Recounts most horrid sights seen by the watch. A lioness hath whelped in the streets; And graves have yawn'd, and yielded up their dead; Fierce fiery warriors fought upon the clouds, 20 In ranks and squadrons and right form of war, Which drizzled blood upon the Capitol; The noise of battle hurtled in the air, Horses did neigh, and dying men did groan, And ghosts did shriek and squeal about the streets. 25 O Caesar! these things are beyond all use, And I do fear them."); } @@ -154,7 +154,7 @@ class Caesar : public Thespian ~Caesar() { } - void doLines() + void doLines() override { //__status__("Cowards die many times before their deaths; The valiant never taste of death but once. 35 Of all the wonders that I yet have heard. It seems to me most strange that men should fear; Seeing that death, a necessary end, Will come when it will come."); } @@ -172,7 +172,7 @@ class Brutus : public Thespian { } - virtual void doLines() + virtual void doLines() override { //__status__("Be patient till the last. Romans, countrymen, and lovers! hear me for my 15 cause, and be silent, that you may hear: believe me for mine honour, and have respect to mine honour, that you may believe: censure me in your wisdom, and awake your senses, that you may the better judge. If there be any in this assembly, any dear friend of 20 Caesar's, to him I say, that Brutus' love to Caesar was no less than his. If then that friend demand why Brutus rose against Caesar, this is my answer: --Not that I loved Caesar less, but that I loved Rome more. Had you rather Caesar were living and 25 die all slaves, than that Caesar were dead, to live all free men? As Caesar loved me, I weep for him; as he was fortunate, I rejoice at it; as he was valiant, I honour him: but, as he was ambitious, I slew him. There is tears for his love; joy for his 30 fortune; honour for his valour; and death for his ambition. Who is here so base that would be a bondman? If any, speak; for him have I offended. Who is here so rude that would not be a Roman? If any, speak; for him have I offended. Who is here so 35 vile that will not love his country? If any, speak; for him have I offended. I pause for a reply."); @@ -190,7 +190,7 @@ class Antony : public Thespian { } - void doLines() + void doLines() override { //__status__("Villains, you did not so, when your vile daggers Hack'd one another in the sides of Caesar: You show'd your teeth like apes, and fawn'd like hounds, 45 And bow'd like bondmen, kissing Caesar's feet; Whilst damned Casca, like a cur, behind Struck Caesar on the neck. O you flatterers!"); } @@ -207,7 +207,7 @@ class Octavius : public Thespian { } - void doLines() + void doLines() override { //__status__("According to his virtue let us use him, With all respect and rites of burial. Within my tent his bones to-night shall lie, 85 Most like a soldier, order'd honourably. So call the field to rest; and let's away, To part the glories of this happy day."); } diff --git a/externals/coda-oss/modules/c++/mt/tests/ThreadExceptionTest.cpp b/externals/coda-oss/modules/c++/mt/tests/ThreadExceptionTest.cpp index 189f12f275..381171aa78 100644 --- a/externals/coda-oss/modules/c++/mt/tests/ThreadExceptionTest.cpp +++ b/externals/coda-oss/modules/c++/mt/tests/ThreadExceptionTest.cpp @@ -29,7 +29,7 @@ class PrintChar : public sys::Runnable { } - virtual void run() + virtual void run() override { print(a); } @@ -38,7 +38,7 @@ class PrintChar : public sys::Runnable /*-- std::exception --*/ struct stdExcept: std::exception { - const char* what() const noexcept { return "std::exception in add"; } + const char* what() const noexcept override { return "std::exception in add"; } }; void add(sys::Uint32_T x, sys::Uint32_T y) @@ -61,7 +61,7 @@ class AddInts : public sys::Runnable { } - virtual void run() + virtual void run() override { add(x,y); } @@ -88,7 +88,7 @@ class ConcatStr: public sys::Runnable { } - virtual void run() + virtual void run() override { printConcat(x,y); } diff --git a/externals/coda-oss/modules/c++/mt/tests/ThreadGroupAffinityTest.cpp b/externals/coda-oss/modules/c++/mt/tests/ThreadGroupAffinityTest.cpp index 9d47da780b..32d3c63c01 100644 --- a/externals/coda-oss/modules/c++/mt/tests/ThreadGroupAffinityTest.cpp +++ b/externals/coda-oss/modules/c++/mt/tests/ThreadGroupAffinityTest.cpp @@ -43,7 +43,7 @@ class MyRunTask : public Runnable { } - virtual void run() + virtual void run() override { // Print diagnostics from inside the thread while(true) diff --git a/externals/coda-oss/modules/c++/mt/unittests/Runnable1DTest.cpp b/externals/coda-oss/modules/c++/mt/unittests/Runnable1DTest.cpp index 61ad49ae8f..7c4c5bb57a 100644 --- a/externals/coda-oss/modules/c++/mt/unittests/Runnable1DTest.cpp +++ b/externals/coda-oss/modules/c++/mt/unittests/Runnable1DTest.cpp @@ -69,6 +69,7 @@ TEST_CASE(DoRunnable1DTest) const AddOp op; std::cout << "Calling run1D\n"; mt::run1D(10, 16, op); + TEST_ASSERT_TRUE(true); // need to use hidden "testName" parameter } TEST_CASE(Runnable1DWithCopiesTest) @@ -79,33 +80,10 @@ TEST_CASE(Runnable1DWithCopiesTest) const LocalStorage op; std::cout << "Calling run1D\n"; mt::run1DWithCopies(47, 16, op); -} - -TEST_CASE(transform_async_test) -{ - const auto f = [&](const int& i) { return i * i; }; - - std::vector ints_(10000); - std::iota(ints_.begin(), ints_.end(), 1); - const auto& ints = ints_; - - std::vector results(ints.size()); - - results.back() = results.front(); - std::transform(ints.begin(), ints.end(), results.begin(), f); - TEST_ASSERT_EQ(results.back(), f(ints.back())); - - results.back() = results.front(); - mt::transform_async(ints.begin(), ints.end(), results.begin(), f, 1000); - TEST_ASSERT_EQ(results.back(), f(ints.back())); - - results.back() = results.front(); - mt::transform_async(ints.begin(), ints.end(), results.begin(), f, 1000, std::launch::async); - TEST_ASSERT_EQ(results.back(), f(ints.back())); + TEST_ASSERT_TRUE(true); // need to use hidden "testName" parameter } TEST_MAIN( TEST_CHECK(DoRunnable1DTest); TEST_CHECK(Runnable1DWithCopiesTest); - TEST_CHECK(transform_async_test); ) diff --git a/externals/coda-oss/modules/c++/mt/unittests/ThreadGroupTest.cpp b/externals/coda-oss/modules/c++/mt/unittests/ThreadGroupTest.cpp index 9622600560..09641ef551 100644 --- a/externals/coda-oss/modules/c++/mt/unittests/ThreadGroupTest.cpp +++ b/externals/coda-oss/modules/c++/mt/unittests/ThreadGroupTest.cpp @@ -41,7 +41,7 @@ struct MyRunTask final : public sys::Runnable (*num_deleted)++; } - virtual void run() + virtual void run() override { while (result == 1) result = *state; diff --git a/externals/coda-oss/modules/c++/mt/unittests/test_mt_byte_swap.cpp b/externals/coda-oss/modules/c++/mt/unittests/test_mt_byte_swap.cpp new file mode 100644 index 0000000000..d2099cf83b --- /dev/null +++ b/externals/coda-oss/modules/c++/mt/unittests/test_mt_byte_swap.cpp @@ -0,0 +1,72 @@ +/* ========================================================================= + * This file is part of mt-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2017, MDA Information Systems LLC + * + * sys-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include "TestCase.h" + +#include + +#include +#include // std::byte +#include + +#include + +static std::vector make_origValues(size_t NUM_PIXELS) +{ + ::srand(334); + + std::vector retval(NUM_PIXELS); + for (size_t ii = 0; ii < NUM_PIXELS; ++ii) + { + const auto value = static_cast(::rand()) / RAND_MAX * + std::numeric_limits::max(); + retval[ii] = static_cast(value); + } + return retval; +} + +TEST_CASE(testThreadedByteSwap) +{ + constexpr size_t NUM_PIXELS = 10000; + const auto origValues = make_origValues(NUM_PIXELS); + + constexpr size_t numThreads = 4; + + // Byte swap the old-fashioned way + auto values1(origValues); + mt::threadedByteSwap(values1.data(), sizeof(values1[0]), NUM_PIXELS, numThreads); + + // Byte swap into output buffer + std::vector swappedValues2(origValues.size()); + mt::threadedByteSwap(origValues.data(), sizeof(origValues[0]), NUM_PIXELS, numThreads, swappedValues2.data()); + + // Everything should match + for (size_t ii = 0; ii < NUM_PIXELS; ++ii) + { + TEST_ASSERT_EQ(values1[ii], swappedValues2[ii]); + } +} + +TEST_MAIN( + TEST_CHECK(testThreadedByteSwap); + ) + \ No newline at end of file diff --git a/externals/coda-oss/modules/c++/mt/wscript b/externals/coda-oss/modules/c++/mt/wscript index 271271a42a..42d2a241b5 100644 --- a/externals/coda-oss/modules/c++/mt/wscript +++ b/externals/coda-oss/modules/c++/mt/wscript @@ -1,7 +1,6 @@ NAME = 'mt' -MAINTAINER = 'jmrandol@users.sourceforge.net' VERSION = '1.1' -MODULE_DEPS = 'sys except math mem types' +MODULE_DEPS = 'sys except math mem types std' TEST_DEPS = 'cli' distclean = lambda p: None diff --git a/externals/coda-oss/modules/c++/net.ssl/include/net/ssl/SSLConnection.h b/externals/coda-oss/modules/c++/net.ssl/include/net/ssl/SSLConnection.h index 4dc34607b3..b9e9178353 100644 --- a/externals/coda-oss/modules/c++/net.ssl/include/net/ssl/SSLConnection.h +++ b/externals/coda-oss/modules/c++/net.ssl/include/net/ssl/SSLConnection.h @@ -69,12 +69,6 @@ class SSLConnection : public NetConnection SSL_CTX* ctx, bool serverAuth = false, const std::string& host = ""); - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - SSLConnection(mem::auto_ptr socket, - SSL_CTX * ctx, - bool serverAuth = false, - const std::string& host = ""); - #endif /*! * Destructor diff --git a/externals/coda-oss/modules/c++/net.ssl/include/net/ssl/SSLConnectionClientFactory.h b/externals/coda-oss/modules/c++/net.ssl/include/net/ssl/SSLConnectionClientFactory.h index 7bdb82f060..698d14e3ad 100644 --- a/externals/coda-oss/modules/c++/net.ssl/include/net/ssl/SSLConnectionClientFactory.h +++ b/externals/coda-oss/modules/c++/net.ssl/include/net/ssl/SSLConnectionClientFactory.h @@ -100,10 +100,7 @@ class SSLConnectionClientFactory : public NetConnectionClientFactory * \param toServer The socket for the new connection * \return A new SSLConnection */ - virtual NetConnection* newConnection(std::unique_ptr&& toServer); - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - virtual NetConnection* newConnection(mem::auto_ptr toServer); - #endif + virtual NetConnection* newConnection(std::unique_ptr&& toServer) override; private: # if defined(USE_OPENSSL) diff --git a/externals/coda-oss/modules/c++/net.ssl/source/SSLConnection.cpp b/externals/coda-oss/modules/c++/net.ssl/source/SSLConnection.cpp index 9420d7d8d5..e0f37d1e70 100644 --- a/externals/coda-oss/modules/c++/net.ssl/source/SSLConnection.cpp +++ b/externals/coda-oss/modules/c++/net.ssl/source/SSLConnection.cpp @@ -42,15 +42,6 @@ net::ssl::SSLConnection::SSLConnection(std::unique_ptr&& socket, setupSocket(host); } -#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 -net::ssl::SSLConnection::SSLConnection(mem::auto_ptr socket, - SSL_CTX * ctx, - bool serverAuth, - const std::string& host) : - SSLConnection(std::unique_ptr(socket.release()), ctx, serverAuth, host) -{ -} -#endif net::ssl::SSLConnection::~SSLConnection() { diff --git a/externals/coda-oss/modules/c++/net.ssl/source/SSLConnectionClientFactory.cpp b/externals/coda-oss/modules/c++/net.ssl/source/SSLConnectionClientFactory.cpp index 6714192d3c..c3cefdd410 100644 --- a/externals/coda-oss/modules/c++/net.ssl/source/SSLConnectionClientFactory.cpp +++ b/externals/coda-oss/modules/c++/net.ssl/source/SSLConnectionClientFactory.cpp @@ -111,9 +111,3 @@ net::NetConnection* net::ssl::SSLConnectionClientFactory::newConnection( return (new net::NetConnection(std::move(toServer))); #endif } -#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 -net::NetConnection * net::ssl::SSLConnectionClientFactory::newConnection(mem::auto_ptr toServer) -{ - return newConnection(std::unique_ptr(toServer.release())); -} -#endif diff --git a/externals/coda-oss/modules/c++/net/include/net/ClientSocketFactory.h b/externals/coda-oss/modules/c++/net/include/net/ClientSocketFactory.h index fee2626814..237d86c764 100644 --- a/externals/coda-oss/modules/c++/net/include/net/ClientSocketFactory.h +++ b/externals/coda-oss/modules/c++/net/include/net/ClientSocketFactory.h @@ -81,9 +81,9 @@ class ClientSocketFactory * * \return A socket */ - mem::auto_ptr create(const SocketAddress& address) + std::unique_ptr create(const SocketAddress& address) { - mem::auto_ptr s(new Socket(mProto)); + std::unique_ptr s(new Socket(mProto)); setOptions(*s); @@ -134,7 +134,7 @@ class UDPClientSocketFactory : public ClientSocketFactory * Sets SO_BROADCAST socket option. * \param s The socket */ - virtual void setOptions(Socket& s) + virtual void setOptions(Socket& s) override { // Make sure we're set up for broadcasting if necessary int on = 1; diff --git a/externals/coda-oss/modules/c++/net/include/net/Daemon.h b/externals/coda-oss/modules/c++/net/include/net/Daemon.h index 61f3ef53ec..8c27d3ebf4 100644 --- a/externals/coda-oss/modules/c++/net/include/net/Daemon.h +++ b/externals/coda-oss/modules/c++/net/include/net/Daemon.h @@ -1,7 +1,7 @@ #ifndef __NET_DAEMON_H__ #define __NET_DAEMON_H__ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # include "net/DaemonWin32.h" namespace net { diff --git a/externals/coda-oss/modules/c++/net/include/net/DaemonUnix.h b/externals/coda-oss/modules/c++/net/include/net/DaemonUnix.h index 2e584c4693..94039fa9cb 100644 --- a/externals/coda-oss/modules/c++/net/include/net/DaemonUnix.h +++ b/externals/coda-oss/modules/c++/net/include/net/DaemonUnix.h @@ -1,7 +1,7 @@ #ifndef __NET_DAEMON_UNIX_H__ #define __NET_DAEMON_UNIX_H__ -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include "net/DaemonInterface.h" #include @@ -21,29 +21,29 @@ class DaemonUnix : public DaemonInterface virtual ~DaemonUnix(); //! Start the daemon - void start(); + void start() override; //! Stop the daemon specified in pidfile - void stop(); + void stop() override; //! Stop the daemon specified in pidfile and start a new one - void restart(); + void restart() override; //! Parse and execute command line option (start/stop/restart) - void daemonize(int& argc, char**& argv); + void daemonize(int& argc, char**& argv) override; //! Set pidfile (file for locking application to single occurance). - void setPidfile(const std::string& pidfile); + void setPidfile(const std::string& pidfile) override; //! Get pidfile. - std::string getPidfile() const { return mPidfile; } + std::string getPidfile() const override { return mPidfile; } //! Set tracefile (file to redirect stdout and stderr). - void setTracefile(const std::string& tracefile); + void setTracefile(const std::string& tracefile) override; //! Get tracefile. - std::string getTracefile() const { return mTracefile; } + std::string getTracefile() const override { return mTracefile; } protected: std::string mPidfile; diff --git a/externals/coda-oss/modules/c++/net/include/net/DaemonWin32.h b/externals/coda-oss/modules/c++/net/include/net/DaemonWin32.h index d4273d71f1..27b1ff768b 100644 --- a/externals/coda-oss/modules/c++/net/include/net/DaemonWin32.h +++ b/externals/coda-oss/modules/c++/net/include/net/DaemonWin32.h @@ -1,7 +1,7 @@ #ifndef __NET_DAEMON_WIN32_H__ #define __NET_DAEMON_WIN32_H__ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include "net/DaemonInterface.h" #include diff --git a/externals/coda-oss/modules/c++/net/include/net/NetConnection.h b/externals/coda-oss/modules/c++/net/include/net/NetConnection.h index 1e10ed0dc1..3cdf6b535d 100644 --- a/externals/coda-oss/modules/c++/net/include/net/NetConnection.h +++ b/externals/coda-oss/modules/c++/net/include/net/NetConnection.h @@ -64,10 +64,6 @@ class NetConnection : public io::BidirectionalStream //! we own the ptr after this transaction NetConnection(std::unique_ptr&& socket) : mSocket(socket.release()) {} - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - NetConnection(mem::auto_ptr socket) : mSocket(socket.release()) - {} - #endif /*! * Copy constructor @@ -120,7 +116,7 @@ class NetConnection : public io::BidirectionalStream * Close a connection. This releases the writers/readers and closes * the handle. */ - void close() + void close() override { mSocket->close(); } @@ -142,7 +138,7 @@ class NetConnection : public io::BidirectionalStream * \param len The length of the byte array to write to the stream * \throw IOException */ - virtual void write(const void* buffer, size_t len); + virtual void write(const void* buffer, size_t len) override; using io::BidirectionalStream::read; using io::BidirectionalStream::write; @@ -155,7 +151,7 @@ class NetConnection : public io::BidirectionalStream * \throw IOException * \return The number of bytes read, or -1 if eof */ - virtual sys::SSize_T readImpl(void* buffer, size_t len); + virtual sys::SSize_T readImpl(void* buffer, size_t len) override; //! The socket std::shared_ptr mSocket; diff --git a/externals/coda-oss/modules/c++/net/include/net/NetConnectionClientFactory.h b/externals/coda-oss/modules/c++/net/include/net/NetConnectionClientFactory.h index e70cfa0d33..791b20f7b2 100644 --- a/externals/coda-oss/modules/c++/net/include/net/NetConnectionClientFactory.h +++ b/externals/coda-oss/modules/c++/net/include/net/NetConnectionClientFactory.h @@ -84,9 +84,6 @@ class NetConnectionClientFactory * */ virtual NetConnection* newConnection(std::unique_ptr&& toServer); - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - virtual NetConnection* newConnection(mem::auto_ptr toServer); - #endif /*! * Destroy a spawned connection. * \param connection The connection to destroy diff --git a/externals/coda-oss/modules/c++/net/include/net/NetConnectionServer.h b/externals/coda-oss/modules/c++/net/include/net/NetConnectionServer.h index e44dd50fbb..debc58d32c 100644 --- a/externals/coda-oss/modules/c++/net/include/net/NetConnectionServer.h +++ b/externals/coda-oss/modules/c++/net/include/net/NetConnectionServer.h @@ -104,9 +104,9 @@ class NetConnectionServer //! The amount of backlog int mBacklog; //! The socket we are listening on - mem::auto_ptr mSocket; + std::unique_ptr mSocket; - mem::auto_ptr mAllocStrategy; + std::unique_ptr mAllocStrategy; }; } diff --git a/externals/coda-oss/modules/c++/net/include/net/PerRequestThreadAllocStrategy.h b/externals/coda-oss/modules/c++/net/include/net/PerRequestThreadAllocStrategy.h index f555d6e3b8..c02cb530bb 100644 --- a/externals/coda-oss/modules/c++/net/include/net/PerRequestThreadAllocStrategy.h +++ b/externals/coda-oss/modules/c++/net/include/net/PerRequestThreadAllocStrategy.h @@ -68,7 +68,7 @@ class RequestHandlerThread : public sys::Thread * Overloaded run method for handling a connection. * */ - void run() + void run() override { (*mRequestHandler)(mConnection); delete mRequestHandler; @@ -94,7 +94,7 @@ class PerRequestThreadAllocStrategy : public AllocStrategy ~PerRequestThreadAllocStrategy() {} - void initialize() + void initialize() override { } @@ -103,7 +103,7 @@ class PerRequestThreadAllocStrategy : public AllocStrategy * * \param conn The network connection */ - void handleConnection(NetConnection* conn); + void handleConnection(NetConnection* conn) override; }; /* class ThreadPoolAllocStrategy : public AllocStrategy */ diff --git a/externals/coda-oss/modules/c++/net/include/net/RequestHandler.h b/externals/coda-oss/modules/c++/net/include/net/RequestHandler.h index 3ef3795962..8859f5d98a 100644 --- a/externals/coda-oss/modules/c++/net/include/net/RequestHandler.h +++ b/externals/coda-oss/modules/c++/net/include/net/RequestHandler.h @@ -79,7 +79,7 @@ template class DefaultRequestHandlerFactory: public Reque virtual ~DefaultRequestHandlerFactory() { } - net::RequestHandler* create() + net::RequestHandler* create() override { return new ReqHandler_T(); } diff --git a/externals/coda-oss/modules/c++/net/include/net/ServerSocketFactory.h b/externals/coda-oss/modules/c++/net/include/net/ServerSocketFactory.h index 166bb41e0e..3074d37647 100644 --- a/externals/coda-oss/modules/c++/net/include/net/ServerSocketFactory.h +++ b/externals/coda-oss/modules/c++/net/include/net/ServerSocketFactory.h @@ -82,9 +82,9 @@ class ServerSocketFactory * \param address Address to establish the socket for * \return The created & bound socket */ - virtual mem::auto_ptr create(const SocketAddress& address) + virtual std::unique_ptr create(const SocketAddress& address) { - mem::auto_ptr s(new Socket(mProto)); + std::unique_ptr s(new Socket(mProto)); // Bind to this address s->bind(address); @@ -127,9 +127,9 @@ class UDPServerSocketFactory : public ServerSocketFactory * * \return The produced socket */ - virtual mem::auto_ptr create(const SocketAddress& address) + virtual std::unique_ptr create(const SocketAddress& address) override { - mem::auto_ptr s(new Socket(mProto)); + std::unique_ptr s(new Socket(mProto)); // Make sure we're set up for broadcasting if necessary int on = 1; @@ -185,9 +185,9 @@ class TCPServerSocketFactory : ServerSocketFactory * listen(). * */ - virtual mem::auto_ptr create(const SocketAddress& address) + virtual std::unique_ptr create(const SocketAddress& address) override { - mem::auto_ptr s(new Socket(mProto)); + std::unique_ptr s(new Socket(mProto)); // Reuse socket address (important for most TCP apps) int on = 1; diff --git a/externals/coda-oss/modules/c++/net/include/net/SingleThreadedAllocStrategy.h b/externals/coda-oss/modules/c++/net/include/net/SingleThreadedAllocStrategy.h index ac16fafb75..4a1314f129 100644 --- a/externals/coda-oss/modules/c++/net/include/net/SingleThreadedAllocStrategy.h +++ b/externals/coda-oss/modules/c++/net/include/net/SingleThreadedAllocStrategy.h @@ -58,7 +58,7 @@ class SingleThreadedAllocStrategy: public AllocStrategy * Set the auto ptr. * */ - void initialize() + void initialize() override { mHandler = mRequestHandlerFactory->create(); } @@ -68,7 +68,7 @@ class SingleThreadedAllocStrategy: public AllocStrategy * * \param conn The network connection */ - void handleConnection(net::NetConnection* conn) + void handleConnection(net::NetConnection* conn) override { (*mHandler)(conn); } diff --git a/externals/coda-oss/modules/c++/net/include/net/Socket.h b/externals/coda-oss/modules/c++/net/include/net/Socket.h index 1ce687daeb..7d75eae466 100644 --- a/externals/coda-oss/modules/c++/net/include/net/Socket.h +++ b/externals/coda-oss/modules/c++/net/include/net/Socket.h @@ -141,7 +141,7 @@ class Socket // capture the error sys::SocketErr err; -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 /* Wrapper for setsockopt dealing with Windows specific issues :- * @@ -248,7 +248,7 @@ class Socket * \param fromClient Client socket address returned * \return A new socket connection to the client */ - mem::auto_ptr accept(SocketAddress& fromClient); + std::unique_ptr accept(SocketAddress& fromClient); net::Socket_T getHandle() const { diff --git a/externals/coda-oss/modules/c++/net/include/net/SocketAddress.h b/externals/coda-oss/modules/c++/net/include/net/SocketAddress.h index 2af4695ef3..283dd43319 100644 --- a/externals/coda-oss/modules/c++/net/include/net/SocketAddress.h +++ b/externals/coda-oss/modules/c++/net/include/net/SocketAddress.h @@ -25,7 +25,7 @@ #include "net/Sockets.h" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # include #else # include diff --git a/externals/coda-oss/modules/c++/net/include/net/Sockets.h b/externals/coda-oss/modules/c++/net/include/net/Sockets.h index 7b7222b941..fb9e56032a 100644 --- a/externals/coda-oss/modules/c++/net/include/net/Sockets.h +++ b/externals/coda-oss/modules/c++/net/include/net/Sockets.h @@ -25,7 +25,7 @@ # include "sys/Conf.h" -# if defined(WIN32) || defined(_WIN32) +# ifdef _WIN32 # include "net/SocketsWin32.h" # else # include "net/SocketsUnix.h" diff --git a/externals/coda-oss/modules/c++/net/include/net/SocketsUnix.h b/externals/coda-oss/modules/c++/net/include/net/SocketsUnix.h index 967a47d0b5..58f0d2ed6d 100644 --- a/externals/coda-oss/modules/c++/net/include/net/SocketsUnix.h +++ b/externals/coda-oss/modules/c++/net/include/net/SocketsUnix.h @@ -56,31 +56,10 @@ typedef struct hostent HostEnt_T; typedef int Socket_T; typedef struct sockaddr SockAddr_T; typedef struct sockaddr_in SockAddrIn_T; -#if defined(__sun) || defined(__sun__) || defined(__sparc) || defined(__sparc__) -typedef SockAddr_T ConnParam2_T; -#else typedef const SockAddr_T ConnParam2_T; -#endif #if defined(__linux) || defined(__linux__) typedef socklen_t SockLen_T; -#elif defined(__sun) || defined(__sun__) || defined(__sparc) || defined(__sparc__) -# if defined(__SunOS_5_6) -typedef int SockLen_T; -# elif defined(__sparcv9) && defined(__arch64__) && defined(__GNUC__) -typedef socklen_t SockLen_T; -# else -typedef size_t SockLen_T; -# endif -#elif defined(_AIX) || defined(__aix) || defined(__aix__) -# if defined(__GNUC__) -typedef socklen_t SockLen_T; -# else -// 64-bit AIX uses socklen_t but I don't know the flags -// typedef unsigned int SockLen_T; -// The new(er) AIX machine uses socklen_t... -typedef socklen_t SockLen_T; -# endif #elif defined(__APPLE_CC__) typedef socklen_t SockLen_T; #else diff --git a/externals/coda-oss/modules/c++/net/include/net/ThreadPoolAllocStrategy.h b/externals/coda-oss/modules/c++/net/include/net/ThreadPoolAllocStrategy.h index ce7fc740e9..767e024503 100644 --- a/externals/coda-oss/modules/c++/net/include/net/ThreadPoolAllocStrategy.h +++ b/externals/coda-oss/modules/c++/net/include/net/ThreadPoolAllocStrategy.h @@ -44,7 +44,7 @@ class ConnectionThread: public mt::WorkerThread /*! * Do this in a loop forever. */ - void performTask(net::NetConnection*& request) + void performTask(net::NetConnection*& request) override { (*mHandler)(request); } @@ -78,7 +78,7 @@ class ConnectionThreadPool: public mt::AbstractThreadPool delete mFactory; } - mt::WorkerThread* newWorker() + mt::WorkerThread* newWorker() override { return new ConnectionThread(&mRequestQueue, mFactory->create()); } @@ -127,9 +127,9 @@ class ThreadPoolAllocStrategy: public AllocStrategy // AllocStrategy guarantees that mRequestHandlerFactory is initialized // by the time this function is called - void initialize(); + void initialize() override; - void handleConnection(net::NetConnection* conn); + void handleConnection(net::NetConnection* conn) override; }; } diff --git a/externals/coda-oss/modules/c++/net/include/net/URL.h b/externals/coda-oss/modules/c++/net/include/net/URL.h index 55fa55b52e..ea9b4f8fe7 100644 --- a/externals/coda-oss/modules/c++/net/include/net/URL.h +++ b/externals/coda-oss/modules/c++/net/include/net/URL.h @@ -46,7 +46,7 @@ class URLParams typedef std::list ParamValues; typedef std::map Params; - URLParams(const std::string paramString = ""); + URLParams(std::string paramString = ""); bool contains(std::string key) const; ParamValues& get(std::string key); @@ -68,17 +68,18 @@ class URL { public: - URL(const std::string url = ""); + URL(std::string url = ""); /*! * Copy constructor. * \param url A right-hand-side URL */ - URL(const URL& url); + URL(const URL&); + URL& operator=(const URL&); + URL(URL&&) = default; + URL& operator=(URL&&) = default; - virtual ~URL() - { - } + virtual ~URL() = default; void set(std::string url); @@ -106,7 +107,7 @@ class URL friend class URLBuilder; std::string mProtocol; std::string mHost; - int mPort; + int mPort = -1; std::string mPath; URLParams mParams; std::string mFragment; diff --git a/externals/coda-oss/modules/c++/net/source/DaemonUnix.cpp b/externals/coda-oss/modules/c++/net/source/DaemonUnix.cpp index 5fcee2a6ee..8683816f95 100644 --- a/externals/coda-oss/modules/c++/net/source/DaemonUnix.cpp +++ b/externals/coda-oss/modules/c++/net/source/DaemonUnix.cpp @@ -1,4 +1,4 @@ -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include "net/DaemonUnix.h" #include diff --git a/externals/coda-oss/modules/c++/net/source/NetConnectionClientFactory.cpp b/externals/coda-oss/modules/c++/net/source/NetConnectionClientFactory.cpp index d6392a66bf..7ae294eda7 100644 --- a/externals/coda-oss/modules/c++/net/source/NetConnectionClientFactory.cpp +++ b/externals/coda-oss/modules/c++/net/source/NetConnectionClientFactory.cpp @@ -65,9 +65,9 @@ net::NetConnection* net::NetConnectionClientFactory::newConnection( { return new net::NetConnection(std::move(toServer)); } -#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 +#if CODA_OSS_autoptr_is_std // std::unique_ptr removed in C++17 net::NetConnection* net::NetConnectionClientFactory::newConnection( - mem::auto_ptr toServer) + std::unique_ptr toServer) { return new net::NetConnection(toServer); } diff --git a/externals/coda-oss/modules/c++/net/source/Socket.cpp b/externals/coda-oss/modules/c++/net/source/Socket.cpp index c659454c5f..9c0c791b90 100644 --- a/externals/coda-oss/modules/c++/net/source/Socket.cpp +++ b/externals/coda-oss/modules/c++/net/source/Socket.cpp @@ -70,12 +70,12 @@ void net::Socket::bind(const net::SocketAddress& address) } } -mem::auto_ptr net::Socket::accept(net::SocketAddress& fromClient) +std::unique_ptr net::Socket::accept(net::SocketAddress& fromClient) { net::SockAddrIn_T& in = fromClient.getAddress(); net::SockLen_T addrLen = sizeof(in); - return mem::auto_ptr(new Socket(::accept(mNative, (net::SockAddr_T *) &in, &addrLen), true)); + return std::unique_ptr(new Socket(::accept(mNative, (net::SockAddr_T *) &in, &addrLen), true)); } size_t net::Socket::recv(void* b, size_t len, int flags) @@ -101,7 +101,7 @@ size_t net::Socket::recv(void* b, size_t len, int flags) sys::Err err; std::ostringstream oss; - oss << "When receiving " << str::toString(len) << " bytes: " << + oss << "When receiving " << str::toString(len) << " bytes: " << err.toString(); throw sys::SocketException(Ctxt(oss.str())); diff --git a/externals/coda-oss/modules/c++/net/source/SocketAddress.cpp b/externals/coda-oss/modules/c++/net/source/SocketAddress.cpp index 65106e5ce0..e5dcf0494c 100644 --- a/externals/coda-oss/modules/c++/net/source/SocketAddress.cpp +++ b/externals/coda-oss/modules/c++/net/source/SocketAddress.cpp @@ -65,7 +65,7 @@ void SocketAddress::setHost(const std::string& host) } else { -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 struct sockaddr saddr; int slen = sizeof(saddr); struct sockaddr_in *paddr = (struct sockaddr_in *)&saddr; diff --git a/externals/coda-oss/modules/c++/net/source/URL.cpp b/externals/coda-oss/modules/c++/net/source/URL.cpp index a14219f7e6..881a4b8547 100644 --- a/externals/coda-oss/modules/c++/net/source/URL.cpp +++ b/externals/coda-oss/modules/c++/net/source/URL.cpp @@ -24,21 +24,28 @@ #include #include -net::URL::URL(const std::string url) : - mPort(-1) +net::URL::URL(std::string url) { if (!url.empty()) set(url); } -net::URL::URL(const net::URL& url) +net::URL& net::URL::operator=(const URL& url) { + if (this != &url) + { mProtocol = url.getProtocol(); mHost = url.getHost(); setPort(url.getPort()); mPath = url.getPath(); mFragment = url.getFragment(); mParams = net::URLParams(url.getParams().toString()); + } + return *this; +} +net::URL::URL(const URL& url) +{ + *this = url; } void net::URL::set(std::string url) @@ -122,7 +129,7 @@ bool net::URL::operator==(const net::URL& url) const return toString() == url.toString(); } -net::URLParams::URLParams(const std::string paramString) +net::URLParams::URLParams(std::string paramString) { if (!paramString.empty()) { diff --git a/externals/coda-oss/modules/c++/net/tests/NetConnectionServerTest.cpp b/externals/coda-oss/modules/c++/net/tests/NetConnectionServerTest.cpp index 545bc10d06..bcbb46ac10 100644 --- a/externals/coda-oss/modules/c++/net/tests/NetConnectionServerTest.cpp +++ b/externals/coda-oss/modules/c++/net/tests/NetConnectionServerTest.cpp @@ -50,7 +50,7 @@ class EchoHandler : public net::RequestHandler ~EchoHandler() { } - void operator()(net::NetConnection* conn) + void operator()(net::NetConnection* conn) override { char buf[MAX_BUF_SIZE]; unsigned int length; diff --git a/externals/coda-oss/modules/c++/net/tests/TCPClientSpeedTest.cpp b/externals/coda-oss/modules/c++/net/tests/TCPClientSpeedTest.cpp index e23c437590..a33209b9f4 100644 --- a/externals/coda-oss/modules/c++/net/tests/TCPClientSpeedTest.cpp +++ b/externals/coda-oss/modules/c++/net/tests/TCPClientSpeedTest.cpp @@ -91,14 +91,14 @@ int main(int argc, char** argv) return 0; } - catch (const std::exception& ex) + catch (const except::Exception& ex) { - std::cerr << ex.what() << std::endl; + std::cerr << ex.toString() << std::endl; return 1; } - catch (const except::Exception& ex) + catch (const std::exception& ex) { - std::cerr << ex.toString() << std::endl; + std::cerr << ex.what() << std::endl; return 1; } catch (...) diff --git a/externals/coda-oss/modules/c++/net/tests/TCPServerSpeedTest.cpp b/externals/coda-oss/modules/c++/net/tests/TCPServerSpeedTest.cpp index 22a28b9387..39c659dd33 100644 --- a/externals/coda-oss/modules/c++/net/tests/TCPServerSpeedTest.cpp +++ b/externals/coda-oss/modules/c++/net/tests/TCPServerSpeedTest.cpp @@ -92,14 +92,14 @@ int main(int argc, char** argv) return 0; } - catch (const std::exception& ex) + catch (const except::Exception& ex) { - std::cerr << ex.what() << std::endl; + std::cerr << ex.toString() << std::endl; return 1; } - catch (const except::Exception& ex) + catch (const std::exception& ex) { - std::cerr << ex.toString() << std::endl; + std::cerr << ex.what() << std::endl; return 1; } catch (...) diff --git a/externals/coda-oss/modules/c++/numpyutils/include/numpyutils/numpyutils.h b/externals/coda-oss/modules/c++/numpyutils/include/numpyutils/numpyutils.h index 4471906f78..fec9e9e64a 100644 --- a/externals/coda-oss/modules/c++/numpyutils/include/numpyutils/numpyutils.h +++ b/externals/coda-oss/modules/c++/numpyutils/include/numpyutils/numpyutils.h @@ -63,7 +63,7 @@ void verifyArrayType(PyObject *pyObject, int typeNum); * \returns read only pointer to the dimensions of array * \throws except::Exception if not a 2D array */ -const npy_intp* const getDimensions(PyObject* pyArrayObject); +const npy_intp* getDimensions(PyObject* pyArrayObject); /*! Variant returning types::RowCol version of dimensions * \param pyArrayObject array object to inspect diff --git a/externals/coda-oss/modules/c++/numpyutils/source/numpyutils.cpp b/externals/coda-oss/modules/c++/numpyutils/source/numpyutils.cpp index 813d4adc8e..6b8a76a5da 100644 --- a/externals/coda-oss/modules/c++/numpyutils/source/numpyutils.cpp +++ b/externals/coda-oss/modules/c++/numpyutils/source/numpyutils.cpp @@ -110,7 +110,7 @@ void verifyArrayType(PyObject *pyObject, int typeNum) verifyType(pyObject, typeNum); } -const npy_intp* const getDimensions(PyObject* pyArrayObject) +const npy_intp* getDimensions(PyObject* pyArrayObject) { verifyArray(pyArrayObject); int ndims = PyArray_NDIM(reinterpret_cast(pyArrayObject)); diff --git a/externals/coda-oss/modules/c++/pch.h b/externals/coda-oss/modules/c++/pch.h index 3ae1f63038..342ae85267 100644 --- a/externals/coda-oss/modules/c++/pch.h +++ b/externals/coda-oss/modules/c++/pch.h @@ -7,10 +7,15 @@ #ifndef CODA_OSS_pch_h_INCLUDED_ #define CODA_OSS_pch_h_INCLUDED_ +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' + #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' -#pragma warning(disable: 4710) // '...': function not inlined -#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' +#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified +#pragma warning(disable: 4514) // '...': unreferenced inline function has been removed + +#pragma warning(push) +#pragma warning(disable: 4710) // '...': function not inlined #pragma warning(disable: 5027) // '...': move assignment operator was implicitly defined as deleted #pragma warning(disable: 5026) // '...': move constructor was implicitly defined as deleted #pragma warning(disable: 4626) // '...': assignment operator was implicitly defined as deleted @@ -18,6 +23,7 @@ #pragma warning(disable: 4355) // '...': used in base member initializer list #pragma warning(disable: 5220) // '...': a non-static data member with a volatile qualified type no longer implies that compiler generated copy/move constructors and copy/move assignment operators are not trivial #pragma warning(disable: 5204) // '...': class has virtual functions, but its trivial destructor is not virtual; instances of objects derived from this class may not be destructed correctly +#pragma warning(disable: 5264) // '...': '...' variable is not used // add headers that you want to pre-compile here #include "framework.h" @@ -31,26 +37,7 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "import/std.h" #include #include #include @@ -59,6 +46,9 @@ #include #include -#pragma warning(disable: 4514) // '...': unreferenced inline function has been removed +#pragma warning(pop) + +#pragma warning(disable: 4251) // '...': class '...' needs to have dll-interface to be used by clients of class '...' +#pragma warning(disable: 5105) // macro expansion producing '...' has undefined behavior #endif //CODA_OSS_pch_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/plugin/include/plugin/ErrorHandler.h b/externals/coda-oss/modules/c++/plugin/include/plugin/ErrorHandler.h index 727a81584c..be7ca3c8a8 100644 --- a/externals/coda-oss/modules/c++/plugin/include/plugin/ErrorHandler.h +++ b/externals/coda-oss/modules/c++/plugin/include/plugin/ErrorHandler.h @@ -52,15 +52,15 @@ class DefaultErrorHandler : public ErrorHandler public: DefaultErrorHandler(logging::LoggerPtr logger = logging::LoggerPtr()); - void onPluginDirectoryNotFound(const std::string& dir); + void onPluginDirectoryNotFound(const std::string& dir) override; - void onPluginLoadedAlready(const std::string& file); + void onPluginLoadedAlready(const std::string& file) override; - void onPluginLoadFailed(const std::string& file); + void onPluginLoadFailed(const std::string& file) override; - void onPluginVersionUnsupported(const std::string& message); + void onPluginVersionUnsupported(const std::string& message) override; - void onPluginError(except::Context& c); + void onPluginError(except::Context& c) override; protected: logging::LoggerPtr mLogger; diff --git a/externals/coda-oss/modules/c++/plugin/include/plugin/PluginDefines.h b/externals/coda-oss/modules/c++/plugin/include/plugin/PluginDefines.h index 2fcdfc9018..6a821f9db6 100644 --- a/externals/coda-oss/modules/c++/plugin/include/plugin/PluginDefines.h +++ b/externals/coda-oss/modules/c++/plugin/include/plugin/PluginDefines.h @@ -31,7 +31,7 @@ /* #define PLUGIN_DESTRUCTOR_NAME "DestroyPlugin" */ #define GET_PLUGIN_IDENT "GetPluginIdentity" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # define PLUGIN_DSO_EXTENSION ".dll" #else # define PLUGIN_DSO_EXTENSION ".so" @@ -48,7 +48,7 @@ #define PLUGIN_API_MINOR_VERSION 0 -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # if defined(PLUGIN_MODULE_EXPORTS) # define PLUGIN_HOOK extern "C" __declspec(dllexport) # else diff --git a/externals/coda-oss/modules/c++/polygon/tests/test_draw_polygon.cpp b/externals/coda-oss/modules/c++/polygon/tests/test_draw_polygon.cpp index 156e0f02c5..ad482847dc 100644 --- a/externals/coda-oss/modules/c++/polygon/tests/test_draw_polygon.cpp +++ b/externals/coda-oss/modules/c++/polygon/tests/test_draw_polygon.cpp @@ -64,14 +64,14 @@ int main(int, char**) return 0; } - catch (const std::exception& ex) - { - std::cerr << ex.what() << std::endl; - } catch (const except::Exception& ex) { std::cerr << ex.toString() << std::endl; } + catch (const std::exception& ex) + { + std::cerr << ex.what() << std::endl; + } catch (...) { std::cerr << "Unknown exception\n"; diff --git a/externals/coda-oss/modules/c++/re/CMakeLists.txt b/externals/coda-oss/modules/c++/re/CMakeLists.txt index 2af83869c4..5142faea19 100644 --- a/externals/coda-oss/modules/c++/re/CMakeLists.txt +++ b/externals/coda-oss/modules/c++/re/CMakeLists.txt @@ -4,10 +4,13 @@ set(MODULE_DEPS sys-c++) # Enable to use std::regex instead of PCRE. set(RE_ENABLE_STD_REGEX OFF CACHE BOOL "use std::regex instead of pcre") -if (RE_ENABLE_STD_REGEX OR TARGET pcre2) +if (RE_ENABLE_STD_REGEX OR ENABLE_PCRE) coda_generate_module_config_header(${MODULE_NAME}) if (NOT RE_ENABLE_STD_REGEX) + if (CONAN_PACKAGE_NAME) + find_package(coda-oss_pcre2 REQUIRED) + endif() list(APPEND MODULE_DEPS pcre2) endif() diff --git a/externals/coda-oss/modules/c++/re/include/re/RegexPredicate.h b/externals/coda-oss/modules/c++/re/include/re/RegexPredicate.h index b34f9cfb3e..ffccf71afc 100644 --- a/externals/coda-oss/modules/c++/re/include/re/RegexPredicate.h +++ b/externals/coda-oss/modules/c++/re/include/re/RegexPredicate.h @@ -37,7 +37,7 @@ struct RegexPredicate : public sys::FilePredicate mRegex.compile(match); } - bool operator()(const std::string& filename) const + bool operator()(const std::string& filename) const override { return mRegex.matches(filename); } diff --git a/externals/coda-oss/modules/c++/re/unittests/test_regex.cpp b/externals/coda-oss/modules/c++/re/unittests/test_regex.cpp index 5f24d36ced..bd33c2e422 100644 --- a/externals/coda-oss/modules/c++/re/unittests/test_regex.cpp +++ b/externals/coda-oss/modules/c++/re/unittests/test_regex.cpp @@ -37,7 +37,7 @@ TEST_CASE(testCompile) } catch (...) { - TEST_FAIL("Compiling a valid regexp should not have thrown exception!"); + TEST_FAIL_MSG("Compiling a valid regexp should not have thrown exception!"); } } diff --git a/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/SioFileReader.h b/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/SioFileReader.h index 8fa5133344..446476dfc7 100644 --- a/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/SioFileReader.h +++ b/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/SioFileReader.h @@ -125,7 +125,7 @@ class FileReader : public StreamReader, public io::Seekable * For simplicity, the final position is reported in the return value relative * to header start (always). This is done by calling tell(). */ - sys::Off_T seek( sys::Off_T offset, Whence whence ); + sys::Off_T seek( sys::Off_T offset, Whence whence ) override; /*! * Overloaded method, only works if this is a FileInputStream. @@ -134,10 +134,10 @@ class FileReader : public StreamReader, public io::Seekable * yield 0 as a return value. * */ - sys::Off_T tell(); + sys::Off_T tell() override; - void killStream(); + void killStream() override; protected: }; } diff --git a/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/SioFileWriter.h b/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/SioFileWriter.h index 3b8ec4611a..a674a4f60b 100644 --- a/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/SioFileWriter.h +++ b/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/SioFileWriter.h @@ -105,7 +105,7 @@ struct FileWriter protected: std::string mFileName; - mem::auto_ptr mStream; + std::unique_ptr mStream; bool mAdopt; }; diff --git a/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/StreamReader.h b/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/StreamReader.h index fe0c22b755..982b8900fb 100644 --- a/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/StreamReader.h +++ b/externals/coda-oss/modules/c++/sio.lite/include/sio/lite/StreamReader.h @@ -140,7 +140,7 @@ class StreamReader : public io::InputStream sio::lite::FileHeader* readHeader() { return header; } - sys::Off_T available() + sys::Off_T available() override { return inputStream->available(); } @@ -156,7 +156,7 @@ class StreamReader : public io::InputStream * @param size the Number of bytes to read * @return The number of bytes read */ - virtual sys::SSize_T readImpl(void* buffer, size_t size) + virtual sys::SSize_T readImpl(void* buffer, size_t size) override { return inputStream->read(buffer, size); } diff --git a/externals/coda-oss/modules/c++/std/include/import/cpp14.h b/externals/coda-oss/modules/c++/std/include/import/cpp14.h new file mode 100644 index 0000000000..f91af67f17 --- /dev/null +++ b/externals/coda-oss/modules/c++/std/include/import/cpp14.h @@ -0,0 +1,61 @@ +/* ========================================================================= + * This file is part of std-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2014, MDA Information Systems LLC + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * std-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + + +#ifndef CODA_OSS_import_cpp14_h_INCLUDED_ +#define CODA_OSS_import_cpp14_h_INCLUDED_ +#pragma once + +// Common C++14 headers +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#endif // CODA_OSS_import_cpp14_h_INCLUDED_ + + diff --git a/externals/coda-oss/modules/c++/sys/source/SemaphoreSolaris.cpp b/externals/coda-oss/modules/c++/std/include/import/cpp17.h similarity index 54% rename from externals/coda-oss/modules/c++/sys/source/SemaphoreSolaris.cpp rename to externals/coda-oss/modules/c++/std/include/import/cpp17.h index 87988c345d..a03b2c5dad 100644 --- a/externals/coda-oss/modules/c++/sys/source/SemaphoreSolaris.cpp +++ b/externals/coda-oss/modules/c++/std/include/import/cpp17.h @@ -1,10 +1,11 @@ /* ========================================================================= - * This file is part of sys-c++ + * This file is part of std-c++ * ========================================================================= * * (C) Copyright 2004 - 2014, MDA Information Systems LLC + * (C) Copyright 2023, Maxar Technologies, Inc. * - * sys-c++ is free software; you can redistribute it and/or modify + * std-c++ is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. @@ -20,37 +21,16 @@ * */ +#ifndef CODA_OSS_import_cpp17_h_INCLUDED_ +#define CODA_OSS_import_cpp17_h_INCLUDED_ +#pragma once -#if defined(__sun) -#include -#include "sys/SemaphoreSolaris.h" +#include "cpp14.h" -sys::SemaphoreSolaris::SemaphoreSolaris(unsigned int count) -{ - sema_init(&mNative, count, USYNC_THREAD, NULL); -} +// Common C++17 headers +#include +#include -sys::SemaphoreSolaris::~SemaphoreSolaris() -{ - sema_destroy(&mNative); -} +#endif // CODA_OSS_import_cpp17_h_INCLUDED_ -void sys::SemaphoreSolaris::wait() -{ - if (sema_wait(&mNative) != 0) - throw sys::SystemException("Semaphore wait failed"); -} - -void sys::SemaphoreSolaris::signal() -{ - if (sema_post(&mNative) != 0) - throw sys::SystemException("Semaphore signal failed"); -} - -sema_t& sys::SemaphoreSolaris::getNative() -{ - return mNative; -} - -#endif diff --git a/externals/coda-oss/modules/c++/std/include/import/std.h b/externals/coda-oss/modules/c++/std/include/import/std.h new file mode 100644 index 0000000000..426a80f0c4 --- /dev/null +++ b/externals/coda-oss/modules/c++/std/include/import/std.h @@ -0,0 +1,58 @@ +/* ========================================================================= + * This file is part of std-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2014, MDA Information Systems LLC + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * std-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + + +#ifndef CODA_OSS_import_std_h_INCLUDED_ +#define CODA_OSS_import_std_h_INCLUDED_ +#pragma once + +#include "coda_oss/CPlusPlus.h" +#include "config/disable_compiler_warnings.h" + +CODA_OSS_disable_warning_push +#if _MSC_VER +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' + +#pragma warning(disable: 4710) // '...': function not inlined +#pragma warning(disable: 5027) // '...': move assignment operator was implicitly defined as deleted +#pragma warning(disable: 5026) // '...': move constructor was implicitly defined as deleted +#pragma warning(disable: 4626) // '...': assignment operator was implicitly defined as deleted +#pragma warning(disable: 4625) // '...': copy constructor was implicitly defined as deleted +#pragma warning(disable: 4355) // '...': used in base member initializer list +#pragma warning(disable: 5220) // '...': a non-static data member with a volatile qualified type no longer implies that compiler generated copy/move constructors and copy/move assignment operators are not trivial +#pragma warning(disable: 5204) // '...': class has virtual functions, but its trivial destructor is not virtual; instances of objects derived from this class may not be destructed correctly +#pragma warning(disable: 5264) // '...': '...' variable is not used +#endif // _MSC_VER + +// Common C++14 headers +#include "cpp14.h" + +#if CODA_OSS_cpp17 +#include "cpp17.h" +#endif + +CODA_OSS_disable_warning_pop + +#endif // CODA_OSS_import_std_h_INCLUDED_ + + diff --git a/externals/coda-oss/modules/c++/std/include/std/bit b/externals/coda-oss/modules/c++/std/include/std/bit index ffe3b76510..dbcc0b6c5b 100644 --- a/externals/coda-oss/modules/c++/std/include/std/bit +++ b/externals/coda-oss/modules/c++/std/include/std/bit @@ -22,11 +22,13 @@ #define CODA_OSS_std_bit_INCLUDED_ #pragma once +#include "coda_oss/bit.h" +#include "coda_oss/CPlusPlus.h" + // Make it (too?) easy for clients to get our various std:: implementations #ifndef CODA_OSS_NO_std_endian - #include "coda_oss/CPlusPlus.h" #if CODA_OSS_cpp20 - // Some implementations cliam to be C++20 w/o + // Some implementations claim to be C++20 w/o #if __has_include() // __has_include is C++17 #include #define CODA_OSS_NO_std_endian 1 // provided by implementation, probably C++20 @@ -34,7 +36,6 @@ #endif // At this point, CODA_OSS_NO_std_endian will be set only if we were able to successfully use (above) #ifndef CODA_OSS_NO_std_endian - #include "coda_oss/bit.h" #define CODA_OSS_NO_std_endian 0 // <= C++17, use our own #endif #endif @@ -46,4 +47,22 @@ namespace std // This is slightly uncouth: we're not supposed to augment "std". } #endif // CODA_OSS_NO_std_endian +// Make it (too?) easy for clients to get our various std:: implementations +#ifndef CODA_OSS_NO_std_byteswap + #if CODA_OSS_cpp23 + #include + #define CODA_OSS_NO_std_byteswap 1 // provided by implementation, probably C++23 + #endif + #ifndef CODA_OSS_NO_std_byteswap + #define CODA_OSS_NO_std_byteswap 0 // <= C++20, use our own + #endif +#endif + +#if !CODA_OSS_NO_std_byteswap +namespace std // This is slightly uncouth: we're not supposed to augment "std". +{ + using coda_oss::byteswap; +} +#endif // CODA_OSS_NO_std_byteswap + #endif // CODA_OSS_std_bit_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/std/include/std/cstddef b/externals/coda-oss/modules/c++/std/include/std/cstddef index 694a461613..10ba7deac1 100644 --- a/externals/coda-oss/modules/c++/std/include/std/cstddef +++ b/externals/coda-oss/modules/c++/std/include/std/cstddef @@ -22,7 +22,12 @@ #define CODA_OSS_std_cstddef_INCLUDED_ #pragma once +#include + #include +#include +#include "coda_oss/cstddef.h" +#include "coda_oss/CPlusPlus.h" // Make it (too?) easy for clients to get our various std:: implementations #ifndef CODA_OSS_NO_std_byte @@ -30,7 +35,6 @@ #undef CODA_OSS_NO_std_byte #define CODA_OSS_NO_std_byte 1 // provided by implementation, probably C++20 #else - #include "coda_oss/cstddef.h" #define CODA_OSS_NO_std_byte 0 // use our own #endif #endif @@ -40,6 +44,7 @@ namespace std // This is slightly uncouth: we're not supposed to augment "std". { using coda_oss::byte; } +static_assert(!std::is_same::value, "'std::byte' should be a unique type."); #endif // !CODA_OSS_NO_std_byte #endif // CODA_OSS_std_cstddef_INCLUDED_ \ No newline at end of file diff --git a/externals/coda-oss/modules/c++/std/include/std/filesystem b/externals/coda-oss/modules/c++/std/include/std/filesystem index ec66c945fe..4804550ae2 100644 --- a/externals/coda-oss/modules/c++/std/include/std/filesystem +++ b/externals/coda-oss/modules/c++/std/include/std/filesystem @@ -22,9 +22,11 @@ #define CODA_OSS_std_filesystem_INCLUDED_ #pragma once +#include "sys/filesystem.h" +#include "coda_oss/CPlusPlus.h" + // Make it (too?) easy for clients to get our various std:: implementations #ifndef CODA_OSS_NO_std_filesystem - #include "coda_oss/CPlusPlus.h" #if CODA_OSS_cpp17 // Some versions of G++ say they're C++17 but don't have #if __has_include() // __has_include is C++17 @@ -32,7 +34,6 @@ #define CODA_OSS_NO_std_filesystem 1 // part of C++17 #endif #else - #include "sys/filesystem.h" #define CODA_OSS_NO_std_filesystem 0 // use our own #endif #endif diff --git a/externals/coda-oss/modules/c++/std/include/std/memory b/externals/coda-oss/modules/c++/std/include/std/memory index 7415030be4..192f67094b 100644 --- a/externals/coda-oss/modules/c++/std/include/std/memory +++ b/externals/coda-oss/modules/c++/std/include/std/memory @@ -23,14 +23,14 @@ #pragma once #include +#include "coda_oss/memory.h" +#include "coda_oss/CPlusPlus.h" // Make it (too?) easy for clients to get our various std:: implementations #ifndef CODA_OSS_NO_std_make_unique - #include "coda_oss/CPlusPlus.h" #if CODA_OSS_cpp14 #define CODA_OSS_NO_std_make_unique 1 // part of C++14 #else - #include "coda_oss/memory.h" #define CODA_OSS_NO_std_make_unique 0 // use our own #endif #endif diff --git a/externals/coda-oss/modules/c++/std/include/std/optional b/externals/coda-oss/modules/c++/std/include/std/optional index 276cdee13d..e4a47e6fc3 100644 --- a/externals/coda-oss/modules/c++/std/include/std/optional +++ b/externals/coda-oss/modules/c++/std/include/std/optional @@ -22,14 +22,15 @@ #define CODA_OSS_std_optional_INCLUDED_ #pragma once +#include "coda_oss/optional.h" +#include "coda_oss/CPlusPlus.h" + // Make it (too?) easy for clients to get our various std:: implementations #ifndef CODA_OSS_NO_std_optional - #include "coda_oss/CPlusPlus.h" #if CODA_OSS_cpp17 #include #define CODA_OSS_NO_std_optional 1 // part of C++17 #else - #include "coda_oss/optional.h" #define CODA_OSS_NO_std_optional 0 // use our own #endif #endif diff --git a/externals/coda-oss/modules/c++/std/include/std/span b/externals/coda-oss/modules/c++/std/include/std/span index e85d7f716c..819befe157 100644 --- a/externals/coda-oss/modules/c++/std/include/std/span +++ b/externals/coda-oss/modules/c++/std/include/std/span @@ -22,14 +22,15 @@ #define CODA_OSS_std_span_INCLUDED_ #pragma once +#include "coda_oss/span.h" +#include "coda_oss/CPlusPlus.h" + // Make it (too?) easy for clients to get our various std:: implementations #ifndef CODA_OSS_NO_std_span - #include "coda_oss/CPlusPlus.h" #if CODA_OSS_cpp20 #include #define CODA_OSS_NO_std_span 1 // part of C++20 #else - #include "coda_oss/span.h" #define CODA_OSS_NO_std_span 0 // use our own #endif #endif @@ -38,6 +39,9 @@ namespace std // This is slightly uncouth: we're not supposed to augment "std". { using coda_oss::span; + + using coda_oss::as_bytes; + using coda_oss::as_writable_bytes; } #endif // CODA_OSS_DEFINE_std_span_ diff --git a/externals/coda-oss/modules/c++/std/include/std/string b/externals/coda-oss/modules/c++/std/include/std/string index df11495a60..e740a42f28 100644 --- a/externals/coda-oss/modules/c++/std/include/std/string +++ b/externals/coda-oss/modules/c++/std/include/std/string @@ -23,14 +23,14 @@ #pragma once #include +#include "coda_oss/string.h" +#include "coda_oss/CPlusPlus.h" // Make it (too?) easy for clients to get our various std:: implementations #ifndef CODA_OSS_NO_std_u8string - #include "coda_oss/CPlusPlus.h" #if CODA_OSS_cpp20 #define CODA_OSS_NO_std_u8string 1 // part of C++20 #else - #include "coda_oss/string.h" #define CODA_OSS_NO_std_u8string 0 // use our own #endif #endif diff --git a/externals/coda-oss/modules/c++/std/include/std/type_traits b/externals/coda-oss/modules/c++/std/include/std/type_traits index 519877b6e8..1aba653f96 100644 --- a/externals/coda-oss/modules/c++/std/include/std/type_traits +++ b/externals/coda-oss/modules/c++/std/include/std/type_traits @@ -23,13 +23,13 @@ #pragma once #include +#include "coda_oss/type_traits.h" // Make it (too?) easy for clients to get our various std:: implementations #ifndef CODA_OSS_NO_is_trivially_copyable // https://stackoverflow.com/a/31798726/8877 // workaround missing "is_trivially_copyable" in g++ < 5.0 #if defined(__GNUC__) && (__GNUC__ < 5) - #include "coda_oss/type_traits.h" #define CODA_OSS_NO_is_trivially_copyable 0 // *need* our own #else #define CODA_OSS_NO_is_trivially_copyable 1 // *disabled*, unless explicitly enabled diff --git a/externals/coda-oss/modules/c++/str/include/str/Convert.h b/externals/coda-oss/modules/c++/str/include/str/Convert.h index 90d0c87d59..dd32bd5ea3 100644 --- a/externals/coda-oss/modules/c++/str/include/str/Convert.h +++ b/externals/coda-oss/modules/c++/str/include/str/Convert.h @@ -49,45 +49,161 @@ int getPrecision(const T& type); template int getPrecision(const std::complex& type); -// Note that std::to_string() doesn't necessarily generate the same output as writing -// to std::cout; see https://en.cppreference.com/w/cpp/string/basic_string/to_string -template -std::string toString(const T& value) +namespace details { - std::ostringstream buf; - buf.precision(getPrecision(value)); - buf << std::boolalpha << value; - return buf.str(); + // Templating (and then specializing) toString() creates all kinds of weird name-look + // problems; avoid trying to work-around all that by just not doing it. + // + // The preferred approach is to make a a toString() free function. + template + inline std::string default_toString(const T& value) + { + // Use operator<<() to generate a string value; this may not be quite + // 100% kosher, but it's been long-standing practice in this codebase. + // + // Note that std::to_string() doesn't necessarily generate the same + // output as writing to std::cout; see + // https://en.cppreference.com/w/cpp/string/basic_string/to_string + std::ostringstream buf; + buf.precision(getPrecision(value)); + buf << std::boolalpha << value; + return buf.str(); + } + + // https://stackoverflow.com/a/73594999/19912380 + template struct priority : priority {}; + template<> struct priority<0> {}; + + template + inline auto toString_imp(const T& obj, priority<2>) -> decltype(obj.toString(), std::string()) + { + return obj.toString(); // member-function + } + + template + inline auto toString_imp(const T& obj, priority<1>) -> decltype(toString(obj), std::string()) + { + return toString(obj); // free function + } + + template + inline auto toString_imp(const T& obj, priority<0>) -> decltype(default_toString(obj), std::string()) + { + return details::default_toString(obj); // our default utility which uses operator<<() + } + + // In order, try to call 1) obj.toString() (highest priority), 2) toString(obj), + // and finally 3) toString_(obj) (lowest priority). + template + inline auto toString_(const T& obj) -> decltype(toString_imp(obj, priority<2>{}), std::string()) + { + return details::toString_imp(obj, priority<2>{}); + } } +template +inline std::string toString(const T& value) // no dectype() noise here, leave that in details::toString_() +{ + // This breaks the Windows-CMake build on GitHub (when building as an "external" in NITRO) + // ... different compilers or compile-options? + //return details::toString_(value); -template <> -CODA_OSS_API std::string toString(const uint8_t& value); + return details::default_toString(value); +} -template <> -CODA_OSS_API std::string toString(const int8_t& value); +// C++11 has a bunch of overloads, do the same. +// https://en.cppreference.com/w/cpp/string/basic_string/to_string +inline std::string toString(int value) +{ + return details::default_toString(value); +} +inline std::string toString(long value) +{ + return details::default_toString(value); +} +inline std::string toString(long long value) +{ + return details::default_toString(value); +} +inline std::string toString(unsigned value) +{ + return details::default_toString(value); +} +inline std::string toString(unsigned long value) +{ + return details::default_toString(value); +} +inline std::string toString(unsigned long long value) +{ + return details::default_toString(value); +} +inline std::string toString(float value) +{ + return details::default_toString(value); +} +inline std::string toString(double value) +{ + return details::default_toString(value); +} +inline std::string oString(long double value) +{ + return details::default_toString(value); +} -template <> -CODA_OSS_API std::string toString(const coda_oss::byte& value); +// C++ doesn't have these ... +// https://en.cppreference.com/w/cpp/string/basic_string/to_string +inline std::string toString(bool value) +{ + return details::default_toString(value); +} +inline std::string toString(uint8_t value) +{ + return toString(static_cast(value)); +} +inline std::string toString(int8_t value) +{ + return toString(static_cast(value)); +} +inline std::string toString(coda_oss::byte value) +{ + return toString(static_cast(value)); +} -template <> -inline std::string toString(const std::nullptr_t&) +inline std::string toString(std::nullptr_t) { return ""; } -template <> CODA_OSS_API std::string toString(const coda_oss::u8string&); +inline std::string toString(const std::string& value) +{ + return value; +} +inline std::string toString(char value) +{ + return std::string(1, value); +} +inline std::string toString(const char* pStr) +{ + return std::string(pStr); +} + +template +inline std::string toString(const coda_oss::optional& value) +{ + // TODO: handle empty/NULL optional? + return details::default_toString(value.value()); +} template -std::string toString(const coda_oss::optional& value) +inline std::string toString(const T& real, const T& imag) { - return toString(value.value()); + return details::default_toString(std::complex(real, imag)); } template -std::string toString(const T& real, const T& imag) +inline std::string toString(const T* ptr) { - return toString(std::complex(real, imag)); + return details::default_toString(ptr); } template diff --git a/externals/coda-oss/modules/c++/str/include/str/EncodedString.h b/externals/coda-oss/modules/c++/str/include/str/EncodedString.h index 49340a3056..d4377c7f3b 100644 --- a/externals/coda-oss/modules/c++/str/include/str/EncodedString.h +++ b/externals/coda-oss/modules/c++/str/include/str/EncodedString.h @@ -156,9 +156,14 @@ inline bool operator!=(const EncodedString& lhs, const EncodedString& rhs) return !(lhs == rhs); } +inline std::string toString(const EncodedString& es) +{ + return es.native(); +} + inline std::ostream& operator<<(std::ostream& os, const EncodedString& es) { - os << es.native(); + os << toString(es); return os; } diff --git a/externals/coda-oss/modules/c++/str/include/str/EncodedStringView.h b/externals/coda-oss/modules/c++/str/include/str/EncodedStringView.h index af0f8cb703..1fd1e99ac5 100644 --- a/externals/coda-oss/modules/c++/str/include/str/EncodedStringView.h +++ b/externals/coda-oss/modules/c++/str/include/str/EncodedStringView.h @@ -55,7 +55,7 @@ class CODA_OSS_API EncodedStringView final explicit EncodedStringView(coda_oss::span); explicit EncodedStringView(coda_oss::span); -#if _WIN32 + #ifdef _WIN32 static constexpr bool mNativeIsUtf8 = false; // Windows-1252 #else static constexpr bool mNativeIsUtf8 = true; // !_WIN32, assume Linux @@ -109,12 +109,8 @@ class CODA_OSS_API EncodedStringView final // is WCHAR (char* is converted to UTF-16). std::wstring wstring() const; // UTF-16 on Windows, UTF-32 on Linux - // With some older C++ compilers, uint16_t may be used instead of char16_t :-( - // Using this routine can avoid an extra copy. - str::ui16string ui16string_() const; // use sparingly! - // These are for "advanced" use, most "normal" code should use the routines above. - std::string::const_pointer c_str() const + std::string::const_pointer c_str() const noexcept { return mString.data(); } @@ -126,7 +122,7 @@ class CODA_OSS_API EncodedStringView final { return mIsUtf8 ? nullptr : cast(c_str()); } - size_t size() const + size_t size() const noexcept { return mString.size(); } @@ -193,9 +189,14 @@ inline bool operator!=(const coda_oss::u8string& lhs, const EncodedStringView& r return !(lhs == rhs); } +inline std::string toString(const EncodedStringView& esv) +{ + return esv.native(); +} + inline std::ostream& operator<<(std::ostream& os, const EncodedStringView& esv) { - os << esv.native(); + os << toString(esv); return os; } diff --git a/externals/coda-oss/modules/c++/str/include/str/Encoding.h b/externals/coda-oss/modules/c++/str/include/str/Encoding.h index c063c61d5c..0147306ecf 100644 --- a/externals/coda-oss/modules/c++/str/include/str/Encoding.h +++ b/externals/coda-oss/modules/c++/str/include/str/Encoding.h @@ -62,9 +62,6 @@ inline typename TBasicStringT::const_pointer c_str(const std::basic_string; // https://en.cppreference.com/w/cpp/string -// With some older C++ compilers, uint16_t may be used instead of char16_t :-( -using ui16string = std::basic_string; // ui = UInt16_t - ////////////////////////////////////////////////////////////////////////////////////////// // We'll get strange errors, possibibly at link-time, if wchar_t is not a wchar_t type. @@ -88,9 +85,7 @@ inline coda_oss::u8string to_u8string(coda_oss::u8string::const_pointer s, size_ CODA_OSS_API coda_oss::u8string to_u8string(std::u16string::const_pointer, size_t); CODA_OSS_API std::u16string to_u16string(coda_oss::u8string::const_pointer, size_t); -str::ui16string to_ui16string(coda_oss::u8string::const_pointer, size_t); std::u16string to_u16string(str::W1252string::const_pointer, size_t); -str::ui16string to_ui16string(str::W1252string::const_pointer, size_t); // UTF-32 is convenient because each code-point is a single 32-bit integer. // It's typically std::wstring::value_type on Linux, but NOT Windows. diff --git a/externals/coda-oss/modules/c++/str/include/str/Manip.h b/externals/coda-oss/modules/c++/str/include/str/Manip.h index e488f879d2..9da33183ff 100644 --- a/externals/coda-oss/modules/c++/str/include/str/Manip.h +++ b/externals/coda-oss/modules/c++/str/include/str/Manip.h @@ -199,12 +199,20 @@ inline std::string join(const std::vector& toks, const std::string& with) int i = 0; for (; i < len - 1; i++) { - oss << str::toString(toks[i]) << with; + oss << str::toString(toks[i]) << with; } oss << str::toString(toks[i]); return oss.str(); } +// CASE INSENSTIVE string comparision routines. +// Short names w/o a "case insenstive" indicator would seem OK as +// normal (i.e., case sensitive) comparisons will use `==` and `!=` operators. +// +// Note that calling ne() directly can be faster than !eq() because the +// comparison can stop as soon as a mis-match is found. +CODA_OSS_API bool eq(const std::string& lhs, const std::string& rhs) noexcept; +CODA_OSS_API bool ne(const std::string& lhs, const std::string& rhs) noexcept; } diff --git a/externals/coda-oss/modules/c++/str/include/str/utf8.h b/externals/coda-oss/modules/c++/str/include/str/utf8.h index c4e2666a8d..27baba0859 100644 --- a/externals/coda-oss/modules/c++/str/include/str/utf8.h +++ b/externals/coda-oss/modules/c++/str/include/str/utf8.h @@ -391,7 +391,7 @@ class invalid_code_point final : public exception invalid_code_point(uint32_t cp) : cp(cp) { } - virtual const char* what() const noexcept + virtual const char* what() const noexcept override { return "Invalid code point"; } @@ -409,7 +409,7 @@ class invalid_utf8 final : public exception invalid_utf8(uint8_t u) : u8(u) { } - virtual const char* what() const noexcept + virtual const char* what() const noexcept override { return "Invalid UTF-8"; } @@ -427,7 +427,7 @@ class invalid_utf16 final : public exception invalid_utf16(uint16_t u) : u16(u) { } - virtual const char* what() const noexcept + virtual const char* what() const noexcept override { return "Invalid UTF-16"; } @@ -440,7 +440,7 @@ class invalid_utf16 final : public exception class not_enough_room final : public exception { public: - virtual const char* what() const noexcept + virtual const char* what() const noexcept override { return "Not enough space"; } diff --git a/externals/coda-oss/modules/c++/str/source/Convert.cpp b/externals/coda-oss/modules/c++/str/source/Convert.cpp index 129b089a27..f2ae3d9f95 100644 --- a/externals/coda-oss/modules/c++/str/source/Convert.cpp +++ b/externals/coda-oss/modules/c++/str/source/Convert.cpp @@ -40,21 +40,6 @@ template<> std::string str::toType(const std::string& s) return s; } -template<> std::string str::toString(const uint8_t& value) -{ - return str::toString(static_cast(value)); -} - -template<> std::string str::toString(const int8_t& value) -{ - return str::toString(static_cast(value)); -} - -template<> std::string str::toString(const coda_oss::byte& value) -{ - return str::toString(static_cast(value)); -} - template<> bool str::toType(const std::string& s) { std::string ss = s; diff --git a/externals/coda-oss/modules/c++/str/source/EncodedStringView.cpp b/externals/coda-oss/modules/c++/str/source/EncodedStringView.cpp index 2c5bf0150c..a80340a88d 100644 --- a/externals/coda-oss/modules/c++/str/source/EncodedStringView.cpp +++ b/externals/coda-oss/modules/c++/str/source/EncodedStringView.cpp @@ -41,7 +41,7 @@ enum class PlatformType // MacOS }; -#if _WIN32 +#ifdef _WIN32 static auto Platform = PlatformType::Windows; #else static auto Platform = PlatformType::Linux; @@ -55,14 +55,6 @@ inline std::u16string to_u16string(std::string::const_pointer s, size_t sz, bool } return str::to_u16string(str::cast(s), sz); } -inline str::ui16string to_ui16string(std::string::const_pointer s, size_t sz, bool is_utf8 /* is 's' UTF-8? */) -{ - if (is_utf8) - { - return str::to_ui16string(str::cast(s), sz); - } - return str::to_ui16string(str::cast(s), sz); -} static std::string to_native(coda_oss::u8string::const_pointer p, size_t sz) { @@ -74,7 +66,7 @@ static std::string to_native(coda_oss::u8string::const_pointer p, size_t sz) } if (Platform == PlatformType::Linux) { - return str::cast(p); // copy + return std::string(str::cast(p), sz); } throw std::logic_error("Unknown platform."); } @@ -83,7 +75,7 @@ static std::string to_native(str::W1252string::const_pointer p, size_t sz) { if (Platform == PlatformType::Windows) { - return str::cast(p); // copy + return std::string(str::cast(p), sz); } if (Platform == PlatformType::Linux) { @@ -155,10 +147,6 @@ std::u16string str::EncodedStringView::u16string() const { return ::to_u16string(mString.data(), mString.size(), mIsUtf8); } -str::ui16string str::EncodedStringView::ui16string_() const -{ - return ::to_ui16string(mString.data(), mString.size(), mIsUtf8); -} inline std::u32string to_u32string(std::string::const_pointer s, size_t sz, bool is_utf8 /* is 's' UTF-8? */) { @@ -179,10 +167,9 @@ std::wstring str::EncodedStringView::wstring() const // UTF-16 on Windows, UTF- const auto sz = mString.size(); const auto s = // Need to use #ifdef's because str::cast() checks to be sure the sizes are correct. - #if _WIN32 + #ifdef _WIN32 ::to_u16string(p, sz, mIsUtf8); // std::wstring is UTF-16 on Windows - #endif - #if !_WIN32 + #else ::to_u32string(p, sz, mIsUtf8); // std::wstring is UTF-32 on Linux #endif return str::c_str(s); // copy @@ -208,11 +195,13 @@ bool str::EncodedStringView::operator_eq(const EncodedStringView& rhs) const if (lhs.mIsUtf8 == rhs.mIsUtf8) // both are UTF-8 or both are Windows-1252 { // But we can avoid that call if the pointers are the same - if ((lhs.mString.data() == rhs.mString.data()) && (rhs.mString.size() == rhs.mString.size())) + const auto pLhs = lhs.mString.data(); + const auto pRhs = rhs.mString.data(); + if ((pLhs == pRhs) && (rhs.mString.size() == rhs.mString.size())) { return true; } - return strcmp(lhs.mString.data(), rhs.mString.data()) == 0; + return strcmp(pLhs, pRhs) == 0; } // LHS and RHS have different encodings, but one must be UTF-8 diff --git a/externals/coda-oss/modules/c++/str/source/Encoding.cpp b/externals/coda-oss/modules/c++/str/source/Encoding.cpp index 1cbd800b0e..86a879b0c4 100644 --- a/externals/coda-oss/modules/c++/str/source/Encoding.cpp +++ b/externals/coda-oss/modules/c++/str/source/Encoding.cpp @@ -44,7 +44,7 @@ inline coda_oss::u8string utf8_(std::u32string::value_type ch) { return str::to_u8string(std::u32string{ch}); -}; +} static const std::map Windows1252_x80_x9F_to_u8string{ {0x80, utf8_(0x20AC) } // EURO SIGN // , {0x81, replacement_character } // UNDEFINED @@ -198,16 +198,12 @@ std::u16string str::to_u16string(str::W1252string::const_pointer p, size_t sz) { auto retval = to_Tstring(p, sz); #if defined(_WIN32) && (!defined(_NDEBUG) || defined(DEBUG)) - const _bstr_t bstr(str::cast(p)); + const _bstr_t bstr(std::string(str::cast(p), sz).c_str()); // no _bstr_t ctor taking sz const std::wstring wstr(static_cast(bstr)); assert(retval == str::cast(wstr.c_str())); #endif return retval; } -str::ui16string str::to_ui16string(str::W1252string::const_pointer p, size_t sz) -{ - return to_Tstring(p, sz); -} std::u32string str::to_u32string(str::W1252string::const_pointer p, size_t sz) { return to_Tstring(p, sz); @@ -352,13 +348,6 @@ std::u16string str::to_u16string(coda_oss::u8string::const_pointer p_, size_t sz utf8::utf8to16(p, p + sz, std::back_inserter(retval)); return retval; } -str::ui16string str::to_ui16string(coda_oss::u8string::const_pointer p_, size_t sz) -{ - auto p = str::cast(p_); - str::ui16string retval; - utf8::utf8to16(p, p + sz, std::back_inserter(retval)); - return retval; -} std::u32string str::to_u32string(coda_oss::u8string::const_pointer p_, size_t sz) { @@ -382,7 +371,6 @@ coda_oss::u8string str::to_u8string(W1252string::const_pointer p, size_t sz) return retval; } -template <> std::string str::toString(const coda_oss::u8string& utf8) { return str::EncodedStringView(utf8).native(); diff --git a/externals/coda-oss/modules/c++/str/source/Manip.cpp b/externals/coda-oss/modules/c++/str/source/Manip.cpp index 516f43f354..33cbb47c12 100644 --- a/externals/coda-oss/modules/c++/str/source/Manip.cpp +++ b/externals/coda-oss/modules/c++/str/source/Manip.cpp @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include "str/Convert.h" #include "str/Encoding.h" @@ -146,7 +148,8 @@ size_t replace(std::string& str, if (index != std::string::npos) { - str.replace(index, search.length(), replace); + // ASAN error: str.replace(index, search.length(), replace); + str = str.substr(0, index) + replace + str.substr(index + search.length()); start = index; } else @@ -305,4 +308,52 @@ void escapeForXML(std::string& str) replaceAll(str, "\n", " "); replaceAll(str, "\r", " "); } + +// https://en.cppreference.com/w/cpp/string/char_traits +class ci_char_traits final : public std::char_traits +{ + static auto to_upper(char ch) noexcept + { + return toupperCheck(ch); + } + + static int compare(const char* s1, const char* s2, std::size_t n) noexcept + { + while (n-- != 0) + { + if (to_upper(*s1) < to_upper(*s2)) + return -1; + if (to_upper(*s1) > to_upper(*s2)) + return 1; + ++s1; + ++s2; + } + return 0; + } + + public: + static int compare(const std::string& s1, const std::string& s2) noexcept + { + if (s1.length() < s2.length()) + { + return -1; + } + if (s1.length() > s2.length()) + { + return 1; + } + assert(s1.length() == s2.length()); + return compare(s1.c_str(), s2.c_str(), s1.length()); + } +}; + +bool eq(const std::string& lhs, const std::string& rhs) noexcept +{ + return ci_char_traits::compare(lhs, rhs) == 0; +} +bool ne(const std::string& lhs, const std::string& rhs) noexcept +{ + return ci_char_traits::compare(lhs, rhs) != 0; +} + } diff --git a/externals/coda-oss/modules/c++/str/unittests/test_base_convert.cpp b/externals/coda-oss/modules/c++/str/unittests/test_base_convert.cpp index 0ae06ef418..358fa6827a 100644 --- a/externals/coda-oss/modules/c++/str/unittests/test_base_convert.cpp +++ b/externals/coda-oss/modules/c++/str/unittests/test_base_convert.cpp @@ -63,15 +63,15 @@ TEST_CASE(testBadConvert) TEST_CASE(testEightBitIntToString) { - TEST_ASSERT_EQ(str::toString(1), "1"); - TEST_ASSERT_EQ(str::toString(2), "2"); - TEST_ASSERT_EQ(str::toString(-2), "-2"); + TEST_ASSERT_EQ(str::toString(static_cast(1)), "1"); + TEST_ASSERT_EQ(str::toString(static_cast(2)), "2"); + TEST_ASSERT_EQ(str::toString(static_cast(-2)), "-2"); } TEST_CASE(testCharToString) { - TEST_ASSERT_EQ(str::toString('a'), "a"); - TEST_ASSERT_EQ(str::toString(65), "A"); + TEST_ASSERT_EQ(str::toString('a'), "a"); + TEST_ASSERT_EQ(str::toString(static_cast(65)), "A"); } static std::u8string fromWindows1252(const std::string& s) @@ -362,6 +362,8 @@ static void test_wide_(const std::string& testName, const char* pStr, std::u16st const std::string std_str(static_cast(wide_str)); // UTF-16 -> Windows-1252 TEST_ASSERT_EQ(encoded.native(), std_str); TEST_ASSERT_EQ(std_str, pStr); + #else + pUtf16 = pUtf16; // avoid unused-parameter warning #endif } @@ -436,6 +438,8 @@ TEST_CASE(test_Windows1252_WIN32) constexpr auto w1252_unassigned = "\x81\x8d\x8f\x90\x9d"; constexpr auto u16_w1252_unassigned = u"\x81\x8d\x8f\x90\x9d"; test_Windows1252_(testName, w1252_unassigned, u16_w1252_unassigned); + #else + TEST_ASSERT_TRUE(true); // need to use hidden "testName" parameter #endif } @@ -613,4 +617,4 @@ TEST_MAIN( TEST_CHECK(test_Windows1252); TEST_CHECK(test_EncodedStringView); TEST_CHECK(test_EncodedString); - ) \ No newline at end of file + ) diff --git a/externals/coda-oss/modules/c++/str/unittests/test_str.cpp b/externals/coda-oss/modules/c++/str/unittests/test_str.cpp index d41a648807..49e4a4894a 100644 --- a/externals/coda-oss/modules/c++/str/unittests/test_str.cpp +++ b/externals/coda-oss/modules/c++/str/unittests/test_str.cpp @@ -71,6 +71,26 @@ TEST_CASE(testLower) TEST_ASSERT_EQ(s, "test1"); } +TEST_CASE(test_eq_ne) +{ + const auto s1 = "TEST1"; + const auto s2 = "test1"; + const auto s3 = "T2"; + + TEST_ASSERT_TRUE(str::eq(s1, s1)); + TEST_ASSERT_FALSE(str::ne(s1, s1)); + + TEST_ASSERT_TRUE(str::eq(s1, s2)); + TEST_ASSERT_FALSE(str::ne(s1, s2)); + TEST_ASSERT_TRUE(str::eq(s2, s1)); + TEST_ASSERT_FALSE(str::ne(s2, s1)); + + TEST_ASSERT_FALSE(str::eq(s1, s3)); + TEST_ASSERT_TRUE(str::ne(s1, s3)); + TEST_ASSERT_FALSE(str::eq(s3, s1)); + TEST_ASSERT_TRUE(str::ne(s3, s1)); +} + TEST_CASE(testReplace) { std::string s = "helo world"; @@ -210,6 +230,7 @@ TEST_MAIN( TEST_CHECK(testData); TEST_CHECK(testUpper); TEST_CHECK(testLower); + TEST_CHECK(test_eq_ne); TEST_CHECK(testReplace); TEST_CHECK(testReplaceAllInfinite); TEST_CHECK(testReplaceAllRecurse); diff --git a/externals/coda-oss/modules/c++/sys/include/sys/AbstractOS.h b/externals/coda-oss/modules/c++/sys/include/sys/AbstractOS.h index 158bce4890..3c8a6b0e68 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/AbstractOS.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/AbstractOS.h @@ -99,6 +99,11 @@ struct CODA_OSS_API AbstractOS const std::string& fragment = "", const std::string& extension = "", bool recursive = true) const; + std::vector search( + const std::vector& searchPaths, + const std::string& fragment = "", + const std::string& extension = "", + bool recursive = true) const; /*! * Does this path exist? diff --git a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounter.h b/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounter.h index b193339d7d..4be658b71a 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounter.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounter.h @@ -20,45 +20,18 @@ * */ -#ifndef __SYS_ATOMIC_COUNTER_H__ -#define __SYS_ATOMIC_COUNTER_H__ +#ifndef CODA_OSS_sys_AtomicCounter_h_INCLUDED_ +#define CODA_OSS_sys_AtomicCounter_h_INCLUDED_ #pragma once -#include #include -#if defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) -#include -#elif (defined(WIN32) || defined(_WIN32)) -#include -#elif defined(__sun) //&& defined(HAVE_ATOMIC_H) -// atomic.h is available in Solaris 10+ -// TODO: For Solaris 9 and older, we currently use the mutex implementation -// http://blogs.oracle.com/d/entry/atomic_operations -// provides a snippet of assembly code for atomic incrementing in -// Solaris 9 - this would be a starting point if a faster implementation -// is needed -#include -#else -// Bummer - need to fall back on a slow mutex implementation -#include -#endif - namespace sys { /*! * \class AtomicCounter * \brief This class provides atomic incrementing, decrementing, and setting * of an unsigned integer. All operations are thread-safe. - * - * TODO: Currently, we use the ValueType typedef for whatever the underlying - * integer type is. Should we instead provide implementations that are - * explicitly for 32 bit and 64 bit integers? For Solaris and Windows, - * there are equivalent instructions so this would be simple. For X86, - * would need to research the assembly instructions to find the - * equivalent 64-bit instruction. - * - * TODO: Provide other operations such as getThenSet() and compareThenSet(). */ template struct AtomicCounterT final @@ -155,17 +128,11 @@ struct AtomicCounterT final TAtomicCounterImpl mImpl; }; -// platform-specific -using AtomicCounterOS = AtomicCounterT; -// built on -using AtomicCounterCpp11 = AtomicCounterT; -#if !CODA_OSS_cpp17 -using AtomicCounter = AtomicCounterOS; // TODO: AtomicCounterCpp11 -#else +using AtomicCounterCpp11 = AtomicCounterT; using AtomicCounter = AtomicCounterCpp11; -#endif +using AtomicCounterOS = AtomicCounterCpp11; } -#endif +#endif // CODA_OSS_sys_AtomicCounter_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterCpp11.h b/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterCpp11.h index bf949f948b..79979f2835 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterCpp11.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterCpp11.h @@ -30,6 +30,11 @@ namespace sys { +/*! + * \class AtomicCounter + * \brief This class provides atomic incrementing, decrementing, and setting + * of an unsigned integer. All operations are thread-safe. + */ struct AtomicCounterImplCpp11 final { using ValueType = size_t ; diff --git a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterMutex.h b/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterMutex.h deleted file mode 100644 index c56a8f0a44..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterMutex.h +++ /dev/null @@ -1,84 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - -#ifndef __SYS_ATOMIC_COUNTER_MUTEX_H__ -#define __SYS_ATOMIC_COUNTER_MUTEX_H__ - -#include - -namespace sys -{ -struct AtomicCounterImpl -{ - typedef size_t ValueType; - - explicit - AtomicCounterImpl(ValueType initialValue) : - mValue(initialValue) - { - } - - ValueType getThenIncrement() - { - ValueType value; - - mMutex.lock(); - value = mValue; - ++mValue; - mMutex.unlock(); - - return value; - } - - ValueType getThenDecrement() - { - ValueType value; - - mMutex.lock(); - value = mValue; - --mValue; - mMutex.unlock(); - - return value; - } - - ValueType get() const - { - ValueType value; - - mMutex.lock(); - value = mValue; - mMutex.unlock(); - - return value; - } - - AtomicCounterImpl(const AtomicCounterImpl&) = delete; - AtomicCounterImpl& operator=(const AtomicCounterImpl&) = delete; - -private: - ValueType mValue; - mutable Mutex mMutex; -}; -} - -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterSolaris.h b/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterSolaris.h deleted file mode 100644 index eb406ddadd..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterSolaris.h +++ /dev/null @@ -1,66 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - -#ifndef __SYS_ATOMIC_COUNTER_SOLARIS_H__ -#define __SYS_ATOMIC_COUNTER_SOLARIS_H__ - -#include - -#include - -namespace sys -{ -// Implemented from boost/smart_ptr/detail/atomic_count_solaris.hpp -struct AtomicCounterImpl -{ - typedef Uint32_T ValueType; - - explicit - AtomicCounterImpl(ValueType initialValue) : - mValue(initialValue) - { - } - - ValueType getThenIncrement() - { - return (atomic_inc_32_nv(&mValue) - 1); - } - - ValueType getThenDecrement() - { - return (atomic_dec_32_nv(&mValue) + 1); - } - - ValueType get() const - { - return static_cast(mValue); - } - - AtomicCounterImpl(const AtomicCounterImpl&) = delete; - AtomicCounterImpl& operator=(const AtomicCounterImpl&) = delete; - -private: - ValueType mValue; -}; -} - -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterWin32.h b/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterWin32.h deleted file mode 100644 index d78a17dd6d..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterWin32.h +++ /dev/null @@ -1,65 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - -#ifndef __SYS_ATOMIC_COUNTER_WIN32_H__ -#define __SYS_ATOMIC_COUNTER_WIN32_H__ - -// In order to include windows.h with the appropriate stuff defined beforehand -#include - -namespace sys -{ -// Implemented from boost/smart_ptr/detail/atomic_count_win32.hpp -struct AtomicCounterImpl -{ - typedef long ValueType; - - explicit - AtomicCounterImpl(ValueType initialValue) : - mValue(initialValue) - { - } - - ValueType getThenIncrement() - { - return (InterlockedIncrement(&mValue) - 1); - } - - ValueType getThenDecrement() - { - return (InterlockedDecrement(&mValue) + 1); - } - - ValueType get() const - { - return static_cast(mValue); - } - - AtomicCounterImpl(const AtomicCounterImpl&) = delete; - AtomicCounterImpl& operator=(const AtomicCounterImpl&) = delete; - -private: - ValueType mValue; -}; -} - -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterX86.h b/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterX86.h deleted file mode 100644 index 5231e587be..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/AtomicCounterX86.h +++ /dev/null @@ -1,84 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - -#ifndef __SYS_ATOMIC_COUNTER_X86_H__ -#define __SYS_ATOMIC_COUNTER_X86_H__ - -namespace sys -{ -// Implemented from boost/smart_ptr/detail/atomic_count_gcc_x86.hpp -struct AtomicCounterImpl -{ - typedef int ValueType; - - explicit - AtomicCounterImpl(ValueType initialValue) : - mValue(initialValue) - { - } - - ValueType getThenIncrement() - { - return atomicExchangeAndAdd(&mValue, 1); - } - - ValueType getThenDecrement() - { - return atomicExchangeAndAdd(&mValue, -1); - } - - ValueType get() const - { - return atomicExchangeAndAdd(&mValue, 0); - } - - AtomicCounterImpl(const AtomicCounterImpl&) = delete; - AtomicCounterImpl& operator=(const AtomicCounterImpl&) = delete; - -private: - static - ValueType atomicExchangeAndAdd(ValueType* pw, ValueType dv) - { - // int r = *pw; - // *pw += dv; - // return r; - - int r; - - __asm__ __volatile__ - ( - "lock\n\t" - "xadd %1, %0": - "+m"( *pw ), "=r"( r ): // outputs (%0, %1) - "1"( dv ): // inputs (%2 == %1) - "memory", "cc" // clobbers - ); - - return r; - } - -private: - mutable ValueType mValue; -}; -} - -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ByteSwap.h b/externals/coda-oss/modules/c++/sys/include/sys/ByteSwap.h new file mode 100644 index 0000000000..d8145dcced --- /dev/null +++ b/externals/coda-oss/modules/c++/sys/include/sys/ByteSwap.h @@ -0,0 +1,118 @@ +/* ========================================================================= + * This file is part of sys-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2014, MDA Information Systems LLC + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * sys-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_sys_ByteSwap_h_INCLUDED_ +#define CODA_OSS_sys_ByteSwap_h_INCLUDED_ +#pragma once + +#include +#include + +#include +#include + +#include "config/Exports.h" + +#include "ByteSwapValue.h" +#include "Runnable.h" + +namespace sys +{ +/*! + * Swap bytes in-place. Note that a complex pixel + * is equivalent to two floats so elemSize and numElems + * must be adjusted accordingly. + * + * \param [inout] buffer to transform + * \param elemSize + * \param numElems + */ +coda_oss::span CODA_OSS_API byteSwap(coda_oss::spanbuffer, size_t elemSize); +void CODA_OSS_API byteSwap(void* buffer, size_t elemSize, size_t numElems); + +/*! + * Swap bytes into output buffer. Note that a complex pixel + * is equivalent to two floats so elemSize and numElems + * must be adjusted accordingly. + * + * \param buffer to transform + * \param elemSize + * \param numElems + * \param[out] outputBuffer buffer to write swapped elements to + */ +coda_oss::span CODA_OSS_API byteSwap(coda_oss::span buffer, + size_t elemSize, coda_oss::span outputBuffer); +void CODA_OSS_API byteSwap(const void* buffer, size_t elemSize, size_t numElems, void* outputBuffer); + +struct ByteSwapRunnable final : public sys::Runnable +{ + ByteSwapRunnable(void* buffer, size_t elemSize, size_t startElement, size_t numElements) : + mBuffer(static_cast(buffer) + startElement * elemSize), + mElemSize(elemSize), mNumElements(numElements) + { + } + void run() override + { + byteSwap(mBuffer, mElemSize, mNumElements); + } + + virtual ~ByteSwapRunnable() = default; + ByteSwapRunnable(const ByteSwapRunnable&) = delete; + ByteSwapRunnable& operator=(const ByteSwapRunnable&) = delete; + ByteSwapRunnable(ByteSwapRunnable&&) = delete; + ByteSwapRunnable& operator=(ByteSwapRunnable&&) = delete; + +private: + void* const mBuffer; + const size_t mElemSize; + const size_t mNumElements; +}; + +struct ByteSwapCopyRunnable final : public sys::Runnable +{ + ByteSwapCopyRunnable(const void* buffer, size_t elemSize, size_t startElement, size_t numElements, void* outputBuffer) : + mBuffer(static_cast(buffer) + startElement * elemSize), + mElemSize(elemSize), mNumElements(numElements), + mOutputBuffer(static_cast(outputBuffer) + startElement * elemSize) + { + } + void run() override + { + byteSwap(mBuffer, mElemSize, mNumElements, mOutputBuffer); + } + + virtual ~ByteSwapCopyRunnable() = default; + ByteSwapCopyRunnable(const ByteSwapCopyRunnable&) = delete; + ByteSwapCopyRunnable& operator=(const ByteSwapCopyRunnable&) = delete; + ByteSwapCopyRunnable(ByteSwapCopyRunnable&&) = delete; + ByteSwapCopyRunnable& operator=(ByteSwapCopyRunnable&&) = delete; + +private: + const void* const mBuffer; + const size_t mElemSize; + const size_t mNumElements; + void* const mOutputBuffer; +}; + +} +#endif // CODA_OSS_sys_ByteSwap_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ByteSwapValue.h b/externals/coda-oss/modules/c++/sys/include/sys/ByteSwapValue.h new file mode 100644 index 0000000000..57cffe3f3b --- /dev/null +++ b/externals/coda-oss/modules/c++/sys/include/sys/ByteSwapValue.h @@ -0,0 +1,196 @@ +/* ========================================================================= + * This file is part of sys-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2014, MDA Information Systems LLC + * (C) Copyright 2021, Maxar Technologies, Inc. + * + * sys-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_sys_ByteSwapValue_h_INCLUDED_ +#define CODA_OSS_sys_ByteSwapValue_h_INCLUDED_ +#pragma once + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "config/Exports.h" + +#include "Span.h" + +#include +#include +#include +#include +#include +#include +#include + +namespace sys +{ + /*! + * Swap bytes for a single value into output buffer. API is `span` rather than `void*` since + * for a single value we know the size. These "low level" routines may be less efficient than + * the templates since it's not possible to specialize on a specific size. + * + * \param buffer to transform + * \param[out] outputBuffer buffer to write swapped elements to + */ + coda_oss::span CODA_OSS_API byteSwap( + coda_oss::span pIn, coda_oss::span outPtr); + + namespace details + { + template + inline auto swapUIntBytes(coda_oss::span inBytes, coda_oss::span outBytes, + std::nothrow_t) noexcept + { + static_assert(std::is_unsigned::value, "TUInt must be 'unsigned'"); + assert(sizeof(TUInt) == inBytes.size()); + assert(inBytes.size() == outBytes.size()); + + const void* const pIn_ = inBytes.data(); + auto const pIn = static_cast(pIn_); + void* const pOut_ = outBytes.data(); + auto const pOut = static_cast(pOut_); + + *pOut = coda_oss::byteswap(*pIn); // at long last, swap the bytes + + // Give the raw byte-swapped bytes back to the caller for easy serialization + return as_bytes(pOut); + } + template + inline auto swapUIntBytes(coda_oss::span inBytes, coda_oss::span outBytes) + { + if (sizeof(TUInt) != inBytes.size()) + { + throw std::invalid_argument("'inBytes.size() != sizeof(TUInt)"); + } + if (inBytes.size() != outBytes.size()) + { + throw std::invalid_argument("'inBytes.size() != outBytes.size()"); + } + return swapUIntBytes(inBytes, outBytes, std::nothrow); + } + + // This is a template so that we can have specializations for different sizes. + // By specializing on `size_t`, a `float` can be "cast" to `uint32_t` (via + // `std::byte`) for byte-swapping. + template + inline auto swapBytes(coda_oss::span inBytes, coda_oss::span outBytes) + { + if (elemSize != inBytes.size()) + { + throw std::invalid_argument("'inBytes.size() != elemSize"); + } + return sys::byteSwap(inBytes, outBytes); // size that wasn't specialized + } + + // avoid copy-paste errors + #define CODA_OSS_define_swapBytes_specialization_(T) template <> inline auto swapBytes \ + (coda_oss::span inBytes, coda_oss::span outBytes) { return swapUIntBytes(inBytes, outBytes); } + CODA_OSS_define_swapBytes_specialization_(uint8_t) // no `;`, it's not needed and generates a -Wpedantic warning + CODA_OSS_define_swapBytes_specialization_(uint16_t) + CODA_OSS_define_swapBytes_specialization_(uint32_t) + CODA_OSS_define_swapBytes_specialization_(uint64_t) + #undef CODA_OSS_define_swapBytes_specialization_ + + template + inline constexpr bool is_byte_swappable() noexcept + { + // Trying to byte-swap anything other than integers is likely to cause + // problems (or at least confusion): + // * `struct`s have padding that should be ignored. + // * each individual member of a `struct` should be byte-swaped + // * byte-swaped `float` or `double` bits are nonsense + return (std::is_integral::value || std::is_enum::value) || !std::is_compound::value; + } + } + + /*! + * Function to swap one element irrespective of size. + * Returns the raw byte-swapped bytes for easy serialization. + */ + template + inline auto swapBytes(coda_oss::span inBytes, coda_oss::span outBytes) + { + static_assert(details::is_byte_swappable(), "T should not be a 'struct'"); + return details::swapBytes(inBytes, outBytes); + } + template + inline auto swapBytes(T in, coda_oss::span outBytes) + { + return swapBytes(as_bytes(in), outBytes); + } + template + inline auto swapBytes(T in) + { + std::vector retval; + retval.resize(sizeof(T)); + std::ignore = swapBytes(in, make_span(retval)); + return retval; + } + + // Reverse the above: turn `span` back to T after byte-swapping + template + inline auto swapBytes(coda_oss::span in) + { + // Don't want to cast the swapped bytes in `in` to T* as they might not be valid; + // e.g., a byte-swapped `float` could be garbage. + T retval; + swapBytes(in, as_writable_bytes(retval)); + return retval; + } + + /*! + * Function to swap one element irrespective of size. The inplace + * buffer function should be preferred. + * + * To specialize complex float, first include the complex library + * \code + #include + * \endcode + * + * Then put an overload in as specified below: + * \code + template std::complex byteSwap(std::complex val) + { + std::complex out(byteSwap(val.real()), + byteSwap(val.imag())); + return out; + } + * \endcode + * + */ + template inline T byteSwap(T val) + { + T out; + std::ignore = swapBytes(val, as_writable_bytes(out)); + return out; + } +} +#endif // CODA_OSS_sys_ByteSwapValue_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVar.h b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVar.h index 73619f9777..50a144415f 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVar.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVar.h @@ -21,41 +21,28 @@ */ -#ifndef __SYS_CONDITION_VAR_H__ -#define __SYS_CONDITION_VAR_H__ +#ifndef CODA_OSS_sys_ConditionVar_h_INCLUDED_ +#define CODA_OSS_sys_ConditionVar_h_INCLUDED_ +#pragma once -# if defined(USE_NSPR_THREADS) -# include "sys/ConditionVarNSPR.h" -namespace sys -{ -typedef ConditionVarNSPR ConditionVar; -} -# elif (defined(WIN32) || defined(_WIN32)) -# include "sys/ConditionVarWin32.h" -namespace sys -{ -typedef ConditionVarWin32 ConditionVar; -} -# elif defined(__sun) -# include "sys/ConditionVarSolaris.h" -namespace sys -{ -typedef ConditionVarSolaris ConditionVar; -} -# elif defined(__sgi) -# include "sys/ConditionVarIrix.h" +#include "sys/Conf.h" + +#if defined(_WIN32) +#include "sys/ConditionVarWin32.h" namespace sys { -typedef ConditionVarIrix ConditionVar; +using ConditionVar = ConditionVarWin32; } -//default to POSIX -# else -# include "sys/ConditionVarPosix.h" + +#elif defined(CODA_OSS_POSIX_SOURCE) +#include "sys/ConditionVarPosix.h" namespace sys { -typedef ConditionVarPosix ConditionVar; +using ConditionVar = ConditionVarPosix; } -# endif // Which thread package? -#endif // End of header +#else +#error "Which thread package?" +#endif +#endif // CODA_OSS_sys_ConditionVar_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarInterface.h b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarInterface.h index 0c16cc63c0..96172c8bcb 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarInterface.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarInterface.h @@ -21,8 +21,9 @@ */ -#ifndef __SYS_CONDITION_VAR_INTERFACE_H__ -#define __SYS_CONDITION_VAR_INTERFACE_H__ +#ifndef CODA_OSS_sys_ConditionVarInterface_h_INCLUDED_ +#define CODA_OSS_sys_ConditionVarInterface_h_INCLUDED_ +#pragma once #include @@ -67,8 +68,8 @@ struct CODA_OSS_API ConditionVarInterface * a lock, but this class will STILL delete it. * */ - ConditionVarInterface(Mutex *, bool = false) - {} + explicit ConditionVarInterface(Mutex *, bool = false) {} + explicit ConditionVarInterface(Mutex&) { } virtual ~ConditionVarInterface() = default; @@ -121,4 +122,4 @@ struct CODA_OSS_API ConditionVarInterface }; } -#endif +#endif // CODA_OSS_sys_ConditionVarInterface_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarIrix.h b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarIrix.h deleted file mode 100644 index 00b529499f..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarIrix.h +++ /dev/null @@ -1,144 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_CONDITION_VAR_IRIX_H__ -#define __SYS_CONDITION_VAR_IRIX_H__ - -#if defined(__sgi) - -#include -#include "sys/SyncFactoryIrix.h" -#include "sys/ConditionVarInterface.h" -#include "sys/MutexIrix.h" - - -namespace sys -{ -/*! - * \class ConditionVarIrix - * \brief The Netscape Portable Runtime condition variable - * implementation - * - * Class using PRCondVar* to implement a condition variable - */ -class ConditionVarIrix : public ConditionVarInterface -{ -public: - - /*! - * This constructor means that you are creating the lock - * that you will use inside of the condition variable. - * The base class destructor will remove this mutex when we - * are destroyed. - */ - ConditionVarIrix(); - - /*! - * This is the sharing constructor. In synchronized buffers, etc., - * it is often desirable to share the lock that you use. Here, - * we implement such a means. - * - * \param theLock This is an existing lock that you wish to - * use for synchronization purposes - * - * \param isOwner This defaults to false, which means that your - * condition variable is not responsible for the deletion of the - * mutex (in other words, you must delete the mutex explicitly. - * If you set this parameter to true, you may actually be sharing - * a lock, but this class will STILL delete it. - * - */ - ConditionVarIrix(MutexIrix *theLock, bool isOwner = false); - - /*! - * Destroy the native CV - */ - virtual ~ConditionVarIrix(); - - /*! - * Acquire the lock - */ - virtual void acquireLock(); - - /*! - * Drop (release) the lock - */ - virtual void dropLock(); - - /*! - * Signal a condition - */ - virtual void signal(); - - /*! - * Wait on a condition - * - * WARNING: The user is responsible for locking the mutex prior - * to using this method. There will be no check and on - * certain systems, undefined/unfavorable behavior may - * result. - */ - virtual void wait(); - - /*! - * Timed wait on a condition - * \param seconds The number of seconds to wait as a fraction - * - * WARNING: The user is responsible for locking the mutex prior - * to using this method. There will be no check and on - * certain systems, undefined/unfavorable behavior may - * result. - */ - virtual void wait(double seconds); - - - /*! - * Broadcast operation - */ - virtual void broadcast(); - - /*! - * Returns the native type. - */ - std::vector& getNative(); - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } - -private: - // This is set if we own the mutex, to make sure it gets deleted. - std::unique_ptr mMutexOwned; - MutexIrix *mMutex; - std::vector mNative; -}; - -} - -# endif -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarNSPR.h b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarNSPR.h deleted file mode 100644 index f4969a30c3..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarNSPR.h +++ /dev/null @@ -1,144 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_CONDITION_VAR_NSPR_H__ -#define __SYS_CONDITION_VAR_NSPR_H__ - -# if defined(USE_NSPR_THREADS) - -#include "sys/ConditionVarInterface.h" -#include "sys/MutexNSPR.h" -#include -#include -#include - -namespace sys -{ -/*! - * \class ConditionVarNSPR - * \brief The Netscape Portable Runtime condition variable - * implementation - * - * Class using PRCondVar* to implement a condition variable - */ -class ConditionVarNSPR : public ConditionVarInterface -{ -public: - - /*! - * This constructor means that you are creating the lock - * that you will use inside of the condition variable. - * The base class destructor will remove this mutex when we - * are destroyed. - */ - ConditionVarNSPR(); - - /*! - * This is the sharing constructor. In synchronized buffers, etc., - * it is often desirable to share the lock that you use. Here, - * we implement such a means. - * - * \param theLock This is an existing lock that you wish to - * use for synchronization purposes - * - * \param isOwner This defaults to false, which means that your - * condition variable is not responsible for the deletion of the - * mutex (in other words, you must delete the mutex explicitly. - * If you set this parameter to true, you may actually be sharing - * a lock, but this class will STILL delete it. - * - */ - ConditionVarNSPR(MutexNSPR *theLock, bool isOwner = false); - - /*! - * Destroy the native CV - */ - virtual ~ConditionVarNSPR(); - - /*! - * Acquire the lock - */ - virtual void acquireLock(); - - /*! - * Drop (release) the lock - */ - virtual void dropLock(); - - /*! - * Signal a condition - */ - virtual void signal(); - - /*! - * Wait on a condition - * - * WARNING: The user is responsible for locking the mutex prior - * to using this method. There will be no check and on - * certain systems, undefined/unfavorable behavior may - * result. - */ - virtual void wait(); - - /*! - * Timed wait on a condition - * \param seconds The number of seconds to wait as a fraction - * - * WARNING: The user is responsible for locking the mutex prior - * to using this method. There will be no check and on - * certain systems, undefined/unfavorable behavior may - * result. - */ - virtual void wait(double seconds); - - /*! - * Broadcast operation - */ - virtual void broadcast(); - - /*! - * Returns the native type. - */ - PRCondVar*& getNative(); - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } - -private: - // This is set if we own the mutex, to make sure it gets deleted. - std::unique_ptr mMutexOwned; - MutexNSPR *mMutex; - PRCondVar *mNative; -}; - - -} - -# endif -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarPosix.h b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarPosix.h index 8110d560b4..2144ac63d8 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarPosix.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarPosix.h @@ -21,15 +21,19 @@ */ -#ifndef __SYS_THREAD_PTHREAD_CONDITION_VARIABLE_H__ -#define __SYS_THREAD_PTHREAD_CONDITION_VARIABLE_H__ +#ifndef CODA_OSS_sys_ConditionVarPosix_h_INCLUDED_ +#define CODA_OSS_sys_ConditionVarPosix_h_INCLUDED_ +#pragma once + +#include #include +#include "sys/ConditionVarInterface.h" #if CODA_OSS_POSIX_SOURCE #include "sys/MutexPosix.h" -#include "sys/ConditionVarInterface.h" + #include namespace sys @@ -42,12 +46,16 @@ namespace sys * This class is the wrapper implementation for a pthread_cond_t * (Pthread condition variable) */ -struct ConditionVarPosix final : public ConditionVarInterface +class ConditionVarPosix final : public ConditionVarInterface { + ConditionVarPosix(MutexPosix* theLock, bool isOwner, std::nullptr_t); + +public: ConditionVarPosix(); //! Constructor - ConditionVarPosix(MutexPosix* theLock, bool isOwner = false); + explicit ConditionVarPosix(MutexPosix* theLock, bool isOwner = false); + explicit ConditionVarPosix(MutexPosix&); // isOwner = false //! Destructor virtual ~ConditionVarPosix(); @@ -58,17 +66,17 @@ struct ConditionVarPosix final : public ConditionVarInterface /*! * Acquire the lock */ - virtual void acquireLock(); + virtual void acquireLock() override; /*! * Drop (release) the lock */ - virtual void dropLock(); + virtual void dropLock() override; /*! * Signal using pthread_cond_signal */ - virtual void signal(); + virtual void signal() override; /*! * Wait using pthread_cond_wait @@ -78,7 +86,7 @@ struct ConditionVarPosix final : public ConditionVarInterface * certain systems, undefined/unfavorable behavior may * result. */ - virtual void wait(); + virtual void wait() override; /*! * Wait using pthread_cond_timed_wait. I kept this and the above @@ -91,12 +99,12 @@ struct ConditionVarPosix final : public ConditionVarInterface * certain systems, undefined/unfavorable behavior may * result. */ - virtual void wait(double seconds); + virtual void wait(double seconds) override; /*! * Broadcast (notify all) */ - virtual void broadcast(); + virtual void broadcast() override; /*! * Returns the native type. @@ -121,4 +129,4 @@ struct ConditionVarPosix final : public ConditionVarInterface } #endif -#endif +#endif // CODA_OSS_sys_ConditionVarPosix_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarSolaris.h b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarSolaris.h deleted file mode 100644 index a9c3588b0e..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarSolaris.h +++ /dev/null @@ -1,119 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_THREAD_SOLARIS_CONDITION_VARIABLE_H__ -#define __SYS_THREAD_SOLARIS_CONDITION_VARIABLE_H__ - -#if defined(__sun) -#include -#include -#include "sys/ConditionVarInterface.h" -#include "sys/MutexSolaris.h" -namespace sys -{ -/*! - * \class ConditionVarSolaris - * \brief Implementation for a solaris thread condition variable - * - * This class is the wrapper implementation for a solaris cond_t - * (Solaris condition variable) - */ -class ConditionVarSolaris : public sys::ConditionVarInterface -{ -public: - ConditionVarSolaris(); - - //! Constructor - ConditionVarSolaris(MutexSolaris* theLock, bool isOwner = false); - - //! Destructor - virtual ~ConditionVarSolaris(); - - /*! - * Acquire the lock - */ - virtual void acquireLock(); - - /*! - * Drop (release) the lock - */ - virtual void dropLock(); - - /*! - * Signal using solaris cond_signal - */ - virtual void signal(); - - /*! - * Wait using cond_wait - * - * WARNING: The user is responsible for locking the mutex prior - * to using this method. There will be no check and on - * certain systems, undefined/unfavorable behavior may - * result. - */ - virtual void wait(); - - /*! - * Wait using cond_timed_wait. I kept this and the above - * function separate only to be explicit. - * \param seconds Fraction of a second to wait. Want a TimeInterval - * \todo Make a parameter initializer that does wait() - * - * WARNING: The user is responsible for locking the mutex prior - * to using this method. There will be no check and on - * certain systems, undefined/unfavorable behavior may - * result. - */ - virtual void wait(double seconds); - - /*! - * Broadcast (notify all) - */ - virtual void broadcast(); - - /*! - * Returns the native type. - */ - cond_t& getNative(); - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } - -private: - // This is set if we own the mutex, to make sure it gets deleted. - std::unique_ptr mMutexOwned; - MutexSolaris *mMutex; - cond_t mNative; -}; - -} - -#endif -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarWin32.h b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarWin32.h index 3847910ed4..c94e1429b0 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarWin32.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ConditionVarWin32.h @@ -21,27 +21,27 @@ */ -#ifndef __SYS_WIN32_CONDITION_VARIABLE_H__ -#define __SYS_WIN32_CONDITION_VARIABLE_H__ +#ifndef CODA_OSS_sys_ConditionVarWin32_h_INCLUDED_ +#define CODA_OSS_sys_ConditionVarWin32_h_INCLUDED_ +#pragma once + +#include #include "config/Exports.h" +#include "sys/ConditionVarInterface.h" -#if defined(WIN32) || defined(_WIN32) -#if !defined(USE_NSPR_THREADS) +#if defined(_WIN32) -#include "sys/ConditionVarInterface.h" #include "sys/MutexWin32.h" - namespace sys { /// @note This implementation is based on section 3.4 of the /// "Strategies for Implementing POSIX Condition Variables on Win32" /// article at www.cse.wustl.edu/~schmidt/win32-cv-1.html. /// This is the ACE framework implementation. -class CODA_OSS_API ConditionVarDataWin32 +struct CODA_OSS_API ConditionVarDataWin32 final { -public: ConditionVarDataWin32(); ~ConditionVarDataWin32(); @@ -76,15 +76,16 @@ class CODA_OSS_API ConditionVarDataWin32 bool mWasBroadcast; }; -struct CODA_OSS_API ConditionVarWin32 final : public ConditionVarInterface - +class CODA_OSS_API ConditionVarWin32 final : public ConditionVarInterface { - ConditionVarWin32(); - - ConditionVarWin32(MutexWin32 *theLock, bool isOwner = false); + ConditionVarWin32(MutexWin32* theLock, bool isOwner, std::nullptr_t); + +public: + ConditionVarWin32(); + explicit ConditionVarWin32(MutexWin32* theLock, bool isOwner = false); + explicit ConditionVarWin32(MutexWin32&); // isOwner = false - virtual ~ConditionVarWin32() - {} + virtual ~ConditionVarWin32() = default; ConditionVarWin32(const ConditionVarWin32&) = delete; ConditionVarWin32& operator=(const ConditionVarWin32&) = delete; @@ -149,12 +150,10 @@ struct CODA_OSS_API ConditionVarWin32 final : public ConditionVarInterface private: // This is set if we own the mutex, to make sure it gets deleted. std::unique_ptr mMutexOwned; - MutexWin32 *mMutex; + MutexWin32* mMutex; ConditionVarDataWin32 mNative; }; } #endif -#endif - -#endif +#endif // CODA_OSS_sys_ConditionVarWin32_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Conf.h b/externals/coda-oss/modules/c++/sys/include/sys/Conf.h index 5537b1b32d..df36708bb4 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/Conf.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/Conf.h @@ -25,14 +25,34 @@ #define CODA_OSS_sys_Conf_h_INCLUDED_ #pragma once +// In case there is still a WIN32 (should be "_WIN32" with a leading '_') someplace. +#if defined(_WIN32) && !defined(WIN32) +#define WIN32 _WIN32 +#endif + // POSIX is more-or-less "Unix" // https://linux.die.net/man/7/feature_test_macros // "If no feature test macros are explicitly defined, then the following feature test macros // are defined by default: ... _POSIX_SOURCE, and _POSIX_C_SOURCE=200809L. [...] // _POSIX_SOURCE Defining this obsolete macro ... is equivalent to defining _POSIX_C_SOURCE ..." -#define CODA_OSS_POSIX_SOURCE (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 1)) -#define CODA_OSS_POSIX2001_SOURCE CODA_OSS_POSIX_SOURCE && (_POSIX_C_SOURCE >= 200112L) -#define CODA_OSS_POSIX2008_SOURCE CODA_OSS_POSIX2001_SOURCE && (_POSIX_C_SOURCE >= 200809L) +#ifndef _WIN32 +#include +#endif + +#undef CODA_OSS_POSIX_SOURCE +#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 1) +#define CODA_OSS_POSIX_SOURCE _POSIX_C_SOURCE +#endif + +#undef CODA_OSS_POSIX2001_SOURCE +#if defined(CODA_OSS_POSIX_SOURCE) && (_POSIX_C_SOURCE >= 200112L) +#define CODA_OSS_POSIX2001_SOURCE _POSIX_C_SOURCE +#endif + +#undef CODA_OSS_POSIX2008_SOURCE +#if defined(CODA_OSS_POSIX2001_SOURCE) && (_POSIX_C_SOURCE >= 200809L) +#define CODA_OSS_POSIX2008_SOURCE _POSIX_C_SOURCE +#endif #include #include @@ -44,23 +64,18 @@ #endif #include -#include #include #include -#include - -#if defined(__sgi) || defined(__sgi__) -# include -# include -#else -# include -# include -#endif +#include +#include +#include +#include #include + #include "str/Format.h" #include "sys/TimeStamp.h" - +#include "sys/ByteSwap.h" /* Dance around the compiler to figure out */ @@ -70,7 +85,7 @@ #if defined(__GNUC__) /* We get a really nice function macro */ # define NativeLayer_func__ __PRETTY_FUNCTION__ -#elif (defined(WIN32) || defined(_WIN32)) && (_MSC_VER >= 1300) +#elif defined(_WIN32) && (_MSC_VER >= 1300) # define NativeLayer_func__ __FUNCSIG__ /* Otherwise, lets look for C99 compatibility */ #elif defined (__STDC_VERSION__) @@ -106,7 +121,7 @@ namespace sys typedef int64_t Int64_T; } -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # include # include # include @@ -128,21 +143,6 @@ namespace sys } #else // !windows # include -# if defined(__sgi) || defined(__sgi__) -# if defined(__GNUC__) -# ifdef _FIX_BROKEN_HEADERS - typedef __int64_t jid_t; -# endif -# endif -# endif -# if defined(__sun) || defined(__sun__) || defined(__sparc) || defined(__sparc) || defined(__sparc__) -# if !defined(__SunOS_5_6) && !defined(__SunOS_5_7) && !defined(__SunOS_5_8) && defined(__GNUC__) -# ifdef _FIX_BROKEN_HEADERS - typedef id_t projid_t; -# endif -# endif -# include -# endif # include # include # include @@ -150,11 +150,7 @@ namespace sys # include # include # include -# if defined(_USE_STDINT) -# include -# else -# include -# endif +# include //# include namespace sys @@ -202,113 +198,7 @@ namespace sys * RISC architectures we are big-endian. */ bool CODA_OSS_API isBigEndianSystem(); - - - /*! - * Swap bytes in-place. Note that a complex pixel - * is equivalent to two floats so elemSize and numElems - * must be adjusted accordingly. - * - * \param [inout] buffer to transform - * \param elemSize - * \param numElems - */ - inline void byteSwap(void* buffer, - unsigned short elemSize, - size_t numElems) - { - sys::byte* bufferPtr = static_cast(buffer); - if (!bufferPtr || elemSize < 2 || !numElems) - return; - - const auto half = elemSize >> 1; - size_t offset = 0, innerOff = 0, innerSwap = 0; - - for(size_t i = 0; i < numElems; ++i, offset += elemSize) - { - for(unsigned short j = 0; j < half; ++j) - { - innerOff = offset + j; - innerSwap = offset + elemSize - 1 - j; - - std::swap(bufferPtr[innerOff], bufferPtr[innerSwap]); - } - } - } - - /*! - * Swap bytes into output buffer. Note that a complex pixel - * is equivalent to two floats so elemSize and numElems - * must be adjusted accordingly. - * - * \param buffer to transform - * \param elemSize - * \param numElems - * \param[out] outputBuffer buffer to write swapped elements to - */ - inline void byteSwap(const void* buffer, - unsigned short elemSize, - size_t numElems, - void* outputBuffer) - { - const sys::byte* bufferPtr = static_cast(buffer); - sys::byte* outputBufferPtr = static_cast(outputBuffer); - - if (!numElems || !bufferPtr || !outputBufferPtr) - { - return; - } - - const auto half = elemSize >> 1; - size_t offset = 0; - - for (size_t ii = 0; ii < numElems; ++ii, offset += elemSize) - { - for (unsigned short jj = 0; jj < half; ++jj) - { - const size_t innerOff = offset + jj; - const size_t innerSwap = offset + elemSize - 1 - jj; - - outputBufferPtr[innerOff] = bufferPtr[innerSwap]; - outputBufferPtr[innerSwap] = bufferPtr[innerOff]; - } - } - } - - /*! - * Function to swap one element irrespective of size. The inplace - * buffer function should be preferred. - * - * To specialize complex float, first include the complex library - * \code - #include - * \endcode - * - * Then put an overload in as specified below: - * \code - template std::complex byteSwap(std::complex val) - { - std::complex out(byteSwap(val.real()), - byteSwap(val.imag())); - return out; - } - * \endcode - * - */ - template T byteSwap(T val) - { - size_t size = sizeof(T); - T out; - - unsigned char* cOut = reinterpret_cast(&out); - unsigned char* cIn = reinterpret_cast(&val); - for (size_t i = 0, j = size - 1; i < j; ++i, --j) - { - cOut[i] = cIn[j]; - cOut[j] = cIn[i]; - } - return out; - } + bool CODA_OSS_API isLittleEndianSystem(); /*! @@ -327,15 +217,15 @@ namespace sys size_t alignment = SSE_INSTRUCTION_ALIGNMENT) { void* p = nullptr; -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 p = _aligned_malloc(size, alignment); -#elif CODA_OSS_POSIX2001_SOURCE +#elif defined(CODA_OSS_POSIX2001_SOURCE) // https://linux.die.net/man/3/posix_memalign if (posix_memalign(&p, alignment, size) != 0) { p = nullptr; } -#elif CODA_OSS_POSIX_SOURCE +#elif defined(CODA_OSS_POSIX_SOURCE) // https://linux.die.net/man/3/posix_memalign // "The functions memalign(), ... have been available in all Linux libc libraries." p = memalign(alignment, size); @@ -359,14 +249,13 @@ namespace sys */ inline void alignedFree(void* p) { -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 _aligned_free(p); #else free(p); #endif } - } // https://en.wikipedia.org/wiki/Year_2038_problem diff --git a/externals/coda-oss/modules/c++/sys/include/sys/DLL.h b/externals/coda-oss/modules/c++/sys/include/sys/DLL.h index b9eb3d8c4b..28fbb6be54 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/DLL.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/DLL.h @@ -37,7 +37,7 @@ * */ -# if defined(WIN32) || defined(_WIN32) +# ifdef _WIN32 # include "sys/Conf.h" # define DLL_PUBLIC_FUNCTION extern "C" __declspec (dllexport) typedef HINSTANCE DYNAMIC_LIBRARY; diff --git a/externals/coda-oss/modules/c++/sys/include/sys/DateTime.h b/externals/coda-oss/modules/c++/sys/include/sys/DateTime.h index 38b7424a77..5ca7db4459 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/DateTime.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/DateTime.h @@ -31,6 +31,7 @@ #include #include "config/Exports.h" +#include "config/disable_compiler_warnings.h" namespace sys { diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Dbg.h b/externals/coda-oss/modules/c++/sys/include/sys/Dbg.h index 3a1d1ea771..96bfb098f0 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/Dbg.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/Dbg.h @@ -27,6 +27,7 @@ #pragma once #include "config/Exports.h" +#include "config/disable_compiler_warnings.h" // A "debug" build has debugging symbols, detailed call stacks, minimal optimization, STL validation, etc. // A "release" build is likely to "run fast" and be "shipped;" it might lack much of what is in a "debug" build. @@ -95,12 +96,7 @@ #include #include #include - -#if defined(__sgi) || defined(__sgi__) -# include -#else -# include -#endif +#include namespace sys { diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Err.h b/externals/coda-oss/modules/c++/sys/include/sys/Err.h index 161c27618a..c7163f35bd 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/Err.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/Err.h @@ -168,7 +168,7 @@ struct SocketErr : public Err } //! Redefined for socket errors - virtual int getLast() const; + virtual int getLast() const override; }; diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Exec.h b/externals/coda-oss/modules/c++/sys/include/sys/Exec.h index 27eeaedde6..baee2e581e 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/Exec.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/Exec.h @@ -62,7 +62,7 @@ class Exec : public sys::Runnable /*! * Execute a command */ - virtual void run() + virtual void run() override { if (::system(mCmd.c_str()) == -1) { @@ -96,7 +96,7 @@ struct ExecPipe : Exec } //! start the child process and connect the pipe - virtual void run() + virtual void run() override { mOutStream = openPipe(mCmd, "r"); if (mOutStream == nullptr) diff --git a/externals/coda-oss/modules/c++/sys/include/sys/File.h b/externals/coda-oss/modules/c++/sys/include/sys/File.h index c0ae19f063..0eacf0e320 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/File.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/File.h @@ -20,15 +20,25 @@ * */ -#ifndef __SYS_FILE_H__ -#define __SYS_FILE_H__ +#ifndef CODA_OSS_sys_File_h_INCLUDED_ +#define CODA_OSS_sys_File_h_INCLUDED_ +#pragma once + +#include +#include +#include +#include + +#include +#include #include "sys/Conf.h" #include "sys/SystemException.h" #include "sys/Path.h" #include "sys/filesystem.h" +#include "config/Exports.h" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # define _SYS_SEEK_CUR FILE_CURRENT # define _SYS_SEEK_SET FILE_BEGIN # define _SYS_SEEK_END FILE_END @@ -68,7 +78,7 @@ typedef int _SYS_HANDLE_TYPE; namespace sys { -struct File +struct CODA_OSS_API File { enum { @@ -99,12 +109,22 @@ struct File { create(path.getPath(), accessFlags, creationFlags); } + File(std::nothrow_t, const coda_oss::filesystem::path& path, + int accessFlags = READ_ONLY, int creationFlags = EXISTING) noexcept // caller MUST check isOpen() + { + create(std::nothrow, path, accessFlags, creationFlags); + } File(const Path& parent, std::string name, int accessFlags = READ_ONLY, int creationFlags = EXISTING) { create(parent.join(name).getPath(), accessFlags, creationFlags); } + File(std::nothrow_t, const coda_oss::filesystem::path& parent, const coda_oss::filesystem::path& name, + int accessFlags = READ_ONLY, int creationFlags = EXISTING) noexcept // caller MUST check isOpen() + { + create(std::nothrow, parent / name, accessFlags, creationFlags); + } /*! * Constructor. Initializes to a file. @@ -127,6 +147,11 @@ struct File close(); } + File(const File&) = default; + File& operator=(const File&) = default; + File(File&&) = default; + File& operator=(File&&) = default; + /*! * Is the file open? * \return true if open, false if invalid handle @@ -161,8 +186,13 @@ struct File * \param accessFlags File access flags * \param creationFlags File creation flags */ - void create(const std::string& str, int accessFlags, - int creationFlags); + void create(const std::string& str, int accessFlags, int creationFlags); + void create(std::nothrow_t, const coda_oss::filesystem::path& path, + int accessFlags, int creationFlags) // caller MUST check isOpen() + { + mHandle = createFile(path, accessFlags, creationFlags); + mPath = path.string(); + } /*! * Read from the File into a buffer 'size' bytes. @@ -234,10 +264,35 @@ struct File protected: _SYS_HANDLE_TYPE mHandle = SYS_INVALID_HANDLE; std::string mPath; + + static _SYS_HANDLE_TYPE createFile(const coda_oss::filesystem::path&, int accessFlags, int creationFlags) noexcept; }; -} +// These routines use sys::expandEnvironmentVariables() if the initial open attempt fails. +CODA_OSS_API File make_File(const coda_oss::filesystem::path&, int accessFlags = File::READ_ONLY, int creationFlags = File::EXISTING); +CODA_OSS_API File make_File(const coda_oss::filesystem::path& parent, const coda_oss::filesystem::path& name, + int accessFlags = File::READ_ONLY, int creationFlags = File::EXISTING); + + +// Call sys::expandEnvironmentVariables() if the initial fopen() fails. +CODA_OSS_API FILE* fopen(const coda_oss::filesystem::path&, const std::string& mode); +CODA_OSS_API int open(const coda_oss::filesystem::path&, int flags); +CODA_OSS_API int open(const coda_oss::filesystem::path&, int flags, int mode); +CODA_OSS_API int close(int fd); // needed to close a FD from open() +#ifdef _WIN32 +#define CODA_OSS_stat _stat +#else +#define CODA_OSS_stat stat #endif +// Call sys::expandEnvironmentVariables() if the initial stat() attempt fails. +CODA_OSS_API int stat(const coda_oss::filesystem::path&, struct CODA_OSS_stat &buffer); + +// Call sys::expandEnvironmentVariables() if the initial open attempt fails. +CODA_OSS_API std::ifstream make_ifstream(const coda_oss::filesystem::path&, std::ios_base::openmode mode = std::ios_base::in); // https://en.cppreference.com/w/cpp/io/basic_ifstream/basic_ifstream +CODA_OSS_API void open(std::ifstream&, const coda_oss::filesystem::path&, std::ios_base::openmode mode = std::ios_base::in); // https://en.cppreference.com/w/cpp/io/basic_ifstream/open + +} +#endif // CODA_OSS_sys_File_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/FileFinder.h b/externals/coda-oss/modules/c++/sys/include/sys/FileFinder.h index a90818cb8a..be9ae0bcf8 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/FileFinder.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/FileFinder.h @@ -51,7 +51,7 @@ struct FilePredicate struct ExistsPredicate : FilePredicate { virtual ~ExistsPredicate() = default; - virtual bool operator()(const std::string& entry) const; + virtual bool operator()(const std::string& entry) const override; }; /** @@ -60,7 +60,7 @@ struct ExistsPredicate : FilePredicate struct FileOnlyPredicate: public FilePredicate { virtual ~FileOnlyPredicate() = default; - virtual bool operator()(const std::string& entry) const; + virtual bool operator()(const std::string& entry) const override; }; /** @@ -69,7 +69,7 @@ struct FileOnlyPredicate: public FilePredicate struct DirectoryOnlyPredicate: public FilePredicate { virtual ~DirectoryOnlyPredicate() = default; - virtual bool operator()(const std::string& entry) const; + virtual bool operator()(const std::string& entry) const override; }; /** @@ -78,7 +78,7 @@ struct DirectoryOnlyPredicate: public FilePredicate struct FragmentPredicate : public FilePredicate { FragmentPredicate(const std::string& fragment, bool ignoreCase = true); - bool operator()(const std::string& entry) const; + bool operator()(const std::string& entry) const override; private: std::string mFragment; @@ -96,7 +96,7 @@ struct FragmentPredicate : public FilePredicate struct ExtensionPredicate: public FileOnlyPredicate { ExtensionPredicate(const std::string& ext, bool ignoreCase = true); - bool operator()(const std::string& filename) const; + bool operator()(const std::string& filename) const override; private: std::string mExt; @@ -111,7 +111,7 @@ struct NotPredicate : public FilePredicate NotPredicate(FilePredicate* filter, bool ownIt = false); virtual ~NotPredicate(); - virtual bool operator()(const std::string& entry) const; + virtual bool operator()(const std::string& entry) const override; protected: typedef std::pair PredicatePair; @@ -132,7 +132,7 @@ struct LogicalPredicate : public FilePredicate sys::LogicalPredicate& addPredicate(FilePredicate* filter, bool ownIt = false); - virtual bool operator()(const std::string& entry) const; + virtual bool operator()(const std::string& entry) const override; protected: bool mOrOperator = true; @@ -161,13 +161,40 @@ struct FileFinder final bool recursive = false); }; -// This is here most to avoid creating a new module for one utility routine +// Recurssively search the entire directory structure, starting at "startingDirectory", for the given file. +// If the file isn't found below "startingDirectory", the process is repated using the parent directory +// until either the file is found or we stop at a ".git" directory. +// +// This (obviously) might take a while, so consider whether the result should be cached. +coda_oss::filesystem::path findFirstFile(const coda_oss::filesystem::path& startingDirectory, const coda_oss::filesystem::path& filename); +coda_oss::filesystem::path findFirstDirectory(const coda_oss::filesystem::path& startingDirectory, const coda_oss::filesystem::path& dir); + +// This is here most to avoid creating a new module for a few utility routines namespace test // i.e., sys::test { // Try to find the specified "root" directory starting at the given path. // Used by unittest to find sample files. coda_oss::filesystem::path findRootDirectory(const coda_oss::filesystem::path& p, const std::string& rootName, std::function isRoot); + + coda_oss::filesystem::path findCMakeBuildRoot(const coda_oss::filesystem::path& p); + bool isCMakeBuild(const coda_oss::filesystem::path& p); + + coda_oss::filesystem::path findCMakeInstallRoot(const coda_oss::filesystem::path& p); + bool isCMakeInstall(const coda_oss::filesystem::path& p); + + // Walk up the directory tree until a .git/ directory is found + coda_oss::filesystem::path find_dotGITDirectory(const coda_oss::filesystem::path& p); + + // Starting at "root", find the file: root / modulePath / file + // If that's not found, insert other "known locations" between "root" and "modulePath" + // e.g., root / "externals" / [name] / path / file + // + // Once modulePath is found, the result is cached to avoid searching again. + coda_oss::filesystem::path findModuleFile(const coda_oss::filesystem::path& root, + const std::string& externalsName, const coda_oss::filesystem::path& modulePath, const coda_oss::filesystem::path& moduleFile); + coda_oss::filesystem::path findGITModuleFile( // use current_directory() to find_dotGITDirectory() + const std::string& externalsName, const coda_oss::filesystem::path& modulePath, const coda_oss::filesystem::path& moduleFile); } } #endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/LocalDateTime.h b/externals/coda-oss/modules/c++/sys/include/sys/LocalDateTime.h index 5f36e3c58c..5effbcaa69 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/LocalDateTime.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/LocalDateTime.h @@ -39,15 +39,15 @@ class CODA_OSS_API LocalDateTime : public DateTime int mDST; //! @brief Set members from the tm struct value. - virtual void fromMillis(const tm& t); + virtual void fromMillis(const tm& t) override; /** * @brief Set the millis value from the members */ - virtual void toMillis(); + virtual void toMillis() override; // ! Given seconds since the epoch, provides the local time - virtual void getTime(time_t numSecondsSinceEpoch, tm& t) const; + virtual void getTime(time_t numSecondsSinceEpoch, tm& t) const override; public: /*! diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Mutex.h b/externals/coda-oss/modules/c++/sys/include/sys/Mutex.h index d6e32539e4..31099194ff 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/Mutex.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/Mutex.h @@ -21,54 +21,54 @@ */ -#ifndef __SYS_MUTEX_H__ -#define __SYS_MUTEX_H__ +#ifndef CODA_OSS_sys_Mutex_h_INCLUDED_ +#define CODA_OSS_sys_Mutex_h_INCLUDED_ +#pragma once + +#include "sys/Conf.h" + +#include "sys/MutexCpp11.h" + /** - * \file + * \file * \brief Include the right mutex. * * This file will auto-select the mutex of choice, - * if one is to be defined. + * if one is to be defined. * \note We need to change the windows part to check _MT * because that is how it determines reentrance! * */ -# if defined(USE_NSPR_THREADS) -# include "sys/MutexNSPR.h" -namespace sys -{ -typedef MutexNSPR Mutex; -} -# elif (defined(WIN32) || defined(_WIN32)) -# include "sys/MutexWin32.h" +#if defined(_WIN32) +#include "sys/MutexWin32.h" namespace sys { -typedef MutexWin32 Mutex; +using MutexOS = MutexWin32; } -/* # elif defined(USE_BOOST) */ -/* # include "MutexBoost.h" */ -/* typedef MutexBoost Mutex; */ -# elif defined(__sun) -# include "sys/MutexSolaris.h" +#elif defined(CODA_OSS_POSIX_SOURCE) +#include "sys/MutexPosix.h" namespace sys { -typedef MutexSolaris Mutex; +using MutexOS = MutexPosix; } -# elif defined(__sgi) -# include "sys/MutexIrix.h" + +#else +#error "Which thread package?" +#endif + +#define CODA_OSS_sys_use_MutexOS 1 // ConditionVar depends on the OS mutex ... for now +#if !CODA_OSS_sys_use_MutexOS namespace sys { -typedef MutexIrix Mutex; +using Mutex = MutexCpp11; } -// Give 'em POSIX -# else -# include "sys/MutexPosix.h" +#else namespace sys { -typedef MutexPosix Mutex; +using Mutex = MutexOS; } -# endif // Which thread package? +#endif -#endif // End of header +#endif // CODA_OSS_sys_Mutex_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/MutexIrix.h b/externals/coda-oss/modules/c++/sys/include/sys/MutexCpp11.h similarity index 71% rename from externals/coda-oss/modules/c++/sys/include/sys/MutexIrix.h rename to externals/coda-oss/modules/c++/sys/include/sys/MutexCpp11.h index dee3a3a5ba..b95738d349 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/MutexIrix.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/MutexCpp11.h @@ -1,7 +1,7 @@ /* ========================================================================= - * This file is part of sys-c++ + * This file is part of sys-c++ * ========================================================================= - * + * * (C) Copyright 2004 - 2014, MDA Information Systems LLC * * sys-c++ is free software; you can redistribute it and/or modify @@ -14,54 +14,54 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, * see . * */ +#ifndef CODA_OSS_sys_MutexCpp11_h_INCLUDED_ +#define CODA_OSS_sys_MutexCpp11_h_INCLUDED_ -#ifndef __SYS_MUTEX_IRIX_H__ -#define __SYS_MUTEX_IRIX_H__ - +#include -#if defined(__sgi) -#include "sys/SyncFactoryIrix.h" #include "sys/MutexInterface.h" namespace sys { /*! - * \class MutexIrix + * \class MutexPosix * \brief The pthreads implementation of a mutex * * Implements a pthread mutex and wraps the outcome * */ -class MutexIrix : public MutexInterface +struct MutexCpp11 final : public MutexInterface { -public: //! Constructor - MutexIrix(); + MutexCpp11(); //! Destructor - virtual ~MutexIrix(); + virtual ~MutexCpp11(); + + MutexCpp11(const MutexCpp11&) = delete; + MutexCpp11& operator=(const MutexCpp11&) = delete; /*! * Lock the mutex. */ - virtual void lock(); - + virtual void lock() override; + /*! * Unlock the mutex. */ - virtual void unlock(); - + virtual void unlock() override; + /*! * Returns the native type. */ - ulock_t*& getNative(); - + std::mutex& getNative(); + /*! * Return the type name. This function is essentially free, * because it is static RTTI. @@ -70,12 +70,10 @@ class MutexIrix : public MutexInterface { return typeid(mNative).name(); } - + private: - ulock_t* mNative; + std::mutex mNative; }; - } -#endif -#endif +#endif // CODA_OSS_sys_MutexCpp11_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/MutexInterface.h b/externals/coda-oss/modules/c++/sys/include/sys/MutexInterface.h index 490d20e0d1..30e3ae73fc 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/MutexInterface.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/MutexInterface.h @@ -21,8 +21,9 @@ */ -#ifndef __SYS_MUTEX_INTERFACE_H__ -#define __SYS_MUTEX_INTERFACE_H__ +#ifndef CODA_OSS_sys_MutexInterface_h_INCLUDED_ +#define CODA_OSS_sys_MutexInterface_h_INCLUDED_ +#pragma once #include @@ -62,6 +63,9 @@ class CODA_OSS_API MutexInterface } + MutexInterface(const MutexInterface&) = delete; + MutexInterface& operator=(const MutexInterface&) = delete; + /*! * Lock the mutex up. */ @@ -76,4 +80,4 @@ class CODA_OSS_API MutexInterface } -#endif +#endif // CODA_OSS_sys_MutexInterface_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/MutexNSPR.h b/externals/coda-oss/modules/c++/sys/include/sys/MutexNSPR.h deleted file mode 100644 index e4c33be7ef..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/MutexNSPR.h +++ /dev/null @@ -1,75 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_NSPR_MUTEX_H__ -#define __SYS_NSPR_MUTEX_H__ - -#if defined(USE_NSPR_THREADS) - -#include "sys/MutexInterface.h" -#include -#include -#include - - -namespace sys -{ -/*! - * \class MutexNSPR - * \brief This is a Netscape Portable Runtime mutex - * implementation - * - * Use NSPR thread package to make platform independent - * threading - */ -class MutexNSPR : public MutexInterface -{ -public: - //! Constructor. Create a new mutex - MutexNSPR(); - - //! Destroy the native mutex - - ~MutexNSPR(); - /*! - * Lock a NSPR mutex - */ - void lock(); - - /*! - * Unlock NSPR mutex. - */ - virtual void unlock(); - - /*! - * Returns the native type. - */ - PRLock*& getNative(); - -private: - PRLock* mNative; -}; - -} -# endif // NSPR -#endif // Header diff --git a/externals/coda-oss/modules/c++/sys/include/sys/MutexPosix.h b/externals/coda-oss/modules/c++/sys/include/sys/MutexPosix.h index e954c33129..8ffbaf88f0 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/MutexPosix.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/MutexPosix.h @@ -54,12 +54,12 @@ class MutexPosix : public MutexInterface /*! * Lock the mutex. */ - virtual void lock(); + virtual void lock() override; /*! * Unlock the mutex. */ - virtual void unlock(); + virtual void unlock() override; /*! * Returns the native type. diff --git a/externals/coda-oss/modules/c++/sys/include/sys/MutexSolaris.h b/externals/coda-oss/modules/c++/sys/include/sys/MutexSolaris.h deleted file mode 100644 index ecad194459..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/MutexSolaris.h +++ /dev/null @@ -1,82 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_THREAD_SOLARIS_MUTEX_H__ -#define __SYS_THREAD_SOLARIS_MUTEX_H__ - - -#if defined(__sun) - -#include -#include -#include "sys/MutexInterface.h" - -namespace sys -{ -/*! - * \class MutexSolaris - * \brief The solaris threads implementation of a mutex - * - * Implements a solaris thread mutex and wraps the outcome - * - */ -class MutexSolaris : public MutexInterface -{ -public: - //! Constructor - MutexSolaris(); - - //! Destructor - virtual ~MutexSolaris(); - - /*! - * Lock the mutex. - */ - virtual void lock(); - - /*! - * Unlock the mutex. - */ - virtual void unlock(); - - /*! - * Returns the native type. - */ - mutex_t& getNative(); - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } - -private: - mutex_t mNative; -}; -} - -#endif -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/MutexWin32.h b/externals/coda-oss/modules/c++/sys/include/sys/MutexWin32.h index cbea973804..adc3ac2d38 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/MutexWin32.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/MutexWin32.h @@ -26,7 +26,7 @@ #include "config/Exports.h" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #if !defined(USE_NSPR_THREADS) #include "sys/MutexInterface.h" @@ -39,6 +39,12 @@ class CODA_OSS_API MutexWin32 : public MutexInterface //! \todo Add string name option MutexWin32(); virtual ~MutexWin32(); + + MutexWin32(const MutexWin32&) = delete; + MutexWin32& operator = (const MutexWin32&) = delete; + MutexWin32(MutexWin32&&) = delete; + MutexWin32& operator=(MutexWin32&&) = delete; + /*! * Lock the mutex. */ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/OS.h b/externals/coda-oss/modules/c++/sys/include/sys/OS.h index 32cb75d40e..6ea40c83fb 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/OS.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/OS.h @@ -26,7 +26,7 @@ #include "sys/AbstractOS.h" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # include "sys/OSWin32.h" namespace sys { @@ -54,7 +54,7 @@ namespace sys //MacOS }; - #if _WIN32 + #ifdef _WIN32 constexpr auto Platform = PlatformType::Windows; #else constexpr auto Platform = PlatformType::Linux; diff --git a/externals/coda-oss/modules/c++/sys/include/sys/OSUnix.h b/externals/coda-oss/modules/c++/sys/include/sys/OSUnix.h index 4253787537..eb1a52dd36 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/OSUnix.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/OSUnix.h @@ -24,7 +24,7 @@ #ifndef __SYS_OS_UNIX_H__ #define __SYS_OS_UNIX_H__ -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include "sys/AbstractOS.h" #include "sys/Conf.h" @@ -38,9 +38,9 @@ struct OSUnix final : public AbstractOS OSUnix() = default; virtual ~OSUnix() = default; - virtual std::string getPlatformName() const; + virtual std::string getPlatformName() const override; - virtual std::string getNodeName() const; + virtual std::string getNodeName() const override; /*! * Get the path delimiter for this operating system. @@ -48,7 +48,7 @@ struct OSUnix final : public AbstractOS * For unix it will be one slash / * \return The path delimiter */ - virtual const char* getDelimiter() const + virtual const char* getDelimiter() const override { return "/"; } @@ -64,64 +64,64 @@ struct OSUnix final : public AbstractOS * \param path The path to check for * \return True if it does, false otherwise */ - virtual bool exists(const std::string& path) const; + virtual bool exists(const std::string& path) const override; /*! * Move file with this path name to the newPath * \return True upon success, false if failure */ virtual bool move(const std::string& path, - const std::string& newPath) const; + const std::string& newPath) const override; /*! * Does this path resolve to a file? * \param path The path * \return True if it does, false if not */ - virtual bool isFile(const std::string& path) const; + virtual bool isFile(const std::string& path) const override; /*! * Does this path resolve to a directory? * \param path The path * \return True if it does, false if not */ - virtual bool isDirectory(const std::string& path) const; + virtual bool isDirectory(const std::string& path) const override; - virtual bool makeDirectory(const std::string& path) const; + virtual bool makeDirectory(const std::string& path) const override; - virtual Pid_T getProcessId() const; + virtual Pid_T getProcessId() const override; /*! * Retrieve the current working directory. * \return The current working directory */ - virtual std::string getCurrentWorkingDirectory() const; + virtual std::string getCurrentWorkingDirectory() const override; /*! * Change the current working directory. * \return true if the directory was changed, otherwise false. */ - virtual bool changeDirectory(const std::string& path) const; + virtual bool changeDirectory(const std::string& path) const override; /*! * Get a suitable temporary file name * \return The file name */ virtual std::string getTempName(const std::string& path = ".", - const std::string& prefix = "TMP") const; + const std::string& prefix = "TMP") const override; /*! * Return the size in bytes of a file * \return The file size */ - virtual sys::Off_T getSize(const std::string& path) const; + virtual sys::Off_T getSize(const std::string& path) const override; /** * Returns the last modified time of the file/directory */ - virtual sys::Off_T getLastModifiedTime(const std::string& path) const; + virtual sys::Off_T getLastModifiedTime(const std::string& path) const override; /*! * This is a system independent sleep function. @@ -130,59 +130,59 @@ struct OSUnix final : public AbstractOS * use nanosleep * \param milliseconds The params */ - virtual void millisleep(int milliseconds) const; + virtual void millisleep(int milliseconds) const override; - virtual std::string operator[](const std::string& s) const; + virtual std::string operator[](const std::string& s) const override; /*! * Get an environment variable */ - virtual std::string getEnv(const std::string& s) const; + virtual std::string getEnv(const std::string& s) const override; /*! * Returns true if environment variable is set, false otherwise */ - virtual bool isEnvSet(const std::string& s) const; + virtual bool isEnvSet(const std::string& s) const override; /*! * Set an environment variable */ virtual void setEnv(const std::string& var, const std::string& val, - bool overwrite); + bool overwrite) override; /*! * Unset an environment variable */ - virtual void unsetEnv(const std::string& var); + virtual void unsetEnv(const std::string& var) override; - virtual std::string getDSOSuffix() const; + virtual std::string getDSOSuffix() const override; /*! * \return the number of logical CPUs present on the machine * (includes hyperthreading) */ - virtual size_t getNumCPUs() const; + virtual size_t getNumCPUs() const override; /*! * \return the number of logical CPUs available. This will be * affected by pinning (e.g. numactl/taskset), and will * always be <= getNumCPUs. */ - virtual size_t getNumCPUsAvailable() const; + virtual size_t getNumCPUsAvailable() const override; /*! * \return the number of physical CPUs present on the machine * (excludes hyperthreading) */ - virtual size_t getNumPhysicalCPUs() const; + virtual size_t getNumPhysicalCPUs() const override; /*! * \return the number of physical CPUs available. This will be * affected by pinning (e.g. numactl/taskset), and will * always be <= getNumPhysicalCPUs. */ - virtual size_t getNumPhysicalCPUsAvailable() const; + virtual size_t getNumPhysicalCPUsAvailable() const override; /*! * Divide the available CPUs (pinned with numactl/taskset) into @@ -199,41 +199,41 @@ struct OSUnix final : public AbstractOS * getNumCPUsAvailable() - getNumPhysicalCPUsAvailable(). */ virtual void getAvailableCPUs(std::vector& physicalCPUs, - std::vector& htCPUs) const; + std::vector& htCPUs) const override; /*! * Create a symlink, pathnames can be either absolute or relative */ virtual void createSymlink(const std::string& origPathname, - const std::string& symlinkPathname) const; + const std::string& symlinkPathname) const override; /*! * Remove a symlink, pathname can be absolute or relative */ - virtual void removeSymlink(const std::string& symlinkPathname) const; + virtual void removeSymlink(const std::string& symlinkPathname) const override; /*! * Get the total RAM and available RAM on the system in megabytes */ - virtual void getMemInfo(size_t& totalPhysMem, size_t& freePhysMem) const; + virtual void getMemInfo(size_t& totalPhysMem, size_t& freePhysMem) const override; /*! * Get the absolute path to the current executable */ virtual std::string getCurrentExecutable( - const std::string& argvPathname="") const; + const std::string& argvPathname="") const override; protected: /*! * Remove file with this pathname */ - virtual void removeFile(const std::string& pathname) const; + virtual void removeFile(const std::string& pathname) const override; /*! * Remove directory with this pathname * NOTE: This will throw if the directory is not empty */ - virtual void removeDirectory(const std::string& pathname) const; + virtual void removeDirectory(const std::string& pathname) const override; }; struct DirectoryUnix final : public AbstractDirectory diff --git a/externals/coda-oss/modules/c++/sys/include/sys/OSWin32.h b/externals/coda-oss/modules/c++/sys/include/sys/OSWin32.h index 3e9c53d914..3b7dcd3ced 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/OSWin32.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/OSWin32.h @@ -26,7 +26,7 @@ #include "sys/AbstractOS.h" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 /*! * \file OSWin32.h diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Process.h b/externals/coda-oss/modules/c++/sys/include/sys/Process.h index 25d86359a6..45800bf2b1 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/Process.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/Process.h @@ -38,7 +38,7 @@ #include "sys/ProcessInterface.h" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # include "sys/ProcessWin32.h" namespace sys { diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ProcessInterface.h b/externals/coda-oss/modules/c++/sys/include/sys/ProcessInterface.h index 930a514f9d..a93d3c749d 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ProcessInterface.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ProcessInterface.h @@ -60,7 +60,7 @@ template class ProcessInterface : public sys::Runnable virtual void start() = 0; virtual void waitFor() = 0; - virtual void run() = 0; + virtual void run() override = 0; protected: Pid_T mChildProcessID; diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ProcessUnix.h b/externals/coda-oss/modules/c++/sys/include/sys/ProcessUnix.h index 9ae4ce2b8e..fed0a83044 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ProcessUnix.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ProcessUnix.h @@ -24,17 +24,7 @@ #ifndef __SYS_PROCESS_UNIX_H__ #define __SYS_PROCESS_UNIX_H__ - -#if defined(__GNUC__) -# if defined(__sgi) || defined(__sgi__) -# ifdef _FIX_BROKEN_HEADERS - typedef long long __int64_t; - typedef __int64_t jid_t; -# endif -# endif -#endif - -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include #include @@ -58,8 +48,8 @@ class ProcessUnix : public ProcessInterface< Pid_T > {} virtual ~ProcessUnix() {} - void start(); - void waitFor(); + void start() override; + void waitFor() override; }; } diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ProcessWin32.h b/externals/coda-oss/modules/c++/sys/include/sys/ProcessWin32.h index 9db5383446..d36e06a711 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ProcessWin32.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ProcessWin32.h @@ -24,7 +24,7 @@ #ifndef __SYS_PROCESS_WIN32_H__ #define __SYS_PROCESS_WIN32_H__ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include "sys/ProcessInterface.h" #include "sys/Thread.h" diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ReadWriteMutex.h b/externals/coda-oss/modules/c++/sys/include/sys/ReadWriteMutex.h index b25c7cdc28..e3141a7ddc 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ReadWriteMutex.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ReadWriteMutex.h @@ -56,6 +56,11 @@ struct ReadWriteMutex dbg_printf("Destroying a read/write mutex\n"); } + ReadWriteMutex(const ReadWriteMutex&) = delete; + ReadWriteMutex& operator=(const ReadWriteMutex&) = delete; + ReadWriteMutex(ReadWriteMutex&&) = delete; + ReadWriteMutex& operator=(ReadWriteMutex&&) = delete; + /*! * Lock for reading (no writes allowed) */ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ScopedCPUAffinityUnix.h b/externals/coda-oss/modules/c++/sys/include/sys/ScopedCPUAffinityUnix.h index 62e7b0ea38..7a349fa787 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ScopedCPUAffinityUnix.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ScopedCPUAffinityUnix.h @@ -25,7 +25,7 @@ #include -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include #include diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Semaphore.h b/externals/coda-oss/modules/c++/sys/include/sys/Semaphore.h index d38b6c4ec8..db423384cf 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/Semaphore.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/Semaphore.h @@ -20,53 +20,39 @@ * */ +#ifndef CODA_OSS_sys_Semaphore_h_INCLUDED_ +#define CODA_OSS_sys_Semaphore_h_INCLUDED_ +#pragma once + +#include "sys/Conf.h" -#ifndef __SYS_SEMAPHORE_H__ -#define __SYS_SEMAPHORE_H__ /** - * \file + * \file * \brief Include the right semaphore. * * This file will auto-select the semaphore of choice, - * if one is to be defined. + * if one is to be defined. * \note We need to change the windows part to check _MT * because that is how it determines reentrance! * */ -# if defined(USE_NSPR_THREADS) -# include "sys/SemaphoreNSPR.h" -namespace sys -{ -typedef SemaphoreNSPR Semaphore; -} -# elif (defined(WIN32) || defined(_WIN32)) -# include "sys/SemaphoreWin32.h" -namespace sys -{ -typedef SemaphoreWin32 Semaphore; -} -# elif defined(__sun) -# include "sys/SemaphoreSolaris.h" -namespace sys -{ -typedef SemaphoreSolaris Semaphore; -} -# elif defined(__sgi) -# include "sys/SemaphoreIrix.h" +#if defined(_WIN32) +#include "sys/SemaphoreWin32.h" namespace sys { -typedef SemaphoreIrix Semaphore; +using Semaphore = SemaphoreWin32; } -# elif defined(__APPLE_CC__) -typedef int Semaphore; -// Give 'em Posix -# else -# include "sys/SemaphorePosix.h" + +#elif defined(CODA_OSS_POSIX_SOURCE) +#include "sys/SemaphorePosix.h" namespace sys { -typedef SemaphorePosix Semaphore; +using Semaphore = SemaphorePosix; } -# endif // Which thread package? -#endif // End of header +#else +#error "Which thread package?" +#endif + +#endif // CODA_OSS_sys_Semaphore_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/SemaphorePosix.h b/externals/coda-oss/modules/c++/sys/include/sys/SemaphorePosix.h index fc1731d8f0..6afaf6ada0 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/SemaphorePosix.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/SemaphorePosix.h @@ -44,8 +44,8 @@ class SemaphorePosix : public SemaphoreInterface public: SemaphorePosix(unsigned int count = 0); virtual ~SemaphorePosix(); - void wait(); - void signal(); + void wait() override; + void signal() override; sem_t& getNative(); /*! diff --git a/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreSolaris.h b/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreSolaris.h deleted file mode 100644 index d77edfbad4..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreSolaris.h +++ /dev/null @@ -1,56 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_SEMAPHORE_SOLARIS_H__ -#define __SYS_SEMAPHORE_SOLARIS_H__ - -#if defined(__sun) -#include -#include "sys/SemaphoreInterface.h" - -namespace sys -{ -class SemaphoreSolaris : public SemaphoreInterface -{ -public: - SemaphoreSolaris(unsigned int count = 0); - virtual ~SemaphoreSolaris(); - void wait(); - void signal(); - sema_t& getNative(); - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } -private: - sema_t mNative; -}; -} - -#endif -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreWin32.h b/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreWin32.h index baad6f570e..d180feef54 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreWin32.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreWin32.h @@ -26,7 +26,7 @@ #include "config/Exports.h" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #if !defined(USE_NSPR_THREADS) diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Span.h b/externals/coda-oss/modules/c++/sys/include/sys/Span.h new file mode 100644 index 0000000000..23b72d02c1 --- /dev/null +++ b/externals/coda-oss/modules/c++/sys/include/sys/Span.h @@ -0,0 +1,188 @@ +/* ========================================================================= + * This file is part of sys-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2014, MDA Information Systems LLC + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * sys-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef CODA_OSS_sys_Span_h_INCLUDED_ +#define CODA_OSS_sys_Span_h_INCLUDED_ +#pragma once + +#include +#include +#include +#include + +namespace sys // not "mem", it depends on sys. +{ + +// Creating a `span` is verbose w/o deduction guidelines in C++17. +// Some overloads to ease the pain. +template +inline coda_oss::span make_span(const T* ptr, size_t sz) noexcept +{ + return coda_oss::span(ptr, sz); +} +template +inline coda_oss::span make_const_span(T* ptr, size_t sz) noexcept +{ + return coda_oss::span(ptr, sz); +} +template +inline coda_oss::span make_writable_span(T* ptr, size_t sz) noexcept // c.f., as_writable_bytes() +{ + return coda_oss::span(ptr, sz); +} +template +inline coda_oss::span make_span(T* ptr, size_t sz) noexcept +{ + return make_writable_span(ptr, sz); +} + +template +inline auto make_span(const void* ptr, size_t sz) noexcept +{ + return make_span(static_cast(ptr), sz); +} +template +inline auto make_const_span(void* ptr, size_t sz) noexcept +{ + return make_const_span(static_cast(ptr), sz); +} +template +inline auto make_span(void* ptr, size_t sz) noexcept +{ + return make_writable_span(static_cast(ptr), sz); +} + +template +inline auto make_const_span(coda_oss::span v) noexcept // turn span into span +{ + return make_const_span(v.data(), v.size()); +} + +template +inline auto make_span(const std::vector& v) noexcept +{ + return make_span(v.data(), v.size()); +} +template +inline auto make_const_span(std::vector& v) noexcept +{ + return make_const_span(v.data(), v.size()); +} +template +inline auto make_span(std::vector& v) noexcept +{ + return make_writable_span(v.data(), v.size()); +} + +template +inline auto make_span(const std::array& v) noexcept +{ + return make_span(v.data(), v.size()); +} +template +inline auto make_const_span(std::array& v) noexcept +{ + return make_const_span(v.data(), v.size()); +} +template +inline auto make_span(std::array& v) noexcept +{ + return make_writable_span(v.data(), v.size()); +} + +template +inline auto make_span(const T (&a)[N]) noexcept +{ + return make_span(a, N); +} +template +inline auto make_const_span(T (&a)[N]) noexcept +{ + return make_const_span(a, N); +} +template +inline auto make_span(T (&a)[N]) noexcept +{ + return make_writable_span(a, N); +} + +// Calling as_bytes() or as_writable_bytes() requires a span, which as +// noted above is a nuisance to create w/o C++17 +template +inline auto as_bytes(const T* ptr, size_t sz) noexcept +{ + return coda_oss::as_bytes(make_span(ptr, sz)); +} +template +inline auto as_writable_bytes(T* ptr, size_t sz) noexcept +{ + return coda_oss::as_writable_bytes(make_writable_span(ptr, sz)); +} + +template +inline auto as_bytes(const std::vector& v) noexcept +{ + return as_bytes(v.data(), v.size()); +} +template +inline auto as_writable_bytes(std::vector& v) noexcept +{ + return as_writable_bytes(v.data(), v.size()); +} + +template +inline auto as_bytes(const std::array& v) noexcept +{ + return as_bytes(v.data(), v.size()); +} +template +inline auto as_writable_bytes(std::array& v) noexcept +{ + return as_writable_bytes(v.data(), v.size()); +} + +template +inline auto as_bytes(const T (&a)[N]) noexcept +{ + return as_bytes(a, N); +} +template +inline auto as_writable_bytes(T (&a)[N]) noexcept +{ + return as_writable_bytes(a, N); +} + +// "cast" a single value to bytes +template +inline auto as_bytes(const T& v) noexcept +{ + return as_bytes(&v, 1); +} +template +inline auto as_writable_bytes(T& v) noexcept +{ + return as_writable_bytes(&v, 1); +} + +} +#endif // CODA_OSS_sys_Span_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/sys/include/sys/StopWatch.h b/externals/coda-oss/modules/c++/sys/include/sys/StopWatch.h index ac71fde2e0..0eab55a12a 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/StopWatch.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/StopWatch.h @@ -66,13 +66,13 @@ class RealTimeStopWatch : public StopWatch ~RealTimeStopWatch(); - double start(); + double start() override; - double stop(); + double stop() override; - double pause(); + double pause() override; - void clear(); + void clear() override; }; class CPUStopWatch : public StopWatch @@ -88,13 +88,13 @@ class CPUStopWatch : public StopWatch ~CPUStopWatch(); - double start(); + double start() override; - double stop(); + double stop() override; - double pause(); + double pause() override; - void clear(); + void clear() override; }; } diff --git a/externals/coda-oss/modules/c++/sys/include/sys/SyncFactoryIrix.h b/externals/coda-oss/modules/c++/sys/include/sys/SyncFactoryIrix.h deleted file mode 100644 index 50c6667713..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/SyncFactoryIrix.h +++ /dev/null @@ -1,222 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_SYNC_FACTORY_IRIX_H__ -#define __SYS_SYNC_FACTORY_IRIX_H__ - -#include - -# if defined(__sgi) -#include -#include "sys/Dbg.h" -#include -#include -#include -#include -#include -#include -#include -#include - -namespace sys -{ -class SemaphoreIrix; -class MutexIrix; -class ThreadIrix; -class ConditionVarIrix; - - -class SyncInterface -{ -public: - SyncInterface() - {} - - virtual ~SyncInterface() - {} - - virtual bool waitSemaphore(SemaphoreIrix& sema) = 0; - - virtual bool signalSemaphore(SemaphoreIrix& sema) = 0; - - virtual bool setLock(MutexIrix& mutex) = 0; - virtual bool unsetLock(MutexIrix& mutex) = 0; - virtual bool startThread(ThreadIrix& t) = 0; - virtual bool killThread(ThreadIrix& t) = 0; - virtual bool createLock(MutexIrix& mutex) = 0; - virtual bool destroyLock(MutexIrix& mutex) = 0; - virtual bool createSemaphore(SemaphoreIrix& sema, - unsigned int count) = 0; - virtual bool destroySemaphore(SemaphoreIrix& sema) = 0; - -}; - -class SyncFactoryIrix : public SyncInterface -{ -protected: -class SyncImplIrix : public SyncInterface - { - public: - SyncImplIrix(); - - virtual ~SyncImplIrix(); - - bool createLock(MutexIrix& mutex); - - bool destroyLock(MutexIrix& mutex); - - bool setLock(MutexIrix& mutex); - - bool unsetLock(MutexIrix& mutex); - - bool waitSemaphore(SemaphoreIrix& sema); - - bool signalSemaphore(SemaphoreIrix& sema); - - bool createSemaphore(SemaphoreIrix& sema, unsigned int count); - - bool destroySemaphore(SemaphoreIrix& sema); - - bool startThread(ThreadIrix& t); - - bool killThread(ThreadIrix& t); - - usptr_t* getArena() - { - return mArena; - } - int mRef; - - private: - usptr_t* mArena; - ulock_t* mGuard; - }; - - static mem::auto_ptr cs; - static SyncFactoryIrix::SyncImplIrix* createImpl() - { - - if (!mImpl) - { - dbg_ln("Creating Impl"); - mImpl = new SyncFactoryIrix::SyncImplIrix(); - - } - return mImpl; - } - static void destroyImpl() - { - - if (mImpl != nullptr) - { - dbg_ln("Destroying Impl"); - delete mImpl; - mImpl = nullptr; - } - - } - -private: - - static SyncImplIrix* mImpl; -public: - SyncFactoryIrix() - {} - - ~SyncFactoryIrix() - { - // Deletes lock as well - if (mImpl->mRef == 0) - { - dbg_ln("There are no more references to the implementation. Deleting..."); - destroyImpl(); - } - } - - bool startThread(ThreadIrix& t) - { - EVAL(&t); - return createImpl()->startThread(t); - } - - bool killThread(ThreadIrix& t) - { - return createImpl()->killThread(t); - } - // SyncFactoryIrix().createLock(mutex); - // SyncFactoryIrix().destroyLock(mutex); - bool createLock(MutexIrix& mutex) - { - return createImpl()->createLock(mutex); - } - - bool destroyLock(MutexIrix& mutex) - { - - return createImpl()->destroyLock(mutex); - } - - bool waitSemaphore(SemaphoreIrix& sema) - { - return createImpl()->waitSemaphore(sema); - } - - bool signalSemaphore(SemaphoreIrix& sema) - { - return createImpl()->signalSemaphore(sema); - } - - bool setLock(MutexIrix& mutex) - { - return createImpl()->setLock(mutex); - } - bool unsetLock(MutexIrix& mutex) - { - return createImpl()->unsetLock(mutex); - } - - - bool createSemaphore(SemaphoreIrix& sema, unsigned int count) - { - // This functions 1) Locks (mULock) - // 2) Acts - // 3) Increments mRef - // 4) Unlocks - return createImpl()->createSemaphore(sema, count); - } - - - bool destroySemaphore(SemaphoreIrix& sema) - { - // This functions 1) Locks - // 2) Acts - // 3) Decrements mRef - // 4) Unlocks - return createImpl()->destroySemaphore(sema); - //if (mImpl->mRef == 0) delete mImpl; - - } -}; -} -# endif -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/Thread.h b/externals/coda-oss/modules/c++/sys/include/sys/Thread.h index 56cbf69e31..ca3a43c9d9 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/Thread.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/Thread.h @@ -21,52 +21,39 @@ */ -#ifndef __SYS_THREAD_H__ -#define __SYS_THREAD_H__ +#ifndef CODA_OSS_sys_Thread_h_INCLUDED_ +#define CODA_OSS_sys_Thread_h_INCLUDED_ +#pragma once +#include "sys/Conf.h" /** - * \file + * \file * \brief Include the right thread. * * This file will auto-select the thread of choice, - * if one is to be defined. + * if one is to be defined. * \note We need to change the windows part to check _MT * because that is how it determines reentrance! * */ -// Netscape portable runtime -# if defined(USE_NSPR_THREADS) -# include "sys/ThreadNSPR.h" +#if defined(_WIN32) +#include "sys/ThreadWin32.h" namespace sys { -typedef ThreadNSPR Thread; +using Thread = ThreadWin32; } -# elif (defined(WIN32) || defined(_WIN32)) -# include "sys/ThreadWin32.h" -namespace sys -{ -typedef ThreadWin32 Thread; -} -# elif defined(__sun) -# include "sys/ThreadSolaris.h" -namespace sys -{ -typedef ThreadSolaris Thread; -} -# elif defined(__sgi) -# include "sys/ThreadIrix.h" -namespace sys -{ -typedef ThreadIrix Thread; -} -// If they havent defined anything and its !windows, we'll give 'em posix -# else -# include "sys/ThreadPosix.h" + +#elif defined(CODA_OSS_POSIX_SOURCE) +#include "sys/ThreadPosix.h" namespace sys { -typedef ThreadPosix Thread; +using Thread = ThreadPosix; } -# endif // Which thread package? +#else +#error "Which thread package?" #endif + +#endif // CODA_OSS_sys_Thread_h_INCLUDED_ + diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ThreadInterface.h b/externals/coda-oss/modules/c++/sys/include/sys/ThreadInterface.h index 70c8d622f0..576f643471 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ThreadInterface.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ThreadInterface.h @@ -212,7 +212,7 @@ struct CODA_OSS_API ThreadInterface : public Runnable * This function is called by start if no target is defined, * allowing the implementor to inherit this class directly */ - virtual void run() + virtual void run() override {} /*! diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ThreadIrix.h b/externals/coda-oss/modules/c++/sys/include/sys/ThreadIrix.h deleted file mode 100644 index 8d13a53b65..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/ThreadIrix.h +++ /dev/null @@ -1,139 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_THREAD_IRIX_H__ -#define __SYS_THREAD_IRIX_H__ - -#if defined(__sgi) -#include "sys/SyncFactoryIrix.h" -#include "sys/ThreadInterface.h" -#include - -namespace sys -{ -inline long getThreadID() -{ - return (long)getpid(); -} - -class ThreadIrix : public ThreadInterface -{ -public: - - ThreadIrix(const std::string& name = "") : - ThreadInterface(name) - {} - - ThreadIrix(sys::Runnable *target, - const std::string& name = "") : - ThreadInterface(target, name) - {} - - ThreadIrix(sys::Runnable *target, - const std::string& name, - int level, - int priority) : - ThreadInterface(target, name, level, priority) - {} - - virtual ~ThreadIrix() - {} - - //virtual void start() - //{ - //SyncFactoryIrix::getInstance()->createThread(*this); - //void (*entry) (void *), unsigned inh, - /* mNative = sproc(start, */ - /* PR_SADDR|PR_SFDS|PR_SDIR|PR_SUMASK, */ - /* this); */ - /* if (mNative <= 0) */ - /* throw ThreadObjectException("ThreadIrix::start() failed"); */ - //} - - virtual void start() - { - dbg_printf("ThreadIrix::start()\n"); - if (!sys::SyncFactoryIrix().startThread(*this)) - throw sys::SystemException("start()"); - } - - virtual void kill() - { - dbg_printf("ThreadIrix::kill()\n"); - if (!sys::SyncFactoryIrix().killThread(*this)) - throw sys::SystemException("kill()"); - } - - static void __start(void *v) - { - EVAL(v); - dbg_printf("ThreadIrix::__start()\n"); - sys::ThreadIrix *me = (sys::ThreadIrix *)v; - me->target()->run(); - dbg_printf("ThreadIrix::__start() has completed\n"); - exit(EXIT_SUCCESS); - } - - //virtual bool kill() - //{ - //return SyncFactoryIrix->killThread(*this); - /* if ( ::kill(mNative, SIGKILL) == 0 ) { */ - /* mIsRunning = false; */ - /* return true; */ - /* } */ - /* return false; */ - //} - virtual void join(); - - static void yield(); - - /*! - * Returns the native type. You probably should not use this - * unless you have specific constraints on which package you use - * Use of this function may defeat the purpose of these classes: - * to provide thread implementation in an abstract interface. - */ - pid_t& getNative() - { - return mNative; - } - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } - -private: - pid_t mNative; -}; - - -} - -#endif -#endif - diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ThreadNSPR.h b/externals/coda-oss/modules/c++/sys/include/sys/ThreadNSPR.h deleted file mode 100644 index 03b74ffe39..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/ThreadNSPR.h +++ /dev/null @@ -1,166 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_THREAD_NSPR_THREAD_H__ -#define __SYS_THREAD_NSPR_THREAD_H__ - -# if defined(USE_NSPR_THREADS) -#include "sys/ThreadInterface.h" -#include -#include -#include -#include - - -namespace sys -{ - - inline long getThreadID() - { - return (long) PR_GetCurrentThread(); - } - - -/*! - * \class ThreadNSPR - * \brief The implementation for Netscape Portable Runtime threads - * - * This class wraps the Netscape thread code. It can be used with - * default constructors, making it a user-level thread. It could - * also be called with a specialized derived class. The custom - * functions here allow for some non-standard manipulation (for - * example, the number of CPU's). Somebody put a lot of work into - * NSPR, and I didnt want to avoid some of the clever features, - * just because pthreads or Caspr dont support them - * - */ -class ThreadNSPR : public ThreadInterface -{ -public: - /*! - * The default constructor. When called with no args, - * produce a user-level local thread - * \param name Name of thread - * \param isLocal Set to true if you want local threads - */ - ThreadNSPR(const std::string& name = "", - bool isLocal = true) : - ThreadInterface(name) - { - mIsLocal = isLocal; - } - - /*! - * The alternate constructor. This binds a runnable. - * The second and third args are the same as in the default - * constructor. - * \param target What to run - * \param name Name of thread - * \param isLocal Set to true if you want local threads - */ - ThreadNSPR(Runnable *target, - const std::string& name = "", - bool isLocal = true) : - ThreadInterface(target, name) - { - mIsLocal = isLocal; - } - - ThreadNSPR(Runnable *target, - const std::string& name, - int level, - int priority, - bool isLocal = true) : - ThreadInterface(target, name, level, priority) - { - mIsLocal = isLocal; - } - //! The destructor - virtual ~ThreadNSPR() - {} - - /*! - * Start the thread running. Same as in other thread - * implementations - */ - virtual void start(); - - /*! - * The start function that is bound to the native create call - * This should not be used directly - * \param v The start arg - */ - static void __start(void *v); - - /*! - * The kill function. Killing doesnt work on NSPR threads. - * Please refer to - * http://www.mozilla.org/projects/nspr/tech-notes/abruptexit.html - * for more information - */ - virtual void kill() - { - throw sys::SystemException("kill() not implemented on NSPR"); - } - /*! - * Join the thread - * - */ - virtual void join(); - /*! - * Yield the thread. Calls PR_Sleep with an interval of - * PR_INTERVAL_NO_WAIT - * - */ - static void yield(); - - /*! - * Returns the native type. You probably should not use this - * unless you have specific constraints on which package you use - * Use of this function may defeat the purpose of these classes: - * to provide thread implementation in an abstract interface. - */ - PRThread *& getNative() - { - return mNative; - } - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } - -protected: - bool mIsLocal; -private: - PRThread * mNative; -}; -} - -# endif -#endif - diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ThreadPosix.h b/externals/coda-oss/modules/c++/sys/include/sys/ThreadPosix.h index 596a246fcb..5e5efe8c29 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ThreadPosix.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ThreadPosix.h @@ -96,7 +96,7 @@ struct ThreadPosix : public ThreadInterface /*! * The startpoint for thread processing */ - virtual void start(); + virtual void start() override; /*! @@ -110,12 +110,12 @@ struct ThreadPosix : public ThreadInterface /*! * Calls the native destroy stuff */ - virtual void kill(); + virtual void kill() override; /*! * Join the pthread */ - virtual void join(); + virtual void join() override; /*! * Calls sched_yield to yield the thread of control diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ThreadSolaris.h b/externals/coda-oss/modules/c++/sys/include/sys/ThreadSolaris.h deleted file mode 100644 index 087fe6d648..0000000000 --- a/externals/coda-oss/modules/c++/sys/include/sys/ThreadSolaris.h +++ /dev/null @@ -1,135 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#ifndef __SYS_THREAD_SOLARIS_THREAD_H__ -#define __SYS_THREAD_SOLARIS_THREAD_H__ - - -#if defined(__sun) - -#include -#include -#include "sys/ThreadInterface.h" - -namespace sys -{ - - inline long getThreadID() - { - return (long)thr_self(); - } - -/*! - * \class ThreadSolaris - * \brief The implementation of a pthread-specialized thread - * - * This class provides the wrapper for a pthread_t. - * - */ -class ThreadSolaris : public ThreadInterface -{ -public: - - //! Default constructor. Allows ThreadInterface to bind this to target - ThreadSolaris(const std::string& name = "") : ThreadInterface(name) - {} - - /*! - * Alternate constructor - * \param target What to run - * \param name The name - */ - ThreadSolaris(Runnable *target, - const std::string& name = "") : - ThreadInterface(target, name) - {} - - ThreadSolaris(Runnable *target, - const std::string& name, - int level, - int priority) : - ThreadInterface(target, name, level, priority) - {} - - //! Destructor - virtual ~ThreadSolaris() - {} - - /*! - * The startpoint for thread processing - */ - virtual void start(); - - /*! - * Calls the native destroy stuff - */ - virtual void kill(); - - /*! - * Join the pthread - */ - virtual void join(); - - /*! - * Calls sched_yield to yield the thread of control - */ - static void yield(); - - /*! - * Returns the native type. You probably should not use this - * unless you have specific constraints on which package you use - * Use of this function may defeat the purpose of these classes: - * to provide thread implementation in an abstract interface. - */ - thread_t& getNative() - { - return mNative; - } - - /*! - * Return the type name. This function is essentially free, - * because it is static RTTI. - */ - const char* getNativeType() const - { - return typeid(mNative).name(); - } - -private: - thread_t mNative; -}; - -} - -extern "C" -{ - /*! - * Run function defined and bound to pthread_create. - * This should not be invoked directly - * \param v The start arg - */ - void *__sys_ThreadSolaris_start(void *v); - -} -#endif -#endif diff --git a/externals/coda-oss/modules/c++/sys/include/sys/ThreadWin32.h b/externals/coda-oss/modules/c++/sys/include/sys/ThreadWin32.h index 0b6118f329..4c8cf11a6e 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/ThreadWin32.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/ThreadWin32.h @@ -30,7 +30,7 @@ #include "config/Exports.h" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #if !defined(USE_NSPR_THREADS) diff --git a/externals/coda-oss/modules/c++/sys/include/sys/UTCDateTime.h b/externals/coda-oss/modules/c++/sys/include/sys/UTCDateTime.h index 3f58fdaed7..7d4e712078 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/UTCDateTime.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/UTCDateTime.h @@ -41,10 +41,10 @@ class CODA_OSS_API UTCDateTime : public DateTime /** * @brief Set the millis value from the members */ - virtual void toMillis(); + virtual void toMillis() override; //! Given seconds since the epoch, provides the UTC time - virtual void getTime(time_t numSecondsSinceEpoch, tm& t) const; + virtual void getTime(time_t numSecondsSinceEpoch, tm& t) const override; public: /*! diff --git a/externals/coda-oss/modules/c++/sys/include/sys/sys_filesystem.h b/externals/coda-oss/modules/c++/sys/include/sys/sys_filesystem.h index 0cabb1cd32..59df476a5d 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/sys_filesystem.h +++ b/externals/coda-oss/modules/c++/sys/include/sys/sys_filesystem.h @@ -76,8 +76,17 @@ struct CODA_OSS_API path final // N.B. this is an INCOMPLETE and NON-STANDARD im path(const string_type&); template path(const TSource& source) + { + *this = source; + } + + path& operator=(const path&) = default; + path& operator=(path&&) = default; + template + path& operator=(const TSource& source) { p_ = to_native(source); + return *this; } path& operator/=(const path&); // http://en.cppreference.com/w/cpp/filesystem/path/append diff --git a/externals/coda-oss/modules/c++/sys/source/AbstractOS.cpp b/externals/coda-oss/modules/c++/sys/source/AbstractOS.cpp index 2304f9261a..ede2d6cceb 100644 --- a/externals/coda-oss/modules/c++/sys/source/AbstractOS.cpp +++ b/externals/coda-oss/modules/c++/sys/source/AbstractOS.cpp @@ -28,6 +28,8 @@ #include #include #include +#include +#include #include #include @@ -83,6 +85,31 @@ AbstractOS::search(const std::vector& searchPaths, return elementsFound; } +inline auto convert(const std::vector& paths) +{ + std::vector retval; + std::transform(paths.begin(), paths.end(), std::back_inserter(retval), + [](const fs::path& p) { return p.string(); }); + return retval; +} +inline auto convert(const std::vector& paths) +{ + std::vector retval; + std::transform(paths.begin(), paths.end(), std::back_inserter(retval), + [](const auto& p) { return p; }); + return retval; +} + +std::vector AbstractOS::search( + const std::vector& searchPaths, + const std::string& fragment, + const std::string& extension, + bool recursive) const +{ + const auto results = search(convert(searchPaths), fragment, extension, recursive); + return convert(results); +} + void AbstractOS::remove(const std::string& path) const { if (isDirectory(path)) @@ -415,6 +442,12 @@ std::string AbstractOS::getSpecialEnv(const std::string& envVar) const return str::toString(sys::DateTime::getEpochSeconds()); } + if (envVar == "OSTYPE") + { + // TODO: Mac + return sys::Platform == sys::PlatformType::Linux ? " linux-gnu" : "Windows"; + } + if (envVar == "OSTYPE") { // TODO: Mac diff --git a/externals/coda-oss/modules/c++/sys/source/ConditionVarIrix.cpp b/externals/coda-oss/modules/c++/sys/source/ConditionVarIrix.cpp deleted file mode 100644 index 683c958d58..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/ConditionVarIrix.cpp +++ /dev/null @@ -1,143 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#if defined(__sgi) -#include "sys/ConditionVarIrix.h" - -#ifdef __SGI_LIBC_BEGIN_NAMESPACE_STD -using std::sigsend; -#endif - -sys::ConditionVarIrix::ConditionVarIrix() : - mMutexOwned(new sys::MutexIrix()), - mMutex(mMutexOwned.get()) -{ - dbg_ln("Creating a default condition variable"); -} - -sys::ConditionVarIrix::ConditionVarIrix(sys::MutexIrix *theLock, bool isOwner) : - mMutex(theLock) -{ - if (!theLock) - throw SystemException("ConditionVar received NULL mutex"); - - dbg_ln("Creating a cv given a mutex"); - if (isOwner) - mMutexOwned.reset(theLock); -} - -sys::ConditionVarIrix::~ConditionVarIrix() -{ - dbg_printf("BEGIN ~ConditionVarIrix\n"); - broadcast(); - mNative.clear(); - dbg_printf("END ~ConditionVarIrix\n"); -} - -void sys::ConditionVarIrix::acquireLock() -{ - mMutex->lock(); -} - -void sys::ConditionVarIrix::dropLock() -{ - mMutex->unlock(); -} - -void sys::ConditionVarIrix::signal() -{ - dbg_printf("ConditionVarIrix::signal()\n"); - int lStatus = 0; - if ( mNative.size() > 0 ) - { - lStatus = sigsend(P_PID, mNative.back(), SIGUSR1); - mNative.pop_back(); - } - if (lStatus != 0) - throw sys::SystemException("Condition Variable signal failed"); -} - -void sys::ConditionVarIrix::wait() -{ - dbg_printf("ConditionVarIrix::wait()\n"); - sys::ConditionVarIrix::wait(0); -} - -void sys::ConditionVarIrix::wait(double timeout) -{ - dbg_printf("Timed waiting on condition [%f]\n", timeout); - sigset_t lSignalSet; - siginfo_t lSignalInfo; - timespec_t *lTimeout = NULL; - - mNative.insert(mNative.begin(), getpid()); - - sigemptyset(&lSignalSet); - sigaddset(&lSignalSet, SIGUSR1); - - if ( timeout > 0 ) - { - lTimeout = new timespec_t; - lTimeout->tv_sec = (int)timeout; - lTimeout->tv_nsec = (int)((timeout - (int)timeout) * 1e9); - } - - mMutex->unlock(); - sigtimedwait(&lSignalSet, &lSignalInfo, lTimeout); - mMutex->lock(); - - for (int i = mNative.size(); i > 0; i-- ) - { - if ( mNative.at(i - 1) == getpid() ) - { - mNative.erase(mNative.begin() + i - 1); - } - } - - if (lTimeout != NULL) - delete lTimeout; - - if (lSignalInfo.si_signo != SIGUSR1) - throw sys::SystemException("Condition Variable wait failed"); -} - -void sys::ConditionVarIrix::broadcast() -{ - dbg_printf("ConditionVarIrix::broadcast()\n"); - int lStatus = 0; - while (mNative.size() > 0 ) - { - lStatus |= sigsend(P_PID, mNative.back(), SIGUSR1); - mNative.pop_back(); - } - if (lStatus != 0) - throw sys::SystemException("Condition Variable broadcast failed"); -} - -std::vector& sys::ConditionVarIrix::getNative() -{ - return mNative; -} - -#endif - diff --git a/externals/coda-oss/modules/c++/sys/source/ConditionVarNSPR.cpp b/externals/coda-oss/modules/c++/sys/source/ConditionVarNSPR.cpp deleted file mode 100644 index 1b56835284..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/ConditionVarNSPR.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#if defined(USE_NSPR_THREADS) -#include "sys/ConditionVarNSPR.h" - -sys::ConditionVarNSPR::ConditionVarNSPR() : - mMutexOwned(new sys::MutexNSPR()), - mMutex(mMutexOwned.get()) -{ - mNative = PR_NewCondVar( (mMutex->getNative()) ); - if (mNative == NULL) - throw sys::SystemException("Condition Variable initialization failed"); -} - -sys::CondtionVarNSPR::ConditionVarNSPR(sys::MutexNSPR *theLock, bool isOwner) : - mMutex(theLock) -{ - if (!theLock) - throw SystemException("ConditionVar received NULL mutex"); - - if (isOwner) - mMutexOwned.reset(theLock); - - mNative = PR_NewCondVar( (mMutex->getNative()) ); - if (mNative == NULL) - throw sys::SystemException("Condition Variable initialization failed"); -} - -sys::ConditionVarNSPR::~ConditionVarNSPR() -{ - PR_DestroyCondVar(mNative); -} - -void sys::ConditionVarNSPR::acquireLock() -{ - mMutex->lock(); -} - -void sys::ConditionVarNSPR::dropLock() -{ - mMutex->unlock(); -} - -void sys::ConditionVarNSPR::signal() -{ - if (PR_NotifyCondVar(mNative) != PR_SUCCESS) - throw sys::SystemException("Condition Variable signal failed"); - -} - -void sys::ConditionVarNSPR::wait() -{ - if (PR_WaitCondVar(mNative, PR_INTERVAL_NO_WAIT) != PR_SUCCESS) - throw sys::SystemException("Condition Variable wait failed"); -} - -void sys::ConditionVarNSPR::wait(double seconds) -{ - double milli = seconds * 1000; - if (PR_WaitCondVar(mNative, PR_MillisecondsToInterval((PRUint32) milli)) != PR_SUCCESS) - throw sys::SystemException("Condition Variable wait failed"); -} - -void sys::ConditionVarNSPR::broadcast() -{ - if (PR_NotifyAllCondVar(mNative) != PR_SUCCESS) - throw sys::SystemException("Condition Variable broadcast failed"); -} - -PRCondVar*& sys::ConditionVarNSPR::getNative() -{ - return mNative; -} - -#endif - diff --git a/externals/coda-oss/modules/c++/sys/source/ConditionVarPosix.cpp b/externals/coda-oss/modules/c++/sys/source/ConditionVarPosix.cpp index 144c25bee9..267a339275 100644 --- a/externals/coda-oss/modules/c++/sys/source/ConditionVarPosix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ConditionVarPosix.cpp @@ -27,25 +27,27 @@ #include sys::ConditionVarPosix::ConditionVarPosix() : - mMutexOwned(new sys::MutexPosix()), + mMutexOwned(std::make_unique()), mMutex(mMutexOwned.get()) { if ( ::pthread_cond_init(&mNative, NULL) != 0) throw SystemException("ConditionVar initialization failed"); } -sys::ConditionVarPosix::ConditionVarPosix(sys::MutexPosix* theLock, bool isOwner) : - mMutex(theLock) +sys::ConditionVarPosix::ConditionVarPosix(MutexPosix* theLock, bool isOwner, std::nullptr_t) : mMutex(theLock) { - if (!theLock) - throw SystemException("ConditionVar received NULL mutex"); - if (isOwner) mMutexOwned.reset(theLock); - if ( ::pthread_cond_init(&mNative, NULL) != 0) + if (::pthread_cond_init(&mNative, NULL) != 0) throw SystemException("ConditionVar initialization failed"); } +sys::ConditionVarPosix::ConditionVarPosix(sys::MutexPosix* theLock, bool isOwner) : ConditionVarPosix(theLock, isOwner, nullptr) +{ + if (!theLock) + throw SystemException("ConditionVar received NULL mutex"); +} +sys::ConditionVarPosix::ConditionVarPosix(sys::MutexPosix& theLock) : ConditionVarPosix(&theLock, false /*isOwner*/, nullptr) { } sys::ConditionVarPosix::~ConditionVarPosix() { diff --git a/externals/coda-oss/modules/c++/sys/source/ConditionVarSolaris.cpp b/externals/coda-oss/modules/c++/sys/source/ConditionVarSolaris.cpp deleted file mode 100644 index 44f3daefe5..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/ConditionVarSolaris.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#if defined(__sun) -#include -#include -#include "sys/ConditionVarSolaris.h" - -sys::ConditionVarSolaris::ConditionVarSolaris() : - mMutexOwned(new sys::MutexSolaris()), - mMutex(mMutexOwned.get()) -{ - if ( ::cond_init(&mNative, NULL, NULL) != 0) - throw sys::SystemException("ConditionVar initialization failed"); -} - -sys::ConditionVarSolaris::ConditionVarSolaris(sys::MutexSolaris* theLock, bool isOwner) : - mMutex(theLock) -{ - if (!theLock) - throw SystemException("ConditionVar received NULL mutex"); - - if (isOwner) - mMutexOwned.reset(theLock); - - if ( ::cond_init(&mNative, NULL, NULL) != 0) - throw sys::SystemException("ConditionVar initialization failed"); -} - -sys::ConditionVarSolaris::~ConditionVarSolaris() -{ - ::cond_destroy(&mNative); -} - -void sys::ConditionVarSolaris::acquireLock() -{ - mMutex->lock(); -} - -void sys::ConditionVarSolaris::dropLock() -{ - mMutex->unlock(); -} - -void sys::ConditionVarSolaris::signal() -{ - dbg_printf("Signaling condition\n"); - if (::cond_signal(&mNative) != 0) - throw sys::SystemException("ConditionVar signal failed"); -} - -void sys::ConditionVarSolaris::wait() -{ - dbg_printf("Waiting on condition\n"); - if (::cond_wait(&mNative, &(mMutex->getNative())) != 0) - throw sys::SystemException("ConditionVar wait failed"); -} - -void sys::ConditionVarSolaris::wait(double seconds) -{ - dbg_printf("Timed waiting on condition [%f]\n", seconds); - if ( seconds > 0 ) - { - timestruc_t tout; - tout.tv_sec = time(NULL) + (int)seconds; - tout.tv_nsec = (int)((seconds - (int)(seconds)) * 1e9); - if (::cond_timedwait(&mNative, - &(mMutex->getNative()), - &tout) != 0) - throw sys::SystemException("ConditionVar wait failed"); - } - else - wait(); -} - -void sys::ConditionVarSolaris::broadcast() -{ - dbg_printf("Broadcasting condition\n"); - if (::cond_broadcast(&mNative) != 0) - throw sys::SystemException("ConditionVar broadcast failed"); -} - -cond_t& sys::ConditionVarSolaris::getNative() -{ - return mNative; -} - -#endif - diff --git a/externals/coda-oss/modules/c++/sys/source/ConditionVarWin32.cpp b/externals/coda-oss/modules/c++/sys/source/ConditionVarWin32.cpp index 248a35de90..45ffac49a7 100644 --- a/externals/coda-oss/modules/c++/sys/source/ConditionVarWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ConditionVarWin32.cpp @@ -21,10 +21,7 @@ */ -#if defined(WIN32) || defined(_WIN32) - -#if !defined(USE_NSPR_THREADS) - +#if defined(_WIN32) #include "sys/ConditionVarWin32.h" namespace @@ -202,19 +199,23 @@ void sys::ConditionVarDataWin32::broadcast() } sys::ConditionVarWin32::ConditionVarWin32() : - mMutexOwned(new sys::MutexWin32()), + mMutexOwned(std::make_unique()), mMutex(mMutexOwned.get()) {} -sys::ConditionVarWin32::ConditionVarWin32(sys::MutexWin32 *theLock, bool isOwner) : - mMutex(theLock) +sys::ConditionVarWin32::ConditionVarWin32(MutexWin32* theLock, bool isOwner, std::nullptr_t) : mMutex(theLock) { - if (!theLock) - throw SystemException("ConditionVar received NULL mutex"); - if (isOwner) mMutexOwned.reset(theLock); } +sys::ConditionVarWin32::ConditionVarWin32(MutexWin32 *theLock, bool isOwner) : ConditionVarWin32(theLock, isOwner, nullptr) +{ + if (!theLock) + throw SystemException("ConditionVar received NULL mutex"); +} +sys::ConditionVarWin32::ConditionVarWin32(MutexWin32& theLock) : ConditionVarWin32(&theLock, false /*isOwner*/, nullptr) +{ +} void sys::ConditionVarWin32::acquireLock() { @@ -241,7 +242,7 @@ void sys::ConditionVarWin32::wait() void sys::ConditionVarWin32::signal() { - dbg_printf("Signalling condition\n"); + dbg_printf("Signaling condition\n"); mNative.signal(); } @@ -256,7 +257,5 @@ sys::ConditionVarDataWin32& sys::ConditionVarWin32::getNative() return mNative; } -#endif // No other thread package - #endif // Windows diff --git a/externals/coda-oss/modules/c++/sys/source/Conf.cpp b/externals/coda-oss/modules/c++/sys/source/Conf.cpp index c8560c7f3a..bf29dd69ba 100644 --- a/externals/coda-oss/modules/c++/sys/source/Conf.cpp +++ b/externals/coda-oss/modules/c++/sys/source/Conf.cpp @@ -19,48 +19,292 @@ * see . * */ +#include "sys/Conf.h" + +#include #include #include - -#include "sys/Conf.h" +#include +#include #include "coda_oss/bit.h" +#include "coda_oss/cstddef.h" +#include "coda_oss/span.h" -using endian = coda_oss::endian; +#include "sys/Span.h" // https://en.cppreference.com/w/cpp/types/endian -inline bool is_big_endian() +using endian = coda_oss::endian; +template +inline bool is_big_endian_() +{ + throw std::logic_error("Mixed-endian not supported."); +} +template<> +inline constexpr bool is_big_endian_() +{ + return true; +} +template <> +inline constexpr bool is_big_endian_() +{ + return false; +} +constexpr inline bool is_big_endian() +{ + return is_big_endian_(); +} + +// Want to explicitly test against both endian::bit and endian::little; i.e., +// because of "mixed" endianness, little may not the same as !big +template +inline bool is_little_endian_() { - auto endianness = endian::native; // "conditional expression is constant" - if (endianness == endian::big) - { - return true; - } - if (endianness == endian::little) - { - return false; - } throw std::logic_error("Mixed-endian not supported."); } +template <> +inline constexpr bool is_little_endian_() +{ + return false; +} +template <> +inline constexpr bool is_little_endian_() +{ + return true; +} +constexpr inline bool is_little_endian() +{ + return is_little_endian_(); +} + constexpr inline bool is_big_or_little_endian() { - return (endian::native == endian::big) || (endian::native == endian::little) ? true : false; + return is_big_endian() || is_little_endian(); } -inline bool isBigEndianSystem() +inline bool testIsBigEndianSystem() { // This is an endian test int intVal = 1; unsigned char* endianTest = (unsigned char*)&intVal; return endianTest[0] != 1; } -bool sys::isBigEndianSystem() +inline auto isBigEndianSystem_() { static_assert(is_big_or_little_endian(), "Mixed-endian not supported."); - const auto retval = ::isBigEndianSystem(); + const auto retval = testIsBigEndianSystem(); if (retval != is_big_endian()) { throw std::logic_error("endian values don't agree!"); } return retval; } +inline auto isLittleEndianSystem_() +{ + static_assert(is_big_or_little_endian(), "Mixed-endian not supported."); + const auto retval = !testIsBigEndianSystem(); + if (retval != is_little_endian()) + { + throw std::logic_error("endian values don't agree!"); + } + return retval; +} +bool sys::isBigEndianSystem() +{ + auto const retval = isBigEndianSystem_(); + assert(!retval == isLittleEndianSystem_()); + return retval; +} +bool sys::isLittleEndianSystem() +{ + auto const retval = isLittleEndianSystem_(); + assert(!retval == isBigEndianSystem_()); + return retval; +} + + /*! + * Swap bytes in-place. Note that a complex pixel + * is equivalent to two floats so elemSize and numElems + * must be adjusted accordingly. + * + * \param [inout] buffer to transform + * \param elemSize + * \param numElems + */ +template +inline void byteSwap_n_(void *buffer_, size_t numElems) +{ + static_assert(std::is_unsigned::value, "TUInt must be 'unsigned'"); + const auto buffer = sys::make_span(buffer_, numElems); + assert(buffer.size_bytes() == sizeof(TUInt) * numElems); + + for (auto& v : buffer) + { + v = sys::byteSwap(v); + } +} +template +inline void byteSwap_n(void *buffer, size_t elemSize, size_t numElems) +{ + if (sizeof(TUInt) != elemSize) + { + throw std::invalid_argument("'elemSize' != sizeof(TUInt)"); + } + byteSwap_n_(buffer, numElems); +} +void sys::byteSwap(void* buffer, size_t elemSize, size_t numElems) +{ + if ((buffer == nullptr) || (elemSize < 2) || (numElems == 0)) + return; + + switch (elemSize) + { + case sizeof(uint16_t): return byteSwap_n(buffer, elemSize, numElems); + case sizeof(uint32_t): return byteSwap_n(buffer, elemSize, numElems); + case sizeof(uint64_t): return byteSwap_n(buffer, elemSize, numElems); + default: break; + } + + auto const bufferPtr = static_cast(buffer); + const auto half = elemSize >> 1; + size_t offset = 0, innerOff = 0, innerSwap = 0; + for (size_t i = 0; i < numElems; ++i, offset += elemSize) + { + for (size_t j = 0; j < half; ++j) + { + innerOff = offset + j; + innerSwap = offset + elemSize - 1 - j; + + std::swap(bufferPtr[innerOff], bufferPtr[innerSwap]); + } + } +} +coda_oss::span sys::byteSwap(coda_oss::span buffer, size_t elemSize) +{ + if ((buffer.size() == 0) || (elemSize < 2)) + return sys::make_const_span(buffer); + + size_t const numElems = buffer.size() / elemSize; + if ((numElems * elemSize) != buffer.size()) + { + throw std::invalid_argument("'buffer' is not a multiple of 'elemSize'"); + } + + byteSwap(buffer.data(), elemSize, numElems); + return sys::make_const_span(buffer); +} + + /*! + * Swap bytes into output buffer. Note that a complex pixel + * is equivalent to two floats so elemSize and numElems + * must be adjusted accordingly. + * + * \param buffer to transform + * \param elemSize + * \param numElems + * \param[out] outputBuffer buffer to write swapped elements to + */ +template +inline void byteSwap_n_(const void *buffer_, size_t numElems, void *outputBuffer_) +{ + static_assert(std::is_unsigned::value, "TUInt must be 'unsigned'"); + + const auto buffer = sys::make_span(buffer_, numElems); + assert(buffer.size_bytes() == sizeof(TUInt) * numElems); + const auto outputBuffer = sys::make_span(outputBuffer_, numElems); + + const auto byteSwap = [](const auto& v) { return sys::byteSwap(v); }; + std::transform(buffer.begin(), buffer.end(), outputBuffer.begin(), byteSwap); +} +template +inline void byteSwap_n(const void *buffer, size_t elemSize, size_t numElems, void *outputBuffer) +{ + if (sizeof(TUInt) != elemSize) + { + throw std::invalid_argument("'elemSize' != sizeof(TUInt)"); + } + byteSwap_n_(buffer, numElems, outputBuffer); +} +void sys::byteSwap(const void* buffer, size_t elemSize, size_t numElems, void* outputBuffer) +{ + if ((numElems == 0) || (buffer == nullptr) || (outputBuffer == nullptr)) + { + return; + } + + switch (elemSize) + { + case 1: std::ignore = memcpy(outputBuffer, buffer, elemSize * numElems); return; + case 2: return byteSwap_n(buffer, elemSize, numElems, outputBuffer); + case 4: return byteSwap_n(buffer, elemSize, numElems, outputBuffer); + case 8: return byteSwap_n(buffer, elemSize, numElems, outputBuffer); + default: break; + } + + auto const bufferPtr = static_cast(buffer); + auto const outputBufferPtr = static_cast(outputBuffer); + + const auto half = elemSize >> 1; + size_t offset = 0; + for (size_t ii = 0; ii < numElems; ++ii, offset += elemSize) + { + for (size_t jj = 0; jj < half; ++jj) + { + const size_t innerOff = offset + jj; + const size_t innerSwap = offset + elemSize - 1 - jj; + + outputBufferPtr[innerOff] = bufferPtr[innerSwap]; + outputBufferPtr[innerSwap] = bufferPtr[innerOff]; + } + } +} +coda_oss::span sys::byteSwap(coda_oss::span buffer, + size_t elemSize, coda_oss::span outputBuffer) +{ + if ((buffer.size() == 0) || (outputBuffer.size() == 0)) + { + return sys::make_const_span(outputBuffer); + } + + size_t const numElems = buffer.size() / elemSize; + if ((numElems * elemSize) != buffer.size()) + { + throw std::invalid_argument("'buffer' is not a multiple of 'elemSize'"); + } + if (buffer.size() != outputBuffer.size()) + { + throw std::invalid_argument("'buffer' and 'outputBuffer' are different sizes'"); + } + + byteSwap(buffer.data(), elemSize, numElems, outputBuffer.data()); + return sys::make_const_span(outputBuffer); +} + + coda_oss::span sys::byteSwap( + coda_oss::span inPtr, + coda_oss::span outPtr) +{ + if (inPtr.size() != outPtr.size()) + { + throw std::invalid_argument("'size of byte buffers must match"); + } + + const auto elemSize = inPtr.size(); + switch (elemSize) + { + case sizeof(uint8_t): return details::swapUIntBytes(inPtr, outPtr, std::nothrow); + case sizeof(uint16_t): return details::swapUIntBytes(inPtr, outPtr, std::nothrow); + case sizeof(uint32_t): return details::swapUIntBytes(inPtr, outPtr, std::nothrow); + case sizeof(uint64_t): return details::swapUIntBytes(inPtr, outPtr, std::nothrow); + default: break; + } + + for (size_t ii = 0, jj = elemSize - 1; ii < jj; ++ii, --jj) + { + outPtr[ii] = inPtr[jj]; + outPtr[jj] = inPtr[ii]; + } + + // Give the raw byte-swapped bytes back to the caller for easy serialization + return make_const_span(outPtr); +} diff --git a/externals/coda-oss/modules/c++/sys/source/DLLUnix.cpp b/externals/coda-oss/modules/c++/sys/source/DLLUnix.cpp index 2936e27cbd..a0bb26ecfb 100644 --- a/externals/coda-oss/modules/c++/sys/source/DLLUnix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/DLLUnix.cpp @@ -21,7 +21,7 @@ */ -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include "sys/DLL.h" diff --git a/externals/coda-oss/modules/c++/sys/source/DLLWin32.cpp b/externals/coda-oss/modules/c++/sys/source/DLLWin32.cpp index 17e9933aff..d3d6ff48ba 100644 --- a/externals/coda-oss/modules/c++/sys/source/DLLWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/DLLWin32.cpp @@ -21,7 +21,7 @@ */ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include "sys/DLL.h" diff --git a/externals/coda-oss/modules/c++/sys/source/DateTime.cpp b/externals/coda-oss/modules/c++/sys/source/DateTime.cpp index 2b701af9f8..9aaa96a7bf 100644 --- a/externals/coda-oss/modules/c++/sys/source/DateTime.cpp +++ b/externals/coda-oss/modules/c++/sys/source/DateTime.cpp @@ -350,7 +350,7 @@ char* strptime(const char *buf, const char *fmt, struct tm& tm, double& millis) // LINTED functional specification return ((char *) bp); -}; +} } void sys::DateTime::fromMillis() diff --git a/externals/coda-oss/modules/c++/sys/source/ErrUnix.cpp b/externals/coda-oss/modules/c++/sys/source/ErrUnix.cpp index 6255385988..f2db39499c 100644 --- a/externals/coda-oss/modules/c++/sys/source/ErrUnix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ErrUnix.cpp @@ -21,7 +21,7 @@ */ -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include "sys/Err.h" diff --git a/externals/coda-oss/modules/c++/sys/source/ErrWin32.cpp b/externals/coda-oss/modules/c++/sys/source/ErrWin32.cpp index 9e1fbad151..bac96d0af3 100644 --- a/externals/coda-oss/modules/c++/sys/source/ErrWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ErrWin32.cpp @@ -21,7 +21,7 @@ */ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include #include "sys/Err.h" diff --git a/externals/coda-oss/modules/c++/sys/source/ExecUnix.cpp b/externals/coda-oss/modules/c++/sys/source/ExecUnix.cpp index d3c453bb29..6a5f20912f 100644 --- a/externals/coda-oss/modules/c++/sys/source/ExecUnix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ExecUnix.cpp @@ -21,7 +21,7 @@ */ -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include #include @@ -166,14 +166,14 @@ int ExecPipe::closePipe() throw except::IOException( Ctxt("The child process was terminated by " \ "an uncaught signal: " + - str::toString(WTERMSIG(encodedStatus)))); + str::toString(WTERMSIG(encodedStatus)))); } // due to unplanned stoppage if (WIFSTOPPED(encodedStatus)) { throw except::IOException( Ctxt("The child process was unexpectedly stopped: " + - str::toString(WSTOPSIG(encodedStatus)))); + str::toString(WSTOPSIG(encodedStatus)))); } // all other errors diff --git a/externals/coda-oss/modules/c++/sys/source/ExecWin32.cpp b/externals/coda-oss/modules/c++/sys/source/ExecWin32.cpp index 1d1268d392..86bfa17cdc 100644 --- a/externals/coda-oss/modules/c++/sys/source/ExecWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ExecWin32.cpp @@ -21,7 +21,7 @@ */ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include #include diff --git a/externals/coda-oss/modules/c++/sys/source/File.cpp b/externals/coda-oss/modules/c++/sys/source/File.cpp new file mode 100644 index 0000000000..82fe2ab8ab --- /dev/null +++ b/externals/coda-oss/modules/c++/sys/source/File.cpp @@ -0,0 +1,238 @@ +/* ========================================================================= + * This file is part of sys-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2014, MDA Information Systems LLC + * (C) Copyright 2023, Maxar Technologies, Inc. + * + * sys-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include "sys/File.h" + +#include + +#ifdef _WIN32 +#include +#endif + +#include "config/compiler_extensions.h" +#include "sys/Path.h" +#include "str/Manip.h" + +sys::File sys::make_File(const coda_oss::filesystem::path& path, int accessFlags, int creationFlags) +{ + sys::File retval(std::nothrow, path, accessFlags, creationFlags); + if (retval.isOpen()) + { + return retval; + } + + const auto checkIfExists = (creationFlags & sys::File::EXISTING) == sys::File::EXISTING; + auto expanded = sys::Path::expandEnvironmentVariables(path.string(), checkIfExists); + if (expanded.empty()) + { + expanded = path.string(); // Throw exception with non-empty path. + } + return sys::File(expanded, accessFlags, creationFlags); +} + +sys::File sys::make_File(const coda_oss::filesystem::path& parent, const coda_oss::filesystem::path& name, + int accessFlags, int creationFlags) +{ + sys::File retval(std::nothrow, parent, name, accessFlags, creationFlags); + if (retval.isOpen()) + { + return retval; + } + + const auto expanded_parent = sys::Path::expandEnvironmentVariables(parent.string(), coda_oss::filesystem::file_type::directory); + // 'name' probably won't work without 'parent' so no need to checkIfExists + const auto expanded_name = sys::Path::expandEnvironmentVariables(name.string(), false /*checkIfExists*/); + + // let the File constructor deal with combining the expanded paths as well as checking for existence. + return sys::File(expanded_parent, expanded_name, accessFlags, creationFlags); +} + +#ifdef _WIN32 +// '...': This function or variable may be unsafe. Consider using _sopen_s instead. +static FILE* fopen_(const std::string& fname, const std::string& mode) +{ + FILE* retval = nullptr; + const auto result = fopen_s(&retval, fname.c_str(), mode.c_str()); + if (result != 0) // "Zero if successful; ..." + { + return nullptr; + } + return retval; +} +#else +static inline FILE* fopen_(const std::string& fname, const std::string& mode) +{ + return fopen(fname.c_str(), mode.c_str()); +} +#endif + +FILE* sys::fopen(const coda_oss::filesystem::path& fname, const std::string& mode) +{ + // Call sys::expandEnvironmentVariables() if the initial fopen() fails. + auto retval = fopen_(fname.string(), mode); + if (retval != nullptr) + { + return retval; + } + + const auto r_pos = mode.find('r'); + const auto checkIfExists = r_pos != mode.npos; + const auto expanded = sys::Path::expandEnvironmentVariables(fname.string(), checkIfExists); + if (expanded.empty()) + { + return nullptr; // no need to even try fopen() + } + return fopen_(expanded, mode); +} + +#ifdef _WIN32 +#define CODA_OSS_open ::_open +#else +#define CODA_OSS_open ::open +#endif + +static inline int open_(const std::string& pathname, int flags) +{ + const auto p = pathname.c_str(); + CODA_OSS_disable_warning_push + #ifdef _MSC_VER + #pragma warning(disable: 4996) // '...': This function or variable may be unsafe. Consider using _sopen_s instead. + #endif + return CODA_OSS_open(p, flags); + CODA_OSS_disable_warning_pop +} +int sys::open(const coda_oss::filesystem::path& path, int flags) +{ + // Call sys::expandEnvironmentVariables() if the initial open() fails. + const auto retval = open_(path.string(), flags); + if (retval > -1) // "On error, -1 is returned ..." + { + return retval; + } + + constexpr bool checkIfExists = false; // TODO: look for O_CREAT ? + const auto expanded = sys::Path::expandEnvironmentVariables(path.string(), checkIfExists); + if (expanded.empty()) + { + return retval; // no need to even try another open() + } + return open_(expanded, flags); +} + +static inline int open_(const std::string& pathname, int flags, int mode) +{ + const auto p = pathname.c_str(); + CODA_OSS_disable_warning_push + #ifdef _MSC_VER + #pragma warning(disable: 4996) // '...': This function or variable may be unsafe. Consider using _sopen_s instead. + #endif + return CODA_OSS_open(p, flags, mode); + CODA_OSS_disable_warning_pop +} +int sys::open(const coda_oss::filesystem::path& path, int flags, int mode) +{ + // Call sys::expandEnvironmentVariables() if the initial open() fails. + const auto retval = open_(path.string(), flags, mode); + if (retval > -1) // "On error, -1 is returned ..." + { + return retval; + } + + constexpr bool checkIfExists = false; // TODO: look for O_CREAT ? + const auto expanded = sys::Path::expandEnvironmentVariables(path.string(), checkIfExists); + if (expanded.empty()) + { + return retval; // no need to even try another open() + } + return open_(expanded, flags, mode); +} +#undef CODA_OSS_open + +#ifdef _WIN32 +#define CODA_OSS_close ::_close +#else +#define CODA_OSS_close ::close +#endif +int sys::close(int fd) +{ + return CODA_OSS_close(fd); +} +#undef CODA_OSS_close + +#ifdef _WIN32 +#define CODA_OSS_stat_ ::_stat +#else +#define CODA_OSS_stat_ ::stat +#endif +static inline int stat_(const std::string& pathname, struct CODA_OSS_stat &buffer) +{ + const auto p = pathname.c_str(); + CODA_OSS_disable_warning_push + #ifdef _MSC_VER + #pragma warning(disable: 4996) // '...': This function or variable may be unsafe. Consider using _sopen_s instead. + #endif + return CODA_OSS_stat_(p, &buffer); + CODA_OSS_disable_warning_pop +} +#undef CODA_OSS_stat_ +int sys::stat(const coda_oss::filesystem::path& path, struct CODA_OSS_stat &buffer) +{ + // Call sys::expandEnvironmentVariables() if the initial stat() fails. + const auto retval = stat_(path.string(), buffer); + if (retval > -1) // "On error, -1 is returned ..." + { + return retval; + } + + constexpr bool checkIfExists = true; + const auto expanded = sys::Path::expandEnvironmentVariables(path.string(), checkIfExists); + if (expanded.empty()) + { + return retval; // no need to even try another stat() + } + return stat_(expanded, buffer); +} + +void sys::open(std::ifstream& ifs, const coda_oss::filesystem::path& path, std::ios_base::openmode mode) +{ + // Call sys::expandEnvironmentVariables() if the initial open() fails. + ifs.open(path.string(), mode); + if (ifs.is_open()) + { + return; + } + + const auto checkIfExists = (mode & std::ios_base::in) == std::ios_base::in; + auto expanded = sys::Path::expandEnvironmentVariables(path.string(), checkIfExists); + if (expanded.empty()) + { + expanded = path.string(); // Throw exception with non-empty path. + } + ifs.open(expanded, mode); +} +std::ifstream sys::make_ifstream(const coda_oss::filesystem::path& path, std::ios_base::openmode mode) +{ + std::ifstream retval; + open(retval, path, mode); + return retval; +} diff --git a/externals/coda-oss/modules/c++/sys/source/FileFinder.cpp b/externals/coda-oss/modules/c++/sys/source/FileFinder.cpp index f4cd75dac5..b95600aa32 100644 --- a/externals/coda-oss/modules/c++/sys/source/FileFinder.cpp +++ b/externals/coda-oss/modules/c++/sys/source/FileFinder.cpp @@ -23,10 +23,14 @@ #include #include +#include // std::ignore +#include #include "sys/DirectoryEntry.h" #include "sys/Path.h" +namespace fs = coda_oss::filesystem; + bool sys::ExistsPredicate::operator()(const std::string& entry) const { return sys::Path(entry).exists(); @@ -204,10 +208,64 @@ std::vector sys::FileFinder::search( return files; } -coda_oss::filesystem::path sys::test::findRootDirectory(const coda_oss::filesystem::path& p, const std::string& rootName, - std::function isRoot) +static fs::path findFirst(const sys::FilePredicate& pred, const fs::path& startingDirectory) +{ + auto dir = startingDirectory; + while (true) + { + const std::vector searchPaths{dir.string()}; + const auto results = sys::FileFinder::search(pred, searchPaths, true /*recursive*/); + if (results.size() == 1) + { + return results[0]; + } + if (results.size() > 1) + { + throw std::logic_error("Found the same file at multiple locations: " + searchPaths[0]); + } + + if (is_directory(dir / ".git")) + { + throw std::logic_error("Won't traverse above .git directory at: " + dir.string()); + } + dir = dir.parent_path(); + } +} +fs::path sys::findFirstFile(const fs::path& startingDirectory, const fs::path& filename) +{ + struct FileExistsPredicate final : public FileOnlyPredicate + { + fs::path name_; + FileExistsPredicate(const fs::path& name) : name_(name) { } + bool operator()(const std::string& entry) const override + { + const auto p =entry / name_; + return fs::is_regular_file(p); + } + }; + const FileExistsPredicate pred(filename); + return findFirst(pred, startingDirectory); +} +fs::path sys::findFirstDirectory(const fs::path& startingDirectory, const fs::path& dir) +{ + struct DirectoryExistsPredicate final : public DirectoryOnlyPredicate + { + fs::path name_; + DirectoryExistsPredicate(const fs::path& name) : name_(name) { } + bool operator()(const std::string& entry) const override + { + const auto p =entry / name_; + return fs::is_directory(p); + } + }; + const DirectoryExistsPredicate pred(dir); + return findFirst(pred, startingDirectory); +} + +fs::path sys::test::findRootDirectory(const fs::path& p, const std::string& rootName, + std::function isRoot) { - const auto isRootDirectory = [&](const coda_oss::filesystem::path& p) { return is_directory(p) && isRoot(p); }; + const auto isRootDirectory = [&](const fs::path& p) { return is_directory(p) && isRoot(p); }; // Does the given path look good? if (isRootDirectory(p)) @@ -242,6 +300,182 @@ coda_oss::filesystem::path sys::test::findRootDirectory(const coda_oss::filesyst return findRootDirectory(p.parent_path(), rootName, isRoot); } - // TODO: since we're in the "FileFinder" module, maybe try a bit hard to find "rootName"? + // TODO: since we're in the "FileFinder" module, maybe try a bit harder to find "rootName"? throw std::invalid_argument("Can't find '" + rootName + "' root directory"); } + +static const sys::OS os; +static inline std::string Configuration() // "Configuration" is typically "Debug" or "Release" +{ + return os.getSpecialEnv("Configuration"); +} +static inline std::string Platform() +{ + return os.getSpecialEnv("Platform"); // e.g., "x64" on Windows +} + +static fs::path findCMakeRoot(const fs::path& path, const fs::path& dir) +{ + static const auto platform_and_configuration = ::Platform() + "-" + ::Configuration(); // "x64-Debug" + const auto pred = [&](const fs::path& p) + { + if (p.filename() == platform_and_configuration) + { + return p.parent_path().filename() == dir; + } + + // "x64-Debug" is common on Windows from Visual Studio, things + // may be a bit different on Linux. + const auto CMakeCache_txt = p / "CMakeCache.txt"; + const auto CMakeFiles = p / "CMakeFiles"; + if (is_regular_file(CMakeCache_txt) && is_directory(CMakeFiles)) + { + // looks promising ... _deps and modules directories are there, call it good. + const auto deps = p / "_deps"; + const auto modules = p / "modules"; + return is_directory(deps) && is_directory(modules); + } + + return false; + }; + return sys::test::findRootDirectory(path, "", pred); +} + +fs::path findCMake_Root(const fs::path& path, + const std::string& build, const std::string& install) +{ + // Calling these directories "build" and "install" for clarity, even though they may be + // "install" and "build" (or maybe even something else). + + // .../out/build/x64-Debug + try + { + return findCMakeRoot(path, build); + } + catch (const std::invalid_argument&) + { + } + + // Might be given a path to something in "install" ... + std::clog << "path: " << path << '\n'; + const auto configAndPlatformDir = findCMakeRoot(path, install); // should be, e.g., "x64-Debug" + const auto installDir = configAndPlatformDir.parent_path(); + if (installDir.filename() == install) + { + auto retval = installDir.parent_path() / build; + std::clog << "root: " << retval << '\n'; + if (is_directory(retval)) + { + return retval; + } + } + return findCMakeRoot(path, build); // throw an exception +} +fs::path sys::test::findCMakeBuildRoot(const fs::path& path) +{ + auto retval = findCMake_Root(path, "build", "install"); + std::clog << "findCMakeBuildRoot(): " << retval << "\n"; + return retval; +} +fs::path sys::test::findCMakeInstallRoot(const fs::path& path) +{ + auto retval = findCMake_Root(path, "install", "build"); + std::clog << "findCMakeInstallRoot(): " << retval << "\n"; + return retval; +} + +bool sys::test::isCMakeBuild(const fs::path& path) +{ + try + { + std::ignore = sys::test::findCMakeBuildRoot(path); + return true; + } + catch (const std::invalid_argument&) + { + return false; + } +} + +static fs::path find_dotGITDirectory_(const fs::path& p, const fs::path& initial) +{ + // Walk up the directory tree starting at "p" until we find a .git directory + if (is_directory(p / ".git")) + { + return p; + } + + auto parent = p.parent_path(); + if (parent.empty()) + { + throw std::invalid_argument("Can't find .git/ anywhere in: " + initial.string()); + } + return find_dotGITDirectory_(parent, initial); +} +fs::path sys::test::find_dotGITDirectory(const fs::path& p) +{ + return find_dotGITDirectory_(p, p); +} + +fs::path sys::test::findModuleFile(const fs::path& root, + const std::string& externalsName, const fs::path& modulePath, const fs::path& moduleFile) +{ + auto retval = root / modulePath / moduleFile; + if (exists(retval)) + { + return retval; + } + retval = root / externalsName / modulePath / moduleFile; + if (exists(retval)) + { + return retval; + } + + static const std::vector subDirectories + { + "externals", // NITRO and SIX + fs::path("externals") / "coda" / "externals", // di + fs::path("src") / "OSS" / "di" + }; + for (const auto& subDir : subDirectories) + { + retval = root / subDir / externalsName / modulePath / moduleFile; + if (exists(retval)) + { + return retval; + } + } + + // Welp, we've got to try searching ... this might take a while :-( + static std::map module_to_path; + auto module_name_and_path = externalsName / modulePath; + auto it = module_to_path.find(module_name_and_path.string()); + if (it == module_to_path.end()) + { + const auto filename = module_name_and_path / moduleFile; + const auto dir = sys::findFirstFile(root, filename); + const auto path = dir / filename; + if (exists(path)) + { + module_to_path[module_name_and_path.string()] = (dir / module_name_and_path).string(); + it = module_to_path.find(module_name_and_path.string()); + } + } + if (it != module_to_path.end()) // perhaps changed with successful sys::findFirstFile() + { + retval = fs::path(it->second) / moduleFile; + if (exists(retval)) + { + return retval; + } + } + + throw std::logic_error("Failed to find:" + moduleFile.string()); +} + +fs::path sys::test::findGITModuleFile( + const std::string& externalsName, const fs::path& modulePath, const fs::path& moduleFile) +{ + const auto dotGIT = find_dotGITDirectory(fs::current_path()); + return findModuleFile(dotGIT, externalsName, modulePath, moduleFile); +} diff --git a/externals/coda-oss/modules/c++/sys/source/FileUnix.cpp b/externals/coda-oss/modules/c++/sys/source/FileUnix.cpp index ad9d424169..f046f7db3d 100644 --- a/externals/coda-oss/modules/c++/sys/source/FileUnix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/FileUnix.cpp @@ -22,25 +22,29 @@ #include "sys/File.h" -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include #include #include -void sys::File::create(const std::string& str, int accessFlags, - int creationFlags) +_SYS_HANDLE_TYPE sys::File::createFile(const coda_oss::filesystem::path& str_, int accessFlags, int creationFlags) noexcept { + const auto str = str_.string(); + if (accessFlags & sys::File::WRITE_ONLY) creationFlags |= sys::File::TRUNCATE; - mHandle = open(str.c_str(), accessFlags | creationFlags, _SYS_DEFAULT_PERM); - + return open(str.c_str(), accessFlags | creationFlags, _SYS_DEFAULT_PERM); +} +void sys::File::create(const std::string& str, int accessFlags, + int creationFlags) +{ + create(std::nothrow, str, accessFlags, creationFlags); if (mHandle < 0) { - throw sys::SystemException(Ctxt(FmtX("Error opening file [%d]: [%s]", - mHandle, str.c_str()))); + throw sys::SystemException(Ctxt( + FmtX("Error opening file [%d]: [%s]", mHandle, str.c_str()))); } - mPath = str; } void sys::File::readInto(void* buffer, Size_T size) diff --git a/externals/coda-oss/modules/c++/sys/source/FileWin32.cpp b/externals/coda-oss/modules/c++/sys/source/FileWin32.cpp index 6e104aef79..1b60a02010 100644 --- a/externals/coda-oss/modules/c++/sys/source/FileWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/FileWin32.cpp @@ -20,16 +20,16 @@ * */ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include #include #include "sys/File.h" -void sys::File::create(const std::string& str, - int accessFlags, - int creationFlags) +_SYS_HANDLE_TYPE sys::File::createFile(const coda_oss::filesystem::path& str_, int accessFlags, int creationFlags) noexcept { + const auto str = str_.string(); + // If the truncate bit is on AND the file does exist, // we need to set the mode to TRUNCATE_EXISTING if ((creationFlags & sys::File::TRUNCATE) && sys::OS().exists(str) ) @@ -43,18 +43,24 @@ void sys::File::create(const std::string& str, const auto dwDesiredAccess = static_cast(accessFlags); const auto dwCreationDisposition = static_cast(creationFlags); - mHandle = CreateFile(str.c_str(), + return CreateFile(str.c_str(), dwDesiredAccess, FILE_SHARE_READ, nullptr /*lpSecurityAttributes*/, dwCreationDisposition, FILE_ATTRIBUTE_NORMAL, static_cast(0) /*hTemplateFile*/); +} +void sys::File::create(const std::string& str, + int accessFlags, + int creationFlags) +{ + create(std::nothrow, str, accessFlags, creationFlags); if (mHandle == INVALID_HANDLE_VALUE) { - throw sys::SystemException(Ctxt(FmtX("Error opening file: [%s]", str.c_str()))); + throw sys::SystemException( + Ctxt(FmtX("Error opening file: [%s]", str.c_str()))); } - mPath = str; } void sys::File::readInto(void* buffer, size_t size) diff --git a/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreNSPR.h b/externals/coda-oss/modules/c++/sys/source/MutexCpp11.cpp similarity index 67% rename from externals/coda-oss/modules/c++/sys/include/sys/SemaphoreNSPR.h rename to externals/coda-oss/modules/c++/sys/source/MutexCpp11.cpp index e390602a84..5d46269e51 100644 --- a/externals/coda-oss/modules/c++/sys/include/sys/SemaphoreNSPR.h +++ b/externals/coda-oss/modules/c++/sys/source/MutexCpp11.cpp @@ -20,37 +20,34 @@ * */ +#include "sys/MutexCpp11.h" -#ifndef __SYS_SEMAPHORE_NSPR_H__ -#define __SYS_SEMAPHORE_NSPR_H__ - -#if defined(USE_NSPR_THREADS) - -#include "except/Exception.h" - -#include "sys/SemaphoreInterface.h" -#include +sys::MutexCpp11::MutexCpp11() +{ +} -namespace sys +sys::MutexCpp11::~MutexCpp11() { -class SemaphoreNSPR : public SemaphoreInterface +} + +void sys::MutexCpp11::lock() { -public: - SemaphoreNSPR(unsigned count = 0) - { - throw except::Exception("NSPR Does not use semaphores."); - } - ~SemaphoreNSPR() - {} +#ifdef THREAD_DEBUG + dbg_printf("Locking mutex\n"); +#endif + mNative.lock(); +} - void wait() - {} - - void signal() - {} +void sys::MutexCpp11::unlock() +{ +#ifdef THREAD_DEBUG + dbg_printf("Unlocking mutex\n"); +#endif + mNative.unlock(); +} -}; +std::mutex& sys::MutexCpp11::getNative() +{ + return mNative; } -#endif -#endif diff --git a/externals/coda-oss/modules/c++/sys/source/MutexIrix.cpp b/externals/coda-oss/modules/c++/sys/source/MutexIrix.cpp deleted file mode 100644 index d71557ebe5..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/MutexIrix.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#if defined(__sgi) -#include -#include "sys/MutexIrix.h" -#include "sys/SyncFactoryIrix.h" - -sys::MutexIrix::MutexIrix() -{ - if (!sys::SyncFactoryIrix().createLock(*this)) - throw SystemException("Mutex initialization failed"); -} - -sys::MutexIrix::~MutexIrix() -{ - dbg_printf("~MutexIrix()\n"); - sys::SyncFactoryIrix().destroyLock(*this); -} - -void sys::MutexIrix::lock() -{ - dbg_printf("MutexIrix::lock()\n"); - if (!sys::SyncFactoryIrix().setLock(*this)) - throw sys::SystemException("Mutex lock failed"); -} - -void sys::MutexIrix::unlock() -{ - dbg_printf("MutexIrix::unlock()\n"); - if (!sys::SyncFactoryIrix().unsetLock(*this)) - throw sys::SystemException("Mutex unlock failed"); -} - -ulock_t*& sys::MutexIrix::getNative() -{ - return mNative; -} - -#endif // __sgi - diff --git a/externals/coda-oss/modules/c++/sys/source/MutexSolaris.cpp b/externals/coda-oss/modules/c++/sys/source/MutexSolaris.cpp deleted file mode 100644 index 67ce7a5402..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/MutexSolaris.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#if defined(__sun) -#include "sys/MutexSolaris.h" - -sys::MutexSolaris::MutexSolaris() -{ - if (::mutex_init(&mNative, USYNC_THREAD, NULL) != 0) - throw sys::SystemException("Mutex initialization failed"); -} - -sys::MutexSolaris::~MutexSolaris() -{ - if ( ::mutex_destroy(&mNative) != 0 ) - { - ::mutex_unlock(&mNative); - ::mutex_destroy(&mNative); - } -} - -void sys::MutexSolaris::lock() -{ -#ifdef THREAD_DEBUG - dbg_printf("Locking mutex\n"); -#endif - if (::mutex_lock(&mNative) != 0) - throw sys::SystemException("Mutex lock failed"); -} - -void sys::MutexSolaris::unlock() -{ -#ifdef THREAD_DEBUG - dbg_printf("Unlocking mutex\n"); -#endif - if (::mutex_unlock(&mNative) != 0) - throw sys::SystemException("Mutex unlock failed"); -} - -mutex_t& sys::MutexSolaris::getNative() -{ - return mNative; -} - -#endif - diff --git a/externals/coda-oss/modules/c++/sys/source/MutexWin32.cpp b/externals/coda-oss/modules/c++/sys/source/MutexWin32.cpp index 69c7023ae9..62786f0ee0 100644 --- a/externals/coda-oss/modules/c++/sys/source/MutexWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/MutexWin32.cpp @@ -21,7 +21,7 @@ */ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #if !defined(USE_NSPR_THREADS) diff --git a/externals/coda-oss/modules/c++/sys/source/OSUnix.cpp b/externals/coda-oss/modules/c++/sys/source/OSUnix.cpp index 633c6b4d62..e44d9a3801 100644 --- a/externals/coda-oss/modules/c++/sys/source/OSUnix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/OSUnix.cpp @@ -32,7 +32,7 @@ #include "sys/Conf.h" -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include diff --git a/externals/coda-oss/modules/c++/sys/source/OSWin32.cpp b/externals/coda-oss/modules/c++/sys/source/OSWin32.cpp index 2d7f30a2e4..9fe5e7f153 100644 --- a/externals/coda-oss/modules/c++/sys/source/OSWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/OSWin32.cpp @@ -26,7 +26,7 @@ #include #include -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include "sys/OSWin32.h" #include "sys/File.h" @@ -148,11 +148,15 @@ bool sys::OSWin32::isFile(const std::string& path) const // 2) Not Directory // 3) Not Archive - we aren't doing that... const DWORD what = GetFileAttributes(path.c_str()); - return (what != INVALID_FILE_ATTRIBUTES && - !(what & FILE_ATTRIBUTE_DIRECTORY)); + if (what == INVALID_FILE_ATTRIBUTES) // "if the function fails, the return value is INVALID_FILE_ATTRIBUTES." + { + //const auto dwError = GetLastError(); + return false; + } + const auto fileAttributeDirectory = (what & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY; + return !fileAttributeDirectory; } - bool sys::OSWin32::isDirectory(const std::string& path) const { const DWORD what = GetFileAttributes(path.c_str()); @@ -183,7 +187,7 @@ bool sys::OSWin32::changeDirectory(const std::string& path) const std::string sys::OSWin32::getTempName(const std::string& path, const std::string& prefix) const { - char buffer[MAX_PATH]; + char buffer[MAX_PATH]{}; if (GetTempFileName(path.c_str(), prefix.c_str(), 0, buffer) == 0) diff --git a/externals/coda-oss/modules/c++/sys/source/Path.cpp b/externals/coda-oss/modules/c++/sys/source/Path.cpp index 3393f60e0b..c466438543 100644 --- a/externals/coda-oss/modules/c++/sys/source/Path.cpp +++ b/externals/coda-oss/modules/c++/sys/source/Path.cpp @@ -177,7 +177,7 @@ std::string Path::absolutePath(const std::string& path) bool Path::isAbsolutePath(const std::string& path) { -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 return !Path::splitDrive(path).first.empty(); #else return (!path.empty() && path[0] == Path::delimiter()[0]); @@ -232,7 +232,7 @@ std::string Path::basename(const std::string& path, bool removeExt) Path::StringPair Path::splitDrive(const std::string& path) { -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 std::string::size_type pos = path.find(":"); #else std::string::size_type pos = std::string::npos; @@ -245,7 +245,7 @@ Path::StringPair Path::splitDrive(const std::string& path) const char* Path::delimiter() { -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 return "\\"; #else return "/"; @@ -254,7 +254,7 @@ const char* Path::delimiter() const char* Path::separator() { -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 return ";"; #else return ":"; @@ -663,8 +663,7 @@ static std::vector expand_components(const separated_path& c std::vector retval; for (const auto& component : components.components()) { - expanded_component e{component}; - e.value = expandEnvironmentVariable(component); + expanded_component e{component, expandEnvironmentVariable(component)}; assert(e.value.size() >= 1); // the component itself should always be there retval.push_back(std::move(e)); diff --git a/externals/coda-oss/modules/c++/sys/source/ProcessUnix.cpp b/externals/coda-oss/modules/c++/sys/source/ProcessUnix.cpp index d31c20ae56..25acd65262 100644 --- a/externals/coda-oss/modules/c++/sys/source/ProcessUnix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ProcessUnix.cpp @@ -21,7 +21,7 @@ */ -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include #include "sys/ProcessUnix.h" #include diff --git a/externals/coda-oss/modules/c++/sys/source/ProcessWin32.cpp b/externals/coda-oss/modules/c++/sys/source/ProcessWin32.cpp index 79145791bd..52c57fa17b 100644 --- a/externals/coda-oss/modules/c++/sys/source/ProcessWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ProcessWin32.cpp @@ -21,7 +21,7 @@ */ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include "sys/Process.h" #include "sys/Thread.h" diff --git a/externals/coda-oss/modules/c++/sys/source/ScopedCPUAffinityUnix.cpp b/externals/coda-oss/modules/c++/sys/source/ScopedCPUAffinityUnix.cpp index 1c88df2cc8..f56e45e779 100644 --- a/externals/coda-oss/modules/c++/sys/source/ScopedCPUAffinityUnix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ScopedCPUAffinityUnix.cpp @@ -20,7 +20,7 @@ * */ -#if !(defined(WIN32) || defined(_WIN32)) +#ifndef _WIN32 #include diff --git a/externals/coda-oss/modules/c++/sys/source/SemaphoreIrix.cpp b/externals/coda-oss/modules/c++/sys/source/SemaphoreIrix.cpp deleted file mode 100644 index e04e5f6093..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/SemaphoreIrix.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#if defined(__sgi) -#include -#include "sys/SemaphoreIrix.h" - - -sys::SemaphoreIrix::SemaphoreIrix(unsigned int count) -{ - if (!sys::SyncFactoryIrix().createSemaphore(*this, count)) - throw SystemException("Semaphore initialization failed"); -} - -sys::SemaphoreIrix::~SemaphoreIrix() -{ - dbg_printf("~SemaphoreIrix()\n"); - sys::SyncFactoryIrix().destroySemaphore(*this); - dbg_printf("done.\n"); -} - -void sys::SemaphoreIrix::wait() -{ - dbg_printf("SemaphoreIrix::wait()\n"); - if (!sys::SyncFactoryIrix().waitSemaphore(*this)) - throw SystemException("Semaphore wait failed"); - -} - -void sys::SemaphoreIrix::signal() -{ - dbg_printf("SemaphoreIrix::signal()\n"); - if (!sys::SyncFactoryIrix().signalSemaphore(*this)) - throw SystemException("Semaphore signal failed"); -} - -usema_t*& sys::SemaphoreIrix::getNative() -{ - // We don't actually use this, but SemaphoreIrix uses usema_t* as its template.. - return (usema_t*) NULL; -} - -#endif // __sgi - diff --git a/externals/coda-oss/modules/c++/sys/source/SemaphoreWin32.cpp b/externals/coda-oss/modules/c++/sys/source/SemaphoreWin32.cpp index a4a555752d..fcfd8255bf 100644 --- a/externals/coda-oss/modules/c++/sys/source/SemaphoreWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/SemaphoreWin32.cpp @@ -21,7 +21,7 @@ */ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #if !defined(USE_NSPR_THREADS) diff --git a/externals/coda-oss/modules/c++/sys/source/SyncFactoryIrix.cpp b/externals/coda-oss/modules/c++/sys/source/SyncFactoryIrix.cpp deleted file mode 100644 index 75c4da6d16..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/SyncFactoryIrix.cpp +++ /dev/null @@ -1,210 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -# if defined(__sgi) -#include - -#include "sys/SyncFactoryIrix.h" -#include "sys/MutexIrix.h" -#include "sys/SemaphoreIrix.h" -#include "sys/ThreadIrix.h" -#include "sys/ConditionVarIrix.h" - -sys::SyncFactoryIrix::SyncImplIrix* sys::SyncFactoryIrix::mImpl = NULL; -sys::SyncFactoryIrix::SyncImplIrix::SyncImplIrix() : mRef(0), mArena(NULL) -{ - // NOTE: SIGUSR1 is used in the Irix conditional - // variable, and needs to be blocked by the process. - // If it isn't blocked, then the threads may terminate - // prematurely if they are not waiting on the signal - // when the signal occurs. - HERE(); - sigset_t lSignalSet; - //sigset_t lSignalInfo; - - sigemptyset(&lSignalSet); - sigaddset(&lSignalSet, SIGUSR1); - sigprocmask(SIG_BLOCK, &lSignalSet, NULL); - - - // Set maximum number of sharing processes, default=8 - usconfig(CONF_INITUSERS, 128); - - // Enable autogrow options for arena - usconfig(CONF_AUTOGROW, 1); // Default=enabled, but set anyways - usconfig(CONF_AUTORESV, 1); // Only valid if using /dev/zero - - // Create shared memory arena using logical swap pool - mArena = usinit( "/dev/zero" ); - - assert( mArena ); - EVAL( mArena); - - mGuard = new ulock_t; - *mGuard = usnewlock(mArena); - if (*mGuard == NULL) - { - delete mGuard; - mGuard = NULL; - } - - -} - -sys::SyncFactoryIrix::SyncImplIrix::~SyncImplIrix() -{ - dbg_ln("Destructing the SyncImpl"); - - dbg_ln("Removing the guard from the arena"); - usfreelock(*mGuard, mArena); - dbg_ln("Deleting the guard"); - delete mGuard; - dbg_ln("Detaching the arena"); - usdetach(mArena); - - mArena = NULL; - dbg_ln("Done destructing the SyncImpl"); -} - -bool sys::SyncFactoryIrix::SyncImplIrix::startThread(sys::ThreadIrix& t) -{ - dbg_ln("Starting thread"); - t.getNative() = sproc(sys::ThreadIrix::__start, - PR_SADDR | PR_SFDS | PR_SDIR | PR_SUMASK, - &t); - EVAL(t.getNative()); - if (t.getNative() <= 0) - { - dbg_ln("sproc() call failed!"); - return false; - - } - return true; -} -bool sys::SyncFactoryIrix::SyncImplIrix::killThread(sys::ThreadIrix& t) -{ - dbg_ln("Killing thread"); - if ( ::kill(t.getNative(), SIGKILL) == 0 ) - { - t.setIsRunning(false); - return true; - } - dbg_ln("Thread kill() failed"); - return false; -} -bool sys::SyncFactoryIrix::SyncImplIrix::createLock(sys::MutexIrix& mutex) -{ - dbg_ln("Creating the lock"); - ussetlock(*mGuard); - mutex.getNative() = new ulock_t; - *(mutex.getNative()) = usnewlock(mArena); - if (*(mutex.getNative()) == NULL) - { - dbg_ln("Lock creation failed"); - delete mutex.getNative(); - mutex.getNative() = NULL; - return false; - } - TRACE(mRef++); - EVAL(mRef); - usunsetlock(*mGuard); - dbg_ln("Successfully created lock"); - return true; -} - -bool sys::SyncFactoryIrix::SyncImplIrix::destroyLock(sys::MutexIrix& mutex) -{ - dbg_ln("Destroying the lock"); - ussetlock(*mGuard); - EVAL(mArena); - - EVAL( &mutex ); - EVAL( mutex.getNative() ); - TRACE( usfreelock(*(mutex.getNative()), mArena) ); - TRACE( delete mutex.getNative() ); - mutex.getNative() = NULL; - - TRACE(mRef--); - EVAL(mRef); - usunsetlock(*mGuard); - return true; - -} - -bool sys::SyncFactoryIrix::SyncImplIrix::setLock(sys::MutexIrix& mutex) -{ - dbg_ln("Setting the lock"); - return ( ussetlock( *(mutex.getNative() ) ) == 1 ); -} - -bool sys::SyncFactoryIrix::SyncImplIrix::unsetLock(sys::MutexIrix& mutex) -{ - dbg_ln("Unsetting the lock"); - - return ( usunsetlock( *(mutex.getNative() ) ) == 0 ); -} - - -bool sys::SyncFactoryIrix::SyncImplIrix::waitSemaphore(sys::SemaphoreIrix& sema) -{ - dbg_ln("Waiting for semaphore"); - return ( uspsema( sema.getNative() ) == 1 ); -} - -bool sys::SyncFactoryIrix::SyncImplIrix::signalSemaphore(sys::SemaphoreIrix& sema) -{ - dbg_ln("Signalling semaphore"); - return ( usvsema( sema.getNative() ) == 0 ); -} - -bool sys::SyncFactoryIrix::SyncImplIrix::createSemaphore(sys::SemaphoreIrix& sema, - unsigned int count) -{ - dbg_ln("Creating semaphore"); - ussetlock(*mGuard); - sema.getNative() = usnewsema(mArena, count); - if (!sema.getNative()) - { - dbg_ln("Semaphore creation failed!"); - return false; - } - TRACE(mRef++); - EVAL(mRef); - usunsetlock(*mGuard); - dbg_ln("Successfully created semaphore"); - return true; -} - -bool sys::SyncFactoryIrix::SyncImplIrix::destroySemaphore(sys::SemaphoreIrix& sema) -{ - dbg_ln("Destroying semaphore"); - ussetlock(*mGuard); - usfreesema(sema.getNative(), mArena); - - TRACE(mRef--); - EVAL(mRef); - usunsetlock(*mGuard); - return true; -} -#endif - diff --git a/externals/coda-oss/modules/c++/sys/source/ThreadIrix.cpp b/externals/coda-oss/modules/c++/sys/source/ThreadIrix.cpp deleted file mode 100644 index 54a38b2185..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/ThreadIrix.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#if defined(__sgi) -#include "sys/ThreadIrix.h" - -// void sys::ThreadIrix::start() -// { -// sys::SyncFactoryIrix()->startThread(*this); -// } -// bool sys::ThreadIrix::kill() -// { -// return sys::SyncFactoryIrix()->killThread(*this); -// } - -void sys::ThreadIrix::join() -{ - dbg_printf("Joining on thread\n"); - int lStatus; - do - { - waitpid(mNative, &lStatus, 0); - dbg_printf("Waiting on thread [%d]\n", mNative); - } - while ( WIFEXITED(lStatus) == 0 ); - dbg_printf("Done joining on thread\n"); -} - -void sys::ThreadIrix::yield() -{ - dbg_printf("ThreadIrix::yield()\n"); - sginap(0); -} -#endif - diff --git a/externals/coda-oss/modules/c++/sys/source/ThreadNSPR.cpp b/externals/coda-oss/modules/c++/sys/source/ThreadNSPR.cpp deleted file mode 100644 index a6ae0819dd..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/ThreadNSPR.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -# if defined(USE_NSPR_THREADS) -#include "sys/ThreadNSPR.h" -void sys::ThreadNSPR::__start(void *v) -{ - STANDARD_START_CALL(ThreadNSPR, v); -} -void sys::ThreadNSPR::start() -{ - - PRThreadType type = (getLevel() == sys::ThreadNSPR::KERNEL_LEVEL) ? - (PR_SYSTEM_THREAD) : (PR_USER_THREAD); - - PRThreadScope scope = (mIsLocal) ? (PR_LOCAL_THREAD) : - (PR_GLOBAL_THREAD); - - PRThreadPriority priority; - if (getPriority() == sys::ThreadNSPR::NORMAL_PRIORITY) - priority = PR_PRIORITY_NORMAL; - else if (getPriority() == sys::ThreadNSPR::MAXIMUM_PRIORITY) - priority = PR_PRIORITY_HIGH; - else if (getPriority() == sys::ThreadNSPR::MINIMUM_PRIORITY) - priority = PR_PRIORITY_LOW; - mNative = PR_CreateThread(type, - (void (*)(void *))this->__start, - this, - priority, - scope, - PR_JOINABLE_THREAD, - 0); -} - -void sys::ThreadNSPR::join() -{ - if (!PR_JoinThread(mNative)) - throw sys::SystemException("join()"); -} - -void sys::ThreadNSPR::yield() -{ - PR_Sleep(PR_INTERVAL_NO_WAIT); -} - -# endif - diff --git a/externals/coda-oss/modules/c++/sys/source/ThreadPosix.cpp b/externals/coda-oss/modules/c++/sys/source/ThreadPosix.cpp index 07f7f98676..4892ab3961 100644 --- a/externals/coda-oss/modules/c++/sys/source/ThreadPosix.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ThreadPosix.cpp @@ -24,7 +24,7 @@ #if CODA_OSS_POSIX_SOURCE -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 # define SIGKILL 0 #endif void sys::ThreadPosix::start() diff --git a/externals/coda-oss/modules/c++/sys/source/ThreadSolaris.cpp b/externals/coda-oss/modules/c++/sys/source/ThreadSolaris.cpp deleted file mode 100644 index dc8100ae81..0000000000 --- a/externals/coda-oss/modules/c++/sys/source/ThreadSolaris.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* ========================================================================= - * This file is part of sys-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2014, MDA Information Systems LLC - * - * sys-c++ is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; If not, - * see . - * - */ - - -#if defined(__sun) -#include "sys/ThreadSolaris.h" -#include "sys/Dbg.h" - - -void sys::ThreadSolaris::start() -{ - - long flags = 0; - if (getLevel() == KERNEL_LEVEL ) - flags |= THR_BOUND; - - dbg_printf("Starting thread and is kernel? [%d]\n", - getLevel() == KERNEL_LEVEL); - // \todo Kernel level - - int p = thr_create(NULL, - 0, - __sys_ThreadSolaris_start, - this, - flags, - &mNative); - if (p != 0) - { - std::string message = "thr_create failed: "; - if ( p == EAGAIN ) message += "EAGAIN"; - else if ( p == EINVAL ) message += "EINVAL"; - else if ( p == ENOMEM ) message += "ENOMEM"; - throw sys::SystemException(message); - } -} -extern "C" void *__sys_ThreadSolaris_start(void *v) -{ - dbg_printf("Beginning __start()\n"); - STANDARD_START_CALL(ThreadSolaris, v); - dbg_printf("Finishing __start()\n"); - return NULL; - -} - -void sys::ThreadSolaris::kill() -{ - dbg_printf("Killing thread\n"); - if ( thr_kill(mNative, SIGKILL) != 0) - { - throw sys::SystemException("thr_kill()"); - } - setIsRunning(false); -} - -void sys::ThreadSolaris::join() -{ - dbg_printf("Joining thread\n"); - if (::thr_join(mNative, NULL, NULL) != 0 ) - throw sys::SystemException("thr_join()"); -} - -void sys::ThreadSolaris::yield() -{ - dbg_printf("Yielding thread\n"); - ::thr_yield(); -} - -#endif diff --git a/externals/coda-oss/modules/c++/sys/source/ThreadWin32.cpp b/externals/coda-oss/modules/c++/sys/source/ThreadWin32.cpp index 347e0b558e..43ee313b65 100644 --- a/externals/coda-oss/modules/c++/sys/source/ThreadWin32.cpp +++ b/externals/coda-oss/modules/c++/sys/source/ThreadWin32.cpp @@ -21,7 +21,7 @@ */ -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #if !defined(USE_NSPR_THREADS) #include "sys/ThreadWin32.h" diff --git a/externals/coda-oss/modules/c++/sys/tests/MemoryTest1.cpp b/externals/coda-oss/modules/c++/sys/tests/MemoryTest1.cpp index 76d9500c33..534c0586bf 100644 --- a/externals/coda-oss/modules/c++/sys/tests/MemoryTest1.cpp +++ b/externals/coda-oss/modules/c++/sys/tests/MemoryTest1.cpp @@ -35,17 +35,17 @@ int main(int, char**) std::cout << "Total system memory: " << totalPhysMem << " MB" << std::endl; std::cout << "Free system memory: " << freePhysMem << " MB" << std::endl; } - catch (const std::exception& ex) - { - std::cerr << "Caught std::exception: " << ex.what() << std::endl; - return 1; - } catch (const except::Exception& ex) { std::cerr << "Caught except::exception: " << ex.getMessage() << std::endl; return 1; } + catch (const std::exception& ex) + { + std::cerr << "Caught std::exception: " << ex.what() << std::endl; + return 1; + } catch(...) { std::cerr << "Caught unknown exception\n"; diff --git a/externals/coda-oss/modules/c++/sys/tests/MutexTest.cpp b/externals/coda-oss/modules/c++/sys/tests/MutexTest.cpp index a3dc1a0540..b30c51f791 100644 --- a/externals/coda-oss/modules/c++/sys/tests/MutexTest.cpp +++ b/externals/coda-oss/modules/c++/sys/tests/MutexTest.cpp @@ -42,7 +42,7 @@ std::string itos (int arg) { class DemoThread : public Thread { protected: - void run() { + void run() override { for (int i = 0 ; i < THREAD_LOOPS ; i++ ) { mutexCout.lock(); std::cout << getName() + " is running" << std::endl; diff --git a/externals/coda-oss/modules/c++/sys/tests/ReadWriteMutexTest.cpp b/externals/coda-oss/modules/c++/sys/tests/ReadWriteMutexTest.cpp index 1b8227fb68..262d3424cf 100644 --- a/externals/coda-oss/modules/c++/sys/tests/ReadWriteMutexTest.cpp +++ b/externals/coda-oss/modules/c++/sys/tests/ReadWriteMutexTest.cpp @@ -54,7 +54,7 @@ std::string BUFFER[1]; class ReadWriteThread : public Thread { protected: - void run() { + void run() override { for(int i=0; i < 5; ++i) { diff --git a/externals/coda-oss/modules/c++/sys/tests/ReentrantTest.cpp b/externals/coda-oss/modules/c++/sys/tests/ReentrantTest.cpp index f61823ed68..8955914862 100644 --- a/externals/coda-oss/modules/c++/sys/tests/ReentrantTest.cpp +++ b/externals/coda-oss/modules/c++/sys/tests/ReentrantTest.cpp @@ -29,7 +29,7 @@ class NoteThread : public Thread public: NoteThread() { std::cout << "Constructed a thread" << std::endl;} - void run() + void run() override { std::cout << "Running a thread" << std::endl;} ~NoteThread() diff --git a/externals/coda-oss/modules/c++/sys/tests/ThreadFreeTest.cpp b/externals/coda-oss/modules/c++/sys/tests/ThreadFreeTest.cpp index 9593239178..63e54d72a0 100644 --- a/externals/coda-oss/modules/c++/sys/tests/ThreadFreeTest.cpp +++ b/externals/coda-oss/modules/c++/sys/tests/ThreadFreeTest.cpp @@ -38,7 +38,7 @@ class MyRunTask : public Runnable { } - virtual void run() + virtual void run() override { result = 1; } diff --git a/externals/coda-oss/modules/c++/sys/tests/ThreadTest4.cpp b/externals/coda-oss/modules/c++/sys/tests/ThreadTest4.cpp index b33c20055c..f9b91cd1c1 100644 --- a/externals/coda-oss/modules/c++/sys/tests/ThreadTest4.cpp +++ b/externals/coda-oss/modules/c++/sys/tests/ThreadTest4.cpp @@ -35,7 +35,7 @@ class Getter : public sys::Runnable CODA_OSS_disable_warning_push CODA_OSS_DISABLE_UNREACHABLE_CODE - virtual void run() + virtual void run() override { for (int i = 0; i < 250; i++) { @@ -71,7 +71,7 @@ class Putter : public sys::Runnable CODA_OSS_disable_warning_push CODA_OSS_DISABLE_UNREACHABLE_CODE - virtual void run() + virtual void run() override { std::cout << "Putter::run: " << std::endl; @@ -145,4 +145,4 @@ int main() cout << "Unknown exception" << endl; } return 0; -}; +} diff --git a/externals/coda-oss/modules/c++/sys/tests/ThreadTest5.cpp b/externals/coda-oss/modules/c++/sys/tests/ThreadTest5.cpp index 60fd681e2c..664109b0db 100644 --- a/externals/coda-oss/modules/c++/sys/tests/ThreadTest5.cpp +++ b/externals/coda-oss/modules/c++/sys/tests/ThreadTest5.cpp @@ -39,7 +39,7 @@ class TestThread : public Thread delete mVal; } - void run() + void run() override { cout << "mVal: " << *mVal << endl; } @@ -85,4 +85,4 @@ int main() cout << "Unknown exception" << endl; } return 0; -}; +} diff --git a/externals/coda-oss/modules/c++/sys/tests/test_symlink.cpp b/externals/coda-oss/modules/c++/sys/tests/test_symlink.cpp index cfd30c5d72..029d1ebd1e 100644 --- a/externals/coda-oss/modules/c++/sys/tests/test_symlink.cpp +++ b/externals/coda-oss/modules/c++/sys/tests/test_symlink.cpp @@ -61,15 +61,15 @@ int main(int /*argc*/, char** /*argv*/) return 0; } - catch (const std::exception& ex) - { - std::cerr << "Caught std::exception: " << ex.what() << std::endl; - } catch (const except::Exception& ex) { std::cerr << "Caught except::exception: " << ex.getMessage() << std::endl; } + catch (const std::exception& ex) + { + std::cerr << "Caught std::exception: " << ex.what() << std::endl; + } catch (...) { std::cerr << "Caught unknown exception\n"; diff --git a/externals/coda-oss/modules/c++/sys/unittests/test_NaN_testing.cpp b/externals/coda-oss/modules/c++/sys/unittests/test_NaN_testing.cpp index b651af471c..82df405095 100644 --- a/externals/coda-oss/modules/c++/sys/unittests/test_NaN_testing.cpp +++ b/externals/coda-oss/modules/c++/sys/unittests/test_NaN_testing.cpp @@ -47,6 +47,7 @@ TEST_CASE(testNaNIsNotAlmostEqualToNumber) TEST_ASSERT_ALMOST_EQ_EPS(std::numeric_limits::quiet_NaN(), 5, 3); */ + TEST_ASSERT_TRUE(true); // need to use hidden "testName" parameter } TEST_CASE(testIsNaN) diff --git a/externals/coda-oss/modules/c++/sys/unittests/test_atomic_counter.cpp b/externals/coda-oss/modules/c++/sys/unittests/test_atomic_counter.cpp index fa56995992..8420b580fb 100644 --- a/externals/coda-oss/modules/c++/sys/unittests/test_atomic_counter.cpp +++ b/externals/coda-oss/modules/c++/sys/unittests/test_atomic_counter.cpp @@ -123,7 +123,7 @@ struct IncrementAtomicCounterT final : public sys::Runnable { } - virtual void run() + virtual void run() override { for (size_t ii = 0; ii < mNumIncrements; ++ii) { @@ -210,7 +210,7 @@ struct DecrementAtomicCounterT final : public sys::Runnable { } - virtual void run() + virtual void run() override { for (size_t ii = 0; ii < mNumDecrements; ++ii) { diff --git a/externals/coda-oss/modules/c++/sys/unittests/test_byte_swap.cpp b/externals/coda-oss/modules/c++/sys/unittests/test_byte_swap.cpp index fd2ee6f5ea..954872bb0b 100644 --- a/externals/coda-oss/modules/c++/sys/unittests/test_byte_swap.cpp +++ b/externals/coda-oss/modules/c++/sys/unittests/test_byte_swap.cpp @@ -23,11 +23,13 @@ #include "TestCase.h" #include - +#include #include // std::endian #include +#include #include +#include TEST_CASE(testEndianness) { @@ -37,7 +39,7 @@ TEST_CASE(testEndianness) else if (native == std::endian::little) { } else { - TEST_FAIL("Mixed-endian not supported!"); + TEST_FAIL_MSG("Mixed-endian not supported!"); } const bool isBigEndianSystem = sys::isBigEndianSystem(); @@ -70,29 +72,32 @@ TEST_CASE(testEndianness) } } -TEST_CASE(testByteSwap) +static std::vector make_origValues(size_t NUM_PIXELS) { ::srand(334); - static const size_t NUM_PIXELS = 10000; - std::vector origValues(NUM_PIXELS); + std::vector retval(NUM_PIXELS); for (size_t ii = 0; ii < NUM_PIXELS; ++ii) { const auto value = static_cast(::rand()) / RAND_MAX * - std::numeric_limits::max(); - origValues[ii] = static_cast(value); + std::numeric_limits::max(); + retval[ii] = static_cast(value); } + return retval; +} - // Byte swap the old-fashioned way - std::vector values1(origValues); - sys::byteSwap(&values1[0], sizeof(sys::Uint64_T), NUM_PIXELS); +TEST_CASE(testByteSwap) +{ + constexpr size_t NUM_PIXELS = 10000; + const auto origValues = make_origValues(NUM_PIXELS); + // Byte swap the old-fashioned way + auto values1(origValues); + sys::byteSwap(values1.data(), sizeof(uint64_t), NUM_PIXELS); // Byte swap into output buffer - const std::vector values2(origValues); - std::vector swappedValues2(values2.size()); - sys::byteSwap(&values2[0], sizeof(sys::Uint64_T), NUM_PIXELS, - &swappedValues2[0]); + std::vector swappedValues2(origValues.size()); + sys::byteSwap(origValues.data(), sizeof(uint64_t), NUM_PIXELS, swappedValues2.data()); // Everything should match for (size_t ii = 0; ii < NUM_PIXELS; ++ii) @@ -101,8 +106,158 @@ TEST_CASE(testByteSwap) } } +// 0xnn is an `int` which can't be used to initialize std::byte w/o a cast +#define CODA_OSS_define_byte(v) constexpr static std::byte v = static_cast(0 ## v) +CODA_OSS_define_byte(x00); +CODA_OSS_define_byte(x11); +CODA_OSS_define_byte(x22); +CODA_OSS_define_byte(x33); +CODA_OSS_define_byte(x44); +CODA_OSS_define_byte(x55); +CODA_OSS_define_byte(x66); +CODA_OSS_define_byte(x77); +CODA_OSS_define_byte(x88); +CODA_OSS_define_byte(x99); +CODA_OSS_define_byte(xAA); +CODA_OSS_define_byte(xBB); +CODA_OSS_define_byte(xCC); +CODA_OSS_define_byte(xDD); +CODA_OSS_define_byte(xEE); +CODA_OSS_define_byte(xFF); +#undef CODA_OSS_define_byte + +static constexpr std::byte two_bytes[]{x00, xFF}; +static constexpr std::byte four_bytes[]{x00, x11, xEE, xFF}; +static constexpr std::byte eight_bytes[]{x00, x11, x22, x33, xCC, xDD, xEE, xFF}; +static constexpr std::byte sixteen_bytes[]{x00, x11, x22, x33, x44, x55, x66, x77, x88, x99, xAA, xBB, xCC, xDD, xEE, xFF}; + +template +static void testByteSwapValues_(const std::string& testName, const void* pBytes) +{ + auto pUInt = static_cast(pBytes); + auto swap = sys::byteSwap(*pUInt); + TEST_ASSERT_NOT_EQ(*pUInt, swap); + + const void* pResult_ = &swap; + auto const pResultBytes = static_cast(pResult_); + auto const pValueBytes = static_cast(pBytes); + for (size_t i = 0, j = sizeof(TUInt); i < sizeof(TUInt) && j > 0; i++, j--) + { + TEST_ASSERT(pResultBytes[i] == pValueBytes[j-1]); + } + + swap = sys::byteSwap(swap); // swap back + TEST_ASSERT_EQ(*pUInt, swap); + + // swap as an "array" of one value + sys::byteSwap(pUInt, sizeof(TUInt), 1, &swap); + TEST_ASSERT_NOT_EQ(*pUInt, swap); + sys::byteSwap(&swap, sizeof(TUInt), 1); // swap back + TEST_ASSERT_EQ(*pUInt, swap); + + const auto resultBytes = sys::swapBytes(*pUInt); + TEST_ASSERT_EQ(resultBytes.size(), sizeof(TUInt)); + for (size_t i = 0, j = sizeof(TUInt); i < sizeof(TUInt) && j > 0; i++, j--) + { + TEST_ASSERT(resultBytes[i] == pValueBytes[j - 1]); + } +} +TEST_CASE(testByteSwapValues) +{ + testByteSwapValues_(testName, two_bytes); + testByteSwapValues_(testName, four_bytes); + testByteSwapValues_(testName, eight_bytes); +} + +TEST_CASE(testByteSwap12) +{ + // test a goofy element size + static constexpr std::byte twelve_bytes[]{ + x00, x11, x22, x33, x44, x55, + x99, xAA, xBB, xDD, xEE, xFF}; + const auto pValueBytes = sys::as_bytes(twelve_bytes); + + std::vector swappedValues(12); + auto pResultBytes = sys::make_span(swappedValues); + + auto elemSize = 12; + auto numElements = swappedValues.size() / elemSize; + sys::byteSwap(twelve_bytes, elemSize, numElements, pResultBytes.data()); + TEST_ASSERT(pResultBytes[0] == pValueBytes[11]); + TEST_ASSERT(pResultBytes[1] == pValueBytes[10]); + TEST_ASSERT(pResultBytes[2] == pValueBytes[9]); + TEST_ASSERT(pResultBytes[3] == pValueBytes[8]); + TEST_ASSERT(pResultBytes[4] == pValueBytes[7]); + TEST_ASSERT(pResultBytes[5] == pValueBytes[6]); + TEST_ASSERT(pResultBytes[6] == pValueBytes[5]); + TEST_ASSERT(pResultBytes[7] == pValueBytes[4]); + TEST_ASSERT(pResultBytes[8] == pValueBytes[3]); + TEST_ASSERT(pResultBytes[9] == pValueBytes[2]); + TEST_ASSERT(pResultBytes[10] == pValueBytes[1]); + TEST_ASSERT(pResultBytes[11] == pValueBytes[0]); + + // swap as a SINGLE 12-byte value + const auto result = sys::details::swapBytes<12>(pValueBytes, pResultBytes); + TEST_ASSERT(result[0] == pValueBytes[11]); + TEST_ASSERT(result[1] == pValueBytes[10]); + TEST_ASSERT(result[2] == pValueBytes[9]); + TEST_ASSERT(result[3] == pValueBytes[8]); + TEST_ASSERT(result[4] == pValueBytes[7]); + TEST_ASSERT(result[5] == pValueBytes[6]); + TEST_ASSERT(result[6] == pValueBytes[5]); + TEST_ASSERT(result[7] == pValueBytes[4]); + TEST_ASSERT(result[8] == pValueBytes[3]); + TEST_ASSERT(result[9] == pValueBytes[2]); + TEST_ASSERT(result[10] == pValueBytes[1]); + TEST_ASSERT(result[11] == pValueBytes[0]); + + + elemSize = 6; // note that an ODD size doesn't work correctly + numElements = swappedValues.size() / elemSize; + sys::byteSwap(twelve_bytes, elemSize, numElements, swappedValues.data()); + TEST_ASSERT(pResultBytes[0] == pValueBytes[5]); + TEST_ASSERT(pResultBytes[1] == pValueBytes[4]); + TEST_ASSERT(pResultBytes[2] == pValueBytes[3]); + TEST_ASSERT(pResultBytes[3] == pValueBytes[2]); + TEST_ASSERT(pResultBytes[4] == pValueBytes[1]); + TEST_ASSERT(pResultBytes[5] == pValueBytes[0]); + + TEST_ASSERT(pResultBytes[6] == pValueBytes[11]); + TEST_ASSERT(pResultBytes[7] == pValueBytes[10]); + TEST_ASSERT(pResultBytes[8] == pValueBytes[9]); + TEST_ASSERT(pResultBytes[9] == pValueBytes[8]); + TEST_ASSERT(pResultBytes[10] == pValueBytes[7]); + TEST_ASSERT(pResultBytes[11] == pValueBytes[6]); + + sys::byteSwap(swappedValues.data(), elemSize, numElements); // swap back + for (size_t i = 0; i < swappedValues.size(); i++) + { + TEST_ASSERT(pResultBytes[i] == pValueBytes[i]); + } +} + +template +static inline void six_byteSwap(const void* in, T& out) +{ + auto const inBytes = sys::make_span(in, sizeof(T)); + out = sys::swapBytes(inBytes); +} +TEST_CASE(testSixByteSwap) +{ + const int i = 123; + int i_swapped; + six_byteSwap(&i, i_swapped); + TEST_ASSERT_NOT_EQ(i, i_swapped); + + int result; + six_byteSwap(&i_swapped, result); + TEST_ASSERT_EQ(i, result); +} TEST_MAIN( TEST_CHECK(testEndianness); TEST_CHECK(testByteSwap); + TEST_CHECK(testByteSwapValues); + TEST_CHECK(testByteSwap12); + TEST_CHECK(testSixByteSwap); ) diff --git a/externals/coda-oss/modules/c++/sys/unittests/test_conditionvar.cpp b/externals/coda-oss/modules/c++/sys/unittests/test_conditionvar.cpp index 75ddcb4508..ae5e36cfc9 100644 --- a/externals/coda-oss/modules/c++/sys/unittests/test_conditionvar.cpp +++ b/externals/coda-oss/modules/c++/sys/unittests/test_conditionvar.cpp @@ -30,28 +30,42 @@ typedef mt::CriticalSection CriticalSection; TEST_CASE(testDefaultConstructor) { sys::ConditionVar cond; + TEST_SUCCESS; cond.acquireLock(); + TEST_SUCCESS; + cond.dropLock(); + TEST_SUCCESS; } TEST_CASE(testParameterizedConstructor) { sys::Mutex mutex; - sys::ConditionVar cond(&mutex, false); + TEST_SUCCESS; + + sys::ConditionVar cond(mutex); + TEST_SUCCESS; cond.acquireLock(); + TEST_SUCCESS; + cond.dropLock(); + TEST_SUCCESS; } TEST_CASE(testMultipleTimeouts) { sys::Mutex mutex; - sys::ConditionVar cond(&mutex, false); + TEST_SUCCESS; + + sys::ConditionVar cond(mutex); + TEST_SUCCESS; for (size_t ii = 0; ii < 5; ++ii) { - CriticalSection scopedLock(&mutex); + CriticalSection scopedLock(mutex); + TEST_SUCCESS; try { cond.wait(0.001); @@ -61,8 +75,11 @@ TEST_CASE(testMultipleTimeouts) } } { - CriticalSection scopedLock(&mutex); + CriticalSection scopedLock(mutex); + TEST_SUCCESS; + cond.broadcast(); + TEST_SUCCESS; } } diff --git a/externals/coda-oss/modules/c++/sys/unittests/test_os.cpp b/externals/coda-oss/modules/c++/sys/unittests/test_os.cpp index 7579d6be7b..af07859a3f 100644 --- a/externals/coda-oss/modules/c++/sys/unittests/test_os.cpp +++ b/externals/coda-oss/modules/c++/sys/unittests/test_os.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include "TestCase.h" void createFile(const std::string& pathname) @@ -162,7 +163,7 @@ TEST_CASE(testSplitEnv) std::vector paths; bool result = os.splitEnv(pathEnvVar, paths); TEST_ASSERT_TRUE(result); - TEST_ASSERT_GREATER(paths.size(), static_cast(0)); + TEST_ASSERT_FALSE(paths.empty()); for (const auto& path : paths) { TEST_ASSERT_TRUE(std::filesystem::exists(path)); @@ -183,7 +184,7 @@ TEST_CASE(testSplitEnv) paths.clear(); result = os.splitEnv(pathEnvVar, paths, std::filesystem::file_type::directory); TEST_ASSERT_TRUE(result); - TEST_ASSERT_GREATER(paths.size(), static_cast(0)); + TEST_ASSERT_FALSE(paths.empty()); paths.clear(); result = os.splitEnv(pathEnvVar, paths, std::filesystem::file_type::regular); TEST_ASSERT_FALSE(result); @@ -293,7 +294,7 @@ TEST_CASE(testBacktrace) size_t expected = 0; - size_t expected_other = 0; + //size_t expected_other = 0; auto version_sys_backtrace_ = version::sys::backtrace; // "Conditional expression is constant" if (version_sys_backtrace_ >= 20210216L) { @@ -301,19 +302,19 @@ TEST_CASE(testBacktrace) #if _WIN32 constexpr auto frames_size_RELEASE = 2; - constexpr auto frames_size_RELEASE_other = frames_size_RELEASE; + //constexpr auto frames_size_RELEASE_other = frames_size_RELEASE; constexpr auto frames_size_DEBUG = 14; - constexpr auto frames_size_DEBUG_other = frames_size_DEBUG + 1; // 15 + //constexpr auto frames_size_DEBUG_other = frames_size_DEBUG + 1; // 15 #elif defined(__GNUC__) constexpr auto frames_size_RELEASE = 6; - constexpr auto frames_size_RELEASE_other = frames_size_RELEASE + 1; // 7 + //constexpr auto frames_size_RELEASE_other = frames_size_RELEASE + 1; // 7 constexpr auto frames_size_DEBUG = frames_size_RELEASE + 4; // 10 - constexpr auto frames_size_DEBUG_other = frames_size_DEBUG; + //constexpr auto frames_size_DEBUG_other = frames_size_DEBUG; #else #error "CODA_OSS_sys_Backtrace inconsistency." #endif expected = sys::debug_build() ? frames_size_DEBUG : frames_size_RELEASE; - expected_other = sys::debug_build() ? frames_size_DEBUG_other : frames_size_RELEASE_other; + //expected_other = sys::debug_build() ? frames_size_DEBUG_other : frames_size_RELEASE_other; } else { @@ -389,17 +390,127 @@ TEST_CASE(testFsFileSize) const sys::OS os; { const std::filesystem::path argv0(os.getSpecialEnv("ARGV0")); - const auto size = file_size(argv0); - TEST_ASSERT_GREATER(size, static_cast(0)); + const int64_t size = static_cast(file_size(argv0)); + TEST_ASSERT_GREATER(size, 0); } { // We always have sys::filesystem, even if it's not used. const sys::filesystem::path argv0(os.getSpecialEnv("ARGV0")); - const auto size = file_size(argv0); - TEST_ASSERT_GREATER(size, static_cast(0)); + const int64_t size = static_cast(file_size(argv0)); + TEST_ASSERT_GREATER(size, 0); } } +static sys::File makeFile_() +{ +#ifdef _WIN32 + static const std::filesystem::path name("explorer.exe"); + return sys::make_File("%SystemRoot%" / name); + +#else + static const std::filesystem::path dot_cshrc(".cshrc"); + try + { + return sys::make_File("$HOME" / dot_cshrc); + } + catch (const sys::SystemException&) { } // no .cshrc; try .bashrc + + static const std::filesystem::path dot_bashrc(".bashrc"); + return sys::make_File("$HOME" / dot_bashrc); +#endif +} +TEST_CASE(test_makeFile) +{ + auto file = makeFile_(); + TEST_ASSERT_TRUE(file.isOpen()); +} + +static FILE* sys_fopen() +{ + static const std::string mode("r"); + +#ifdef _WIN32 + static const std::filesystem::path name("explorer.exe"); + return sys::fopen("%SystemRoot%" / name, mode); + +#else + static const std::filesystem::path dot_cshrc(".cshrc"); + auto retval = sys::fopen("$HOME" / dot_cshrc, mode); + if (retval != nullptr) + { + return retval; + } + // no .cshrc; try .bashrc + static const std::filesystem::path dot_bashrc(".bashrc"); + return sys::fopen("$HOME" / dot_bashrc, mode); +#endif +} +TEST_CASE(test_sys_fopen) +{ + auto fp = sys_fopen(); + TEST_ASSERT_NOT_NULL(fp); + fclose(fp); +} + +TEST_CASE(test_sys_fopen_failure) +{ + static const std::string mode("r"); + static const std::filesystem::path name("does not exist . txt"); + const auto fp = sys::fopen("$ENV_VAR_NOT_SET" / name, mode); + TEST_ASSERT_NULL(fp); +} + +static int sys_open() +{ + constexpr int flags = 0; + +#ifdef _WIN32 + static const std::filesystem::path name("explorer.exe"); + return sys::open("%SystemRoot%" / name, flags); + +#else + static const std::filesystem::path dot_cshrc(".cshrc"); + auto retval = sys::open("$HOME" / dot_cshrc, flags); + if (retval > -1) + { + return retval; + } + // no .cshrc; try .bashrc + static const std::filesystem::path dot_bashrc(".bashrc"); + return sys::open("$HOME" / dot_bashrc, flags); +#endif +} +TEST_CASE(test_sys_open) +{ + auto fd = sys_open(); + TEST_ASSERT(fd > -1); + sys::close(fd); +} + +static std::ifstream make_ifstream_() +{ +#ifdef _WIN32 + static const std::filesystem::path name("explorer.exe"); + return sys::make_ifstream("%SystemRoot%" / name); + +#else + static const std::filesystem::path dot_cshrc(".cshrc"); + auto retval = sys::make_ifstream("$HOME" / dot_cshrc); + if (retval) + { + return retval; + } + // no .cshrc; try .bashrc + static const std::filesystem::path dot_bashrc(".bashrc"); + return sys::make_ifstream("$HOME" / dot_bashrc); +#endif +} +TEST_CASE(test_make_ifstream) +{ + const auto ifs = make_ifstream_(); + TEST_ASSERT_TRUE(ifs.is_open()); +} + TEST_MAIN( //sys::AbstractOS::setArgvPathname(argv[0]); TEST_CHECK(testRecursiveRemove); @@ -411,4 +522,9 @@ TEST_MAIN( TEST_CHECK(testBacktrace); TEST_CHECK(testSpecialEnvVars); TEST_CHECK(testFsFileSize); -) + TEST_CHECK(test_makeFile); + TEST_CHECK(test_sys_fopen); + TEST_CHECK(test_sys_fopen_failure); + TEST_CHECK(test_sys_open); + TEST_CHECK(test_make_ifstream); + ) diff --git a/externals/coda-oss/modules/c++/sys/unittests/test_path.cpp b/externals/coda-oss/modules/c++/sys/unittests/test_path.cpp index 42e79af8e3..ab838d0275 100644 --- a/externals/coda-oss/modules/c++/sys/unittests/test_path.cpp +++ b/externals/coda-oss/modules/c++/sys/unittests/test_path.cpp @@ -53,7 +53,7 @@ TEST_CASE(testPathMerge) std::vector paths; const auto splitResult = os.splitEnv("PATH", paths); TEST_ASSERT_TRUE(splitResult); - TEST_ASSERT_GREATER(paths.size(), static_cast(0)); + TEST_ASSERT_FALSE(paths.empty()); auto path = find_directory(paths); TEST_ASSERT_TRUE(coda_oss::filesystem::is_directory(path)); @@ -65,7 +65,7 @@ TEST_CASE(testPathMerge) bool isAbsolute; auto components = sys::Path::separate(path, isAbsolute); - TEST_ASSERT_GREATER(components.size(), static_cast(0)); + TEST_ASSERT_FALSE(components.empty()); auto result = sys::Path::merge(components, isAbsolute); TEST_ASSERT_EQ(result, path); TEST_ASSERT_TRUE(coda_oss::filesystem::is_directory(result)); diff --git a/externals/coda-oss/modules/c++/tiff/include/tiff/GenericType.h b/externals/coda-oss/modules/c++/tiff/include/tiff/GenericType.h index 581c06905d..9d5a994ea8 100644 --- a/externals/coda-oss/modules/c++/tiff/include/tiff/GenericType.h +++ b/externals/coda-oss/modules/c++/tiff/include/tiff/GenericType.h @@ -127,7 +127,7 @@ template class Gene * @param output * the output stream to write the member to *****************************************************************/ - virtual void serialize(io::OutputStream& output) + virtual void serialize(io::OutputStream& output) override { output.write((char *)&mData, sizeof(Data_T)); } @@ -139,22 +139,22 @@ template class Gene * @param input * the input stream to read the member from *****************************************************************/ - virtual void deserialize(io::InputStream& input) + virtual void deserialize(io::InputStream& input) override { input.read((char *)&mData, sizeof(Data_T)); } - virtual unsigned char *data() const + virtual unsigned char *data() const override { return (unsigned char *)&mData; } - virtual unsigned short size() const + virtual unsigned short size() const override { return sizeof(mData); } - virtual std::string toString() const + virtual std::string toString() const override { return Strategy_T::toString(mData); } diff --git a/externals/coda-oss/modules/c++/tiff/include/tiff/Header.h b/externals/coda-oss/modules/c++/tiff/include/tiff/Header.h index ee09bc445f..ed9da4f1e9 100644 --- a/externals/coda-oss/modules/c++/tiff/include/tiff/Header.h +++ b/externals/coda-oss/modules/c++/tiff/include/tiff/Header.h @@ -96,7 +96,7 @@ class Header : public io::Serializable * @param output * the stream to write the header to *****************************************************************/ - void serialize(io::OutputStream& output); + void serialize(io::OutputStream& output) override; /** ***************************************************************** @@ -105,7 +105,7 @@ class Header : public io::Serializable * @param input * the stream to read the header from *****************************************************************/ - void deserialize(io::InputStream& input); + void deserialize(io::InputStream& input) override; /** ***************************************************************** diff --git a/externals/coda-oss/modules/c++/tiff/include/tiff/IFD.h b/externals/coda-oss/modules/c++/tiff/include/tiff/IFD.h index bfb8b65556..706309e8f4 100644 --- a/externals/coda-oss/modules/c++/tiff/include/tiff/IFD.h +++ b/externals/coda-oss/modules/c++/tiff/include/tiff/IFD.h @@ -195,7 +195,7 @@ class IFD : public io::Serializable * @param output * the output stream to write the IFD to *****************************************************************/ - void serialize(io::OutputStream& output); + void serialize(io::OutputStream& output) override; /** ***************************************************************** @@ -204,7 +204,7 @@ class IFD : public io::Serializable * @param input * the input stream to read the IFD from *****************************************************************/ - void deserialize(io::InputStream& input); + void deserialize(io::InputStream& input) override; void deserialize(io::InputStream& input, const bool reverseBytes); /** diff --git a/externals/coda-oss/modules/c++/tiff/include/tiff/IFDEntry.h b/externals/coda-oss/modules/c++/tiff/include/tiff/IFDEntry.h index 0ca8ccb3f7..75552676f3 100644 --- a/externals/coda-oss/modules/c++/tiff/include/tiff/IFDEntry.h +++ b/externals/coda-oss/modules/c++/tiff/include/tiff/IFDEntry.h @@ -122,7 +122,7 @@ class IFDEntry : public io::Serializable * @param output * the output stream to write the entry to *****************************************************************/ - void serialize(io::OutputStream& output); + void serialize(io::OutputStream& output) override; /** ***************************************************************** @@ -131,7 +131,7 @@ class IFDEntry : public io::Serializable * @param input * the input stream to read the entry from *****************************************************************/ - void deserialize(io::InputStream& input); + void deserialize(io::InputStream& input) override; void deserialize(io::InputStream& input, const bool reverseBytes); /** @@ -268,12 +268,6 @@ class IFDEntry : public io::Serializable ++mCount; value.release(); } - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - void addValue(mem::auto_ptr value) - { - addValue(std::unique_ptr(value.release())); - } - #endif /** ***************************************************************** * Adds a double value to the IFD entry. diff --git a/externals/coda-oss/modules/c++/tiff/source/IFDEntry.cpp b/externals/coda-oss/modules/c++/tiff/source/IFDEntry.cpp index 07697da8c2..bb05316af7 100644 --- a/externals/coda-oss/modules/c++/tiff/source/IFDEntry.cpp +++ b/externals/coda-oss/modules/c++/tiff/source/IFDEntry.cpp @@ -127,7 +127,7 @@ void tiff::IFDEntry::deserialize(io::InputStream& input, const bool reverseBytes numElements = mCount * 2; } if (elementSize > 1) - sys::byteSwap(buffer, static_cast(elementSize), numElements); + sys::byteSwap(buffer, elementSize, numElements); } parseValues((const unsigned char *)buffer); diff --git a/externals/coda-oss/modules/c++/tiff/source/ImageReader.cpp b/externals/coda-oss/modules/c++/tiff/source/ImageReader.cpp index 2f7a95ad67..5fd42c6adc 100644 --- a/externals/coda-oss/modules/c++/tiff/source/ImageReader.cpp +++ b/externals/coda-oss/modules/c++/tiff/source/ImageReader.cpp @@ -76,7 +76,7 @@ void tiff::ImageReader::getData(unsigned char *buffer, throw except::Exception(Ctxt("Unsupported TIFF file format")); if (mReverseBytes) - sys::byteSwap((sys::byte*)buffer, mElementSize, numElementsToRead); + sys::byteSwap(buffer, mElementSize, numElementsToRead); } void tiff::ImageReader::getStripData(unsigned char *buffer, diff --git a/externals/coda-oss/modules/c++/tiff/source/ImageWriter.cpp b/externals/coda-oss/modules/c++/tiff/source/ImageWriter.cpp index f4814ec5e5..ed89e6da93 100644 --- a/externals/coda-oss/modules/c++/tiff/source/ImageWriter.cpp +++ b/externals/coda-oss/modules/c++/tiff/source/ImageWriter.cpp @@ -266,7 +266,7 @@ void tiff::ImageWriter::initTiles() void tiff::ImageWriter::initStrips() { - sys::Uint32_T bytesPerLine = mIFD.getImageWidth() * mIFD.getElementSize(); + const sys::Uint32_T bytesPerLine = mIFD.getImageWidth() * mIFD.getElementSize(); sys::Uint32_T stripByteCount = 0; sys::Uint32_T rowsPerStrip = 1; @@ -281,8 +281,8 @@ void tiff::ImageWriter::initStrips() mIFD.addEntry("RowsPerStrip", rowsPerStrip); - sys::Uint32_T length = mIFD.getImageLength(); - sys::Uint32_T stripsPerImage = + const sys::Uint32_T length = mIFD.getImageLength(); + const sys::Uint32_T stripsPerImage = (sys::Uint32_T)floor(static_cast(length + rowsPerStrip - 1) / static_cast(rowsPerStrip)); @@ -314,23 +314,22 @@ void tiff::ImageWriter::initStrips() void tiff::ImageWriter::putTileData(const unsigned char *buffer, sys::Uint32_T numElementsToWrite) { - sys::Uint32_T imageElemWidth = mIFD.getImageWidth(); - sys::Uint32_T imageByteWidth = imageElemWidth * mElementSize; + const sys::Uint32_T imageElemWidth = mIFD.getImageWidth(); + const sys::Uint32_T imageByteWidth = imageElemWidth * mElementSize; - sys::Uint32_T tileElemWidth = *(tiff::GenericType *)(*mTileWidth)[0]; - sys::Uint32_T tileByteWidth = tileElemWidth * mElementSize; + const sys::Uint32_T tileElemWidth = *(tiff::GenericType *)(*mTileWidth)[0]; + const sys::Uint32_T tileByteWidth = tileElemWidth * mElementSize; const auto tileElemLength = *(tiff::GenericType *)(*mTileLength)[0]; // Compute the number of tiles wide the image is. - sys::Uint32_T tilesAcross = (imageElemWidth + tileElemWidth - 1) - / tileElemWidth; + const sys::Uint32_T tilesAcross = (imageElemWidth + tileElemWidth - 1) / tileElemWidth; // Determine how many bytes were used to pad the right edge. - sys::Uint32_T widthPadding = (tileByteWidth * tilesAcross) - imageByteWidth; + const sys::Uint32_T widthPadding = (tileByteWidth * tilesAcross) - imageByteWidth; sys::Uint32_T globalReadOffset = 0; sys::Uint32_T tempBytePosition = mBytePosition; - sys::Uint32_T numBytesToWrite = numElementsToWrite * mElementSize; + const sys::Uint32_T numBytesToWrite = numElementsToWrite * mElementSize; sys::Uint32_T currentNumBytesRead = 0; sys::Uint32_T remainingElementsToWrite = numElementsToWrite; while (remainingElementsToWrite) @@ -344,21 +343,20 @@ void tiff::ImageWriter::putTileData(const unsigned char *buffer, } // Compute the row and tile row. - sys::Uint32_T row = tempBytePosition / imageByteWidth; - sys::Uint32_T tileRow = row / tileElemLength; + const sys::Uint32_T row = tempBytePosition / imageByteWidth; + const sys::Uint32_T tileRow = row / tileElemLength; // Compute the column and tile column. - sys::Uint32_T column = tempBytePosition - (row * imageByteWidth); - sys::Uint32_T tileColumn = column / tileByteWidth; + const sys::Uint32_T column = tempBytePosition - (row * imageByteWidth); + const sys::Uint32_T tileColumn = column / tileByteWidth; // Compute the 1D tile index from the tile row and tile column. - sys::Uint32_T tileIndex = (tileRow * tilesAcross) + tileColumn; + const sys::Uint32_T tileIndex = (tileRow * tilesAcross) + tileColumn; - sys::Uint32_T tileByteCount = *(tiff::GenericType *)(*mTileByteCounts)[tileIndex]; + const sys::Uint32_T tileByteCount = *(tiff::GenericType *)(*mTileByteCounts)[tileIndex]; - sys::Uint32_T rowInTile = row % tileElemLength; - sys::Uint32_T paddedBytes = ((tileColumn + 1) / tilesAcross) - * widthPadding; + const sys::Uint32_T rowInTile = row % tileElemLength; + sys::Uint32_T paddedBytes = ((tileColumn + 1) / tilesAcross) * widthPadding; sys::Uint32_T remainingBytesInTile = tileByteCount - (tileElemLength * paddedBytes) - (rowInTile * (tileByteWidth - paddedBytes) @@ -425,11 +423,11 @@ void tiff::ImageWriter::putTileData(const unsigned char *buffer, sys::Uint32_T imageElemLength = mIFD.getImageLength(); sys::Uint32_T tilesDown = (imageElemLength + tileElemLength - 1) / tileElemLength; - sys::Uint32_T startIndex = (tilesDown - 1) * tilesAcross; - sys::Uint32_T paddingStartLine = imageElemLength % tileElemLength; + const sys::Uint32_T startIndex = (tilesDown - 1) * tilesAcross; + const sys::Uint32_T paddingStartLine = imageElemLength % tileElemLength; if (paddingStartLine) { - sys::Uint32_T paddedLines = tileElemLength - paddingStartLine; + const sys::Uint32_T paddedLines = tileElemLength - paddingStartLine; sys::byte *padBuffer = new sys::byte[paddedLines * tileByteWidth]; memset(padBuffer, 0, paddedLines * tileByteWidth); diff --git a/externals/coda-oss/modules/c++/tiff/source/TiffFileWriter.cpp b/externals/coda-oss/modules/c++/tiff/source/TiffFileWriter.cpp index 7fe5428ac9..6c10aa2dee 100644 --- a/externals/coda-oss/modules/c++/tiff/source/TiffFileWriter.cpp +++ b/externals/coda-oss/modules/c++/tiff/source/TiffFileWriter.cpp @@ -95,7 +95,7 @@ tiff::ImageWriter *tiff::FileWriter::addImage() if (!mImages.empty()) mIFDOffset = mImages.back()->getNextIFDOffset(); - auto image = coda_oss::make_unique(&mOutput, mIFDOffset); + auto image = std::make_unique(&mOutput, mIFDOffset); mImages.push_back(image.get()); tiff::ImageWriter* const writer = image.release(); diff --git a/externals/coda-oss/modules/c++/tiff/source/Utils.cpp b/externals/coda-oss/modules/c++/tiff/source/Utils.cpp index 6e3a5af9cc..9467a08d48 100644 --- a/externals/coda-oss/modules/c++/tiff/source/Utils.cpp +++ b/externals/coda-oss/modules/c++/tiff/source/Utils.cpp @@ -119,7 +119,7 @@ tiff::IFD* tiff::Utils::createGeoTiffIFD(tiff::IFD* ifd) str::toType(geoVals[idx++]->toString()); const std::string valueStr(geoVals[idx++]->toString()); - unsigned short entryType; + unsigned short entryType = tiff::Const::Type::NOTYPE; switch (tiffTagLoc) { case 34736: // GeoDoubleParamsTag diff --git a/externals/coda-oss/modules/c++/types/include/types/RangeList.h b/externals/coda-oss/modules/c++/types/include/types/RangeList.h index 1622124ae3..90c60847d0 100644 --- a/externals/coda-oss/modules/c++/types/include/types/RangeList.h +++ b/externals/coda-oss/modules/c++/types/include/types/RangeList.h @@ -180,7 +180,7 @@ class CODA_OSS_API RangeList /*! * \returns the number ranges in the list */ - size_t getNumRanges() const + size_t getNumRanges() const noexcept { return mRangeList.size(); } @@ -189,12 +189,12 @@ class CODA_OSS_API RangeList * \returns the total number elements as the sum(R.mNumElements) for * all ranges R in the list */ - size_t getTotalNumElements() const; + size_t getTotalNumElements() const noexcept; /*! * \returns true if getTotalNumElements() == 0 */ - bool empty() const + bool empty() const noexcept { return getTotalNumElements() == 0; } @@ -207,7 +207,7 @@ class CODA_OSS_API RangeList * * \return the vector of ranges composing the range list */ - const std::vector& getRanges() const + const std::vector& getRanges() const noexcept { return mRangeList; } diff --git a/externals/coda-oss/modules/c++/types/include/types/RgAz.h b/externals/coda-oss/modules/c++/types/include/types/RgAz.h index 749e54cdfb..eed26b92c7 100644 --- a/externals/coda-oss/modules/c++/types/include/types/RgAz.h +++ b/externals/coda-oss/modules/c++/types/include/types/RgAz.h @@ -57,7 +57,8 @@ template class RgAz T az{}; RgAz() = default; - RgAz(T r, T c) noexcept : rg(r), az(c) { } + RgAz(const T& r, const T& c) noexcept : rg(r), az(c) { } + RgAz(T&& r, T&& c) noexcept : rg(std::move(r)), az(std::move(c)) { } template RgAz(const RgAz& p) { diff --git a/externals/coda-oss/modules/c++/types/source/RangeList.cpp b/externals/coda-oss/modules/c++/types/source/RangeList.cpp index 5b258cf2b2..57d741dce9 100644 --- a/externals/coda-oss/modules/c++/types/source/RangeList.cpp +++ b/externals/coda-oss/modules/c++/types/source/RangeList.cpp @@ -73,7 +73,7 @@ RangeList::RangeList(const std::vector& ranges) : } } -size_t RangeList::getTotalNumElements() const +size_t RangeList::getTotalNumElements() const noexcept { size_t count = 0; for (const auto& range : mRangeList) diff --git a/externals/coda-oss/modules/c++/unique/source/UUID.cpp b/externals/coda-oss/modules/c++/unique/source/UUID.cpp index d0d409bd8c..682dac8433 100644 --- a/externals/coda-oss/modules/c++/unique/source/UUID.cpp +++ b/externals/coda-oss/modules/c++/unique/source/UUID.cpp @@ -22,7 +22,7 @@ #include "unique/UUID.hpp" -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 #include #else #include @@ -30,7 +30,7 @@ std::string unique::generateUUID() { -#if defined(WIN32) || defined(_WIN32) +#ifdef _WIN32 GUID uuid; unsigned char *cResult = NULL; diff --git a/externals/coda-oss/modules/c++/xml.lite/CMakeLists.txt b/externals/coda-oss/modules/c++/xml.lite/CMakeLists.txt index 16e64e7184..ad13e57988 100644 --- a/externals/coda-oss/modules/c++/xml.lite/CMakeLists.txt +++ b/externals/coda-oss/modules/c++/xml.lite/CMakeLists.txt @@ -1,6 +1,11 @@ set(MODULE_NAME xml.lite) if(ENABLE_XML) + if (UNIX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-zero-as-null-pointer-constant") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-suggest-override") + endif() + if(CONAN_PACKAGE_NAME) # import targets from xerces-c conan package find_package(coda-oss_xerces-c REQUIRED) diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Attributes.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Attributes.h index 2ac65cb0ae..b8823164d4 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Attributes.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Attributes.h @@ -31,6 +31,7 @@ #include "except/Exception.h" #include "xml/lite/QName.h" #include "str/Convert.h" +#include "gsl/gsl.h" /*! * \file Attributes.h @@ -82,6 +83,10 @@ struct AttributeNode final */ void setQName(const std::string& qname); void setQName(const xml::lite::QName& qname); + explicit AttributeNode(const xml::lite::QName& qname) + { + setQName(qname); + } /*! * Set the local (unqualified portion) of the name @@ -111,6 +116,10 @@ struct AttributeNode final * \param value The attribute value */ void setValue(const std::string& value); + AttributeNode(const xml::lite::QName& qname, const std::string& value) : AttributeNode(qname) + { + setValue(value); + } /*! * Get the URI associated with the QName. Blank string @@ -208,6 +217,10 @@ struct Attributes final { return static_cast(size()); } + bool empty() const + { + return mAttributes.empty(); + } /*! * Look up an attribute's local name by index. @@ -310,6 +323,22 @@ struct Attributes final return getNode(i); } + std::string& operator[](const xml::lite::QName& name) + { + int idx = getIndex(name); + if (idx < 0) + { + mAttributes.emplace_back(name); + idx = (int)(mAttributes.size() - 1); + } + return mAttributes[(size_t)idx].getValue(); + } + std::string operator[](const xml::lite::QName& name) const + { + const auto idx = gsl::narrow(getIndex(name)); + return mAttributes[idx].getValue(); + } + std::string& operator[](const std::string& s) { int idx = getIndex(s); @@ -322,6 +351,11 @@ struct Attributes final } return mAttributes[(size_t)idx].getValue(); } + std::string operator[](const std::string& s) const + { + const auto idx = gsl::narrow(getIndex(s)); + return mAttributes[idx].getValue(); + } /*! * Get an attribute note based on the index as a non-const ref @@ -366,6 +400,16 @@ struct Attributes final { mAttributes.clear(); } + + auto begin() const + { + return mAttributes.begin(); + } + auto end() const + { + return mAttributes.end(); + } + private: //! Underlying representation Attributes_T mAttributes; diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Document.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Document.h index 584e11e3b8..1d53fdbab2 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Document.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Document.h @@ -39,6 +39,7 @@ #include #include +#include #include "coda_oss/string.h" #include "coda_oss/memory.h" @@ -82,9 +83,9 @@ struct Document // SOAPDocument derives :-( #ifndef SWIG // SWIG doesn't like std::unique_ptr std::unique_ptr& clone(std::unique_ptr& doc) const { - doc = coda_oss::make_unique(); + doc = std::make_unique(); - auto cloneRoot = coda_oss::make_unique(); + auto cloneRoot = std::make_unique(); cloneRoot->clone(*mRootNode); doc->setRootElement(std::move(cloneRoot)); return doc; diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Element.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Element.h index b9efc192fd..911a50f864 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Element.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/Element.h @@ -28,6 +28,7 @@ #include #include // std::nothrow_t #include +#include #include #include @@ -53,6 +54,8 @@ namespace xml { namespace lite { +struct AttributeNode; + /*! * \class Element * \brief The class defining one element of an XML document @@ -75,8 +78,7 @@ struct Element // SOAPElement derives :-( { setCharacterData(characterData); } - Element(const xml::lite::QName& qname, const coda_oss::u8string& characterData) : - mName(qname.getName(), qname.getUri().value) + Element(const xml::lite::QName& qname, const coda_oss::u8string& characterData) : mName(qname) { setCharacterData(characterData); } @@ -109,6 +111,9 @@ struct Element // SOAPElement derives :-( Element(Element&&) = default; Element& operator=(Element&&) = default; + Element& operator=(std::unique_ptr&&); // setChild() + + /*! * Clone function performs deep copy * of element @@ -127,7 +132,7 @@ struct Element // SOAPElement derives :-( std::string& attribute(const std::string& s) { - return mAttributes[s]; + return getAttributes()[s]; } /*! @@ -221,11 +226,19 @@ struct Element // SOAPElement derives :-( * returns NULL if none */ Element* getElementByTagName(std::nothrow_t, const xml::lite::QName&, bool recurse = false) const; + Element* operator()(std::nothrow_t, const xml::lite::QName& name, bool recurse = false) const + { + return getElementByTagName(std::nothrow, name, recurse); + } Element* getElementByTagName(std::nothrow_t t, const std::string& uri, const std::string& localName, bool recurse = false) const { return getElementByTagName(t, QName(uri, localName), recurse); } Element& getElementByTagName(const xml::lite::QName&, bool recurse = false) const; + Element& operator()(const xml::lite::QName& name, bool recurse = false) const + { + return getElementByTagName(name, recurse); + } Element& getElementByTagName(const std::string& uri, const std::string& localName, bool recurse = false) const { return getElementByTagName(QName(uri, localName), recurse); @@ -306,12 +319,20 @@ struct Element // SOAPElement derives :-( */ std::string getCharacterData() const; coda_oss::u8string& getCharacterData(coda_oss::u8string& result) const; + //explicit operator coda_oss::u8string() const + //{ + // coda_oss::u8string result; + // std::ignore = getCharacterData(result); // result will be copy-elided + // return result; + //} /*! * Sets the character data for this element. * \param characters The data to add to this element */ void setCharacterData(const std::string&); + Element& operator=(const std::string&); // setCharacterData() + Element& operator=(const char*); // setCharacterData() void setCharacterData(coda_oss::u8string s) { // See Item #41 in "Effective Modern C++" by Scott Meyers. @@ -350,6 +371,11 @@ struct Element // SOAPElement derives :-( { mName = qname; } + Element& operator=(const QName& qname) + { + setQName(qname); + return *this; + } /*! * Returns the QName of this element. @@ -413,9 +439,6 @@ struct Element // SOAPElement derives :-( #ifndef SWIG // SWIG doesn't like std::unique_ptr virtual Element& addChild(std::unique_ptr&& node); #endif // SWIG - #if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17 - virtual Element& addChild(mem::auto_ptr node); - #endif /*! * Returns all of the children of this element @@ -573,6 +596,31 @@ inline Element* addNewOptionalElement(const xml::lite::QName& name, const coda_o #endif // SWIG + +Element& setChild(Element&, std::unique_ptr&&); // destroyChildren() + addChild() + +void operator+=(Element&, std::unique_ptr&&); // addChild() + +Element& addChild(Element&, const std::string& qname); +void operator+=(Element&, const std::string& qname); // addChild() +Element& addChild(Element&, const xml::lite::QName&); // there is also a QName in the xerces namespace +void operator+=(Element&, const xml::lite::QName&); // addChild() +Element& addChild(Element&, const std::string& qname, const coda_oss::u8string& characterData); +Element& addChild(Element&, const std::string&, const std::string&) = delete; // NO, order matters! +Element& addChild(Element&, const xml::lite::QName&, const coda_oss::u8string& characterData); +Element& addChild(Element&, const xml::lite::QName&, const std::string& characterData); +Element& addChild(Element&, const std::string& qname, const xml::lite::Uri&); +Element& addChild(Element&, const std::string& qname, const xml::lite::Uri&, const coda_oss::u8string& characterData); + +coda_oss::u8string getCharacterData(const Element&); + +xml::lite::AttributeNode& addAttribute(Element&, const xml::lite::AttributeNode&); +void operator+=(Element&, const xml::lite::AttributeNode&); // addAttribute() +xml::lite::AttributeNode& addAttribute(Element&, const std::string& qname); +xml::lite::AttributeNode& addAttribute(Element&, const xml::lite::QName&); +xml::lite::AttributeNode& addAttribute(Element&, const xml::lite::QName&, const std::string& value); +xml::lite::AttributeNode& addAttribute(Element&, const std::string&, const std::string&) = delete; // NO, order matters! + } } diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/MinidomHandler.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/MinidomHandler.h index dcf5debb26..9ff2089bb9 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/MinidomHandler.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/MinidomHandler.h @@ -46,7 +46,7 @@ */ #include -#include +#include #include "coda_oss/string.h" #include "coda_oss/memory.h" @@ -74,7 +74,7 @@ struct MinidomHandler final : public ContentHandler //! Constructor. Uses default document MinidomHandler() { - setDocument(coda_oss::make_unique()); + setDocument(std::make_unique()); } //! Destructor diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/QName.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/QName.h index f3902ce222..78fc2fb616 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/QName.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/QName.h @@ -43,6 +43,7 @@ #include #include "sys/OS.h" +#include "str/Manip.h" namespace xml { @@ -57,18 +58,18 @@ namespace lite * many of us were happier that way). Namespaces add complexity, but * the also allow for name resolution in a non-conflicting manner. * Unfortunately, the XML SAX readers, the event-driven parsers people - * tend to use, at least as underlying structures have become more - * complex. At any rate, a qualified name consists of - * 1) the local part (that is the portion people used to use alone, - * without any namespace, and - * 2) the prefix for the namespace, which presumably maps - * to a namespace URI + * tend to use, at least as underlying structures have become more + * complex. At any rate, a qualified name consists of + * 1) the local part (that is the portion people used to use alone, + * without any namespace, and + * 2) the prefix for the namespace, which presumably maps + * to a namespace URI */ -struct Uri final // help prevent mixups with std::string +struct Uri final // help prevent mixups with std::string { Uri(); - explicit Uri(const std::string& v); // validate=false + explicit Uri(const std::string& v); // validate=false Uri(const std::string& v, bool validate); std::string value; bool empty() const @@ -78,11 +79,13 @@ struct Uri final // help prevent mixups with std::string }; inline bool operator==(const Uri& lhs, const Uri& rhs) { - return lhs.value == rhs.value; + // URIs are "supposed to be" case-insenstive + return str::eq(lhs.value, rhs.value); } inline bool operator!=(const Uri& lhs, const Uri& rhs) { - return !(lhs == rhs); + // URIs are "supposed to be" case-insenstive + return str::ne(lhs.value, rhs.value); } inline std::ostream& operator<<(std::ostream& os, const Uri& uri) { @@ -103,27 +106,27 @@ class QName final QName() = default; /*! - * Constructor taking the namespace prefix and the local name - * \param uri The uri of the object - * \param qname The qname of the object + * Constructor taking the namespace prefix and the local name + * \param uri The uri of the object + * \param qname The qname of the object */ QName(const xml::lite::Uri& uri, const std::string& qname) { setQName(qname); setAssociatedUri(uri); } - QName(const std::string& qname, const xml::lite::Uri& uri) : QName(uri, qname) { } - QName(const std::string& uri, const std::string& qname) : QName(Uri(uri), qname) { } + QName(const std::string& qname, const xml::lite::Uri& uri) : QName(uri, qname) { } + QName(const std::string& uri, const std::string& qname) : QName(Uri(uri), qname) { } /*! - * Constructor taking just the local name (no namespace). - * \param lName Just the local name of the object. + * Constructor taking just the local name (no namespace). + * \param lName Just the local name of the object. */ explicit QName(const std::string& lName) { setName(lName); } - + QName(const xml::lite::Uri& uri) { setAssociatedUri(uri); @@ -137,7 +140,6 @@ class QName final QName(QName&&) = default; QName& operator=(QName&&) = default; - /*! * Set the local part (unqualified) * \param str The local name to set @@ -169,7 +171,7 @@ class QName final /*! * Retrieve the qname as a string. If you have no prefix/uri * this returns just the local name - * \return The fully qualifed qname (e.g., soap-env:SOAP-BODY) + * \return The fully qualifed qname (e.g., soap-env:SOAP-BODY) */ std::string toString() const; @@ -193,6 +195,27 @@ class QName final void getAssociatedUri(xml::lite::Uri&) const; const xml::lite::Uri& getUri() const; }; + +namespace literals // c.f. std::literals +{ + // This might be overkill, in part because we don't deal with a lot of literal QNames or URLs. + // But it's interesting example code, and hidden in a "literals" namespace; be cautious + // about extensive use outside of test code. + + // https://en.cppreference.com/w/cpp/language/user_literal + inline xml::lite::Uri operator"" _u(const char* str, std::size_t len) + { + // https://en.cppreference.com/w/cpp/string/basic_string/operator%22%22s + return xml::lite::Uri(std::string(str, len)); + } + // https://en.cppreference.com/w/cpp/language/user_literal + inline xml::lite::QName operator"" _q(const char* str, std::size_t len) + { + // https://en.cppreference.com/w/cpp/string/basic_string/operator%22%22s + return xml::lite::QName(std::string(str, len)); + } +} + } } #endif // CODA_OSS_xml_lite_QName_h_INCLLUDED_ diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/UtilitiesXerces.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/UtilitiesXerces.h index e9df3b4d6d..ba587a91be 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/UtilitiesXerces.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/UtilitiesXerces.h @@ -29,10 +29,12 @@ #include #include +#include "config/compiler_extensions.h" #include "xml/lite/xml_lite_config.h" #if defined(USE_XERCES) +CODA_OSS_disable_warning_system_header_push #include #include #include @@ -52,11 +54,11 @@ #include #include -#include - #include #include +CODA_OSS_disable_warning_pop + #include #include #include @@ -301,12 +303,12 @@ struct XercesContentHandler : public XercesContentHandlerInterface_T XercesContentHandler& operator=(const XercesContentHandler&) = delete; virtual void ignorableWhitespace(const XMLCh* const /*chars*/, - const XercesSize_T /*length*/) + const XercesSize_T /*length*/) override {} virtual void processingInstruction(const XMLCh* const /*target*/, - const XMLCh* const /*data*/) + const XMLCh* const /*data*/) override {} - virtual void setDocumentLocator(const Locator* const /*locator*/) + virtual void setDocumentLocator(const Locator* const /*locator*/) override {} /*! @@ -317,12 +319,12 @@ struct XercesContentHandler : public XercesContentHandlerInterface_T * \param length The length */ virtual void characters(const XMLCh* const chars, - const XercesSize_T length); + const XercesSize_T length) override; /*! * Fire off the end document notification */ - virtual void endDocument(); + virtual void endDocument() override; /*! * Map input string types to output string types @@ -333,13 +335,13 @@ struct XercesContentHandler : public XercesContentHandlerInterface_T */ virtual void endElement(const XMLCh* const uri, const XMLCh* const localName, - const XMLCh* const qname); + const XMLCh* const qname) override; - virtual void skippedEntity (const XMLCh* const /*name*/) + virtual void skippedEntity (const XMLCh* const /*name*/) override {} //! Fire off the start document notification - virtual void startDocument(); + virtual void startDocument() override; /*! * Map input string types to output string types @@ -353,7 +355,7 @@ struct XercesContentHandler : public XercesContentHandlerInterface_T virtual void startElement(const XMLCh* const uri, const XMLCh* const localName, const XMLCh* const qname, - const XercesAttributesInterface_T &attrs); + const XercesAttributesInterface_T &attrs) override; /*! * Begin prefix mapping. Transfer string types @@ -361,7 +363,7 @@ struct XercesContentHandler : public XercesContentHandlerInterface_T * \param uri The corresponding uri */ virtual void startPrefixMapping (const XMLCh* const /*prefix*/, - const XMLCh* const /*uri*/) + const XMLCh* const /*uri*/) override { } @@ -369,7 +371,7 @@ struct XercesContentHandler : public XercesContentHandlerInterface_T * End prefix mapping. Transfer string types * \param prefix The prefix to stop mapping */ - virtual void endPrefixMapping (const XMLCh* const /*prefix*/) + virtual void endPrefixMapping (const XMLCh* const /*prefix*/) override { } diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/ValidatorXerces.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/ValidatorXerces.h index dc2cb39390..224b54fd01 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/ValidatorXerces.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/ValidatorXerces.h @@ -114,14 +114,15 @@ class ValidatorXerces : public ValidatorInterface ValidatorXerces(const std::vector& schemaPaths, logging::Logger* log, bool recursive = true); - ValidatorXerces(const std::vector&, // fs::path -> mLegacyStringConversion = false + ValidatorXerces(const std::vector&, logging::Logger* log, bool recursive = true); + ValidatorXerces(const coda_oss::filesystem::path&, logging::Logger&); ValidatorXerces(const ValidatorXerces&) = delete; ValidatorXerces& operator=(const ValidatorXerces&) = delete; - ValidatorXerces(ValidatorXerces&&) = delete; - ValidatorXerces& operator=(ValidatorXerces&&) = delete; + ValidatorXerces(ValidatorXerces&&) = default; + ValidatorXerces& operator=(ValidatorXerces&&) = default; using ValidatorInterface::validate; @@ -137,12 +138,19 @@ class ValidatorXerces : public ValidatorInterface bool validate(const coda_oss::u8string&, const std::string& xmlID, std::vector&) const override; bool validate(const str::W1252string&, const std::string& xmlID, std::vector&) const override; + // Search each directory for XSD files + static std::vector loadSchemas(const std::vector& schemaPaths, bool recursive=true); + private: + void initialize(); // easier than chaining constructors w/existing code + bool validate_(const coda_oss::u8string& xml, const std::string& xmlID, std::vector& errors) const; + void loadGrammar(const coda_oss::filesystem::path&, logging::Logger&); std::unique_ptr mSchemaPool; + std::unique_ptr mErrorHandler; std::unique_ptr mValidator; diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLException.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLException.h index 0fdf3af2f9..a51a480bc8 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLException.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLException.h @@ -44,7 +44,7 @@ namespace lite * This is the default XML exception, for when * other, more specialized exception make no sense */ -DECLARE_EXCEPTION(XML) +DECLARE_EXCEPTION(XML); /*! * \class XMLNotRecognizedException @@ -53,7 +53,7 @@ DECLARE_EXCEPTION(XML) * Provides the derived implementation for bad formatting or * for incorrect processing */ -DECLARE_EXTENDED_EXCEPTION(XMLNotRecognized, xml::lite::XMLException) +DECLARE_EXTENDED_EXCEPTION(XMLNotRecognized, xml::lite::XMLException); /*! * \class XMLNotSupportedException @@ -64,7 +64,7 @@ DECLARE_EXTENDED_EXCEPTION(XMLNotRecognized, xml::lite::XMLException) * systems that are not supported by the SAX/DOM standard * */ -DECLARE_EXTENDED_EXCEPTION(XMLNotSupported, xml::lite::XMLException) +DECLARE_EXTENDED_EXCEPTION(XMLNotSupported, xml::lite::XMLException); /*! * \class XMLParseException diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLReader.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLReader.h index 8ec74f92d6..94334180df 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLReader.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLReader.h @@ -38,6 +38,7 @@ #endif # include "xml/lite/XMLReaderXerces.h" + namespace xml { namespace lite diff --git a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLReaderXerces.h b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLReaderXerces.h index beca1fa5cd..52b78befbc 100644 --- a/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLReaderXerces.h +++ b/externals/coda-oss/modules/c++/xml.lite/include/xml/lite/XMLReaderXerces.h @@ -82,7 +82,7 @@ class XMLReaderXerces final : public XMLReaderInterface * This method returns a reference to the content handler. * \return content handler */ - xml::lite::ContentHandler *getContentHandler() + xml::lite::ContentHandler *getContentHandler() override { return mDriverContentHandler->retrieveXMLLiteContentHandler(); } @@ -92,7 +92,7 @@ class XMLReaderXerces final : public XMLReaderInterface * It will set this internally. * \param handler The content handler to pass */ - void setContentHandler(xml::lite::ContentHandler* handler) + void setContentHandler(xml::lite::ContentHandler* handler) override { mDriverContentHandler->setXMLLiteContentHandler(handler); } @@ -104,12 +104,12 @@ class XMLReaderXerces final : public XMLReaderInterface int size = io::InputStream::IS_END); //! Method to create an xml reader - void create(); + void create() override; //! Method to destroy an xml reader - void destroy(); + void destroy() override; - std::string getDriverName() const { return "xerces"; } + std::string getDriverName() const override { return "xerces"; } static const void* getWindows1252Encoding(); diff --git a/externals/coda-oss/modules/c++/xml.lite/source/Element.cpp b/externals/coda-oss/modules/c++/xml.lite/source/Element.cpp index 911befe40f..1513003f71 100644 --- a/externals/coda-oss/modules/c++/xml.lite/source/Element.cpp +++ b/externals/coda-oss/modules/c++/xml.lite/source/Element.cpp @@ -32,10 +32,11 @@ #include #include #include +#include "xml/lite/Attributes.h" std::unique_ptr xml::lite::Element::create(const std::string& qname, const std::string& uri, const std::string& characterData) { - return coda_oss::make_unique(qname, uri, characterData); + return std::make_unique(qname, uri, characterData); } std::unique_ptr xml::lite::Element::create(const QName& qname, const std::string& characterData) { @@ -43,7 +44,7 @@ std::unique_ptr xml::lite::Element::create(const QName& qnam } std::unique_ptr xml::lite::Element::create(const QName& qname, const coda_oss::u8string& characterData) { - return coda_oss::make_unique(qname, characterData); + return std::make_unique(qname, characterData); } xml::lite::Element::Element(const xml::lite::Element& node) @@ -263,20 +264,24 @@ coda_oss::u8string& xml::lite::Element::getCharacterData(coda_oss::u8string& res result = mCharacterData; return result; } +coda_oss::u8string xml::lite::getCharacterData(const Element& e) +{ + coda_oss::u8string retval; + return e.getCharacterData(retval); +} -static void writeCharacterData(io::OutputStream& stream, const std::u8string& characterData, bool isConsoleOutput) +static void writeCharacterData_utf8(io::OutputStream& stream, const std::u8string& characterData) { - if (!isConsoleOutput) - { - stream.write(characterData); // call UTF-8 overload - } - else - { - stream.write(str::EncodedStringView(characterData).native()); // write to the console using the platform native encoding - } + stream.write(characterData); // call UTF-8 overload +} +static void writeCharacterData_native(io::OutputStream& stream, const std::u8string& characterData) +{ + stream.write(str::EncodedStringView(characterData).native()); } -void xml::lite::Element::depthPrint(io::OutputStream& stream, int depth, const std::string& formatter, bool isConsoleOutput) const +static void depthPrint_(const xml::lite::Element& element, + io::OutputStream& stream, int depth, const std::string& formatter, + void(*writeCharacterData)(io::OutputStream&, const std::u8string&)) { // XML must be stored in UTF-8 (or UTF-16/32), in particular, not Windows-1252. // @@ -291,20 +296,24 @@ void xml::lite::Element::depthPrint(io::OutputStream& stream, int depth, const s // Printing in XML form, recursively std::string lBrack = "<"; - std::string rBrack = ">"; + static const std::string rBrack = ">"; - std::string acc = prefix + lBrack + mName.toString(); + const auto name = element.getQName(); + std::string acc = prefix + lBrack + name; - for (int i = 0; i < mAttributes.getLength(); i++) + auto&& attributes = element.getAttributes(); + for (int i = 0; i < attributes.getLength(); i++) { acc += std::string(" "); - acc += mAttributes.getQName(i); + acc += attributes.getQName(i); acc += std::string("=\""); - acc += mAttributes.getValue(i); + acc += attributes.getValue(i); acc += std::string("\""); } - if (mCharacterData.empty() && mChildren.empty()) + const auto characterData = getCharacterData(element); + auto&& children = element.getChildren(); + if (characterData.empty() && children.empty()) { //simple type - just end it here stream.write(acc + "/" + rBrack); @@ -312,24 +321,30 @@ void xml::lite::Element::depthPrint(io::OutputStream& stream, int depth, const s else { stream.write(acc + rBrack); - writeCharacterData(stream, mCharacterData, isConsoleOutput); + writeCharacterData(stream, characterData); - for (unsigned int i = 0; i < mChildren.size(); i++) + for (auto&& child: children) { if (!formatter.empty()) stream.write("\n"); - mChildren[i]->depthPrint(stream, depth + 1, formatter, isConsoleOutput); + depthPrint_(*child, stream, depth + 1, formatter, writeCharacterData); } - if (!mChildren.empty() && !formatter.empty()) + if (!children.empty() && !formatter.empty()) { stream.write("\n" + prefix); } lBrack += "/"; - stream.write(lBrack + mName.toString() + rBrack); + stream.write(lBrack + name + rBrack); } } +void xml::lite::Element::depthPrint(io::OutputStream& stream, int depth, const std::string& formatter, bool isConsoleOutput) const +{ + const auto f = isConsoleOutput ? writeCharacterData_native // write to the console using the platform native encoding + : writeCharacterData_utf8; + depthPrint_(*this, stream, depth, formatter, f); +} void xml::lite::Element::addChild(xml::lite::Element * node) { @@ -343,12 +358,6 @@ xml::lite::Element& xml::lite::Element::addChild(std::unique_ptr node) -{ - return addChild(std::unique_ptr(node.release())); -} -#endif void xml::lite::Element::changePrefix(Element* element, const std::string& prefix, const std::string& uri) @@ -456,6 +465,16 @@ void xml::lite::Element::setCharacterData(const std::string& characters) { mCharacterData = str::EncodedStringView(characters).u8string(); } +xml::lite::Element& xml::lite::Element::operator=(const std::string& characterData) +{ + setCharacterData(characterData); + return *this; +} +xml::lite::Element& xml::lite::Element::operator=(const char* characterData) +{ + *this = std::string(characterData); + return *this; +} xml::lite::Element& xml::lite::add(const QName& qname, const std::string& value, @@ -465,3 +484,78 @@ xml::lite::Element& xml::lite::add(const QName& qname, return parent.addChild(std::move(elem)); } +void xml::lite::operator+=(Element& e, std::unique_ptr&& child) +{ + std::ignore = e.addChild(std::move(child)); +} + +xml::lite::Element& xml::lite::addChild(Element& e, const std::string& qname, const Uri& uri, const coda_oss::u8string& characterData) +{ + return e.addChild(Element::create(QName(qname, uri), characterData)); +} +xml::lite::Element& xml::lite::addChild(Element& e, const std::string& qname, const Uri& uri) +{ + return e.addChild(Element::create(QName(qname, uri))); +} + +xml::lite::Element& xml::lite::addChild(Element& e, const QName& qname, const coda_oss::u8string& characterData) +{ + return e.addChild(Element::create(qname, characterData)); +} +xml::lite::Element& xml::lite::addChild(Element& e, const QName& qname, const std::string& characterData) +{ + return addChild(e, qname, str::EncodedStringView(characterData).u8string()); +} +xml::lite::Element& xml::lite::addChild(Element& e, const QName& qname) +{ + return e.addChild(Element::create(qname)); +} +void xml::lite::operator+=(Element& e, const QName& qname) +{ + std::ignore = addChild(e, qname); +} + +xml::lite::Element& xml::lite::addChild(Element& e, const std::string& qname, const coda_oss::u8string& characterData) +{ + return addChild(e, QName(qname), characterData); +} +xml::lite::Element& xml::lite::addChild(Element& e, const std::string& qname) +{ + return addChild(e, QName(qname)); +} +void xml::lite::operator+=(Element& e, const std::string& qname) +{ + std::ignore = addChild(e, qname); +} + +xml::lite::Element& xml::lite::setChild(Element& e, std::unique_ptr&& child) +{ + e.destroyChildren(); + return e.addChild(std::move(child)); +} +xml::lite::Element& xml::lite::Element::operator=(std::unique_ptr&& child) +{ + std::ignore = setChild(*this, std::move(child)); + return *this; +} + +xml::lite::AttributeNode& xml::lite::addAttribute(Element& e, const AttributeNode& a) +{ + return e.getAttributes().add(a); +} +void xml::lite::operator+=(Element& e, const AttributeNode& a) +{ + std::ignore = addAttribute(e, a); +} +xml::lite::AttributeNode& xml::lite::addAttribute(Element& e, const QName& name, const std::string& value) +{ + return addAttribute(e, AttributeNode(name, value)); +} +xml::lite::AttributeNode& xml::lite::addAttribute(Element& e, const QName& name) +{ + return addAttribute(e, AttributeNode(name)); +} +xml::lite::AttributeNode& xml::lite::addAttribute(Element& e, const std::string& name) +{ + return addAttribute(e, QName(name)); +} \ No newline at end of file diff --git a/externals/coda-oss/modules/c++/xml.lite/source/ValidatorXerces.cpp b/externals/coda-oss/modules/c++/xml.lite/source/ValidatorXerces.cpp index 41968be28d..fe75d84e12 100644 --- a/externals/coda-oss/modules/c++/xml.lite/source/ValidatorXerces.cpp +++ b/externals/coda-oss/modules/c++/xml.lite/source/ValidatorXerces.cpp @@ -26,6 +26,7 @@ #include #include #include +#include // std::ignore #include #include @@ -89,6 +90,14 @@ inline std::vector convert(const std::vector& schemaPaths [](const fs::path& p) { return p.string(); }); return retval; } +inline auto convert(const std::vector& paths) +{ + std::vector retval; + std::transform(paths.begin(), paths.end(), std::back_inserter(retval), + [](const auto& p) { return p; }); + return retval; +} + ValidatorXerces::ValidatorXerces( const std::vector& schemaPaths, logging::Logger* log, @@ -102,7 +111,36 @@ ValidatorXerces::ValidatorXerces( bool recursive) : ValidatorInterface(schemaPaths, log, recursive) { - // add each schema into a grammar pool -- + initialize(); + + // load our schemas -- + // search each directory for schemas + const auto schemas = loadSchemas(convert(schemaPaths), recursive); + + // add the schema to the validator + for (auto&& schema : schemas) + { + loadGrammar(schema, *log); + } + + //! no additional schemas will be loaded after this point! + mSchemaPool->lockPool(); +} +ValidatorXerces::ValidatorXerces(const coda_oss::filesystem::path& schema, logging::Logger& log) : + ValidatorXerces(std::vector{schema}, &log, false /*recursive*/) +{ + initialize(); + + // add the schema to the validator + loadGrammar(schema, log); + + //! no additional schemas will be loaded after this point! + mSchemaPool->lockPool(); +} + +void ValidatorXerces::initialize() + { + // add each schema into a grammar pool -- // this allows reuse mSchemaPool.reset( new xercesc::XMLGrammarPoolImpl( @@ -134,7 +172,7 @@ ValidatorXerces::ValidatorXerces( config->setParameter(xercesc::XMLUni::fgXercesSchema, true); config->setParameter(xercesc::XMLUni::fgXercesSchemaFullChecking, false); // this affects performance - // definitely use cache grammer -- this is the cached schema + // definitely use cache grammar -- this is the cached schema config->setParameter(xercesc::XMLUni::fgXercesUseCachedGrammarInParse, true); // explicitly skip loading schema referenced in the xml docs @@ -151,59 +189,49 @@ ValidatorXerces::ValidatorXerces( new ValidationErrorHandler()); config->setParameter(xercesc::XMLUni::fgDOMErrorHandler, mErrorHandler.get()); +} + void ValidatorXerces::loadGrammar(const coda_oss::filesystem::path& schema, logging::Logger& log) +{ + // add the schema to the validator + if (!mValidator->loadGrammar(schema.c_str(), + xercesc::Grammar::SchemaGrammarType, + true)) + { + std::ostringstream oss; + oss << "Error: Failure to load schema " << schema; + log.warn(Ctxt(oss.str())); + } + } + +std::vector ValidatorXerces::loadSchemas(const std::vector& schemaPaths, bool recursive) +{ // load our schemas -- // search each directory for schemas sys::OS os; - std::vector schemas = - os.search(schemaPaths, "", ".xsd", recursive); - - // add the schema to the validator - for (size_t i = 0; i < schemas.size(); ++i) - { - if (!mValidator->loadGrammar(schemas[i].c_str(), - xercesc::Grammar::SchemaGrammarType, - true)) - { - std::ostringstream oss; - oss << "Error: Failure to load schema " << schemas[i]; - log->warn(Ctxt(oss.str())); - } - } - - //! no additional schemas will be loaded after this point! - mSchemaPool->lockPool(); + return os.search(schemaPaths, "", ".xsd", recursive); } // From config.h.in: Define to the 16 bit type used to represent Xerces UTF-16 characters // On Windows, this needs to be wchar_t so that various "wide character" Win32 APIs can be called. static_assert(sizeof(XMLCh) == 2, "XMLCh should be two bytes for UTF-16."); -#if _WIN32 -// On other platforms, char16_t/uint16_t is used; only wchar_t on Windows. +#ifdef _WIN32 +// On other platforms, char16_t is used; only wchar_t on Windows. using XMLCh_t = wchar_t; static_assert(std::is_same<::XMLCh, XMLCh_t>::value, "XMLCh should be wchar_t"); inline void reset(str::EncodedStringView xmlView, std::unique_ptr& pWString) { - pWString.reset(new std::wstring(xmlView.wstring())); // std::make_unique fails with older compilers + pWString = std::make_unique(xmlView.wstring()); } #else -#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER_BUILD_DATE < 20190815) -using XMLCh_t = uint16_t; -static_assert(std::is_same<::XMLCh, XMLCh_t>::value, "XMLCh should be uint16_t"); -#else using XMLCh_t = char16_t; static_assert(std::is_same<::XMLCh, XMLCh_t>::value, "XMLCh should be char16_t"); #endif -#endif inline void reset(str::EncodedStringView xmlView, std::unique_ptr& pWString) { - pWString.reset(new std::u16string(xmlView.u16string())); // std::make_unique fails with older compilers -} -inline void reset(str::EncodedStringView xmlView, std::unique_ptr& pWString) -{ - pWString.reset(new str::ui16string(xmlView.ui16string_())); // std::make_unique fails with older compilers + pWString = std::make_unique(xmlView.u16string()); } using XMLCh_string = std::basic_string; @@ -252,7 +280,7 @@ bool ValidatorXerces::validate_(const std::u8string& xml, static str::EncodedStringView encodeXml(const std::string& xml) { - // The XML might contain contain a specific encoding, if it does; + // The XML might contain a specific encoding, if it does; // we want to use it, otherwise we'll corrupt the data. // UTF-8 is the normal case, so check it first @@ -263,7 +291,7 @@ static str::EncodedStringView encodeXml(const std::string& xml) return str::EncodedStringView::fromUtf8(xml); } - // Maybe this is is poor XML with Windows-1252 encoding :-( + // Maybe this is poor XML with Windows-1252 encoding :-( const std::regex reWindows1252("<\?.*encoding=.*['\"]?.*windows-1252.*['\"]?.*\?>", std::regex::icase); if (std::regex_search(xml.c_str(), m, reWindows1252)) { diff --git a/externals/coda-oss/modules/c++/xml.lite/tests/NamespaceStackTest.cpp b/externals/coda-oss/modules/c++/xml.lite/tests/NamespaceStackTest.cpp index 934346c385..151e30ca9d 100644 --- a/externals/coda-oss/modules/c++/xml.lite/tests/NamespaceStackTest.cpp +++ b/externals/coda-oss/modules/c++/xml.lite/tests/NamespaceStackTest.cpp @@ -78,4 +78,4 @@ int main() xmlNs.pop(); return 0; -}; +} diff --git a/externals/coda-oss/modules/c++/xml.lite/tests/xmlrpc.com.request.soap b/externals/coda-oss/modules/c++/xml.lite/tests/xmlrpc.com.request.soap new file mode 100644 index 0000000000..1638de592c --- /dev/null +++ b/externals/coda-oss/modules/c++/xml.lite/tests/xmlrpc.com.request.soap @@ -0,0 +1,11 @@ + + + + + 41 + + + diff --git a/externals/coda-oss/modules/c++/xml.lite/unittests/test_soapelements.cpp b/externals/coda-oss/modules/c++/xml.lite/unittests/test_soapelements.cpp index abfe8bfc2d..55de517a95 100644 --- a/externals/coda-oss/modules/c++/xml.lite/unittests/test_soapelements.cpp +++ b/externals/coda-oss/modules/c++/xml.lite/unittests/test_soapelements.cpp @@ -1,10 +1,11 @@ /* ========================================================================= - * This file is part of io-c++ + * This file is part of xml.lite-c++ * ========================================================================= * * (C) Copyright 2004 - 2019, MDA Information Systems LLC + * (C) Copyright 2023, Maxar Technologies, Inc. * - * io-c++ is free software; you can redistribute it and/or modify + * xml.lite-c++ is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. @@ -26,25 +27,23 @@ #include "xml/lite/QName.h" static const std::string test_text = "SOAP Test"; -struct SOAPBody : public xml::lite::Element -{ - SOAPBody () - {} - +struct SOAPBody final : public xml::lite::Element +{ + SOAPBody() = default; SOAPBody (const xml::lite::QName& qname) { setQName(qname); } }; -struct SOAP : public xml::lite::Document +struct SOAP final : public xml::lite::Document { xml::lite::Element* createElement(const std::string & qname, const std::string& uri, - std::string characterData = "") { - xml::lite::Element * elem; - xml::lite::QName asQName(uri, qname); - elem = new SOAPBody(asQName); + std::string characterData = "") override { + const xml::lite::QName asQName(uri, qname); + xml::lite::Element* elem = new SOAPBody(asQName); + elem->setCharacterData(characterData); // avoid unused parameter warning elem->setCharacterData(test_text); return elem; } @@ -52,16 +51,16 @@ struct SOAP : public xml::lite::Document TEST_CASE(test_overrideCreateElement) { - xml::lite::Document *soap_test = new SOAP(); - xml::lite::Element * a = soap_test->createElement("a","b","Not SOAP Test"); - SOAPBody* b = dynamic_cast(a); + SOAP soap_test; + std::unique_ptr a(soap_test.createElement("a","b","Not SOAP Test")); + auto b = dynamic_cast(a.get()); TEST_ASSERT_NOT_NULL(b); TEST_ASSERT_EQ(a->getCharacterData(), test_text); TEST_ASSERT_EQ(b->getCharacterData(), test_text); } -int main(int, char**) -{ +TEST_MAIN +( TEST_CHECK(test_overrideCreateElement); -} +) diff --git a/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlattribute.cpp b/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlattribute.cpp index d568df3acc..011bb79d1c 100644 --- a/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlattribute.cpp +++ b/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlattribute.cpp @@ -1,10 +1,10 @@ /* ========================================================================= - * This file is part of io-c++ + * This file is part of xml.lite-c++ * ========================================================================= * * (C) Copyright 2004 - 2019, MDA Information Systems LLC * - * io-c++ is free software; you can redistribute it and/or modify + * xml.lite-c++ is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. @@ -26,6 +26,7 @@ #include #include "xml/lite/MinidomParser.h" +#include "xml/lite/QName.h" static const std::string strUri = "urn:example.com"; static const xml::lite::Uri uri(strUri); @@ -55,6 +56,8 @@ struct test_MinidomParser final TEST_CASE(test_getAttribute) { + using namespace xml::lite::literals; // _q and _u for QName and Uri + test_MinidomParser xmlParser; const auto root = xmlParser.getRootElement(); @@ -64,6 +67,10 @@ TEST_CASE(test_getAttribute) std::string value; value = attributes.getValue("a"); TEST_ASSERT_EQ("a", value); + value = attributes["a"]; + TEST_ASSERT_EQ("a", value); + value = attributes["a"_q]; + TEST_ASSERT_EQ("a", value); const auto result = attributes.getValue("a", value); TEST_ASSERT_TRUE(result); @@ -326,6 +333,15 @@ TEST_CASE(test_setAttributeValue) result = getValue(attributes, "string", value); TEST_ASSERT_TRUE(result); TEST_ASSERT_EQ("xyz", value); + + attributes["string"] = "abc"; + value = attributes["string"]; + TEST_ASSERT_EQ("abc", value); + + using namespace xml::lite::literals; // _q and _u for QName and Uri + attributes["string"_q] = "123"; + value = attributes["string"_q]; + TEST_ASSERT_EQ("123", value); } { auto toString = [](const bool& value) { return value ? "yes" : "no"; }; diff --git a/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlcreate.cpp b/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlcreate.cpp new file mode 100644 index 0000000000..2b65f0827d --- /dev/null +++ b/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlcreate.cpp @@ -0,0 +1,105 @@ +/* ========================================================================= + * This file is part of xml.lite-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2019, MDA Information Systems LLC + * + * xml.lite-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include +#include +#include +#include + +#include "io/StringStream.h" +#include + +#include "xml/lite/MinidomParser.h" +#include "xml/lite/Element.h" +#include "xml/lite/QName.h" + +TEST_CASE(testXmlCreateRoot) +{ + using namespace xml::lite::literals; // _q and _u for QName and Uri + + xml::lite::MinidomParser xmlParser; + auto& document = getDocument(xmlParser); + + auto documents_ = document.createElement(xml::lite::QName(""_u, "abc"), "abc"); + auto& documents = *documents_; + io::StringStream output; + documents.print(output); + auto actual = output.stream().str(); + TEST_ASSERT_EQ("abc", actual); + + documents = "test"; // setCharacterData() + documents = xml::lite::QName(""_u, "documents"); // setChild() + + output.reset(); + documents.print(output); + actual = output.stream().str(); + TEST_ASSERT_EQ("test", actual); +} + +TEST_CASE(testXmlCreateNested) +{ + using namespace xml::lite::literals; // _q and _u for QName and Uri + + xml::lite::MinidomParser xmlParser; + auto& document = getDocument(xmlParser); + + auto documents_ = document.createElement(xml::lite::QName(""_u, "documents"), ""); + auto& documents = *documents_; + std::ignore = addChild(documents, "html"); + io::StringStream output; + documents.print(output); + auto actual = output.stream().str(); + const auto expected0 = ""; + TEST_ASSERT_EQ(expected0, actual); + + documents += xml::lite::AttributeNode("count"_q, "1"); // addAttribute() + auto& html = setChild(documents, xml::lite::Element::create("html")); + std::ignore = addChild(html, "title"_q, "Title"); + html += xml::lite::Element::create("title"_q, "Title"); + auto& body = addChild(html, "body"); + auto& p = addChild(body, "p"); + p = "paragraph"; + std::ignore = addAttribute(p, "a"_q, "abc"); + body += "br"; // addChild() + + output.reset(); + documents.print(output); + actual = output.stream().str(); + const auto expected1 = // can't use a "raw" string because a string comparision is done, not a "XML comparision" + "" + "" + "Title" + "Title" + "" + "

paragraph

" + "
" + "" + "" + "
"; + TEST_ASSERT_EQ(expected1, actual); +} + +int main(int, char**) +{ + TEST_CHECK(testXmlCreateRoot); + TEST_CHECK(testXmlCreateNested); +} diff --git a/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlelement.cpp b/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlelement.cpp index ccbdde0a7b..a9890ab004 100644 --- a/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlelement.cpp +++ b/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlelement.cpp @@ -1,10 +1,10 @@ /* ========================================================================= - * This file is part of io-c++ + * This file is part of xml.lite-c++ * ========================================================================= * * (C) Copyright 2004 - 2019, MDA Information Systems LLC * - * io-c++ is free software; you can redistribute it and/or modify + * xml.lite-c++ is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. diff --git a/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlparser.cpp b/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlparser.cpp index 6201b17bd2..b6d443bd55 100644 --- a/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlparser.cpp +++ b/externals/coda-oss/modules/c++/xml.lite/unittests/test_xmlparser.cpp @@ -36,6 +36,7 @@ #include "xml/lite/MinidomParser.h" #include "xml/lite/Validator.h" +#include "xml/lite/QName.h" static inline std::u8string fromUtf8(const std::string& utf8) { @@ -59,16 +60,10 @@ static const std::string strUtf8Xml = str::c_str(strUtf8Xml8); static const std::string platfromText_ = sys::Platform == sys::PlatformType::Windows ? pIso88591Text_ : pUtf8Text_; -static std::filesystem::path findRootDirectory(const std::filesystem::path& p) +static std::filesystem::path find_unittest_file(const std::filesystem::path& name) { - // specific to CODA-OSS - const auto isRoot = [](const std::filesystem::path& p) { return is_regular_file(p / "coda-oss-lite.sln") && - is_regular_file(p / "LICENSE") && is_regular_file(p / "README.md") && is_regular_file(p / "CMakeLists.txt"); }; - return sys::test::findRootDirectory(p, "coda-oss", isRoot); -} -inline std::filesystem::path findRoot() -{ - return findRootDirectory(std::filesystem::current_path()); + static const auto unittests = std::filesystem::path("modules") / "c++" / "xml.lite" / "unittests"; + return sys::test::findGITModuleFile("coda-oss", unittests, name); } static void test_a_element(const std::string& testName, const xml::lite::Element& root) @@ -131,8 +126,7 @@ TEST_CASE(testXmlUtf8_u8string) xml::lite::MinidomParser xmlParser; const auto& a = testXmlUtf8_(xmlParser); - coda_oss::u8string actual; - a.getCharacterData(actual); + const auto actual = getCharacterData(a); TEST_ASSERT_EQ(actual, utf8Text8); } @@ -150,8 +144,8 @@ TEST_CASE(testXml_setCharacterData) { xml::lite::MinidomParser xmlParser; auto& a = testXmlUtf8_(xmlParser); - a.setCharacterData(utf8Text8); + TEST_ASSERT_TRUE(true); // need to use hidden "testName" parameter } static std::string testXmlPrint_(std::string& expected, const std::string& characterData) @@ -181,13 +175,15 @@ static std::u8string fromWindows1252(const std::string& s) TEST_CASE(testXmlPrintUtf8) { + static const xml::lite::QName root(xml::lite::Uri(), "root"); + const auto expected = std::string("") + pUtf8Text_ + ""; { xml::lite::MinidomParser xmlParser; auto& document = getDocument(xmlParser); const auto s8_w1252 = fromWindows1252(pIso88591Text_); - const auto pRootElement = document.createElement(xml::lite::QName(xml::lite::Uri(), "root"), s8_w1252); + const auto pRootElement = document.createElement(root, s8_w1252); io::StringStream output; pRootElement->print(output); @@ -198,7 +194,7 @@ TEST_CASE(testXmlPrintUtf8) xml::lite::MinidomParser xmlParser; auto& document = getDocument(xmlParser); - const auto pRootElement = document.createElement(xml::lite::QName(xml::lite::Uri(), "root"), utf8Text8); + const auto pRootElement = document.createElement(root, utf8Text8); io::StringStream output; pRootElement->print(output); @@ -209,7 +205,7 @@ TEST_CASE(testXmlPrintUtf8) xml::lite::MinidomParser xmlParser; auto& document = getDocument(xmlParser); - const auto pRootElement = document.createElement(xml::lite::QName(xml::lite::Uri(), "root"), platfromText_); + const auto pRootElement = document.createElement(root, platfromText_); io::StringStream output; pRootElement->print(output); @@ -220,13 +216,15 @@ TEST_CASE(testXmlPrintUtf8) TEST_CASE(testXmlConsoleOutput) { + static const xml::lite::QName root(xml::lite::Uri(), "root"); + const auto expected = "" + platfromText_ + ""; { xml::lite::MinidomParser xmlParser; auto& document = getDocument(xmlParser); const auto s8_w1252 = fromWindows1252(pIso88591Text_); - const auto pRootElement = document.createElement(xml::lite::QName(xml::lite::Uri(), "root"), s8_w1252); + const auto pRootElement = document.createElement(root, s8_w1252); io::StringStream output; pRootElement->consoleOutput_(output); @@ -237,7 +235,7 @@ TEST_CASE(testXmlConsoleOutput) xml::lite::MinidomParser xmlParser; auto& document = getDocument(xmlParser); - const auto pRootElement = document.createElement(xml::lite::QName(xml::lite::Uri(), "root"), utf8Text8); + const auto pRootElement = document.createElement(root, utf8Text8); io::StringStream output; pRootElement->consoleOutput_(output); @@ -248,7 +246,7 @@ TEST_CASE(testXmlConsoleOutput) xml::lite::MinidomParser xmlParser; auto& document = getDocument(xmlParser); - const auto pRootElement = document.createElement(xml::lite::QName(xml::lite::Uri(), "root"), platfromText_); + const auto pRootElement = document.createElement(root, platfromText_); io::StringStream output; pRootElement->consoleOutput_(output); @@ -276,14 +274,9 @@ TEST_CASE(testXmlParseAndPrintUtf8) static void testReadEncodedXmlFile(const std::string& testName, const std::string& xmlFile, bool preserveCharacterData, const std::string& platformText, const std::u8string& text8_) { - const auto unittests = findRoot() / "modules" / "c++" / "xml.lite" / "unittests"; + using namespace xml::lite::literals; // _q and _u for QName and Uri - const auto path = unittests / xmlFile; - if (!exists(path)) // running in "externals" of a different project - { - std::clog << "Path does not exist: '" << path << "'\n"; - return; - } + const auto path = find_unittest_file(xmlFile); io::FileInputStream input(path.string()); xml::lite::MinidomParser xmlParser; @@ -291,25 +284,24 @@ static void testReadEncodedXmlFile(const std::string& testName, const std::strin xmlParser.parse(input); const auto& root = getRootElement(getDocument(xmlParser)); - const auto& a = root.getElementByTagName("a", true /*recurse*/); + const auto& a = root("a"_q, true /*recurse*/); auto characterData = a.getCharacterData(); TEST_ASSERT_EQ(characterData, platformText); - std::u8string u8_characterData; - a.getCharacterData(u8_characterData); + const auto u8_characterData = getCharacterData(a); TEST_ASSERT_EQ(text8_, u8_characterData); - const auto& textXML = root.getElementByTagName("text", true /*recurse*/); + const auto& textXML = root("text"_q, true /*recurse*/); characterData = textXML.getCharacterData(); const auto expectedText = preserveCharacterData ? "\tt\te\tx\tt\t" : "t\te\tx\tt"; TEST_ASSERT_EQ(characterData, expectedText); - const auto& whitespaceXML = root.getElementByTagName("whitespace", true /*recurse*/); + const auto& whitespaceXML = root("whitespace"_q, true /*recurse*/); characterData = whitespaceXML.getCharacterData(); const auto expectedWhitespace = preserveCharacterData ? " " : ""; TEST_ASSERT_EQ(characterData, expectedWhitespace); - const auto& emptyXML = root.getElementByTagName("empty", true /*recurse*/); + const auto& emptyXML = root("empty"_q, true /*recurse*/); characterData = emptyXML.getCharacterData(); TEST_ASSERT_EQ(characterData, ""); } @@ -327,14 +319,9 @@ TEST_CASE(testReadEncodedXmlFiles) static void testReadXmlFile(const std::string& testName, const std::string& xmlFile, bool preserveCharacterData, const std::string& platformText, const std::u8string& text8_) { - const auto unittests = findRoot() / "modules" / "c++" / "xml.lite" / "unittests"; + using namespace xml::lite::literals; // _q and _u for QName and Uri - const auto path = unittests / xmlFile; - if (!exists(path)) // running in "externals" of a different project - { - std::clog << "Path does not exist: '" << path << "'\n"; - return; - } + const auto path = find_unittest_file(xmlFile); io::FileInputStream input(path.string()); xml::lite::MinidomParser xmlParser; @@ -353,17 +340,17 @@ static void testReadXmlFile(const std::string& testName, const std::string& xmlF a.getCharacterData(u8_characterData); TEST_ASSERT_EQ(text8_, u8_characterData); - const auto& textXML = root.getElementByTagName("text", true /*recurse*/); + const auto& textXML = root("text"_q, true /*recurse*/); characterData = textXML.getCharacterData(); const auto expectedText = preserveCharacterData ? "\tt\te\tx\tt\t" : "t\te\tx\tt"; TEST_ASSERT_EQ(characterData, expectedText); - const auto& whitespaceXML = root.getElementByTagName("whitespace", true /*recurse*/); + const auto& whitespaceXML = root("whitespace"_q, true /*recurse*/); characterData = whitespaceXML.getCharacterData(); const auto expectedWhitespace = preserveCharacterData ? " " : ""; TEST_ASSERT_EQ(characterData, expectedWhitespace); - const auto& emptyXML = root.getElementByTagName("empty", true /*recurse*/); + const auto& emptyXML = root("empty"_q, true /*recurse*/); characterData = emptyXML.getCharacterData(); TEST_ASSERT_EQ(characterData, ""); } @@ -404,14 +391,7 @@ static bool find_string(io::FileInputStream& stream, const std::string& s) TEST_CASE(testReadEmbeddedXml) { // This is a binary file with XML burried in it somewhere - const auto unittests = findRoot() / "modules" / "c++" / "xml.lite" / "unittests"; - - const auto path = unittests / "embedded_xml.bin"; - if (!exists(path)) // running in "externals" of a different project - { - std::clog << "Path does not exist: '" << path << "'\n"; - return; - } + static const auto path = find_unittest_file("embedded_xml.bin"); io::FileInputStream input(path.string()); const auto result = find_string(input, " -static void testValidateXmlFile_(const std::string& testName, const std::string& xmlFile, TStringStream* pStringStream) +static void testValidateXmlFile_(const std::string& testName, + const xml::lite::Validator& validator, const std::string& xmlFile, TStringStream* pStringStream) { - const auto unittests = findRoot() / "modules" / "c++" / "xml.lite" / "unittests"; - - const auto xsd = unittests / "doc.xsd"; - if (!exists(xsd)) // running in "externals" of a different project - { - std::clog << "Path does not exist: '" << xsd << "'\n"; - return; - } - const auto path = unittests / xmlFile; - - const std::vector schemaPaths{xsd.parent_path()}; // fs::path -> new string-conversion code - const xml::lite::Validator validator(schemaPaths, nullptr /*log*/); + const auto path = find_unittest_file(xmlFile); io::FileInputStream fis(path); std::vector errors; @@ -462,7 +432,18 @@ static void testValidateXmlFile_(const std::string& testName, const std::string& } TEST_ASSERT_FALSE(result); TEST_ASSERT_TRUE(errors.empty()); + } +template +static void testValidateXmlFile_(const std::string& testName, const std::string& xmlFile, TStringStream* pStringStream) +{ + static const auto xsd = find_unittest_file("doc.xsd"); + const std::vector schemaPaths{xsd.parent_path()}; // fs::path -> new string-conversion code + const xml::lite::Validator validator(schemaPaths, nullptr /*log*/); + + testValidateXmlFile_(testName, validator, xmlFile, pStringStream); +} + static void testValidateXmlFile(const std::string& testName, const std::string& xmlFile) { testValidateXmlFile_(testName, xmlFile, nullptr /*pStringStream*/); @@ -490,6 +471,42 @@ TEST_CASE(testValidateXmlFile) testValidateXmlFile(testName, "encoding_windows-1252.xml", io::W1252StringStream()); } +template +static void testValidateXmlFile_XSD_(const std::string& testName, const std::string& xmlFile, TStringStream* pStringStream) +{ + static const auto xsd = find_unittest_file("doc.xsd"); + logging::Logger log; + const xml::lite::Validator validator(xsd, log); + testValidateXmlFile_(testName, validator, xmlFile, pStringStream); +} +static void testValidateXmlFile_XSD(const std::string& testName, const std::string& xmlFile) +{ + testValidateXmlFile_XSD_(testName, xmlFile, nullptr /*pStringStream*/); +} +template +static void testValidateXmlFile_XSD(const std::string& testName, const std::string& xmlFile, TStringStream&& oss) +{ + testValidateXmlFile_XSD_(testName, xmlFile, &oss); +} +TEST_CASE(testValidateXmlFile_XSD) +{ + // Validate using a single XSD + testValidateXmlFile_XSD(testName, "ascii.xml"); + testValidateXmlFile_XSD(testName, "ascii_encoding_utf-8.xml"); + + // legacy validate() API, new string conversion + testValidateXmlFile_XSD(testName, "utf-8.xml"); + testValidateXmlFile_XSD(testName, "encoding_utf-8.xml"); + testValidateXmlFile_XSD(testName, "encoding_windows-1252.xml"); + testValidateXmlFile_XSD(testName, "windows-1252.xml"); + + // new validate() API + testValidateXmlFile_XSD(testName, "utf-8.xml", io::U8StringStream()); + testValidateXmlFile_XSD(testName, "encoding_utf-8.xml", io::U8StringStream()); + testValidateXmlFile_XSD(testName, "windows-1252.xml", io::W1252StringStream()); + testValidateXmlFile_XSD(testName, "encoding_windows-1252.xml", io::W1252StringStream()); +} + int main(int, char**) { TEST_CHECK(testXmlParseSimple); @@ -508,4 +525,5 @@ int main(int, char**) TEST_CHECK(testReadEmbeddedXml); TEST_CHECK(testValidateXmlFile); + TEST_CHECK(testValidateXmlFile_XSD); } diff --git a/externals/coda-oss/modules/c++/zip/CMakeLists.txt b/externals/coda-oss/modules/c++/zip/CMakeLists.txt index 02c12d2180..0a708959af 100644 --- a/externals/coda-oss/modules/c++/zip/CMakeLists.txt +++ b/externals/coda-oss/modules/c++/zip/CMakeLists.txt @@ -9,11 +9,16 @@ if (TARGET z AND TARGET minizip) coda_add_module( ${MODULE_NAME} VERSION 1.0 - DEPS io-c++ z minizip) + DEPS io-c++ coda_oss-c++ z minizip) coda_add_tests( MODULE_NAME ${MODULE_NAME} DIRECTORY "tests") + + coda_add_tests( + MODULE_NAME ${MODULE_NAME} + DIRECTORY "unittests" + UNITTEST) else() message("zip will not be build since zlib + minizip were not enabled") endif() diff --git a/externals/coda-oss/modules/c++/zip/include/zip/GZipInputStream.h b/externals/coda-oss/modules/c++/zip/include/zip/GZipInputStream.h index 1994d5467e..783b6241fe 100644 --- a/externals/coda-oss/modules/c++/zip/include/zip/GZipInputStream.h +++ b/externals/coda-oss/modules/c++/zip/include/zip/GZipInputStream.h @@ -58,7 +58,7 @@ class GZipInputStream: public io::InputStream * This is a little tricky since we do not know the * length of the read. */ - virtual sys::SSize_T readImpl(void* buffer, size_t len); + virtual sys::SSize_T readImpl(void* buffer, size_t len) override; }; } diff --git a/externals/coda-oss/modules/c++/zip/include/zip/GZipOutputStream.h b/externals/coda-oss/modules/c++/zip/include/zip/GZipOutputStream.h index a8d471569c..7f137d2cfa 100644 --- a/externals/coda-oss/modules/c++/zip/include/zip/GZipOutputStream.h +++ b/externals/coda-oss/modules/c++/zip/include/zip/GZipOutputStream.h @@ -46,13 +46,13 @@ class GZipOutputStream: public io::OutputStream * the call returns. * */ - virtual void write(const void* buffer, size_t len); + virtual void write(const void* buffer, size_t len) override; /*! * Close the gzip stream. You must call this * afterward (it is not done automatically). */ - virtual void close(); + virtual void close() override; }; } diff --git a/externals/coda-oss/modules/c++/zip/include/zip/ZipOutputStream.h b/externals/coda-oss/modules/c++/zip/include/zip/ZipOutputStream.h index 50ce6a1982..a49c3c4a0b 100644 --- a/externals/coda-oss/modules/c++/zip/include/zip/ZipOutputStream.h +++ b/externals/coda-oss/modules/c++/zip/include/zip/ZipOutputStream.h @@ -76,9 +76,9 @@ class ZipOutputStream: public io::OutputStream void write(const std::string& inputPathname, const std::string& zipPathname); - virtual void write(const void* buffer, size_t len); + virtual void write(const void* buffer, size_t len) override; - virtual void close(); + virtual void close() override; private: zipFile mZip; diff --git a/externals/coda-oss/modules/c++/zip/source/ZipEntry.cpp b/externals/coda-oss/modules/c++/zip/source/ZipEntry.cpp index 2d9595f9ee..9f71cbef32 100644 --- a/externals/coda-oss/modules/c++/zip/source/ZipEntry.cpp +++ b/externals/coda-oss/modules/c++/zip/source/ZipEntry.cpp @@ -21,6 +21,8 @@ */ #include "zip/ZipEntry.h" +#undef Z_NULL +#define Z_NULL nullptr const static char* sZipFileMadeByStr[] = { "MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems)", "Amiga", diff --git a/externals/coda-oss/modules/c++/zip/tests/test_zipcompress.cpp b/externals/coda-oss/modules/c++/zip/tests/test_zipcompress.cpp index 2c84fa9733..f31c5b48d2 100644 --- a/externals/coda-oss/modules/c++/zip/tests/test_zipcompress.cpp +++ b/externals/coda-oss/modules/c++/zip/tests/test_zipcompress.cpp @@ -80,17 +80,17 @@ int main(int argc, char** argv) } output.close(); } - catch (const std::exception& ex) - { - std::cerr << "Caught std::exception: " << ex.what() << std::endl; - return 1; - } catch (const except::Exception& ex) { std::cerr << "Caught except::exception: " << ex.getMessage() << std::endl; return 1; } + catch (const std::exception& ex) + { + std::cerr << "Caught std::exception: " << ex.what() << std::endl; + return 1; + } catch (...) { std::cerr << "Caught unknown exception\n"; diff --git a/externals/coda-oss/modules/c++/zip/unittests/test.gz b/externals/coda-oss/modules/c++/zip/unittests/test.gz new file mode 100644 index 0000000000..7b671654c9 Binary files /dev/null and b/externals/coda-oss/modules/c++/zip/unittests/test.gz differ diff --git a/externals/coda-oss/modules/c++/zip/unittests/test.zip b/externals/coda-oss/modules/c++/zip/unittests/test.zip new file mode 100644 index 0000000000..220fac3ee4 Binary files /dev/null and b/externals/coda-oss/modules/c++/zip/unittests/test.zip differ diff --git a/externals/coda-oss/modules/c++/zip/unittests/text.txt b/externals/coda-oss/modules/c++/zip/unittests/text.txt new file mode 100644 index 0000000000..c57eff55eb --- /dev/null +++ b/externals/coda-oss/modules/c++/zip/unittests/text.txt @@ -0,0 +1 @@ +Hello World! \ No newline at end of file diff --git a/externals/coda-oss/modules/c++/zip/unittests/unittest_GZip.cpp b/externals/coda-oss/modules/c++/zip/unittests/unittest_GZip.cpp new file mode 100644 index 0000000000..6439cbfd3a --- /dev/null +++ b/externals/coda-oss/modules/c++/zip/unittests/unittest_GZip.cpp @@ -0,0 +1,103 @@ +/* ========================================================================= + * This file is part of zip-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2016, MDA Information Systems LLC + * + * zip-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#include + +#include +#include +#include +#include + +#include + +static std::filesystem::path find_unittest_file(const std::filesystem::path& name) +{ + static const auto unittests = std::filesystem::path("modules") / "c++" / "zip" / "unittests"; + return sys::test::findGITModuleFile("coda-oss", unittests, name); +} + +static std::string txt_to_gz(const std::filesystem::path& txt_path) +{ + const auto pid = sys::OS().getSpecialEnv("PID"); + return txt_path.stem().string() + pid + txt_path.extension().string() + ".gz"; +} + +static std::string gz_to_txt(const std::filesystem::path& gz_path) +{ + const auto pid = sys::OS().getSpecialEnv("PID"); + return gz_path.stem().string() + pid + gz_path.extension().string() + ".txt"; +} + +TEST_CASE(gzip) +{ + const auto inputPath = find_unittest_file("text.txt"); + + const std::filesystem::path argv0 = sys::OS().getSpecialEnv("0"); + auto outputPath = argv0.parent_path() / txt_to_gz(inputPath); + { + io::FileInputStream input(inputPath.string()); + zip::GZipOutputStream output(outputPath.string()); + + input.streamTo(output); + input.close(); + output.close(); + } + + std::vector buffer; + io::readFileContents(outputPath, buffer); + TEST_ASSERT_EQ(32, buffer.size()); + { + zip::GZipInputStream input(outputPath.string()); + outputPath = argv0.parent_path() / gz_to_txt(outputPath); + io::FileOutputStream output(outputPath.string()); + while (input.streamTo(output, 8192)) ; + + input.close(); + output.close(); + + const auto str = io::readFileContents(outputPath.string()); + TEST_ASSERT_EQ("Hello World!", str); + } +} + +TEST_CASE(gunzip) +{ + const auto inputPath = find_unittest_file("test.gz"); + + const std::filesystem::path argv0 = sys::OS().getSpecialEnv("0"); + const auto outputPath = argv0.parent_path() / gz_to_txt(inputPath); + + zip::GZipInputStream input(inputPath.string()); + io::FileOutputStream output(outputPath.string()); + while ( input.streamTo(output, 8192) ); + + input.close(); + output.close(); + + const auto str = io::readFileContents(outputPath.string()); + TEST_ASSERT_EQ("Hello World!", str); +} + +TEST_MAIN( + TEST_CHECK(gzip); + TEST_CHECK(gunzip); +) \ No newline at end of file diff --git a/externals/coda-oss/modules/c++/zip/wscript b/externals/coda-oss/modules/c++/zip/wscript index 837a7b6949..85bf026d13 100644 --- a/externals/coda-oss/modules/c++/zip/wscript +++ b/externals/coda-oss/modules/c++/zip/wscript @@ -1,5 +1,4 @@ NAME = 'zip' -MAINTAINER = 'jmrandol@users.sourceforge.net' VERSION = '1.0' MODULE_DEPS = 'io' USELIB_CHECK = 'MINIZIP ZIP' diff --git a/externals/coda-oss/modules/drivers/CMakeLists.txt b/externals/coda-oss/modules/drivers/CMakeLists.txt index 9732c69c55..e9aeba4a1a 100644 --- a/externals/coda-oss/modules/drivers/CMakeLists.txt +++ b/externals/coda-oss/modules/drivers/CMakeLists.txt @@ -1,8 +1,14 @@ +# Turn off all warnings; this is code we don't control. if (MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS) - add_compile_options(/W3) - add_compile_options(/wd4267) # '...': conversion from '...' to '...', possible loss of data - add_compile_options(/wd4244) # '...': conversion from '...' to '...', possible loss of data + + # By default, there is a /W3 on the command-line from somewhere (?); adding + # /Wn results in a compiler warning. + #add_compile_options(/W0) + string(REGEX REPLACE "/W[0-4]" "/W0" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + string(REGEX REPLACE "/W[0-4]" "/W0" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") +elseif (UNIX) + add_compile_options(-w) # "Inhibit all warning messages" endif() #add_subdirectory("curl") # this is handled in coda_find_system_dependencies @@ -65,3 +71,10 @@ if (NOT CONAN_PACKAGE_NAME) add_subdirectory("zlib") endif() endif() + +set(CODA_ENABLE_HDF5 ON CACHE BOOL "enable hdf5") +set(CODA_HDF5_HOME "" CACHE PATH "path to pre-existing HDF5 installation, if not provided HDF5 will be built") +if (CODA_ENABLE_HDF5 OR CODA_HDF5_HOME) + add_subdirectory("hdf5") + add_subdirectory("highfive") +endif() diff --git a/externals/coda-oss/modules/drivers/hdf5/CMakeLists.txt b/externals/coda-oss/modules/drivers/hdf5/CMakeLists.txt index 37a9230b54..dd8c01d3f8 100644 --- a/externals/coda-oss/modules/drivers/hdf5/CMakeLists.txt +++ b/externals/coda-oss/modules/drivers/hdf5/CMakeLists.txt @@ -1,6 +1,13 @@ set(MODULE_NAME hdf5) +set(TARGET_LANGUAGE c++) if(CODA_ENABLE_HDF5) + # set up warnings + if (MSVC) + # DO NOT use standard (not legacy) C pre-processor + add_compile_options(/Zc:preprocessor-) + endif() + coda_add_module(${MODULE_NAME} VERSION 1.13.2) else() message("${MODULE_NAME} will not be built since HDF5 is not enabled") diff --git a/externals/coda-oss/modules/drivers/hdf5/source/H5MM.c b/externals/coda-oss/modules/drivers/hdf5/source/H5MM.c index 9c03ceb338..68c8633015 100644 --- a/externals/coda-oss/modules/drivers/hdf5/source/H5MM.c +++ b/externals/coda-oss/modules/drivers/hdf5/source/H5MM.c @@ -658,7 +658,9 @@ H5MM_memcpy(void *dest, const void *src, size_t n) HDassert(src); /* Check for buffer overlap */ - HDassert((char *)dest >= (const char *)src + n || (const char *)src >= (char *)dest + n); + const char* src_n = (const char*)src + n; + const char* dest_n = (const char*)dest + n; + HDassert((const char *)dest >= src_n || (const char *)src >= dest_n); /* Copy */ ret = HDmemcpy(dest, src, n); diff --git a/externals/coda-oss/modules/drivers/hdf5/wscript-SAV b/externals/coda-oss/modules/drivers/hdf5/wscript similarity index 100% rename from externals/coda-oss/modules/drivers/hdf5/wscript-SAV rename to externals/coda-oss/modules/drivers/hdf5/wscript diff --git a/externals/coda-oss/modules/drivers/hdf5cpp/wscript-SAV b/externals/coda-oss/modules/drivers/hdf5cpp/wscript similarity index 100% rename from externals/coda-oss/modules/drivers/hdf5cpp/wscript-SAV rename to externals/coda-oss/modules/drivers/hdf5cpp/wscript diff --git a/externals/coda-oss/modules/drivers/highfive/CMakeLists.txt b/externals/coda-oss/modules/drivers/highfive/CMakeLists.txt new file mode 100644 index 0000000000..32f2ba30d8 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/CMakeLists.txt @@ -0,0 +1,19 @@ +set(MODULE_NAME highfive) +set(TARGET_LANGUAGE c++) + +if(CODA_ENABLE_HDF5) + set(MODULE_DEPS config-c++ sys-c++) + list(APPEND MODULE_DEPS hdf5-c++) + + coda_add_module( + ${MODULE_NAME} + VERSION 2.6.2 + DEPS ${MODULE_DEPS}) + + coda_add_tests( + MODULE_NAME ${MODULE_NAME} + DIRECTORY "unittests" + UNITTEST) +else() + message("${MODULE_NAME} will not be built since HDF5 is not enabled") +endif() diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2.zip b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2.zip new file mode 100644 index 0000000000..0668a026bb Binary files /dev/null and b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2.zip differ diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.clang-format b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.clang-format new file mode 100644 index 0000000000..8a59ff4a31 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.clang-format @@ -0,0 +1,93 @@ +--- +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignConsecutiveMacros: true +AlignEscapedNewlinesLeft: true +AlignOperands: true +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: true +BasedOnStyle: WebKit +BinPackArguments: false +BinPackParameters: false +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterExternBlock: false + AfterFunction: false + AfterNamespace: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false +BreakBeforeBraces: Custom +BreakBeforeBinaryOperators: false +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: true +BreakStringLiterals: true +ColumnLimit: 100 +CommentPragmas: '^\\.+' +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DerivePointerBinding: true +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + - Regex: '^(<|"(gtest|isl|json)/)' + Priority: 3 + - Regex: '.*' + Priority: 1 +IncludeIsMainRegex: '$' +IndentCaseLabels: false +IndentWidth: 4 +IndentWrappedFunctionNames: false +KeepEmptyLinesAtTheStartOfBlocks: false +Language: Cpp +MaxEmptyLinesToKeep: 2 +NamespaceIndentation: None +PenaltyBreakAssignment: 40 +PenaltyBreakBeforeFirstCallParameter: 100 +PenaltyBreakComment: 60 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +PointerBindsToType: true +ReflowComments: true +SortIncludes: false +SpaceAfterCStyleCast: true +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: false +SpaceBeforeInheritanceColon: false +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: false +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: false # '< ' style +SpacesInContainerLiterals: false +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false # '(' style +SpacesInSquareBrackets: false +Standard: c++14 +TabWidth: 4 +UseTab: Never +... diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.git-blame-ignore-revs b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.git-blame-ignore-revs new file mode 100644 index 0000000000..a7a0c41e21 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# clang-format the whole repository +6fc243144b6a7802bf29d3fbb2c028051a71ca28 diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/bug_report.md b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..2558a56c40 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Stacktrace** +If applicable, add a stacktrace and error messages to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. ubuntu 20.10, macos 10.15] + - Version [e.g. master branch] + +**Additional context** +Add any other context about the problem here. diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/config.yml b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..1d9540b00b --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: HighFive Community Support + url: https://github.com/BlueBrain/HighFive/discussions + about: Please ask and answer questions here. diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/feature_request.md b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..4ead48053d --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context about the feature request here. diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/build.sh b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/build.sh new file mode 100644 index 0000000000..4cdad7e3ff --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/build.sh @@ -0,0 +1,11 @@ +# Build env + +[ "$CC" ] && $CC --version +cmake --version +set -x +export HIGHFIVE_BUILD=$GITHUB_WORKSPACE/build +cmake -B $HIGHFIVE_BUILD -S $GITHUB_WORKSPACE \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \ + "${CMAKE_OPTIONS[@]}" +cmake --build $HIGHFIVE_BUILD --config $BUILD_TYPE --parallel 2 --verbose diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/pull_request_template.md b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/pull_request_template.md new file mode 100644 index 0000000000..58abc6c608 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/pull_request_template.md @@ -0,0 +1,25 @@ +**Description** + +Please include a summary of the change and which issue is fixed or which feature is added. + +- [ ] Issue 1 fixed +- [ ] Issue 2 fixed +- [ ] Feature 1 added +- [ ] Feature 2 added + +Fixes #(issue) + +**How to test this?** + +Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce if there is no integration test added with this PR. Please also list any relevant details for your test configuration + +```bash +cmake .. +make -j8 +make test +``` + +**Test System** + - OS: [e.g. Ubuntu 20.04] + - Compiler: [e.g. clang 12.0.0] + - Dependency versions: [e.g. hdf5 1.12] diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/check_doxygen_awesome_version.yml b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/check_doxygen_awesome_version.yml new file mode 100644 index 0000000000..233577ef86 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/check_doxygen_awesome_version.yml @@ -0,0 +1,49 @@ +name: Auto-update doxygen-awesome + +on: + workflow_dispatch: + schedule: + - cron: 0 2 * * 1 + +jobs: + check-for-updates: + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v2 + - name: Open PR if doxygen-awesome outdated. + run: | + + VERSION=$(doc/doxygen-awesome-css/update_doxygen_awesome.sh "$(mktemp -d)") + BRANCH=update-doxygen-awesome-${VERSION} + COMMIT_MESSAGE="Update doxygen-awesome to ${VERSION}" + + # NOTE: In a later runs of CI we will search for PR with this exact + # title. Only if no such PR exists will the script create a + # new PR. + PR_TITLE="[docs] Update doxygen-awesome to ${VERSION}" + + if [[ -z "$(git status --porcelain)" ]] + then + echo "No differences detected: doxygen-awesome is up-to-date." + exit 0 + fi + + if [[ -z "$(gh pr list --state all --search "${PR_TITLE}")" ]] + then + + git checkout -b $BRANCH + git config user.name github-actions + git config user.email github-actions@github.com + git commit -a -m "${COMMIT_MESSAGE}" + + git push -u origin ${BRANCH} + gh pr create \ + --title "${PR_TITLE}" \ + --body "This PR was generated by a Github Actions workflow." + + else + echo "Old PR detected: didn't create a new one." + fi diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/ci.yml b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/ci.yml new file mode 100644 index 0000000000..a34847188e --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/ci.yml @@ -0,0 +1,282 @@ +name: HighFive_CI + +concurrency: + group: ${{ github.workflow }}#${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - ci_test + - release/** + pull_request: + branches: + - master + - release/** + paths-ignore: + - '**.md' + - '**.rst' + - 'doc/**' + +env: + HOMEBREW_NO_AUTO_UPDATE: 1 # for reproducibility, dont autoupdate + BUILD_TYPE: RelWithDebInfo + INSTALL_DIR: install + +jobs: + + # Job testing compiling on several Ubuntu systems + MPI + # ========================================================= + # + # For 18.04: bare HighFive + # For 20.04: activate Boost, OpenCV + # For latest: activate Boost, Eigen, OpenCV, with Ninja + # + # XTensor tests are run for conda/mamba and MacOS + Linux_MPI: + runs-on: ${{matrix.os}} + strategy: + matrix: + os: [ubuntu-18.04, ubuntu-20.04, ubuntu-latest] + include: + - os: ubuntu-18.04 + pkgs: '' + flags: '-DHIGHFIVE_USE_BOOST:Bool=OFF' + - os: ubuntu-20.04 + pkgs: 'libboost-all-dev libopencv-dev' + flags: '-DHIGHFIVE_USE_OPENCV:Bool=ON -GNinja' + - os: ubuntu-latest + pkgs: 'libboost-all-dev libeigen3-dev libopencv-dev' + flags: '-DHIGHFIVE_USE_EIGEN:Bool=ON -DHIGHFIVE_USE_OPENCV:Bool=ON -GNinja' + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: "Setup MPI" + uses: mpi4py/setup-mpi@v1 + with: + mpi: openmpi + + - name: "Install libraries" + run: | + sudo apt-get -qq update + sudo apt-get -qq install libhdf5-openmpi-dev libsz2 ninja-build ${{ matrix.pkgs }} + + - name: Build + run: | + CMAKE_OPTIONS=(-DHIGHFIVE_PARALLEL_HDF5:BOOL=ON ${{ matrix.flags }}) + source $GITHUB_WORKSPACE/.github/build.sh + + - name: Test + working-directory: ${{github.workspace}}/build + run: ctest --output-on-failure -C $BUILD_TYPE + + + # Job testing several versions of hdf5 + # =================================================== + Linux_HDF5_Versions: + runs-on: ubuntu-latest + strategy: + matrix: + hdf5_version : [ hdf5-1_8_22, hdf5-1_10_9, hdf5-1_12_2, hdf5-1_13_2 ] + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: "Install libraries" + run: | + sudo apt-get -qq update + sudo apt-get -qq install ninja-build libsz2 zlib1g-dev libboost-all-dev + + - name: Build HDF5 + run: | + wget https://github.com/HDFGroup/hdf5/archive/refs/tags/${{ matrix.hdf5_version }}.tar.gz --output-document hdf5.tar.gz + tar xf hdf5.tar.gz + mkdir -p hdf5-${{ matrix.hdf5_version }}/BUILD && cd hdf5-${{ matrix.hdf5_version }}/BUILD + cmake .. -GNinja -DCMAKE_INSTALL_PREFIX=$HOME/${{ matrix.hdf5_version }} -DHDF5_ENABLE_Z_LIB_SUPPORT=ON -DUSE_LIBAEC=ON + ninja && ninja install + + - name: Build + run: | + mkdir BUILD && cd BUILD + cmake -GNinja -DHDF5_ROOT=$HOME/${{ matrix.hdf5_version }} .. + ninja + + - name: Test + run: | + cd BUILD && ctest --output-on-failure + + # Job testing several compilers on a stable Linux + # ==================================================== + Linux_Compilers: + runs-on: ubuntu-20.04 + strategy: + matrix: + env: [ + {CC: clang-10, CXX: clang++-10}, + {CC: clang-12, CXX: clang++-12}, + {CC: gcc-9, CXX: g++-9}, + {CC: gcc-10, CXX: g++-10}, + ] + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: "Install libraries" + run: | + sudo apt-get -qq update + sudo apt-get -qq install libboost-all-dev libhdf5-dev libsz2 ninja-build + + - name: Build + env: ${{matrix.env}} + run: | + CMAKE_OPTIONS=(-GNinja) + source $GITHUB_WORKSPACE/.github/build.sh + + - name: Test + working-directory: ${{github.workspace}}/build + run: ctest --output-on-failure -C $BUILD_TYPE + + + # Job to check using HighFive from other CMake projects + # ===================================================== + CMake_Project: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: "Install libraries" + run: | + sudo apt-get -qq update + sudo apt-get -qq install libboost-all-dev libhdf5-dev libsz2 ninja-build + + - name: "CMake Project Integration" + run: bash tests/test_project_integration.sh + + + # Job checking the benchmarks work + # ================================ + Benchmarks: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: "Install libraries" + run: | + sudo apt -y update + sudo apt -y install --no-install-recommends libhdf5-dev pkg-config + + - name: "Build benchmarks" + working-directory: ${{github.workspace}}/src/benchmarks + run: make + + - run: time ${{github.workspace}}/src/benchmarks/highfive_bench + + + # Job testing in OSX + # ======================= + OSX: + runs-on: macOS-10.15 + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: "Install libraries (OSX)" + run: brew install boost eigen hdf5 ninja xtensor + + - name: Build + run: | + CMAKE_OPTIONS=( + -GNinja + -DHIGHFIVE_USE_BOOST:BOOL=ON + -DHIGHFIVE_USE_EIGEN:BOOL=ON + -DHIGHFIVE_USE_XTENSOR:BOOL=ON + -DHIGHFIVE_BUILD_DOCS:BOOL=FALSE + -DHIGHFIVE_TEST_SINGLE_INCLUDES=ON + -DCMAKE_CXX_FLAGS="-coverage -O0" + ) + source $GITHUB_WORKSPACE/.github/build.sh + + - name: Test + working-directory: ${{github.workspace}}/build + run: ctest --output-on-failure -C $BUILD_TYPE + + + # Job testing in Windows + # =========================== + Windows: + runs-on: Windows-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - uses: mamba-org/provision-with-micromamba@main + with: + environment-file: doc/environment.yaml + environment-name: win-test + + - name: Build + shell: bash -l {0} + run: | + CMAKE_OPTIONS=( + -DHIGHFIVE_UNIT_TESTS=ON + -DHIGHFIVE_USE_BOOST:BOOL=ON + -DHIGHFIVE_USE_EIGEN:BOOL=ON + -DHIGHFIVE_USE_XTENSOR:BOOL=ON + -DHIGHFIVE_TEST_SINGLE_INCLUDES=ON + ) + source $GITHUB_WORKSPACE/.github/build.sh + + - name: Test + working-directory: ${{github.workspace}}/build + shell: bash -l {0} + run: ctest --output-on-failure -C $BUILD_TYPE + + # Job producing code coverage report + # ================================== + Code_coverage: + # When ubuntu version will be upgrade, you should look if xtensor is nowavailable + runs-on: ubuntu-20.04 + + steps: + - name: "Install libraries" + run: | + sudo apt-get update + sudo apt-get install lcov libboost-all-dev libhdf5-dev libeigen3-dev libopencv-dev libsz2 ninja-build + + - uses: actions/checkout@v3 + with: + fetch-depth: 2 + submodules: true + + - name: Build and test for code coverage + run: | + CMAKE_OPTIONS=( + -GNinja + -DHIGHFIVE_USE_BOOST:BOOL=ON + -DHIGHFIVE_USE_EIGEN:BOOL=ON + -DHIGHFIVE_USE_OPENCV:BOOL=ON + #-DHIGHFIVE_USE_XTENSOR:BOOL=ON + -DHIGHFIVE_TEST_SINGLE_INCLUDES=ON + -DHIGHFIVE_BUILD_DOCS:BOOL=FALSE + -DCMAKE_CXX_FLAGS="-coverage -O0" + ) + source $GITHUB_WORKSPACE/.github/build.sh + cd $HIGHFIVE_BUILD + (cd $GITHUB_WORKSPACE; lcov --capture --initial --directory . --no-external --output-file build/coverage-base.info) + cmake --build $HIGHFIVE_BUILD --target test + (cd $GITHUB_WORKSPACE; lcov --capture --directory . --no-external --output-file build/coverage-run.info) + lcov --add-tracefile coverage-base.info --add-tracefile coverage-run.info --output-file coverage-combined.info + bash <(curl -s https://codecov.io/bash) -f coverage-combined.info diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/clang_format.yml b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/clang_format.yml new file mode 100644 index 0000000000..99cb6e1b3b --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/clang_format.yml @@ -0,0 +1,36 @@ +name: ClangFormat + +concurrency: + group: ${{ github.workflow }}#${{ github.ref }} + cancel-in-progress: true + +on: + pull_request: + branches: + - master + paths-ignore: + - '**.md' + - '**.rst' + - 'doc/**' + +jobs: + Code_Format: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Run clang-format + run: | + clang-format --version + for i in $(git ls-files | grep ".[ch]pp$"); + do + clang-format -i "$i" > /dev/null 2>&1; + done + modified_files=$(git diff --name-only) + if [ -n "$modified_files" ]; + then + echo "Some files are not well formatted:" + echo $modified_files + exit 1 + fi diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/gh-pages.yml b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/gh-pages.yml new file mode 100644 index 0000000000..0f51447c46 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/gh-pages.yml @@ -0,0 +1,53 @@ +name: gh-pages + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + + publish: + + runs-on: ubuntu-latest + + defaults: + run: + shell: bash -l {0} + + steps: + + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - uses: mamba-org/provision-with-micromamba@main + with: + environment-file: doc/environment.yaml + environment-name: doc-build + + - name: Run doxygen + run: | + CMAKE_OPTIONS=( + -DHIGHFIVE_UNIT_TESTS=OFF + -DHIGHFIVE_USE_BOOST:BOOL=ON + -DHIGHFIVE_USE_EIGEN:BOOL=ON + -DHIGHFIVE_USE_XTENSOR:BOOL=ON + ) + cmake -B build -S . "${CMAKE_OPTIONS[@]}" + cmake --build build --target doc + cp -r doc/poster build/doc/html/ + + - name: Deploy to GitHub Pages + if: ${{ success() && github.ref == 'refs/heads/master' && github.event_name == 'push' }} + uses: crazy-max/ghaction-github-pages@v2 + with: + target_branch: gh-pages + build_dir: build/doc/html + jekyll: false + keep_history: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/integration_trigger.yml b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/integration_trigger.yml new file mode 100644 index 0000000000..3fe65f329f --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.github/workflows/integration_trigger.yml @@ -0,0 +1,15 @@ +name: Integration Test Trigger +on: + pull_request: + types: [closed] +jobs: + merge-PR: + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + steps: + - name: Trigger integration tests on BlueBrain/HighFive-testing + run: | + curl -X POST https://api.github.com/repos/BlueBrain/HighFive-testing/dispatches \ + -H 'Accept: application/vnd.github.everest-preview+json' \ + -u ${{ secrets.ACCESS_TOKEN }} \ + --data '{"event_type": "merge", "client_payload": { "repository": "'"$GITHUB_REPOSITORY"'" }}' diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.gitignore b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.gitignore new file mode 100644 index 0000000000..75c4e044b8 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.gitignore @@ -0,0 +1,5 @@ +build +tests/test_project +.idea + +.vs/ diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.gitmodules b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.gitmodules new file mode 100644 index 0000000000..615f78fe15 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.gitmodules @@ -0,0 +1,3 @@ +[submodule "deps/catch2"] + path = deps/catch2 + url = https://github.com/catchorg/Catch2.git diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.travis.yml b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.travis.yml new file mode 100644 index 0000000000..bc5d340810 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/.travis.yml @@ -0,0 +1,138 @@ +# Adapted from various sources, including: +# - Louis Dionne's Hana: https://github.com/ldionne/hana +# - Paul Fultz II's FIT: https://github.com/pfultz2/Fit +# - Eric Niebler's range-v3: https://github.com/ericniebler/range-v3 +# - Gabi Melman spdlog: https://github.com/gabime/spdlog + +sudo: required +language: cpp + +addons: &gcc7 + apt: + packages: + - g++-7 + - libboost-all-dev + - libhdf5-openmpi-dev + - libeigen3-dev + - ninja-build + sources: + - ubuntu-toolchain-r-test + +matrix: + include: + # Older linux (trusty) with default gcc + # Install serial hdf5 + build serial + - os: linux + dist: trusty + env: + - HIGHFIVE_USE_XTENSOR=False + - HIGHFIVE_USE_OPENCV=False + - HIGHFIVE_PARALLEL_HDF5=False + - IS_BASE_ENVIRON=1 + addons: + apt: + packages: + - libboost-all-dev + - libeigen3-dev + - libhdf5-serial-dev + - ninja-build + + # Linux gcc-7 + # Install parallel hdf5 + build parallel + - os: linux + dist: xenial + env: + - GCC_VERSION=7 + - HIGHFIVE_USE_XTENSOR=True + - HIGHFIVE_USE_OPENCV=False + - HIGHFIVE_PARALLEL_HDF5=True + addons: *gcc7 + + # Mac OSX XCode 10 + - os: osx + osx_image: xcode10.3 + env: + - HIGHFIVE_USE_XTENSOR=True + - HIGHFIVE_USE_OPENCV=True + - HIGHFIVE_PARALLEL_HDF5=False + + # Windows + - os: windows + env: + - HIGHFIVE_USE_XTENSOR=True + - HIGHFIVE_USE_OPENCV=True + - HIGHFIVE_PARALLEL_HDF5=False + +env: + global: + - MINCONDA_VERSION="latest" + - MINCONDA_LINUX="Linux-x86_64" + - MINCONDA_OSX="MacOSX-x86_64" + +install: + - export HOMEBREW_NO_AUTO_UPDATE=1 # for reproducibility, dont autoupdate + + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + MINCONDA_OS=$MINCONDA_LINUX; + elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + if [ "$BREW_USE_LATEST" ]; then + brew update; + brew install hdf5; brew upgrade hdf5; + fi; + brew install boost hdf5 eigen ninja; + MINCONDA_OS=$MINCONDA_OSX; + fi + + - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then + export CMAKE_GENERATOR="Visual Studio 15 2017 Win64" ; + export TESTS_TARGET="RUN_TESTS"; + choco install --yes miniconda3 ; + source C:/Tools/miniconda3/Scripts/activate ; + else + export CMAKE_GENERATOR="Ninja" ; + export TESTS_TARGET="test"; + wget "http://repo.continuum.io/miniconda/Miniconda3-$MINCONDA_VERSION-$MINCONDA_OS.sh" -O miniconda.sh; + bash miniconda.sh -b -p $HOME/miniconda ; + source $HOME/miniconda/bin/activate; + hash -r ; + fi + - conda config --set always_yes yes --set changeps1 no + - conda update -q conda + - conda install -c conda-forge mamba + - if [[ "$HIGHFIVE_USE_XTENSOR" == "True" ]]; then + mamba install -c conda-forge xtl xsimd xtensor; + fi + - if [[ "$HIGHFIVE_USE_OPENCV" == "True" ]]; then + mamba install -c conda-forge libopencv opencv; + fi + - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then + mamba install -c conda-forge boost-cpp hdf5 eigen; + fi + +before_script: + - if [ -n "$GCC_VERSION" ]; then export CXX="g++-${GCC_VERSION}" CC="gcc-${GCC_VERSION}"; fi + - if [ -n "$CLANG_VERSION" ]; then export CXX="clang++-${CLANG_VERSION}" CC="clang-${CLANG_VERSION}"; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export CXX="clang++" CC="clang"; fi + - which $CXX + - which $CC + - $CXX --version + - cmake --version + +script: + - cd ${TRAVIS_BUILD_DIR} + - mkdir -p build && pushd build + - > + cmake --warn-uninitialized --debug-output + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON + -DHIGHFIVE_TEST_SINGLE_INCLUDES:BOOL=ON + -DHIGHFIVE_PARALLEL_HDF5:BOOL=${HIGHFIVE_PARALLEL_HDF5} + -DHIGHFIVE_USE_EIGEN:BOOL=ON + -DHIGHFIVE_USE_XTENSOR:BOOL=${HIGHFIVE_USE_XTENSOR} + -DHIGHFIVE_USE_OPENCV:BOOL=${HIGHFIVE_USE_OPENCV} + -G "${CMAKE_GENERATOR}" ../ + - cmake --build . + - CTEST_OUTPUT_ON_FAILURE=1 cmake --build . --target ${TESTS_TARGET} + - popd + - if [ $IS_BASE_ENVIRON ]; then + bash tests/test_project_integration.sh; + fi diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/AUTHORS.txt b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/AUTHORS.txt new file mode 100644 index 0000000000..ed89f76832 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/AUTHORS.txt @@ -0,0 +1,52 @@ +Adrien Devresse +Alexandru Săvulescu +Ali Can Demiralp +Angelos Plastropoulos +Chris Byrohl +Chris De Grendele +@contre +Daniel Nachbaur +Dmitri Bichko +@eudoxos +Fernando L. Pereira +@guoxy +Haoran Ni +Henry Schreiner +@JaWSnl +Jia Li +John W. Peterson +Jonas Karlsson +Jorge Blanco Alonso +Kerim Khemraev +Luc Grosheintz +Marian Heil +Mario Emmenlauer +Mark Bicknell +Mathieu Bernard +Matthias Wolf +Maximilian Nöthe +@Mightrider +Mike DePalatis +Mike Gevaert +Nico Jahn +Nicolas Cornu (maintainer) +Omar Awile +Pablo Toharia +Philip Deegan +Philipp Gloor +Pramod Kumbhar +Richard Shaw +Rick Nitsche +Rob Latham +Sergio Botelh +Sergio Rivas-Gomez +@spacescientist +Taiguara Tupinambás +@timocafe +Tino Wagner +Tobias Klauser +Tom de Geus +Tom Vander Aa +Tristan Carel +Wolf Vollprecht +Y. Yang diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CHANGELOG.md b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CHANGELOG.md new file mode 100644 index 0000000000..f6bf0bb2fa --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CHANGELOG.md @@ -0,0 +1,220 @@ +## Version 2.6.2 - 2022-11-10 +### Bug Fix + - Allow CMake to use Config mode to find HDF5. + +## Version 2.6.1 - 2022-11-08 +### Bug Fix + - Version bump in `CMakeLists.txt`. + +## Version 2.6.0 - 2022-11-08 +### New Features + - Enable page buffered reading (#639). + +### Improvements + - Warn when detecting lossy reads or write of floating point data (#636). + +## Version 2.5.1 - 2022-11-07 +### Bug Fix + - Fix missing `inline` for collective metadata properties. + +## Version 2.5.0 - 2022-11-03 +### New Features + - Enable collective MPI IO using the Data Transfer Property (#623). Thanks to Rob Latham. + - Add a support for half-precision (16-bit) floating-point based on the Half library (http://half.sourceforge.net) (#587). Thanks to Sergio Botelh. + - Enable choosing the allocation time of datasets (#627). + - Add possibility to get and set file space strategy. For page allocated files wrap the API to set/retrieve the page size (#618). + - Add API for getting Access and Create property lists of HighFive objects (#629). + - Let users configure metadata reads and writes at file level (#624). Thanks to Rob Latham. + +### Improvements + - MPIOFileDriver is now deprecated. Use FileAccessProps (#622). + - Support of block argument in API (#584). + - Serialization of types is now automagic and so recursive (#586). + - Add an argument to specific File Create Properties in File class construtor (#626). + +### Bug Fixes + - Padding of Compound Types (#581). + - Compilation with Visual Studio with C++17 or later (#578). Thanks to Mark Bicknell. + - Avoid leaking when printing stack for error (#583). + +## Version 2.4.1 - 2022-05-11 +### New Features + - Support `std::complex`. Thanks to Philipp. + +### Improvements + - Improve EnumType/CompoundType + - Revert quirky behaviour of `select(const HyperSlab&)`. + - All `get_name` functions takes `size_t` and not `hsize_t`. + - Remove nix recipes. + +### Bug Fixes + - Computation of padding. + - Related to `0` being an invalid hid but not equal to `H5I_INVALID_HID`. + +## Version 2.4.0 - 2022-04-05 +### New Features + - Construct a compound type from an already existing hid (#469). Thanks to Maximilian Nöthe. + - Add support for long double (#494) + - Add support for H5Pset_libver_bounds and H5Pset_meta_block_size support (#500) + - New interface to select complex hyperslabs, irregular hyperslabs are limited to/from 1D array (#538 and #545) +### Improvements + - Use inline where it is needed, otherwise some code can lead to "multiple definition" (#516). Thanks to Chris Byrohl. + - Use Catch2 instead of boost for tests, reduces dependencies (#521) + - CI reworked to test external libraries more thoroughly (boost, eigen, xtensor) (#536) +### Bug Fixes + - Better support of const types (#460). Thanks to Philip Deegan. + - Vector of size zero was previously lead to UB (#502). Thanks to Haoran Ni. + - Use H5T_NATIVE_SCHAR instead of H5T_NATIVE_CHAR for "signed char" (#518) + +## Version 2.3.1 - 2021-08-04 +### Improvements + - Clean cmake files from old code (#465) + - Adding path to type warning message (#471) + - Adding compound types example, w dataset and attr (#467) + +### Bug Fixes + - Resolve an issue where padding of nested compound types were being calculated incorrectly (#461) (#468) + - GHA: drop previous runs (#462) + +## Version 2.3 - 2021-05-07 +### New Features: + - Add SZIP support (#435) + - Add option *parents* to createDataSet (#425) + - Implementing getting the filename dynamically (#424) + - Ability to create soft and external links (#421) + - Generalizing getPath and adding getFile as PathTraits (#417) + +### Improvements: + - Unified reading/writing attributes and datasets (#450) + - Old compilers have been removed from docker image (#430) + - Cleaning up and improving property lists (#429) + - An example using hdf5 references (#396) (#397) + - Add all property lists alias for completeness (#427) + - Add property CreateIntermediateGroup (#423) + - Add code coverage through codecov.io (#420) + - Introducing GitHub Actions CI (#416) + - Create issue and PR templates (#412) + - Initialize SilenceHDF5 to true in _exist (#411) + - Generalizing xtensor API (#407) + - Minor doc updates (#409) + - Fixing minor error in GH Action (#408) + - Uploading docs to gh-pages using GitHub Actions (#403) + - Various minor documentation updates (#405) + - optional documentation building in cmake (#377) + - From can be automatic now (#384) + - get_dim_vector in inspector (#383) + - Put type_of_array in inspector (#382) + - Move array_dims in the future manipulator (#381) + - Unify interface of H5Attribute with H5Slice_traits (#378) + - Use std::move in NRVO depending of version of GCC (#375) + - Fixed typo '-DD' to '-D' in 'Dependencies'. (#371) + - Changing date format (#364) + +### Bug fixes: + - Fix use before initialization (#414) + - Adding CMake include guard (#389) + +## Version 2.2.2 - 2020-07-30 +### New Features: + - [H5Easy] Adding OpenCV support (#343) + - [H5Easy] Enabling compression & Adding attributes (#337) + - Adding missing function to H5Attribute (#337) + - Add methods to retrieve Node paths or Dataset names and rename objects (#346) + - Add a file with the current version number of HighFive (#349) + +### Improvements + - [H5Easy] Updating error message dump (#335) + - [H5Easy] Switching implementation to partial specialization based on static dispatch (#327) + - Simplifying imports, new policy (#324) + +## Version 2.2.1 - 2020-04-28 +### Improvements + - Add a mechanism to not include target HighFive several times (#336) + - Fix SilenceHDF5 initialization for NodeTraits (#333) + +## Version 2.2 - 2020-03-23 +### New Features: + - Compound Types: API to register and read/write structs (#78). Thanks to Richard Shaw. + - Fixed-length strings. API via char[] and `FixedLenStringArray`(#277) + - Enum data types (#297) + - Datasets of HDF5 References. Support to dereference groups and datasets (#306) + - Objects (hard/soft link) can now be deleted with `unlink` (#284). Thanks to Tom Vander Aa. + - Attributes can be deleted with `deleteAttribute` (#239) + +### Improvements: + - `Attribute`s (metadata) now support additional types (#298) + - H5Easy: Reworked for compatibility with `Eigen::ref` and `Eigen::Map` (#291, #293) + - Hdf5 1.12 compatibility: working `Object::getInfo` and marking getAddress deprecated (#311) + - Strict compatibility with CMake 3.1 and C++11 (#304) + - CMake: Dependencies may be re-detected on FindPackage, fixed export targets and added integration tests (#255, #304, #312, #317) + - Support for array of `Eigen::Matrix` (#258) + - Selection: `ElementSet` working for N-dimensions (#247) + +### Bug Fixes: + - Shortcut syntax with c arrays (#273) + - Compatibility with in MSVC (Exception messages #263 and avoid throwing in `exist` check #308) + +## Version 2.1 - 2019-10-30 +### New Features: + - Inspection: API to get the type of links/objects and datasets data-types (#221) + - H5Easy: API for simple import/export to Eigen and xtensor (#141) + - Support for chunk and deflate configuration at dataset creation/open (#125). Added generic RawPropertyLists. (#157) + - Recursive `createGroup` and `exist` (#152) + - Shortcut syntax: ability to create a filled dataset in a single line (#130) + - DataSet now accepts `std::complex` and `std::array`'s (#128, #129) + +### Improvements: + - Improved compat with MSVC and ICC compilers + - CMake build system: modernized, create exported targets, better messages, etc. + - Building and publishing documentation: https://bluebrain.github.io/HighFive/ + - Several other. See #231 + +### Bug Fixes: + - Fixed header dependencies. They are now all include-able (#225) + - Fixed read/write of N-Dimensional data as nested vectors (#191) + - Fixed data broadcasting for reading (#136) + +## Version 2.0 - 2018-07-19 + - First version with C++11 enforcement + - Support for property list + - Support for Chunking + - Support for Compression / Deflate + - Fix: missing move constructor for properties + - Fix: typo in MPI IO driver + - Fix: several typo fixes + - Fix: Add missing include + +## Version 1.5 - 2018-01-06 + - SliceTraits::read split in two overloads, the first one for plain C arrays + and the second one for other types. + - Add support for complex number + - Add exist() method to the API + - Will be last release before 2.0 and enforcement of C++11 + +## Version 1.4 - 2017-08-25 + - Support id selection for the `select` function + - Suport STL containers of const elements + - Support scalar values and strings management + - Fix attribute assignment issue #40 + - Fix Object assignment operator missing unref (possible memory leak ) + - Introduce SilenceHDF5 for HDF5 error report + - Fix a unit test issue with SilenceHDF5 + +## Version 1.3 - 2017-06-21 + - Minor fixes + +## Version 1.2 - 2017-04-03 + - Add Attribute support for Dataset + - Extend testing of Attribute support + - Fix issue related to multiple definitions in default driver + - Add more examples about attribute support + +## Version 1.1 - 2017-03-23 + - Add support and examples for Parallel HDF5 + - Initial implementation for H5 Properties + - Support for Attributes + - Improve documentation + - Add example for boost.Ublas matrix support + +## Version 1.0 - Init + - Initial release diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveConfig.cmake.in b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveConfig.cmake.in new file mode 100644 index 0000000000..c37fffdf34 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveConfig.cmake.in @@ -0,0 +1,67 @@ +function(copy_interface_properties target source) + foreach(prop + INTERFACE_COMPILE_DEFINITIONS + INTERFACE_COMPILE_FEATURES + INTERFACE_COMPILE_OPTIONS + INTERFACE_INCLUDE_DIRECTORIES + INTERFACE_LINK_LIBRARIES + INTERFACE_SOURCES + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES) + set_property(TARGET ${target} APPEND PROPERTY ${prop} $) + endforeach() +endfunction() + +if(TARGET HighFive) + return() +endif() + +# Get HighFive targets +include("${CMAKE_CURRENT_LIST_DIR}/HighFiveTargets.cmake") + +# Recreate combined HighFive +add_library(HighFive INTERFACE IMPORTED) +set_property(TARGET HighFive APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS MPI_NO_CPPBIND) # No c++ bindings + +# Ensure we activate required C++ std +if(NOT DEFINED CMAKE_CXX_STANDARD) + if(CMAKE_VERSION VERSION_LESS 3.8) + message(WARNING "HighFive requires minimum C++11. (C++14 for XTensor) \ + You may need to set CMAKE_CXX_STANDARD in you project") + else() + # A client request for a higher std overrides this + target_compile_features(HighFive INTERFACE cxx_std_11) + endif() +endif() + +# If the user sets this flag, all dependencies are preserved. +# Useful in central deployments where dependencies are not prepared later +set(HIGHFIVE_USE_INSTALL_DEPS @HIGHFIVE_USE_INSTALL_DEPS@ CACHE BOOL "Use original Highfive dependencies") +if(HIGHFIVE_USE_INSTALL_DEPS) + # If enabled in the deploy config, request c++14 + if(@HIGHFIVE_USE_XTENSOR@ AND NOT CMAKE_VERSION VERSION_LESS 3.8) + set_property(TARGET HighFive APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_14) + endif() + message(STATUS "HIGHFIVE @PROJECT_VERSION@: Using original dependencies (HIGHFIVE_USE_INSTALL_DEPS=YES)") + copy_interface_properties(HighFive HighFive_HighFive) + return() +endif() + +# When not using the pre-built dependencies, give user options +if(DEFINED HIGHFIVE_USE_BOOST) + set(HIGHFIVE_USE_BOOST ${HIGHFIVE_USE_BOOST} CACHE BOOL "Enable Boost Support") +else() + set(HIGHFIVE_USE_BOOST @HIGHFIVE_USE_BOOST@ CACHE BOOL "Enable Boost Support") +endif() +set(HIGHFIVE_USE_EIGEN "${HIGHFIVE_USE_EIGEN}" CACHE BOOL "Enable Eigen testing") +set(HIGHFIVE_USE_XTENSOR "${HIGHFIVE_USE_XTENSOR}" CACHE BOOL "Enable xtensor testing") +set(HIGHFIVE_PARALLEL_HDF5 @HIGHFIVE_PARALLEL_HDF5@ CACHE BOOL "Enable Parallel HDF5 support") + +if(HIGHFIVE_USE_XTENSOR AND NOT CMAKE_VERSION VERSION_LESS 3.8) + set_property(TARGET HighFive APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_14) +endif() + +message(STATUS "HIGHFIVE @PROJECT_VERSION@: (Re)Detecting Highfive dependencies (HIGHFIVE_USE_INSTALL_DEPS=NO)") +include("${CMAKE_CURRENT_LIST_DIR}/HighFiveTargetDeps.cmake") +foreach(dependency HighFive_libheaders libdeps) + copy_interface_properties(HighFive ${dependency}) +endforeach() diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveTargetDeps.cmake b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveTargetDeps.cmake new file mode 100644 index 0000000000..6f8dbaec56 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveTargetDeps.cmake @@ -0,0 +1,93 @@ +# Link against target system libs +# ------------------------------- + +if(NOT TARGET libdeps) + + # Independent target to make it possible to have new dependencies each build + add_library(libdeps INTERFACE) + + # HDF5 + if(NOT DEFINED HDF5_C_LIBRARIES) + set(HDF5_PREFER_PARALLEL ${HIGHFIVE_PARALLEL_HDF5}) + find_package(HDF5 REQUIRED) + endif() + + if(HIGHFIVE_PARALLEL_HDF5 AND NOT HDF5_IS_PARALLEL) + message(WARNING "Parallel HDF5 requested but libhdf5 doesnt support it") + endif() + + target_include_directories(libdeps SYSTEM INTERFACE ${HDF5_INCLUDE_DIRS}) + target_link_libraries(libdeps INTERFACE ${HDF5_LIBRARIES}) + target_compile_definitions(libdeps INTERFACE ${HDF5_DEFINITIONS}) + + # Boost + if(HIGHFIVE_USE_BOOST) + set(Boost_NO_BOOST_CMAKE TRUE) # Consistency + find_package(Boost REQUIRED COMPONENTS system serialization) + # Dont use imported targets yet, not avail before cmake 3.5 + target_include_directories(libdeps SYSTEM INTERFACE ${Boost_INCLUDE_DIR}) + target_compile_definitions(libdeps INTERFACE BOOST_ALL_NO_LIB H5_USE_BOOST) + endif() + + # Half + if(HIGHFIVE_USE_HALF_FLOAT) + find_file(FOUND_HALF half.hpp) + if (NOT FOUND_HALF) + message(FATAL_ERROR "Half-precision floating-point support requested but file half.hpp not found") + endif() + target_compile_definitions(libdeps INTERFACE H5_USE_HALF_FLOAT) + endif() + + # Eigen + if(HIGHFIVE_USE_EIGEN) + if (NOT EIGEN3_INCLUDE_DIRS) + find_package(Eigen3 NO_MODULE) + if(Eigen3_FOUND) + message(STATUS "Found Eigen ${Eigen3_VERSION}: ${EIGEN3_INCLUDE_DIRS}") + else() + find_package(PkgConfig) + pkg_check_modules(EIGEN3 REQUIRED eigen3) + endif() + endif() + if (NOT EIGEN3_INCLUDE_DIRS) + message(FATAL_ERROR "Eigen was requested but could not be found") + endif() + target_include_directories(libdeps SYSTEM INTERFACE ${EIGEN3_INCLUDE_DIRS}) + target_compile_definitions(libdeps INTERFACE H5_USE_EIGEN) + endif() + + # xtensor + if(HIGHFIVE_USE_XTENSOR) + if (NOT xtensor_INCLUDE_DIRS) + find_package(xtensor REQUIRED) + endif() + if (NOT xtl_INCLUDE_DIRS) + find_package(xtl REQUIRED) + endif() + target_include_directories(libdeps SYSTEM INTERFACE ${xtensor_INCLUDE_DIRS} ${xtl_INCLUDE_DIRS}) + target_compile_definitions(libdeps INTERFACE H5_USE_XTENSOR) + endif() + + # OpenCV + if(HIGHFIVE_USE_OPENCV) + if (NOT OpenCV_INCLUDE_DIRS) + find_package(OpenCV REQUIRED) + endif() + target_include_directories(libdeps SYSTEM INTERFACE ${OpenCV_INCLUDE_DIRS}) + target_link_libraries(libdeps INTERFACE ${OpenCV_LIBS}) + target_compile_definitions(libdeps INTERFACE H5_USE_OPENCV) + endif() + + # MPI + if(HIGHFIVE_PARALLEL_HDF5 OR HDF5_IS_PARALLEL) + find_package(MPI REQUIRED) + target_include_directories(libdeps SYSTEM INTERFACE ${MPI_CXX_INCLUDE_PATH}) + target_link_libraries(libdeps INTERFACE ${MPI_CXX_LIBRARIES}) + if(CMAKE_VERSION VERSION_LESS 3.13) + target_link_libraries(libdeps INTERFACE ${MPI_CXX_LINK_FLAGS}) + else() + target_link_options(libdeps INTERFACE "SHELL:${MPI_CXX_LINK_FLAGS}") + endif() + endif() + +endif() diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveTargetExport.cmake b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveTargetExport.cmake new file mode 100644 index 0000000000..9906f39513 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/HighFiveTargetExport.cmake @@ -0,0 +1,48 @@ + +# Define the HighFive INTERFACE library +add_library(libheaders INTERFACE) + +target_include_directories(libheaders INTERFACE + "$" + "$") + +# Combined HighFive +add_library(HighFive INTERFACE) +target_compile_definitions(HighFive INTERFACE MPI_NO_CPPBIND) # No c++ bindings +target_link_libraries(HighFive INTERFACE libheaders libdeps) + + +# Generate ${PROJECT_NAME}Config.cmake + +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/HighFiveConfig.cmake.in + ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake + INSTALL_DESTINATION share/${PROJECT_NAME}/CMake) + +write_basic_package_version_file( + ${PROJECT_NAME}ConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion) + +install(FILES + CMake/HighFiveTargetDeps.cmake + ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake + ${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake + DESTINATION share/${PROJECT_NAME}/CMake) + + +# Provides IMPORTED targets when using this project from build/install trees. + +# Specify targets to include in the HighFive Exports +install(TARGETS HighFive libheaders libdeps + EXPORT HighFiveTargets) + +# Generate & install the Export for the INSTALL_INTERFACE +install(EXPORT HighFiveTargets + NAMESPACE HighFive_ + FILE HighFiveTargets.cmake + DESTINATION share/${PROJECT_NAME}/CMake) + +# Generate the Export for the BUILD_INTERACE (hardly used) +export(EXPORT HighFiveTargets + FILE "${PROJECT_BINARY_DIR}/HighFiveTargets.cmake") diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/CompilerFlagsHelpers.cmake b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/CompilerFlagsHelpers.cmake new file mode 100644 index 0000000000..e3755ad8c6 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/CompilerFlagsHelpers.cmake @@ -0,0 +1,59 @@ +# CompilerFlagsHelpers.cmake +# +# set of Convenience functions for portable compiler flags +# +# License: BSD 3 +# +# Copyright (c) 2016, Adrien Devresse +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +set(SUPPORTED_COMPILER_LANGUAGE_LIST "C;CXX") + +foreach(COMPILER_LANGUAGE ${SUPPORTED_COMPILER_LANGUAGE_LIST}) + + # XLC compiler + if(CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID MATCHES "XL") + + # XLC -qinfo=all is awfully verbose on any platforms that use the GNU STL + # Enable by default only the relevant one + set(CMAKE_${COMPILER_LANGUAGE}_WARNING_ALL "-qformat=all -qinfo=lan:trx:ret:zea:cmp:ret") + + ## GCC, CLANG, rest of the world + elseif(CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID MATCHES "Clang" + OR CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID MATCHES "GNU" + OR CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID MATCHES "Intel") + set(CMAKE_${COMPILER_LANGUAGE}_WARNING_ALL " -Wall -Wextra") + string(CONCAT CMAKE_${COMPILER_LANGUAGE}_WARNING_DEBUG + " -Werror -Wshadow -Wnon-virtual-dtor -Wunused -Woverloaded-virtual" + " -Wformat=2 -Wconversion -Wsign-conversion -Wno-error=deprecated-declarations" + ) + if(NOT CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_ICC) + string(CONCAT CMAKE_${COMPILER_LANGUAGE}_WARNING_DEBUG + ${CMAKE_${COMPILER_LANGUAGE}_WARNING_DEBUG} + " -Wpedantic -Wcast-align -Wdouble-promotion" + ) + endif() + endif() + + if(CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID MATCHES "GNU" + AND (CMAKE_${COMPILER_LANGUAGE}_COMPILER_VERSION VERSION_GREATER "4.7.0")) + set(CMAKE_${COMPILER_LANGUAGE}_WARNING_ALL + "${CMAKE_${COMPILER_LANGUAGE}_WARNING_ALL} -Wno-unused-parameter") + endif() + +endforeach() + + + diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/ReleaseDebugAutoFlags.cmake b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/ReleaseDebugAutoFlags.cmake new file mode 100644 index 0000000000..2b980698eb --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/ReleaseDebugAutoFlags.cmake @@ -0,0 +1,45 @@ +# ReleaseDebugAutoFlags.cmake +# +# Release / Debug configuration helper +# +# License: BSD 3 +# +# Copyright (c) 2016, Adrien Devresse +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +## default configuration +if(NOT CMAKE_BUILD_TYPE AND (NOT CMAKE_CONFIGURATION_TYPES)) + set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE) + message(STATUS "Setting build type to '${CMAKE_BUILD_TYPE}' as none was specified.") +endif() + + +# Different configuration types: +# +# Debug : Optimized for debugging, include symbols +# Release : Release mode, no debuginfo +# RelWithDebInfo : Distribution mode, basic optimizations for potable code with debuginfos + +include(CompilerFlagsHelpers) + + +string(APPEND CMAKE_C_FLAGS_RELEASE "${CMAKE_C_WARNING_ALL}") +string(APPEND CMAKE_C_FLAGS_DEBUG "${CMAKE_C_WARNING_ALL}" "${CMAKE_C_WARNING_DEBUG}") +string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_WARNING_ALL}" "${CMAKE_C_WARNING_DEBUG}") + + +string(APPEND CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_WARNING_ALL}") +string(APPEND CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_WARNING_ALL}" "${CMAKE_CXX_WARNING_DEBUG}") +string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_WARNING_ALL}" "${CMAKE_C_WARNING_DEBUG}") diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/TestHelpers.cmake b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/TestHelpers.cmake new file mode 100644 index 0000000000..f3ca1cb741 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMake/config/TestHelpers.cmake @@ -0,0 +1,113 @@ +# TestHelpers.cmake +# +# set of Convenience functions for unit testing with cmake +# +# License: BSD 3 +# +# Copyright (c) 2016, Adrien Devresse +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +## +# enable or disable detection of SLURM and MPIEXEC +option(AUTO_TEST_WITH_SLURM "automatically add srun as test prefix in a SLURM environment" TRUE) +option(AUTO_TEST_WITH_MPIEXEC "automatically add mpiexec as test prefix in a MPICH2/OpenMPI environment" TRUE) + +### +## +## Basic SLURM support +## the prefix "srun" is added to any test in the environment +## For a slurm test execution, simply run "salloc [your_exec_parameters] ctest" +## +## +if(AUTO_TEST_WITH_SLURM) + if(NOT DEFINED SLURM_SRUN_COMMAND) + find_program(SLURM_SRUN_COMMAND + NAMES "srun" + HINTS "${SLURM_ROOT}/bin") + endif() + + if(SLURM_SRUN_COMMAND) + set(TEST_EXEC_PREFIX_DEFAULT "${SLURM_SRUN_COMMAND}") + set(TEST_MPI_EXEC_PREFIX_DEFAULT "${SLURM_SRUN_COMMAND}") + set(TEST_MPI_EXEC_BIN_DEFAULT "${SLURM_SRUN_COMMAND}") + set(TEST_WITH_SLURM ON) + message(STATUS " - AUTO_TEST_WITH_SLURM with slurm cmd ${TEST_EXEC_PREFIX_DEFAULT} ") + message(STATUS " -- set test execution prefix to ${TEST_EXEC_PREFIX_DEFAULT} ") + message(STATUS " -- set MPI test execution prefix to ${TEST_MPI_EXEC_PREFIX_DEFAULT} ") + endif() + +endif() + +### +## Basic MPIExec support, will just forward mpiexec as prefix +## +if(AUTO_TEST_WITH_MPIEXEC AND NOT TEST_WITH_SLURM) + + if(NOT DEFINED MPIEXEC) + find_program(MPIEXEC + NAMES "mpiexec" + HINTS "${MPI_ROOT}/bin") + endif() + + + if(MPIEXEC) + set(TEST_MPI_EXEC_PREFIX_DEFAULT "${MPIEXEC}") + set(TEST_MPI_EXEC_BIN_DEFAULT "${MPIEXEC}") + set(TEST_WITH_MPIEXEC ON) + message(STATUS " - AUTO_TEST_WITH_MPIEXEC cmd ${MPIEXEC} ") + message(STATUS " -- set MPI test execution prefix to ${TEST_MPI_EXEC_PREFIX_DEFAULT} ") + + endif() + +endif() + + + +### +## MPI executor program path without arguments used for testing. +## default: srun or mpiexec if found +## +set(TEST_MPI_EXEC_BIN "${TEST_MPI_EXEC_BIN_DEFAULT}" CACHE STRING "path of the MPI executor (mpiexec, mpirun) for test execution") + + + +### +## Test execution prefix. Override this variable for any execution prefix required in clustered environment +## +## To specify manually a command with argument, e.g -DTEST_EXEC_PREFIX="/var/empty/bin/srun;-n;-4" for a srun execution +## with 4 nodes +## +## default: srun if found +## +set(TEST_EXEC_PREFIX "${TEST_EXEC_PREFIX_DEFAULT}" CACHE STRING "prefix command for the test executions") + + + +### +## Test execution prefix specific for MPI programs. +## +## To specify manually a command with argument, use the cmake list syntax. e.g -DTEST_EXEC_PREFIX="/var/empty/bin/mpiexec;-n;-4" for an MPI execution +## with 4 nodes +## +## default: srun or mpiexec if found +## +set(TEST_MPI_EXEC_PREFIX "${TEST_MPI_EXEC_PREFIX_DEFAULT}" CACHE STRING "prefix command for the MPI test executions") + + + + + + + diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMakeLists.txt b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMakeLists.txt new file mode 100644 index 0000000000..27746c2ff6 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/CMakeLists.txt @@ -0,0 +1,124 @@ +cmake_minimum_required(VERSION 3.1) +if(${CMAKE_VERSION} VERSION_LESS 3.13) + cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) +else() + cmake_policy(VERSION 3.13) +endif() + +project(HighFive VERSION 2.6.2) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/highfive/H5Version.hpp.in + ${CMAKE_CURRENT_BINARY_DIR}/include/highfive/H5Version.hpp) +# INCLUDES +list(APPEND CMAKE_MODULE_PATH + ${PROJECT_SOURCE_DIR}/CMake + ${PROJECT_SOURCE_DIR}/CMake/portability + ${PROJECT_SOURCE_DIR}/CMake/config) + +# OPTIONS +# Compatibility within Highfive 2.x series +set(USE_BOOST ON CACHE BOOL "Enable Boost Support") +set(USE_EIGEN OFF CACHE BOOL "Enable Eigen testing") +set(USE_XTENSOR OFF CACHE BOOL "Enable xtensor testing") +set(USE_OPENCV OFF CACHE BOOL "Enable OpenCV testing") +mark_as_advanced(USE_BOOST USE_EIGEN USE_XTENSOR) + +set(HIGHFIVE_UNIT_TESTS AUTO CACHE STRING "Enable unit tests (requires Catch2 to be present)") +set_property(CACHE HIGHFIVE_UNIT_TESTS PROPERTY STRINGS AUTO ON OFF) + +option(HIGHFIVE_USE_BOOST "Enable Boost Support" ${USE_BOOST}) +option(HIGHFIVE_USE_HALF_FLOAT "Enable half-precision floats" ${USE_HALF_FLOAT}) +option(HIGHFIVE_USE_EIGEN "Enable Eigen testing" ${USE_EIGEN}) +option(HIGHFIVE_USE_OPENCV "Enable OpenCV testing" ${USE_OPENCV}) +option(HIGHFIVE_USE_XTENSOR "Enable xtensor testing" ${USE_XTENSOR}) +option(HIGHFIVE_EXAMPLES "Compile examples" ON) +option(HIGHFIVE_PARALLEL_HDF5 "Enable Parallel HDF5 support" OFF) +option(HIGHFIVE_BUILD_DOCS "Enable documentation building" ON) + +# In deployments we probably don't want/cant have dynamic dependencies +option(HIGHFIVE_USE_INSTALL_DEPS "End applications by default use detected dependencies here" OFF) +mark_as_advanced(HIGHFIVE_USE_INSTALL_DEPS) + + +# Check compiler cxx_std requirements +# ----------------------------------- + +if(CMAKE_CXX_STANDARD EQUAL 98) + message(FATAL_ERROR "HighFive needs to be compiled with at least C++11") +endif() + +if(NOT DEFINED CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) +endif() + +if(HIGHFIVE_USE_XTENSOR) + set(CMAKE_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD_REQUIRED ON) +endif() + + +# Search dependencies (hdf5, boost, eigen, xtensor, mpi) and build target highfive_deps +include(${PROJECT_SOURCE_DIR}/CMake/HighFiveTargetDeps.cmake) + +# Set-up HighFive to be used in 3rd party project using exports. Create a HighFive target +include(${PROJECT_SOURCE_DIR}/CMake/HighFiveTargetExport.cmake) + +# Installation of headers (HighFive is only interface) +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ + DESTINATION "include" + PATTERN "*.in" EXCLUDE) + +# Installation of configured headers +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ + DESTINATION "include") + + +# Preparing local building (tests, examples) +# ------------------------------------------ + +# Disable test if Boost was expressly disabled, or if HighFive is a sub-project +if (NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) + if(HIGHFIVE_UNIT_TESTS) + message(WARNING "Unit tests have been DISABLED.") + endif() + set(HIGHFIVE_UNIT_TESTS FALSE) +endif() + +if(HIGHFIVE_UNIT_TESTS) + if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/deps/catch2/CMakeLists.txt) + add_subdirectory(deps/catch2 EXCLUDE_FROM_ALL) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/deps/catch2/contrib) + else() + find_package(Catch2) + if(NOT HIGHFIVE_UNIT_TESTS STREQUAL "AUTO" AND HIGHFIVE_UNIT_TESTS AND NOT Catch2_FOUND) + message(FATAL_ERROR "Please provide a Catch2 installation or clone the submodule") + elseif(NOT Catch2_FOUND) + message(WARNING "No Catch2 installation was found; Disabling unit tests.") + set(HIGHFIVE_UNIT_TESTS OFF) + endif() + endif() +endif() + + +if(CMAKE_CXX_COMPILER_ID MATCHES "Intel") + # ICC gets mad if we shorten "int"s + add_definitions("-wd1682") +endif() + +# Set compile time flags _after_ including required dependencies +include(ReleaseDebugAutoFlags) + +if(HIGHFIVE_EXAMPLES) + add_subdirectory(src/examples) +endif() + +if(HIGHFIVE_UNIT_TESTS) + enable_testing() + add_subdirectory(tests/unit) +endif() + +if(HIGHFIVE_BUILD_DOCS) + add_subdirectory(doc) +endif() diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/LICENSE b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/LICENSE new file mode 100644 index 0000000000..bc1edcab2e --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/LICENSE @@ -0,0 +1,25 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/README.md b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/README.md new file mode 100644 index 0000000000..953f534a0c --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/README.md @@ -0,0 +1,225 @@ +# HighFive - HDF5 header-only C++ Library + +[![Build Status](https://travis-ci.org/BlueBrain/HighFive.svg?branch=master)](https://travis-ci.org/BlueBrain/HighFive) +[![Coverity Statys](https://scan.coverity.com/projects/13635/badge.svg)](https://scan.coverity.com/projects/highfive) +[![Doxygen -> gh-pages](https://github.com/BlueBrain/HighFive/workflows/gh-pages/badge.svg)](https://BlueBrain.github.io/HighFive) +[![codecov](https://codecov.io/gh/BlueBrain/HighFive/branch/master/graph/badge.svg?token=UBKxHEn7RS)](https://codecov.io/gh/BlueBrain/HighFive) +[![HighFive_Integration_tests](https://github.com/BlueBrain/HighFive-testing/actions/workflows/integration.yml/badge.svg)](https://github.com/BlueBrain/HighFive-testing/actions/workflows/integration.yml) + +Documentation: https://bluebrain.github.io/HighFive/ + +## Brief + +HighFive is a modern header-only C++11 friendly interface for libhdf5. + +HighFive supports STL vector/string, Boost::UBLAS, Boost::Multi-array, Eigen and Xtensor. It handles C++ from/to HDF5 with automatic type mapping. +HighFive does not require additional libraries (see dependencies) and supports both HDF5 thread safety and Parallel HDF5 (contrary to the official hdf5 cpp) + +It integrates nicely with other CMake projects by defining (and exporting) a HighFive target. + + +### Design +- Simple C++-ish minimalist interface +- No other dependency than libhdf5 +- Zero overhead +- Support C++11 + +### Feature support +- create/read/write files, datasets, attributes, groups, dataspaces. +- automatic memory management / ref counting +- automatic conversion of `std::vector` and nested `std::vector` from/to any dataset with basic types +- automatic conversion of `std::string` to/from variable length string dataset +- selection() / slice support +- parallel Read/Write operations from several nodes with Parallel HDF5 +- Advanced types: Compound, Enum, Arrays of Fixed-length strings, References +- half-precision (16-bit) floating-point datasets +- etc... (see [ChangeLog](./CHANGELOG.md)) + +### Dependencies +- hdf5 (dev) +- hdf5-mpi (optional, opt-in with -D*HIGHFIVE_PARALLEL_HDF5*=ON) +- boost >= 1.41 (recommended, opt-out with -D*HIGHFIVE_USE_BOOST*=OFF) +- eigen3 (optional, opt-in with -D*HIGHFIVE_USE_EIGEN*=ON) +- xtensor (optional, opt-in with -D*HIGHFIVE_USE_XTENSOR*=ON) +- half (optional, opt-in with -D*HIGHFIVE_USE_HALF_FLOAT*=ON) + + +## Examples + +#### Write a std::vector to 1D HDF5 dataset and read it back + +```c++ +#include + +using namespace HighFive; + +std::string filename = "/tmp/new_file.h5"; + +{ + // We create an empty HDF55 file, by truncating an existing + // file if required: + File file(filename, File::Truncate); + + std::vector data(50, 1); + file.createDataSet("grp/data", data); +} + +{ + // We open the file as read-only: + File file(filename, File::ReadOnly); + auto dataset = file.getDataSet("grp/data"); + + // Read back, with allocating: + auto data = dataset.read>(); + + // Because `data` has the correct size, this will + // not cause `data` to be reallocated: + dataset.read(data); +} +``` + +**Note:** `H5File.hpp` is the top-level header of HighFive core which should be always included. + +**Note:** For advanced usecases the dataset can be created without immediately +writing to it. This is common in MPI-IO related patterns, or when growing a +dataset over the course of a simulation. + +#### Write a 2 dimensional C double float array to a 2D HDF5 dataset + +See [create_dataset_double.cpp](src/examples/create_dataset_double.cpp) + +#### Write and read a matrix of double float (boost::ublas) to a 2D HDF5 dataset + +See [boost_ublas_double.cpp](src/examples/boost_ublas_double.cpp) + +#### Write and read a subset of a 2D double dataset + +See [select_partial_dataset_cpp11.cpp](src/examples/select_partial_dataset_cpp11.cpp) + +#### Create, write and list HDF5 attributes + +See [create_attribute_string_integer.cpp](src/examples/create_attribute_string_integer.cpp) + +#### And others + +See [src/examples/](src/examples/) subdirectory for more info. + + +### Compiling with HighFive + +```bash +c++ -o program -I/path/to/highfive/include source.cpp -lhdf5 +``` + +### H5Easy + +For several 'standard' use cases the [highfive/H5Easy.hpp](include/highfive/H5Easy.hpp) interface is available. It allows: + +* Reading/writing in a single line of: + + - scalars (to/from an extendible DataSet), + - strings, + - vectors (of standard types), + - [Eigen::Matrix](http://eigen.tuxfamily.org) (optional, enable CMake option `HIGHFIVE_USE_EIGEN`), + - [xt::xarray](https://github.com/QuantStack/xtensor) and [xt::xtensor](https://github.com/QuantStack/xtensor) + (optional, enable CMake option `HIGHFIVE_USE_XTENSOR`). + - [cv::Mat_](https://docs.opencv.org/master/df/dfc/classcv_1_1Mat__.html) + (optional, enable CMake option `HIGHFIVE_USE_OPENCV`). + +* Getting in a single line: + + - the size of a DataSet, + - the shape of a DataSet. + +#### Example + +```cpp +#include + +int main() { + H5Easy::File file("example.h5", H5Easy::File::Overwrite); + + int A = ...; + H5Easy::dump(file, "/path/to/A", A); + + A = H5Easy::load(file, "/path/to/A"); +} +``` + +whereby the `int` type of this example can be replaced by any of the above types. See [easy_load_dump.cpp](src/examples/easy_load_dump.cpp) for more details. + +**Note:** Classes such as `H5Easy::File` are just short for the regular `HighFive` classes (in this case `HighFive::File`). They can thus be used interchangeably. + + +## CMake integration + +HighFive can easily be used by other C++ CMake projects. + +You may use HighFive from a folder in your project (typically a git submodule). +```cmake +cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +project(foo) +set(CMAKE_CXX_STANDARD 11) + +add_subdirectory(highfive_folder) +add_executable(bar bar.cpp) +target_link_libraries(bar HighFive) +``` + +Alternativelly you can install HighFive once and use it in several projects via `find_package()`. + +A HighFive target will bring the compilation settings to find HighFive headers and all chosen dependencies. + +```cmake +# ... +find_package(HighFive REQUIRED) +add_executable(bar bar.cpp) +target_link_libraries(bar HighFive) +``` +**Note:** Like with other libraries you may need to provide CMake the location to find highfive: `CMAKE_PREFIX_PATH=` + +**Note:** `find_package(HighFive)` will search dependencies as well (e.g. Boost if requested). In order to use the same dependencies found at HighFive install time (e.g. for system deployments) you may set `HIGHFIVE_USE_INSTALL_DEPS=YES` + +### Installing +When installing via CMake, besides the headers, a HighFiveConfig.cmake is generated which provides the HighFive target, as seen before. Note: You may need to set `CMAKE_INSTALL_PREFIX`: +```bash +mkdir build && cd build +# Look up HighFive CMake options, consider inspecting with `ccmake` +cmake .. -DHIGHFIVE_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX="" +make install +``` + +### Test Compilation +As a header-only library, HighFive doesn't require compilation. You may however build tests and examples. + +```bash +mkdir build && cd build +cmake ../ +make # build tests and examples +make test # build and run unit tests +``` + +**Note:** Unit tests require Boost. In case it's unavailable you may use `-DHIGHFIVE_USE_BOOST=OFF`. +HighFive with disable support for Boost types as well as unit tests (though most examples will build). + +### Code formatting +If you want to propose pull requests to this project, do not forget to format code with +clang-format version 12. +The .clang-format is at the root of the git repository. + +# Questions? + +Do you have questions on how to use HighFive? Would you like to share an interesting example or +discuss HighFive features? Head over to the [Discussions](https://github.com/BlueBrain/HighFive/discussions) +forum and join the community. + +# Funding & Acknowledgment + +The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government's ETH Board of the Swiss Federal Institutes of Technology. + +Copyright © 2015-2022 Blue Brain Project/EPFL + + +### License + +Boost Software License 1.0 diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/VERSION b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/VERSION new file mode 100644 index 0000000000..b1b25a5ffa --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/VERSION @@ -0,0 +1 @@ +2.2.2 diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/doc/CMakeLists.txt b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/doc/CMakeLists.txt new file mode 100644 index 0000000000..2538af62d2 --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/doc/CMakeLists.txt @@ -0,0 +1,7 @@ +find_package(Doxygen) +if(Doxygen_FOUND) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) + add_custom_target(doc COMMAND Doxygen::doxygen ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) +else() + message(STATUS " Documentation (doc) cannot be built since Doxygen is not available.") +endif() diff --git a/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/doc/Doxyfile b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/doc/Doxyfile new file mode 100644 index 0000000000..52638f15ca --- /dev/null +++ b/externals/coda-oss/modules/drivers/highfive/HighFive-2.6.2/doc/Doxyfile @@ -0,0 +1,2618 @@ +# Doxyfile 1.9.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = HighFive + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = @PROJECT_VERSION@ + +# 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 +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "HighFive - Header-only C++ HDF5 interface" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = @CMAKE_CURRENT_SOURCE_DIR@/../include + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 0 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which efficively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the +# documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = @CMAKE_CURRENT_SOURCE_DIR@/DoxygenLayout.xml + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = @CMAKE_CURRENT_SOURCE_DIR@/../include \ + @CMAKE_CURRENT_SOURCE_DIR@/mainpage.md + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), +# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl, +# *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f \ + *.for \ + *.tcl \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = *detail* + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/doxygen-awesome-css/doxygen-awesome.css + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: +# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /
diff --git a/externals/nitro/Test++/nitf_test_create_nitf++.cpp b/externals/nitro/Test++/nitf_test_create_nitf++.cpp index e498c6f68f..b7a4face16 100644 --- a/externals/nitro/Test++/nitf_test_create_nitf++.cpp +++ b/externals/nitro/Test++/nitf_test_create_nitf++.cpp @@ -17,7 +17,7 @@ TEST_CLASS(nitf_test_create_nitf__) { public: nitf_test_create_nitf__() { // initialization code here - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); } ~nitf_test_create_nitf__() = default; diff --git a/externals/nitro/Test++/nitf_test_image_io.cpp b/externals/nitro/Test++/nitf_test_image_io.cpp index b23256d8ff..4d9ad96639 100644 --- a/externals/nitro/Test++/nitf_test_image_io.cpp +++ b/externals/nitro/Test++/nitf_test_image_io.cpp @@ -11,4 +11,3 @@ TEST_CLASS(test_image_loading__) { #include "nitf/unittests/test_image_loading++.cpp" }; -std::string test_image_loading__::argv0; diff --git a/externals/nitro/Test++/nitf_test_tre_create++.cpp b/externals/nitro/Test++/nitf_test_tre_create++.cpp index f05067fe6a..2db6022c62 100644 --- a/externals/nitro/Test++/nitf_test_tre_create++.cpp +++ b/externals/nitro/Test++/nitf_test_tre_create++.cpp @@ -10,7 +10,7 @@ TEST_CLASS(nitf_test_tre_create__) { public: nitf_test_tre_create__() { // initialization code here - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); } ~nitf_test_tre_create__() = default; nitf_test_tre_create__(const nitf_test_tre_create__&) = delete; diff --git a/externals/nitro/Test++/nitf_test_tre_mods++.cpp b/externals/nitro/Test++/nitf_test_tre_mods++.cpp new file mode 100644 index 0000000000..b5ec3ba039 --- /dev/null +++ b/externals/nitro/Test++/nitf_test_tre_mods++.cpp @@ -0,0 +1,41 @@ +#include "pch.h" + +#include + +#include "nitf_Test.h" + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +TEST_CLASS(nitf_test_tre_mods__) { +public: + +#define TEST_CASE(X) TEST_METHOD(X) +#include "nitf/unittests/test_tre_mods++.cpp" + +}; + +// Be sure this runs AFTER the tre_mods tests ... not really sure why ... +#undef TEST_CASE +TEST_CLASS(test_image_writer) { +public: + +#define TEST_CASE(X) TEST_METHOD(X) +#include "nitf/unittests/test_image_writer.cpp" + +}; + +#undef TEST_CASE +TEST_CLASS(test_load_plugins) { +public: + test_load_plugins() { + // initialization code here + nitf::Test::setNitfPluginPath(); + } + ~test_load_plugins() = default; + test_load_plugins(const test_load_plugins&) = delete; + test_load_plugins& operator=(const test_load_plugins&) = delete; + +#define TEST_CASE(X) TEST_METHOD(X) +#include "nitf/unittests/test_load_plugins.cpp" + +}; diff --git a/externals/nitro/Test++/nitf_test_tre_mods.cpp b/externals/nitro/Test++/nitf_test_tre_mods.cpp index 1aa8d63a37..dac0bec70b 100644 --- a/externals/nitro/Test++/nitf_test_tre_mods.cpp +++ b/externals/nitro/Test++/nitf_test_tre_mods.cpp @@ -1,48 +1,123 @@ #include "pch.h" -#include +#include + +#include +#include #include "nitf_Test.h" -using namespace Microsoft::VisualStudio::CppUnitTestFramework; +namespace fs = std::filesystem; -TEST_CLASS(nitf_test_tre_mods) { -public: - nitf_test_tre_mods() { - // initialization code here - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); +static bool is_x64_Configuration(const fs::path& path) // "Configuration" is typically "Debug" or "Release" +{ + const std::string build_configuration = +#if defined(NDEBUG) // i.e., release + "Release"; +#else + "Debug"; +#endif + + const auto Configuration = path.filename(); + const auto path_parent_path = path.parent_path(); + const auto x64 = path_parent_path.filename(); + return (Configuration == build_configuration) && (x64 == "x64"); +} + +static bool is_install_unittests(const fs::path& path) +{ + const auto unittests = path.filename(); + const auto path_parent_path = path.parent_path(); + const auto install = path_parent_path.filename(); + return (unittests == "unittests") && (install == "install"); +} +static bool is_install_tests(const fs::path& path) +{ + const auto tests = path.filename(); + const auto path_parent_path = path.parent_path(); + const auto install = path_parent_path.filename(); + return (tests == "tests") && (install == "install"); +} + +static fs::path buildDir(const fs::path& path) +{ + const auto cwd = fs::current_path(); + + const sys::OS os; + const auto exec = fs::path(os.getCurrentExecutable()); + const auto argv0 = exec.filename(); + if (argv0 == "testhost.exe") + { + // Running Visual Studio unit-tests on Windows + if (is_x64_Configuration(cwd)) + { + return cwd / path; + } } - ~nitf_test_tre_mods() = default; - nitf_test_tre_mods(const nitf_test_tre_mods&) = delete; - nitf_test_tre_mods& operator=(const nitf_test_tre_mods&) = delete; -#define TEST_CASE(X) TEST_METHOD(X) -#include "nitf/unittests/test_tre_mods++.cpp" + if (argv0 == "unittests.exe") + { + // stand-alone unittest executable on Windows (ends in .EXE) + const auto parent_path = exec.parent_path(); + if (is_x64_Configuration(parent_path)) + { + const auto parent_path_ = parent_path.parent_path().parent_path(); + return parent_path_ / "dev" / "tests" / "images"; + } + } -}; + // stand-alone unit-test on Linux + const auto exec_dir = exec.parent_path(); + if (is_install_unittests(exec_dir)) + { + const auto install = exec_dir.parent_path(); + return install / "unittests" / "data"; + } + if (is_install_tests(exec_dir)) + { + const auto install = exec_dir.parent_path(); + return install / "unittests" / "data"; + } -// Be sure this runs AFTER the tre_mods tests ... not really sure why ... -#undef TEST_CASE -TEST_CLASS(test_image_writer) { -public: + if (argv0 == "unittests") + { + // stand-alone unittest executable on Linux + const auto bin = exec.parent_path(); + if (bin.filename() == "bin") + { + const auto unittests = bin.parent_path(); + return unittests / "unittests" / "data"; + } + } -#define TEST_CASE(X) TEST_METHOD(X) -#include "nitf/unittests/test_image_writer.cpp" + //fprintf(stderr, "cwd = %s\n", cwd.c_str()); + //fprintf(stderr, "exec = %s\n", exec.c_str()); + + return cwd; +} -}; +static fs::path buildPluginsDir() +{ + return buildDir(fs::path("share") / "nitf" / "plugins"); +} -#undef TEST_CASE -TEST_CLASS(test_load_plugins) { +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +TEST_CLASS(nitf_test_tre_mods) { public: - test_load_plugins() { + nitf_test_tre_mods() + { // initialization code here - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + //const std::string NITF_PLUGIN_PATH = R"(C:\Users\jdsmith\source\repos\nitro\x64\Debug\share\nitf\plugins)"; + const std::string putenv_ = "NITF_PLUGIN_PATH=" + buildPluginsDir().string(); + _putenv(putenv_.c_str()); } - ~test_load_plugins() = default; - test_load_plugins(const test_load_plugins&) = delete; - test_load_plugins& operator=(const test_load_plugins&) = delete; + + ~nitf_test_tre_mods() = default; + nitf_test_tre_mods(const nitf_test_tre_mods&) = delete; + nitf_test_tre_mods& operator=(const nitf_test_tre_mods&) = delete; #define TEST_CASE(X) TEST_METHOD(X) -#include "nitf/unittests/test_load_plugins.cpp" +#include "nitf/unittests/test_tre_mods.cpp" -}; +}; \ No newline at end of file diff --git a/externals/nitro/Test++/nitf_test_tre_read.cpp b/externals/nitro/Test++/nitf_test_tre_read.cpp index 8e123cc9c6..f193b32aa6 100644 --- a/externals/nitro/Test++/nitf_test_tre_read.cpp +++ b/externals/nitro/Test++/nitf_test_tre_read.cpp @@ -10,7 +10,7 @@ TEST_CLASS(test_tre_read) { public: test_tre_read() { // initialization code here - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); } ~test_tre_read() = default; test_tre_read(const test_tre_read&) = delete; diff --git a/externals/nitro/Test++/nitf_test_writer_3++.cpp b/externals/nitro/Test++/nitf_test_writer_3++.cpp index 10bfc481e5..820cb4a563 100644 --- a/externals/nitro/Test++/nitf_test_writer_3++.cpp +++ b/externals/nitro/Test++/nitf_test_writer_3++.cpp @@ -10,7 +10,7 @@ TEST_CLASS(nitf_test_writer_3__) { public: nitf_test_writer_3__() { // initialization code here - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); } ~nitf_test_writer_3__() = default; nitf_test_writer_3__(const nitf_test_writer_3__&) = delete; diff --git a/externals/nitro/Test++/pch.h b/externals/nitro/Test++/pch.h index cbc4595c7c..050a70e79f 100644 --- a/externals/nitro/Test++/pch.h +++ b/externals/nitro/Test++/pch.h @@ -28,6 +28,8 @@ #pragma warning(disable: 5032) // detected #pragma warning(push) with no corresponding #pragma warning(pop) #pragma warning(push) #pragma warning(disable: 4464) // relative include path contains '..' +#pragma warning(disable: 4625) // '...' : copy constructor was implicitly defined as deleted +#pragma warning(disable: 4626) // '...' : assignment operator was implicitly defined as deleted #include #include #include diff --git a/externals/nitro/Test/Test.vcxproj b/externals/nitro/Test/Test.vcxproj index ad0abc7ee3..ff357b9bbd 100644 --- a/externals/nitro/Test/Test.vcxproj +++ b/externals/nitro/Test/Test.vcxproj @@ -104,7 +104,6 @@ - diff --git a/externals/nitro/Test/Test.vcxproj.filters b/externals/nitro/Test/Test.vcxproj.filters index 8e3447ec3b..0b5d831d11 100644 --- a/externals/nitro/Test/Test.vcxproj.filters +++ b/externals/nitro/Test/Test.vcxproj.filters @@ -1,29 +1,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/externals/nitro/Test/nitf_test_tre_mods.cpp b/externals/nitro/Test/nitf_test_tre_mods.cpp deleted file mode 100644 index 072abac488..0000000000 --- a/externals/nitro/Test/nitf_test_tre_mods.cpp +++ /dev/null @@ -1,123 +0,0 @@ -#include "pch.h" - -#include - -#include -#include - -#include "nitf_Test.h" - -namespace fs = std::filesystem; - -static bool is_x64_Configuration(const fs::path& path) // "Configuration" is typically "Debug" or "Release" -{ - const std::string build_configuration = -#if defined(NDEBUG) // i.e., release - "Release"; -#else - "Debug"; -#endif - - const auto Configuration = path.filename(); - const auto path_parent_path = path.parent_path(); - const auto x64 = path_parent_path.filename(); - return (Configuration == build_configuration) && (x64 == "x64"); -} - -static bool is_install_unittests(const fs::path& path) -{ - const auto unittests = path.filename(); - const auto path_parent_path = path.parent_path(); - const auto install = path_parent_path.filename(); - return (unittests == "unittests") && (install == "install"); -} -static bool is_install_tests(const fs::path& path) -{ - const auto tests = path.filename(); - const auto path_parent_path = path.parent_path(); - const auto install = path_parent_path.filename(); - return (tests == "tests") && (install == "install"); -} - -static fs::path buildDir(const fs::path& path) -{ - const auto cwd = fs::current_path(); - - const sys::OS os; - const auto exec = fs::path(os.getCurrentExecutable()); - const auto argv0 = exec.filename(); - if (argv0 == "testhost.exe") - { - // Running Visual Studio unit-tests on Windows - if (is_x64_Configuration(cwd)) - { - return cwd / path; - } - } - - if (argv0 == "unittests.exe") - { - // stand-alone unittest executable on Windows (ends in .EXE) - const auto parent_path = exec.parent_path(); - if (is_x64_Configuration(parent_path)) - { - const auto parent_path_ = parent_path.parent_path().parent_path(); - return parent_path_ / "dev" / "tests" / "images"; - } - } - - // stand-alone unit-test on Linux - const auto exec_dir = exec.parent_path(); - if (is_install_unittests(exec_dir)) - { - const auto install = exec_dir.parent_path(); - return install / "unittests" / "data"; - } - if (is_install_tests(exec_dir)) - { - const auto install = exec_dir.parent_path(); - return install / "unittests" / "data"; - } - - if (argv0 == "unittests") - { - // stand-alone unittest executable on Linux - const auto bin = exec.parent_path(); - if (bin.filename() == "bin") - { - const auto unittests = bin.parent_path(); - return unittests / "unittests" / "data"; - } - } - - //fprintf(stderr, "cwd = %s\n", cwd.c_str()); - //fprintf(stderr, "exec = %s\n", exec.c_str()); - - return cwd; -} - -static fs::path buildPluginsDir() -{ - return buildDir(fs::path("share") / "nitf" / "plugins"); -} - -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -TEST_CLASS(nitf_test_tre_mods) { -public: - nitf_test_tre_mods() - { - // initialization code here - //const std::string NITF_PLUGIN_PATH = R"(C:\Users\jdsmith\source\repos\nitro\x64\Debug\share\nitf\plugins)"; - const std::string putenv_ = "NITF_PLUGIN_PATH=" + buildPluginsDir().string(); - _putenv(putenv_.c_str()); - } - - ~nitf_test_tre_mods() = default; - nitf_test_tre_mods(const nitf_test_tre_mods&) = delete; - nitf_test_tre_mods& operator=(const nitf_test_tre_mods&) = delete; - -#define TEST_CASE(X) TEST_METHOD(X) -#include "nitf/unittests/test_tre_mods.c" - -}; \ No newline at end of file diff --git a/externals/nitro/Test/nitf_test_tre_read.cpp b/externals/nitro/Test/nitf_test_tre_read.cpp index f7ec0cfe51..aaf2f98864 100644 --- a/externals/nitro/Test/nitf_test_tre_read.cpp +++ b/externals/nitro/Test/nitf_test_tre_read.cpp @@ -8,7 +8,7 @@ struct test_tre_read : public ::testing::Test { test_tre_read() { // initialization code here //const std::string NITF_PLUGIN_PATH = R"(C:\Users\jdsmith\source\repos\nitro\x64\Debug\share\nitf\plugins)"; - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); } void SetUp() { diff --git a/externals/nitro/copy_externals.csh b/externals/nitro/copy_externals.csh index db9c114a85..1674c143d1 100755 --- a/externals/nitro/copy_externals.csh +++ b/externals/nitro/copy_externals.csh @@ -1,7 +1,7 @@ #!/bin/csh -f rm -r -f tmp && mkdir tmp && cd tmp -git clone --depth 1 -b master git@github.com:mdaus/coda-oss.git +git clone --depth 1 -b main git@github.com:mdaus/coda-oss.git rm -r -f coda-oss/.git cd .. diff --git a/externals/nitro/modules/c++/CMakeLists.txt b/externals/nitro/modules/c++/CMakeLists.txt index 51289138ee..4cdefcec61 100644 --- a/externals/nitro/modules/c++/CMakeLists.txt +++ b/externals/nitro/modules/c++/CMakeLists.txt @@ -1,3 +1,19 @@ set(TARGET_LANGUAGE c++) +# turn on warnings as errors +if (MSVC) + add_compile_options(/std:c++14) + + # By default, there is a /W3 on the command-line from somewhere (?); adding + # /W4 results in a compiler warning. + #add_compile_options(/W4) # /Wall + string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # /Wall + +elseif (UNIX) + add_compile_options(-std=c++14) + + #add_compile_options(-Wall -pedantic -Wextra) + add_compile_options(-Wall -Wextra) +endif() + add_subdirectory(nitf) diff --git a/externals/nitro/modules/c++/cpp.h b/externals/nitro/modules/c++/cpp.h index f3e3960daa..931c7632dd 100644 --- a/externals/nitro/modules/c++/cpp.h +++ b/externals/nitro/modules/c++/cpp.h @@ -1,6 +1,8 @@ #pragma once #pragma warning(push) +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' + #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined @@ -16,6 +18,7 @@ #pragma warning(disable: 5027) // '...': move assignment operator was implicitly defined as deleted #pragma warning(disable: 5219) // implicit conversion from '...' to '...', possible loss of data #pragma warning(disable: 6285) // ( || ) is always a non-zero constant. Did you intend to use the bitwise-and operator? +#pragma warning(disable: 5264) // '...': '...' variable is not used #define _USE_MATH_DEFINES #include diff --git a/externals/nitro/modules/c++/nitf/CMakeLists.txt b/externals/nitro/modules/c++/nitf/CMakeLists.txt index 2aa1714394..789d193c04 100644 --- a/externals/nitro/modules/c++/nitf/CMakeLists.txt +++ b/externals/nitro/modules/c++/nitf/CMakeLists.txt @@ -2,6 +2,9 @@ set(MODULE_NAME nitf) set(MODULE_DEPS nitf-c j2k-c except-c++ sio.lite-c++ io-c++ mt-c++ sys-c++ str-c++ gsl-c++ std-c++) if (MSVC) list(APPEND MODULE_DEPS wsock32 ws2_32) + + add_compile_options(/wd4996) # '...': This function or variable may be unsafe. + add_compile_options(/wd4459) # declaration of '...' hides global declaration endif() coda_add_module( @@ -105,6 +108,7 @@ coda_add_tests( test_image_segment_computer.cpp test_image_writer.cpp test_nitf_buffer_list.cpp + test_tre_mods.cpp test_tre_mods++.cpp test_tre_create++.cpp test_j2k_loading++.cpp diff --git a/externals/nitro/modules/c++/nitf/apps/show_nitf++.cpp b/externals/nitro/modules/c++/nitf/apps/show_nitf++.cpp index 6be8757582..8fce482bfe 100644 --- a/externals/nitro/modules/c++/nitf/apps/show_nitf++.cpp +++ b/externals/nitro/modules/c++/nitf/apps/show_nitf++.cpp @@ -375,7 +375,7 @@ void showFileHeader(const nitf::FileHeader& header) { std::cout << "\t\n"; } - showExtensions(udExts); + showExtensions(exExts); if (format_as_xml) { std::cout << "\t\n"; diff --git a/externals/nitro/modules/c++/nitf/include/nitf/ByteProvider.hpp b/externals/nitro/modules/c++/nitf/include/nitf/ByteProvider.hpp index 199b8aecb3..6cf59f90a7 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/ByteProvider.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/ByteProvider.hpp @@ -243,7 +243,7 @@ struct NITRO_NITFCPP_API ByteProvider * \return ImageBlocker with settings in sync with how the image will be * blocked in the NITF */ - mem::auto_ptr getImageBlocker() const; + std::unique_ptr getImageBlocker() const; protected: /*! diff --git a/externals/nitro/modules/c++/nitf/include/nitf/DecompressionInterface.hpp b/externals/nitro/modules/c++/nitf/include/nitf/DecompressionInterface.hpp index 55e815b046..14a75889a7 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/DecompressionInterface.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/DecompressionInterface.hpp @@ -24,6 +24,8 @@ #define __NITF_DECOMPRESSION_INTERFACE_HPP__ #pragma once +#include + #include #include #include @@ -87,10 +89,8 @@ namespace nitf * during decompression, and gives a c++ api for getting * things done. */ -class DecompressionInterface +struct DecompressionInterface final { -public: - //! These are canned methods which turn around // and call the nitf_DecompressionControl of your choice static NITF_BOOL adapterStart(nitf_DecompressionControl* object, @@ -121,7 +121,7 @@ class DecompressionInterface * \class Compressor * \brief This is the c++ interface for nitf_CompressionControl */ -struct Decompressor +struct Decompressor final { Decompressor() = default; virtual ~Decompressor() {} diff --git a/externals/nitro/modules/c++/nitf/include/nitf/Handle.hpp b/externals/nitro/modules/c++/nitf/include/nitf/Handle.hpp index 2c4d00c42b..3f315b7543 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/Handle.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/Handle.hpp @@ -66,6 +66,12 @@ class NITRO_NITFCPP_API Handle int decRef(); }; +// Some older C++14 (kind of) compilers get confused with "noexcept(false)" +#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER_BUILD_DATE <= 20151021) + #define NITRO_nitf_MemoryDestructor_noexcept_false_ +#else + #define NITRO_nitf_MemoryDestructor_noexcept_false_ noexcept(false) +#endif // __INTEL_COMPILER /*! * \struct MemoryDestructor @@ -75,7 +81,7 @@ class NITRO_NITFCPP_API Handle template struct NITRO_NITFCPP_API MemoryDestructor { - virtual void operator() (T* /*nativeObject*/) noexcept(false) {} + virtual void operator() (T* /*nativeObject*/) NITRO_nitf_MemoryDestructor_noexcept_false_ {} virtual ~MemoryDestructor() {} }; diff --git a/externals/nitro/modules/c++/nitf/include/nitf/ImageSubheader.hpp b/externals/nitro/modules/c++/nitf/include/nitf/ImageSubheader.hpp index cc67b3fe41..f242da0f32 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/ImageSubheader.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/ImageSubheader.hpp @@ -99,7 +99,7 @@ namespace nitf M3, /*! \def NITF_IMAGE_IO_COMPRESSION_M3 - JPEG compression, blocking */ M4, /*! \def NITF_IMAGE_IO_COMPRESSION_M4 - Vector quantization compression, blocking */ M5, /*! \def NITF_IMAGE_IO_COMPRESSION_M5 - Lossless JPEG compression, blocking */ - M8); /*! \def NITF_IMAGE_IO_COMPRESSION_M8 - JPEG 2000 */ + M8) /*! \def NITF_IMAGE_IO_COMPRESSION_M8 - JPEG 2000 */ /*! * \class ImageSubheader diff --git a/externals/nitro/modules/c++/nitf/include/nitf/Object.hpp b/externals/nitro/modules/c++/nitf/include/nitf/Object.hpp index 2bd3b25ea3..3a264b0c42 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/Object.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/Object.hpp @@ -20,8 +20,8 @@ * */ -#ifndef __NITF_OBJECT_HPP__ -#define __NITF_OBJECT_HPP__ +#ifndef NITRO_nitf_Object_hpp_INCLUDED_ +#define NITRO_nitf_Object_hpp_INCLUDED_ #pragma once #include @@ -208,8 +208,9 @@ class NITRO_NITFCPP_API Object * corresponding nitf_##_destruct method. */ +// Don't need both "override" and "final": https://learn.microsoft.com/en-us/cpp/code-quality/c26435?view=msvc-170 #define DECLARE_CLASS_IN_operator_function_(Name_, Package_) \ -void operator()(Package_##_##Name_ * nativeObject) noexcept(false) override \ +void operator()(Package_##_##Name_ * nativeObject) NITRO_nitf_MemoryDestructor_noexcept_false_ final \ { Package_##_##Name_##_destruct(&nativeObject); } #ifdef _MSC_VER @@ -279,4 +280,4 @@ namespace nitf #define nitf_offsetof(name) offsetof(native_t, name) } -#endif +#endif // NITRO_nitf_Object_hpp_INCLUDED_ diff --git a/externals/nitro/modules/c++/nitf/include/nitf/TREField.hpp b/externals/nitro/modules/c++/nitf/include/nitf/TREField.hpp index 191c5afb49..c6a0857153 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/TREField.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/TREField.hpp @@ -55,6 +55,11 @@ namespace nitf { return tre_.getFieldValue(tag_); } + + size_t getLength() const + { + return tre_.getField(tag_).getLength(); + } }; template struct field final @@ -77,6 +82,11 @@ namespace nitf { return field_.getFieldValue(); } + + size_t getLength() const + { + return field_.getLength(); + } }; } @@ -108,6 +118,13 @@ namespace nitf { return value(); } + + size_t getLength() const + { + auto retval = field_.getLength(); + assert(retval == size); + return retval; + } }; template diff --git a/externals/nitro/modules/c++/nitf/include/nitf/UnitTests.hpp b/externals/nitro/modules/c++/nitf/include/nitf/UnitTests.hpp index c5a6c89a67..ba2e1a3ec2 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/UnitTests.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/UnitTests.hpp @@ -27,6 +27,8 @@ #include #include +#include + #include "nitf/exports.hpp" namespace nitf @@ -34,8 +36,12 @@ namespace nitf namespace Test { NITRO_NITFCPP_API std::string buildPluginsDir(const std::string& dir = "nitf"); + NITRO_NITFCPP_API void setNitfPluginPath(); // setenv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir("nitf")) + NITRO_NITFCPP_API void j2kSetNitfPluginPath(); // setenv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir("j2k")) + NITRO_NITFCPP_API std::filesystem::path buildFileDir(const std::filesystem::path& relativePath); NITRO_NITFCPP_API std::filesystem::path findInputFile(const std::filesystem::path&); + NITRO_NITFCPP_API std::filesystem::path findInputFile(const std::filesystem::path& modulePath, const std::filesystem::path& moduleFile); } } diff --git a/externals/nitro/modules/c++/nitf/include/nitf/Utils.hpp b/externals/nitro/modules/c++/nitf/include/nitf/Utils.hpp index 6c67bb0f36..c5d1d7415e 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/Utils.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/Utils.hpp @@ -50,7 +50,7 @@ namespace Utils const char* file, int line, const char* func, int level); extern NITRO_NITFCPP_API void error_init(nrt_Error* error, const std::exception&, const char* file, int line, const char* func, int level); -}; +} } diff --git a/externals/nitro/modules/c++/nitf/include/nitf/Version.hpp b/externals/nitro/modules/c++/nitf/include/nitf/Version.hpp index d9945662e7..25b401c9a7 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/Version.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/Version.hpp @@ -27,16 +27,18 @@ #include "config/Version.h" #include "nitf/Version.h" -// 2.10.13 March 13, 2023 -// 2.10.12 August 30, 2022 -// 2.10.11 August 2, 2022 -// 2.10.10 June 29, 2022 -// 2.10.9 May 3, 2022 -// 2.10.8 February 22, 2022 // 2.10.7 December 13, 2021 +// 2.10.8 February 22, 2022 +// 2.10.9 May 3, 2022 +// 2.10.10 June 29, 2022 +// 2.10.11 August 2, 2022 + // 2.10.12 August 30, 2022 + // 2.11.0 August 30, 2022 (C++14) + // 2.11.1 November 4, 2022 + // 2.11.2 December 14, 2022 #define NITF_VERSION_MAJOR 2 -#define NITF_VERSION_MINOR 10 -#define NITF_VERSION_PATCH 13 +#define NITF_VERSION_MINOR 11 +#define NITF_VERSION_PATCH 2 #define NITF_VERSION_BUILD 0 #define NITF_VERSION CODA_OSS_MAKE_VERSION_MMPB(NITF_VERSION_MAJOR, NITF_VERSION_MINOR, NITF_VERSION_PATCH, NITF_VERSION_BUILD) diff --git a/externals/nitro/modules/c++/nitf/source/ByteProvider.cpp b/externals/nitro/modules/c++/nitf/source/ByteProvider.cpp index 9082f0ce77..5d1f564b7a 100644 --- a/externals/nitro/modules/c++/nitf/source/ByteProvider.cpp +++ b/externals/nitro/modules/c++/nitf/source/ByteProvider.cpp @@ -380,7 +380,7 @@ void ByteProvider::getFileLayout(const nitf::Record& inRecord, getFileLayout_(inRecord, desData); } -mem::auto_ptr ByteProvider::getImageBlocker() const +std::unique_ptr ByteProvider::getImageBlocker() const { std::vector numRowsPerSegment(mImageSegmentInfo.size()); for (size_t ii = 0; ii < mImageSegmentInfo.size(); ++ii) @@ -393,7 +393,7 @@ mem::auto_ptr ByteProvider::getImageBlocker() const mNumCols, mOverallNumRowsPerBlock, mNumColsPerBlock); - return mem::auto_ptr(blocker.release()); + return std::unique_ptr(blocker.release()); } void ByteProvider::checkBlocking(size_t seg, diff --git a/externals/nitro/modules/c++/nitf/source/DecompressionInterface.cpp b/externals/nitro/modules/c++/nitf/source/DecompressionInterface.cpp index d91bebe962..06328eef48 100644 --- a/externals/nitro/modules/c++/nitf/source/DecompressionInterface.cpp +++ b/externals/nitro/modules/c++/nitf/source/DecompressionInterface.cpp @@ -26,6 +26,35 @@ using namespace nitf; +template +static inline auto invoke(nitf_Error* error, const char* file, int line, const char* func, + TReturn catch_return, TFunction f) +{ + try + { + return f(); + } + catch (const except::Exception& ex) + { + Utils::error_init(error, ex.getMessage(), file, line, func, NRT_ERR_DECOMPRESSION); + } + catch (const std::exception& ex) + { + Utils::error_init(error, ex, file, line, func, NRT_ERR_DECOMPRESSION); + } + catch (...) + { + nrt_Error_init(error, "Unknown error", file, line, func, NRT_ERR_DECOMPRESSION); + } + + return catch_return; +} + +// Ensure the return type is deduced correctly. NRT_SUCCESS/NRT_FAILURE +// is `int`, not `NITF_BOOL`. +constexpr NITF_BOOL nrt_success = NRT_SUCCESS; +constexpr NITF_BOOL nrt_failure = NRT_FAILURE; + NITF_BOOL DecompressionInterface::adapterStart( nitf_DecompressionControl* object, nitf_IOInterface* io, @@ -35,7 +64,7 @@ NITF_BOOL DecompressionInterface::adapterStart( uint64_t* blockMask, nitf_Error* error) { - try + return invoke(error, NRT_CTXT, nrt_failure, [&]() { nitf::IOInterface ioInter(io); ioInter.setManaged(true); @@ -46,26 +75,8 @@ NITF_BOOL DecompressionInterface::adapterStart( fileLength, blockInfo, blockMask); - return NRT_SUCCESS; - } - catch (const except::Exception& ex) - { - Utils::error_init(error, ex.getMessage(), NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return NRT_FAILURE; - } - catch (const std::exception& ex) - { - Utils::error_init(error, ex, NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return NRT_FAILURE; - } - catch (...) - { - nrt_Error_init(error, "Unknown error", NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return NRT_FAILURE; - } + return nrt_success; + }); } uint8_t* DecompressionInterface::adapterReadBlock( @@ -74,29 +85,24 @@ uint8_t* DecompressionInterface::adapterReadBlock( uint64_t* blockSize, nitf_Error* error) { - try - { + const auto f = [&]() { return static_cast(object)->readBlock(blockNumber, blockSize); - } - catch (const except::Exception& ex) - { - Utils::error_init(error, ex.getMessage(), NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return nullptr; - } - catch (const std::exception& ex) - { - Utils::error_init(error, ex, NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return nullptr; - } - catch (...) + }; + using retval_t = decltype(f()); + return invoke(error, NRT_CTXT, static_cast(nullptr), f); +} + +NITF_BOOL DecompressionInterface::adapterFreeBlock( + nitf_DecompressionControl* object, + uint8_t* block, + nitf_Error* error) +{ + return invoke(error, NRT_CTXT, nrt_failure, [&]() { - nrt_Error_init(error, "Unknown error", NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return nullptr; - } + static_cast(object)->freeBlock(block); + return nrt_success; + }); } NITF_BOOL DecompressionInterface::adapterFreeBlock( @@ -104,29 +110,11 @@ NITF_BOOL DecompressionInterface::adapterFreeBlock( std::byte* block, nitf_Error* error) { - try + return invoke(error, NRT_CTXT, nrt_failure, [&]() { static_cast(object)->freeBlock(block); - return NRT_SUCCESS; - } - catch (const except::Exception& ex) - { - Utils::error_init(error, ex.getMessage(), NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return NRT_FAILURE; - } - catch (const std::exception& ex) - { - Utils::error_init(error, ex, NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return NRT_FAILURE; - } - catch (...) - { - nrt_Error_init(error, "Unknown error", NRT_CTXT, - NRT_ERR_DECOMPRESSION); - return NRT_FAILURE; - } + return nrt_success; + }); } void DecompressionInterface::adapterDestroy( diff --git a/externals/nitro/modules/c++/nitf/source/UnitTests.cpp b/externals/nitro/modules/c++/nitf/source/UnitTests.cpp index 0a3a92d333..0ad99332a3 100644 --- a/externals/nitro/modules/c++/nitf/source/UnitTests.cpp +++ b/externals/nitro/modules/c++/nitf/source/UnitTests.cpp @@ -28,6 +28,7 @@ #include #include #include +#include namespace fs = std::filesystem; @@ -38,7 +39,7 @@ static inline std::string Configuration() // "Configuration" is typically "Debug } static inline std::string Platform() { - return os.getSpecialEnv("Platform"); + return os.getSpecialEnv("Platform"); // e.g., "x64" on Windows } static const fs::path& getCurrentExecutable() @@ -55,13 +56,16 @@ static fs::path current_path() // https://stackoverflow.com/questions/13794130/visual-studio-how-to-check-used-c-platform-toolset-programmatically static inline std::string PlatformToolset() { - // https://docs.microsoft.com/en-us/cpp/build/how-to-modify-the-target-framework-and-platform-toolset?view=msvc-160 #ifdef _WIN32 -#if _MSC_FULL_VER >= 190000000 - return "v142"; -#else -#error "Don't know $(PlatformToolset) value.'" -#endif + // https://docs.microsoft.com/en-us/cpp/build/how-to-modify-the-target-framework-and-platform-toolset?view=msvc-160 + // https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170 + #if _MSC_VER >= 1930 + return "v143"; // Visual Studio 2022 + #elif _MSC_VER >= 1920 + return "v142"; // Visual Studio 2019 + #else + #error "Don't know $(PlatformToolset) value.'" + #endif #else // Linux return ""; @@ -105,7 +109,6 @@ static fs::path find_GIT_root() // This may be the same as find_GIT_root() if this code isn't in "externals" static fs::path find_NITRO_root() { - const auto is_NITRO_root = [](const std::filesystem::path& p) { return is_directory(p / ".git") && isRoot(p); }; try { return sys::test::findRootDirectory(getCurrentExecutable(), "nitro", isNitroRoot); @@ -117,6 +120,7 @@ static fs::path find_NITRO_root() static fs::path findRoot(fs::path& exec_root, fs::path& cwd_root) { + cwd_root.clear(); try { exec_root = sys::test::findRootDirectory(getCurrentExecutable(), "" /*rootName*/, isRoot); @@ -146,117 +150,147 @@ static fs::path make_waf_install(const fs::path& p) #endif } -static fs::path make_cmake_install(const fs::path& exec, const fs::path& relativePath) +static bool is_cmake_build() { - const auto root = find_GIT_root(); + static const auto retval = sys::test::isCMakeBuild(getCurrentExecutable()); + return retval; +} - auto out = exec; - fs::path configuration_and_platform; - fs::path build; - while (out.parent_path() != root) +static fs::path buildDir(const fs::path& relativePath) +{ + std::clog << "getCurrentExecutable(): " << getCurrentExecutable() << '\n'; + std::clog << "current_path(): " << current_path() << '\n'; + + static const auto& exec = getCurrentExecutable(); + static const auto exec_filename = exec.filename(); + + if (exec_filename == "testhost.exe") { - configuration_and_platform = build.stem(); // "x64-Debug" - build = out; // "...\out\build" - out = out.parent_path(); // "...\out" + // Running in Visual Studio on Windows + return current_path() / relativePath; } - fs::path install; - const sys::DirectoryEntry dirEntry(out.string()); - for (auto entry : dirEntry) + const auto p = is_cmake_build() ? sys::test::findCMakeBuildRoot(exec) : make_waf_install(findRoot()); + return p / relativePath; +} + +std::string buildPluginsDir_(const std::string& dir, const std::filesystem::path& installDir) +{ + // Developers might not set things up for "cmake --install ." + const auto modules_c_dir = std::filesystem::path("modules") / "c" / dir; + auto plugins = installDir / modules_c_dir / Configuration(); + std::clog << "plugins: " << plugins << '\n'; + if (is_directory(plugins)) { - str::upper(entry); - if (str::contains(entry, "INSTALL")) - { - install = out / dirEntry.getCurrent(); // preserve orignal case - if (is_directory(install)) - { - break; - } - } + return plugins.string(); + } + plugins = installDir / modules_c_dir; + std::clog << "plugins: " << plugins << '\n'; + if (is_directory(plugins)) + { + return plugins.string(); } - if (is_directory(install / configuration_and_platform / relativePath)) + static const auto exec = getCurrentExecutable(); + auto buildRoot = sys::test::findCMakeBuildRoot(exec); + plugins = buildRoot / modules_c_dir; + std::clog << "plugins: " << plugins << '\n'; + if (is_directory(plugins)) { - return install / configuration_and_platform; + return plugins.string(); } - else + + buildRoot = buildRoot / "externals" / "nitro"; + plugins = buildRoot / modules_c_dir; + std::clog << "plugins: " << plugins << '\n'; + if (is_directory(plugins)) { - return install; + return plugins.string(); } -} -static std::string makeRelative(const fs::path& path, const fs::path& root) -{ - // remove the "root" part from "path" - std::string relative = path.string(); - str::replaceAll(relative, root.string(), ""); - return relative; + throw std::logic_error("Can't find 'plugins' directory: " + plugins.string()); } -static std::string relativeRoot() +std::string nitf::Test::buildPluginsDir(const std::string& dir) { - fs::path exec_root, cwd_root; - findRoot(exec_root, cwd_root); - - if (!exec_root.empty()) + auto installDir = buildDir(""); + auto plugins = installDir / "share" / "nitf" / "plugins"; + if (!is_directory(plugins)) { - return makeRelative(getCurrentExecutable(), exec_root); + // Developers might not set things up for "cmake --install ." + return buildPluginsDir_(dir, installDir); } - - assert(!cwd_root.empty()); - return makeRelative(current_path(), cwd_root); + return plugins.string(); } -static bool is_cmake_build() +fs::path nitf::Test::buildFileDir(const fs::path& relativePath) { - static const auto retlativeRoot = relativeRoot(); - static const auto retval = - (str::starts_with(retlativeRoot, "/out") || str::starts_with(retlativeRoot, "\\out")) || - (str::starts_with(retlativeRoot, "/build") || str::starts_with(retlativeRoot, "\\build")); - return retval; + const auto root = find_GIT_root(); + return root / relativePath; } -static fs::path buildDir(const fs::path& relativePath) +fs::path nitf::Test::findInputFile(const fs::path& inputFile) { - std::clog << "getCurrentExecutable(): " << getCurrentExecutable() << '\n'; - std::clog << "current_path(): " << current_path() << '\n'; - - static const auto& exec = getCurrentExecutable(); - static const auto exec_filename = exec.filename(); + const auto root = find_NITRO_root(); - if (exec_filename == "testhost.exe") + auto p = root / inputFile; + if (is_regular_file(p)) { - // Running in Visual Studio on Windows - return current_path() / relativePath; + return p; } - const auto install = is_cmake_build() ? make_cmake_install(exec, relativePath) : make_waf_install(findRoot()); - return install / relativePath; + p = sys::findFirstFile(root, inputFile); + return p / inputFile; } -std::string nitf::Test::buildPluginsDir(const std::string& dir) +fs::path nitf::Test::findInputFile(const fs::path& modulePath, const fs::path& moduleFile) { - const auto buildDir_ = buildDir(""); - auto plugins = buildDir_ / "share" / "nitf" / "plugins"; - if (!is_directory(plugins)) + return sys::test::findGITModuleFile("nitro", modulePath, moduleFile); +} + +static std::filesystem::path getNitfPluginPath(const std::string& pluginName) +{ + std::filesystem::path p; + try { - // Developers might not set things up for "cmake --install ." - plugins = buildDir_.parent_path() / "modules" / "c" / dir; - if (!is_directory(plugins)) + p = nitf::Test::buildPluginsDir(); + } + catch (const std::invalid_argument&) + { + p = getCurrentExecutable(); + } + auto plugin = p / pluginName; + if (!is_regular_file(plugin)) + { + p = sys::findFirstFile(p, pluginName); + plugin = p / pluginName; + if (!is_regular_file(plugin)) { - throw std::logic_error("Can't find 'plugins' directory: " + plugins.string()); + throw std::logic_error("Can't find plugin: " + plugin.string()); } } - return plugins.string(); + return p; } -fs::path nitf::Test::buildFileDir(const fs::path& relativePath) +static std::string buildPluginName(const std::string& base) { - const auto root = find_GIT_root(); - return root / relativePath; +#ifdef _WIN32 + return base + ".DLL"; +#else + // Note that these do NOT have the typical "lib" prefix; + // i.e., file is "ENGRDA.so" instead of "libENGRDA.so" + return base + ".so"; +#endif } -fs::path nitf::Test::findInputFile(const fs::path& inputFile) +void nitf::Test::setNitfPluginPath() { - const auto root = find_NITRO_root(); - return root / inputFile; + // The name of the plugin we know exists and will always be built, see test_load_plugins + static const auto p = getNitfPluginPath(buildPluginName("ENGRDA")); + sys::OS().setEnv("NITF_PLUGIN_PATH", p.string(), true /*overwrite*/); +} + +void nitf::Test::j2kSetNitfPluginPath() +{ + static const auto p = getNitfPluginPath(buildPluginName("J2KCompress")); + sys::OS().setEnv("NITF_PLUGIN_PATH", p.string(), true /*overwrite*/); } \ No newline at end of file diff --git a/externals/nitro/modules/c++/nitf/tests/test_functional.h b/externals/nitro/modules/c++/nitf/tests/test_functional.h index 2b99b1f092..52540ddf75 100644 --- a/externals/nitro/modules/c++/nitf/tests/test_functional.h +++ b/externals/nitro/modules/c++/nitf/tests/test_functional.h @@ -48,7 +48,7 @@ typedef typename std::vector< std::pair< std::string, Iterator end() { return mVec.end(); } std::mem_fun_ref_t operator[] (const std::string& key) - throw(except::NoSuchKeyException) + { if (!exists(key)) throw except::NoSuchKeyException(key); diff --git a/externals/nitro/modules/c++/nitf/tests/test_ref_counts.cpp b/externals/nitro/modules/c++/nitf/tests/test_ref_counts.cpp old mode 100755 new mode 100644 diff --git a/externals/nitro/modules/c++/nitf/unittests/TEST_CSEXRB.nitf b/externals/nitro/modules/c++/nitf/unittests/TEST_CSEXRB.nitf new file mode 100644 index 0000000000..b338290063 Binary files /dev/null and b/externals/nitro/modules/c++/nitf/unittests/TEST_CSEXRB.nitf differ diff --git a/externals/nitro/modules/c++/nitf/unittests/TestCase.h b/externals/nitro/modules/c++/nitf/unittests/TestCase.h index 45c35cc247..cc4ec42a37 100644 --- a/externals/nitro/modules/c++/nitf/unittests/TestCase.h +++ b/externals/nitro/modules/c++/nitf/unittests/TestCase.h @@ -36,8 +36,8 @@ # define IS_NAN(X) X != X # define TEST_CHECK(X) try{ X(std::string(#X)); std::cerr << #X << ": PASSED" << std::endl; } \ - catch(const except::Throwable& ex) { die_printf("%s: FAILED: Exception thrown: %s\n", std::string(#X).c_str(), ex.toString().c_str()); } \ - catch(const except::Throwable11& ex) { die_printf("%s: FAILED: Exception thrown: %s\n", std::string(#X).c_str(), ex.what()); } + catch(const except::Throwable& ex) { die_printf("%s: FAILED: Exception thrown: %s\n", std::string(#X).c_str(), ex.what()); } \ + catch(const std::exception& ex) { die_printf("%s: FAILED: Exception thrown: %s\n", std::string(#X).c_str(), ex.what()); } # define TEST_ASSERT(X) if (!(X)) { die_printf("%s (%s,%s,%d): FAILED: Value should not be NULL\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } # define TEST_ASSERT_NULL(X) if ((X) != nullptr) { die_printf("%s (%s,%s,%d): FAILED: Value should be NULL\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } # define TEST_ASSERT_NOT_NULL(X) if ((X) == nullptr) { die_printf("%s (%s,%s,%d): FAILED: Value should not be NULL\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } @@ -55,11 +55,11 @@ # define TEST_ASSERT_LESSER_EQ(X1, X2) if ((X1) > X2) { die_printf("%s (%s,%s,%d): FAILED: Value should be less than or equal\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } # define TEST_ASSERT_LESSER(X1, X2) if ((X1) >= X2) { die_printf("%s (%s,%s,%d): FAILED: Value should be less than\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } # define TEST_FAIL(msg) die_printf("%s (%s,%s,%d): FAILED: %s\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__, str::toString(msg).c_str()); -# define TEST_EXCEPTION(X) try{ (X); die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } catch (const except::Throwable&){} catch (const except::Throwable11&){} +# define TEST_EXCEPTION(X) try{ (X); die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } catch (const except::Throwable&){ TEST_ASSERT_TRUE(true); } catch (const std::exception&){ TEST_ASSERT_TRUE(true); } # define TEST_THROWS(X) try{ (X); die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception\n", testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } catch (...){} # define TEST_SPECIFIC_EXCEPTION(X,Y) try{ (X); die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception: " # Y , testName.c_str(), __FILE__, SYS_FUNC, __LINE__); } catch(const Y&) { } \ catch (const except::Throwable&){ die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception: " # Y , testName.c_str(), __FILE__, SYS_FUNC, __LINE__);} \ - catch (const except::Throwable11&){ die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception: " # Y , testName.c_str(), __FILE__, SYS_FUNC, __LINE__);} + catch (const std::exception&){ die_printf("%s (%s,%s,%d): FAILED: Should have thrown exception: " # Y , testName.c_str(), __FILE__, SYS_FUNC, __LINE__);} # define TEST_CASE(X) void X(std::string testName) #define TEST_MAIN(X) int main(int argc, char** argv) { try { X; return EXIT_SUCCESS; } \ diff --git a/externals/nitro/modules/c++/nitf/unittests/test_image_loading++.cpp b/externals/nitro/modules/c++/nitf/unittests/test_image_loading++.cpp index ffad7a2b4d..be3e035696 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_image_loading++.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_image_loading++.cpp @@ -25,6 +25,7 @@ #include #include +#include using path = std::filesystem::path; @@ -32,45 +33,28 @@ using path = std::filesystem::path; static std::string testName; -static std::string argv0; -static path findInputFile(const path& inputFile) -{ - path root; - if (argv0.empty()) - { - // running in Visual Studio - root = std::filesystem::current_path().parent_path().parent_path(); - } - else - { - root = absolute(path(argv0)).parent_path().parent_path().parent_path().parent_path(); - root = root.parent_path().parent_path(); - } - - return root / inputFile; -} static path findInputFile() { - const auto inputPath = path("modules") / "c++" / "nitf" / "unittests" / "sicd_50x50.nitf"; - return findInputFile(inputPath); + static const auto unittests = path("modules") / "c++" / "nitf" / "unittests"; + static const auto inputPath = nitf::Test::findInputFile(unittests, "sicd_50x50.nitf"); + return inputPath; } static path findInputFile(bool withAmpTable) { - path inputPath; + path moduleFile; if (withAmpTable) { - inputPath = path("modules") / "c++" / "nitf" / "unittests" / "8_bit_Amp_Phs_Examples" / - "With_amplitude_table" / + moduleFile = path("With_amplitude_table") / "sicd_example_1_PFA_AMP8I_PHS8I_VV_with_amplitude_table_SICD.nitf"; } else { - inputPath = path("modules") / "c++" / "nitf" / "unittests" / "8_bit_Amp_Phs_Examples" / - "No_amplitude_table" / + moduleFile = path("No_amplitude_table") / "sicd_example_1_PFA_AMP8I_PHS8I_VV_no_amplitude_table_SICD.nitf"; - } - return findInputFile(inputPath); + + static const auto Amp_Phs_Examples = path("modules") / "c++" / "nitf" / "unittests" / "8_bit_Amp_Phs_Examples"; + return nitf::Test::findInputFile(Amp_Phs_Examples, moduleFile); } struct expected_values final @@ -258,8 +242,6 @@ TEST_CASE(test_8bit_image_loading) } TEST_MAIN( - (void)argc; - argv0 = argv[0]; TEST_CHECK(test_image_loading); TEST_CHECK(test_8bit_image_loading); -) \ No newline at end of file +) diff --git a/externals/nitro/modules/c++/nitf/unittests/test_image_writer.cpp b/externals/nitro/modules/c++/nitf/unittests/test_image_writer.cpp index 9f9ea0b8ae..37645649da 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_image_writer.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_image_writer.cpp @@ -80,13 +80,17 @@ TEST_CASE(constructValidImageWriter) subheader.setPixelInformation(nitf::PixelValueType::Integer, 8, 8, "R", nitf::ImageRepresentation::MONO, "VIS", bands); subheader.setBlocking(100, 200, 10, 10, nitf::BlockingMode::Pixel); nitf::ImageWriter writer(subheader); + + TEST_ASSERT_TRUE(true); // need to reference hidden "testName" parameter } TEST_CASE(changeFileHeader) { - const auto inputPathname = nitf::Test::findInputFile(path("modules") / "c++" / "nitf" / "tests" / "test_blank.ntf").string(); - TEST_ASSERT_TRUE(std::filesystem::is_regular_file(inputPathname)); - const auto outputPathname = nitf::Test::buildFileDir(path("outputPathname.ntf")).string(); + static const auto tests = std::filesystem::path("modules") / "c++" / "nitf" / "tests"; + static const auto inputPathname_ = nitf::Test::findInputFile(tests, "test_blank.ntf"); + TEST_ASSERT_TRUE(is_regular_file(inputPathname_)); + static const auto inputPathname = inputPathname_.string(); + constexpr auto outputPathname = "outputPathname.ntf"; doChangeFileHeader(inputPathname, outputPathname); @@ -103,7 +107,7 @@ TEST_CASE(changeFileHeader) } TEST_MAIN( - (void)argc; + (void)argc;(void)argv; TEST_CHECK(imageWriterThrowsOnFailedConstruction); TEST_CHECK(constructValidImageWriter); diff --git a/externals/nitro/modules/c++/nitf/unittests/test_j2k_compress_tile.cpp b/externals/nitro/modules/c++/nitf/unittests/test_j2k_compress_tile.cpp index 3b49c175d8..fe9736266f 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_j2k_compress_tile.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_j2k_compress_tile.cpp @@ -181,10 +181,16 @@ static bool equals(const std::vector& lhs, const std::vector lhs, rhs; + TEST_ASSERT_TRUE(equals(lhs, rhs)); + } + Image source; generateTestImage(source); diff --git a/externals/nitro/modules/c++/nitf/unittests/test_j2k_compressed_byte_provider.cpp b/externals/nitro/modules/c++/nitf/unittests/test_j2k_compressed_byte_provider.cpp index 8b9dd11565..100cc7382f 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_j2k_compressed_byte_provider.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_j2k_compressed_byte_provider.cpp @@ -590,7 +590,7 @@ static Tester make_Tester(bool setBlocking, std::optional maxRo TEST_CASE(j2k_compressed_byte_provider_maxRowsPerSegment0) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); { auto tester = make_Tester(true /*setBlocking*/); tester.testMultipleWritesBlocked(); @@ -607,7 +607,7 @@ TEST_CASE(j2k_compressed_byte_provider_maxRowsPerSegment0) TEST_CASE(j2k_compressed_byte_provider) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); // Run tests forcing various numbers of segments // Blocking is set at 40 rows / block so can't go less than this diff --git a/externals/nitro/modules/c++/nitf/unittests/test_j2k_loading++.cpp b/externals/nitro/modules/c++/nitf/unittests/test_j2k_loading++.cpp index 4f627edec6..c4177deb19 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_j2k_loading++.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_j2k_loading++.cpp @@ -64,8 +64,8 @@ static std::string testName; static path findInputFile(const path& fn) { - const auto inputPath = path("modules") / "c++" / "nitf" / "unittests" / fn; - return nitf::Test::findInputFile(inputPath); + static const auto unittests = path("modules") / "c++" / "nitf" / "unittests"; + return nitf::Test::findInputFile(unittests, fn); } static void test_image_loading_(const std::string& input_file, bool /*optz*/) @@ -109,6 +109,8 @@ TEST_CASE(test_j2k_loading) //test_image_loading_(input_file, false /*optz*/); //input_file = findInputFile("xxxx_MSI.nitf").string(); //test_image_loading_(input_file, false /*optz*/); + + TEST_ASSERT_TRUE(true); // be sure hidden "testName" parameter is used } static void test_j2k_nitf_(const std::string& fname) @@ -281,15 +283,17 @@ TEST_CASE(test_j2k_nitf_read_region) // This is a JP2 file, not J2K; see OpenJPEG_setup_() const auto input_file = findInputFile("j2k_compressed_file1_jp2.ntf"); test_j2k_nitf_read_region_(input_file); + + TEST_ASSERT_TRUE(true); // be sure hidden "testName" parameter is used } static std::vector readImage(nitf::ImageReader& imageReader, const nitf::ImageSubheader& imageSubheader) { const auto numBlocks = imageSubheader.numBlocksPerRow() * imageSubheader.numBlocksPerCol(); - TEST_ASSERT_GREATER(numBlocks, static_cast(0)); + TEST_ASSERT_GREATER(static_cast(numBlocks), 0); const auto imageLength = imageSubheader.getNumBytesOfImageData(); - TEST_ASSERT_GREATER(imageLength, static_cast(0)); + TEST_ASSERT_GREATER(static_cast(imageLength), 0); // This assumes vertical blocking. // Interleaving would be required for horizontal blocks @@ -322,16 +326,17 @@ static void test_decompress_nitf_to_sio_(const path& inputPathname, const path& } TEST_CASE(test_j2k_decompress_nitf_to_sio) { - const auto pluginsDir = nitf::Test::buildPluginsDir("j2k"); - sys::OS().setEnv("NITF_PLUGIN_PATH", pluginsDir, true /*overwrite*/); + nitf::Test::j2kSetNitfPluginPath(); const auto inputPathname = findInputFile("j2k_compressed_file1_jp2.ntf"); // This is a JP2 file, not J2K; see OpenJPEG_setup_() test_decompress_nitf_to_sio_(inputPathname, "test_decompress_nitf.sio"); + + TEST_ASSERT_TRUE(true); // be sure hidden "testName" parameter is used } TEST_CASE(test_j2k_compress_raw_image) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir("j2k"), true /*overwrite*/); + nitf::Test::j2kSetNitfPluginPath(); const auto inputPathname = findInputFile("j2k_compressed_file1_jp2.ntf"); // This is a JP2 file, not J2K; see OpenJPEG_setup_() const path outputPathname = "test_j2k_compress_raw_image.sio"; diff --git a/externals/nitro/modules/c++/nitf/unittests/test_j2k_read_tile.cpp b/externals/nitro/modules/c++/nitf/unittests/test_j2k_read_tile.cpp index 6702c85a93..f08b268dd2 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_j2k_read_tile.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_j2k_read_tile.cpp @@ -27,6 +27,7 @@ TEST_CASE(j2k_read_tile) { /* placeholder */ + TEST_ASSERT_TRUE(true); } TEST_MAIN( diff --git a/externals/nitro/modules/c++/nitf/unittests/test_tre_create++.cpp b/externals/nitro/modules/c++/nitf/unittests/test_tre_create++.cpp index 8717ad1023..9883132a0b 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_tre_create++.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_tre_create++.cpp @@ -7,7 +7,7 @@ TEST_CASE(test_tre_create_329) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); // https://github.com/mdaus/nitro/issues/329 @@ -21,7 +21,7 @@ TEST_CASE(test_tre_create_329) TEST_CASE(test_tre_clone_329) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); // https://github.com/mdaus/nitro/issues/329 const std::string rd = "begin1020030004ABCDEFend"; @@ -43,6 +43,7 @@ TEST_CASE(test_tre_clone_329) } TEST_MAIN( + (void)argv; (void)argc; TEST_CHECK(test_tre_create_329); TEST_CHECK(test_tre_clone_329); ) diff --git a/externals/nitro/modules/c++/nitf/unittests/test_tre_mods++.cpp b/externals/nitro/modules/c++/nitf/unittests/test_tre_mods++.cpp index d989abe81c..02e5a20858 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_tre_mods++.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_tre_mods++.cpp @@ -159,7 +159,7 @@ struct /*namespace*/ TREs TEST_CASE(setFields) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); // create an ACFTA TRE nitf::TRE tre("ACFTA"); @@ -180,7 +180,7 @@ TEST_CASE(setFields) TEST_CASE(setBinaryFields) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); nitf::TRE tre("RPFHDR"); const int value = 123; @@ -193,7 +193,7 @@ TEST_CASE(setBinaryFields) TEST_CASE(cloneTRE) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); nitf::TRE tre("JITCID"); tre.setField("FILCMT", "fyi"); @@ -208,7 +208,7 @@ TEST_CASE(cloneTRE) TEST_CASE(basicIteration) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); nitf::TRE tre("ACCPOB"); @@ -237,7 +237,7 @@ TEST_CASE(basicIteration) TEST_CASE(use_ENGRDA) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); nitf::TRE engrda("ENGRDA", "ENGRDA"); @@ -257,11 +257,13 @@ TEST_CASE(use_ENGRDA) engrda.setField("ENGDATC[0]", 1); // count engrda.updateFields(); engrda.setField("ENGDATA[0]", "ABC"); + + TEST_ASSERT_TRUE(true); // need to reference hidden "testName" parameter } TEST_CASE(use_ENGRDA_typed_fields) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); nitf::TRE engrda("ENGRDA", "ENGRDA"); @@ -295,7 +297,7 @@ TEST_CASE(use_ENGRDA_typed_fields) TEST_CASE(use_typed_ENGRDA) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); TREs::ENGRDA engrda; // nitf::TRE engrda("ENGRDA", "ENGRDA"); @@ -343,9 +345,24 @@ TEST_CASE(use_typed_ENGRDA) } +TEST_CASE(use_CSEXRB_typed_fields) +{ + nitf::Test::setNitfPluginPath(); + + nitf::TRE tre("CSEXRB", "CSEXRB"); + + constexpr auto length = 12; + nitf::TREField_BCS_A MAX_GSD(tre, "MAX_GSD"); + TEST_ASSERT_EQ(length, static_cast(MAX_GSD.getLength())); + + MAX_GSD = "0123456789ab"; + const auto s = str::trim(MAX_GSD); + TEST_ASSERT_EQ_STR(s, "0123456789ab"); +} + TEST_CASE(populateWhileIterating) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); nitf::TRE tre("ACCPOB"); size_t numFields = 0; @@ -371,7 +388,7 @@ TEST_CASE(populateWhileIterating) TEST_CASE(overflowingNumericFields) { - sys::OS().setEnv("NITF_PLUGIN_PATH", nitf::Test::buildPluginsDir(), true /*overwrite*/); + nitf::Test::setNitfPluginPath(); nitf::TRE tre("CSCRNA"); @@ -401,6 +418,8 @@ TEST_CASE(overflowingNumericFields) } TEST_MAIN( + (void)argv; (void)argc; + TEST_CHECK(setFields); TEST_CHECK(setBinaryFields); TEST_CHECK(cloneTRE); @@ -408,6 +427,7 @@ TEST_MAIN( TEST_CHECK(use_ENGRDA); TEST_CHECK(use_ENGRDA_typed_fields); TEST_CHECK(use_typed_ENGRDA); + TEST_CHECK(use_CSEXRB_typed_fields); TEST_CHECK(populateWhileIterating); TEST_CHECK(overflowingNumericFields); ) diff --git a/externals/nitro/modules/c/nitf/unittests/test_tre_mods.c b/externals/nitro/modules/c++/nitf/unittests/test_tre_mods.cpp similarity index 88% rename from externals/nitro/modules/c/nitf/unittests/test_tre_mods.c rename to externals/nitro/modules/c++/nitf/unittests/test_tre_mods.cpp index 50cebe5065..1f0ebff570 100644 --- a/externals/nitro/modules/c/nitf/unittests/test_tre_mods.c +++ b/externals/nitro/modules/c++/nitf/unittests/test_tre_mods.cpp @@ -21,10 +21,13 @@ */ #include -#include "Test.h" +#include +#include "TestCase.h" TEST_CASE(testNestedMod) { + nitf::Test::setNitfPluginPath(); + nitf_Error error; NITF_BOOL exists; nitf_TRE* tre = nitf_TRE_construct("ACCHZB", NULL, &error); @@ -58,12 +61,14 @@ TEST_CASE(testNestedMod) TEST_CASE(testIncompleteCondMod) { + nitf::Test::setNitfPluginPath(); + nitf_Error error; NITF_BOOL exists; nitf_TRE* tre = nitf_TRE_construct("ACCPOB", NULL, &error); TEST_ASSERT(tre != NULL); int treLength = tre->handler->getCurrentSize(tre, &error); - TEST_ASSERT_EQ_INT(treLength, 2); + TEST_ASSERT_EQ(treLength, 2); exists = nitf_TRE_setField(tre, "NUMACPO", "01", 2, &error); TEST_ASSERT(exists); @@ -71,12 +76,12 @@ TEST_CASE(testIncompleteCondMod) exists = nitf_TRE_setField(tre, "UNIAAH[0]", "FT0", 3, &error); TEST_ASSERT(exists); treLength = tre->handler->getCurrentSize(tre, &error); - TEST_ASSERT_EQ_INT(treLength, 37); + TEST_ASSERT_EQ(treLength, 37); exists = nitf_TRE_setField(tre, "NUMPTS[0]", "002", 3, &error); TEST_ASSERT(exists); treLength = tre->handler->getCurrentSize(tre, &error); - TEST_ASSERT_EQ_INT(treLength, 97); + TEST_ASSERT_EQ(treLength, 97); /* destruct the TREs */ nitf_TRE_destruct(&tre); @@ -84,6 +89,8 @@ TEST_CASE(testIncompleteCondMod) TEST_CASE(testClone) { + nitf::Test::setNitfPluginPath(); + NITF_BOOL exists; nitf_TRE* dolly; /* used for clone */ nitf_Field* clonedField = NULL; @@ -109,6 +116,8 @@ TEST_CASE(testClone) TEST_CASE(testBasicMod) { + nitf::Test::setNitfPluginPath(); + /* construct a tre */ NITF_BOOL exists; nitf_Error error; @@ -138,13 +147,15 @@ TEST_CASE(testBasicMod) TEST_CASE(testSize) { + nitf::Test::setNitfPluginPath(); + nitf_Error error; int treLength; nitf_TRE* tre = nitf_TRE_construct("AIMIDB", NULL, &error); TEST_ASSERT(tre != NULL); treLength = tre->handler->getCurrentSize(tre, &error); - TEST_ASSERT_EQ_INT(treLength, 89); + TEST_ASSERT_EQ(treLength, 89); /* destruct the TRE */ nitf_TRE_destruct(&tre); @@ -152,6 +163,8 @@ TEST_CASE(testSize) TEST_CASE(iterateUnfilled) { + nitf::Test::setNitfPluginPath(); + nitf_Error error; nitf_TRECursor cursor; nitf_TRE* tre = nitf_TRE_construct("ACCPOB", NULL, &error); @@ -165,7 +178,7 @@ TEST_CASE(iterateUnfilled) ++numFields; } - TEST_ASSERT_EQ_INT(numFields, (uint32_t)1); + TEST_ASSERT_EQ(numFields, (uint32_t)1); nitf_TRECursor_cleanup(&cursor); nitf_TRE_destruct(&tre); @@ -173,6 +186,8 @@ TEST_CASE(iterateUnfilled) TEST_CASE(populateThenIterate) { + nitf::Test::setNitfPluginPath(); + nitf_Error error; nitf_TRECursor cursor; nitf_TRE* tre = nitf_TRE_construct("ACCPOB", NULL, &error); @@ -191,7 +206,7 @@ TEST_CASE(populateThenIterate) ++numFields; } - TEST_ASSERT_EQ_INT(numFields, (uint32_t)29); + TEST_ASSERT_EQ(numFields, (uint32_t)29); nitf_TRECursor_cleanup(&cursor); nitf_TRE_destruct(&tre); @@ -199,6 +214,8 @@ TEST_CASE(populateThenIterate) TEST_CASE(populateWhileIterating) { + nitf::Test::setNitfPluginPath(); + nitf_Error error; nitf_TRECursor cursor; nitf_TRE* tre = nitf_TRE_construct("ACCPOB", NULL, &error); @@ -223,7 +240,7 @@ TEST_CASE(populateWhileIterating) nitf_TRE_setField(cursor.tre, cursor.tag_str, "2", 1, &error); } } - TEST_ASSERT_EQ_INT(numFields, (uint32_t)29); + TEST_ASSERT_EQ(numFields, (uint32_t)29); nitf_TRECursor_cleanup(&cursor); nitf_TRE_destruct(&tre); @@ -233,12 +250,12 @@ TEST_MAIN( (void) argc; (void) argv; - CHECK(testClone); - CHECK(testSize); - CHECK(testBasicMod); - CHECK(testNestedMod); - CHECK(testIncompleteCondMod); - CHECK(iterateUnfilled); - CHECK(populateThenIterate); - CHECK(populateWhileIterating); + TEST_CHECK(testClone); + TEST_CHECK(testSize); + TEST_CHECK(testBasicMod); + TEST_CHECK(testNestedMod); + TEST_CHECK(testIncompleteCondMod); + TEST_CHECK(iterateUnfilled); + TEST_CHECK(populateThenIterate); + TEST_CHECK(populateWhileIterating); ) diff --git a/externals/nitro/modules/c++/nitf/unittests/test_tre_read.cpp b/externals/nitro/modules/c++/nitf/unittests/test_tre_read.cpp index 7c6be5e197..bfe69bfec7 100644 --- a/externals/nitro/modules/c++/nitf/unittests/test_tre_read.cpp +++ b/externals/nitro/modules/c++/nitf/unittests/test_tre_read.cpp @@ -96,7 +96,8 @@ const char* output_file = "test_writer_3++.nitf"; static std::filesystem::path findInputFile_(const std::string& name) { - return nitf::Test::findInputFile(std::filesystem::path("modules") / "c++" / "nitf" / "unittests" / name); + static const auto unittests = std::filesystem::path("modules") / "c++" / "nitf" / "unittests"; + return nitf::Test::findInputFile(unittests, name); } static const char* findInputFile(const char* name) { @@ -245,6 +246,31 @@ TEST_CASE(test_readRESubheader_crash) TEST_ASSERT_TRUE(true); } +TEST_CASE(test_nitf_CSEXRB_bugfix) +{ + const char* input_file = findInputFile("TEST_CSEXRB.nitf"); + + nitf_Error error; + nitf_IOHandle io = nitf_IOHandle_create(input_file, NITF_ACCESS_READONLY, + NITF_OPEN_EXISTING, &error); + if (NITF_INVALID_HANDLE(io)) + { + TEST_ASSERT_FALSE(true); + } + + /* We need to make a reader so we can parse the NITF */ + nitf_Reader* reader = nitf_Reader_construct(&error); + TEST_ASSERT_NOT_NULL(reader); + + /* This parses all header data within the NITF */ + nitf_Record* record = nitf_Reader_read(reader, io, &error); + TEST_ASSERT_NOT_NULL(record); + + nitf_IOHandle_close(io); + nitf_Record_destruct(&record); + nitf_Reader_destruct(&reader); +} + TEST_MAIN( (void)argc; (void)argv; @@ -253,4 +279,6 @@ TEST_CHECK(test_defaultRead_crash); // 3 TEST_CHECK(test_readBandInfo_crash); // 4 TEST_CHECK(test_readRESubheader_crash); // 5 TEST_CHECK(test_nitf_Record_unmergeTREs_hangs); // 6 + +TEST_CHECK(test_nitf_CSEXRB_bugfix); ) \ No newline at end of file diff --git a/externals/nitro/modules/c++/pch.h b/externals/nitro/modules/c++/pch.h index 03f81a187d..a969486e3c 100644 --- a/externals/nitro/modules/c++/pch.h +++ b/externals/nitro/modules/c++/pch.h @@ -1,9 +1,11 @@ #pragma once +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined #pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' +#pragma warning(disable: 5264) // '...': '...' variable is not used // TODO: get rid of these someday? #pragma warning(disable: 4514) // '...': unreferenced inline function has been removed #pragma warning(disable: 26823) // Dereferencing a possibly null pointer '...' (lifetime.1). diff --git a/externals/nitro/modules/c/CMakeLists.txt b/externals/nitro/modules/c/CMakeLists.txt index 15dc3dbbe7..6e6b185dcf 100644 --- a/externals/nitro/modules/c/CMakeLists.txt +++ b/externals/nitro/modules/c/CMakeLists.txt @@ -1,6 +1,27 @@ set(NITRO_VERSION "2.9") set(TARGET_LANGUAGE c) +# turn on warnings as errors +if (MSVC) + # By default, there is a /W3 on the command-line from somewhere (?); adding + # /W4 results in a compiler warning. + #add_compile_options(/W4) # /Wall + string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") # /Wall + + add_compile_options(/wd4996) # '...': This function or variable may be unsafe. +elseif (UNIX) + #add_compile_options(-Wall -pedantic -Wextra) + add_compile_options(-Wall -Wextra) + + add_compile_options(-Wno-implicit-fallthrough) + add_compile_options(-Wno-unused-function) + add_compile_options(-Wno-sign-compare -Wno-pointer-sign) + add_compile_options(-Wno-missing-field-initializers -Wno-maybe-uninitialized) + add_compile_options(-Wno-unused-parameter) + add_compile_options(-Wno-cast-function-type) + add_compile_options(-Wno-misleading-indentation) +endif() + add_subdirectory(nrt) add_subdirectory(nitf) add_subdirectory(cgm) diff --git a/externals/nitro/modules/c/cgm/source/MetafileReader.c b/externals/nitro/modules/c/cgm/source/MetafileReader.c index be23c26982..cba81f86b9 100644 --- a/externals/nitro/modules/c/cgm/source/MetafileReader.c +++ b/externals/nitro/modules/c/cgm/source/MetafileReader.c @@ -412,6 +412,7 @@ NITF_BOOL metafileList(cgm_Metafile* mf, cgm_ParseContext* pc, int classType, (void)classType; (void)shortCode; (void)error; + (void)len; DBG_TRACE(); assert(len == 6); diff --git a/externals/nitro/modules/c/j2k/shared/J2KCompress.c b/externals/nitro/modules/c/j2k/shared/J2KCompress.c index 5bb32ddb3d..5eb24805e4 100644 --- a/externals/nitro/modules/c/j2k/shared/J2KCompress.c +++ b/externals/nitro/modules/c/j2k/shared/J2KCompress.c @@ -23,7 +23,9 @@ #ifdef HAVE_J2K_H #if _MSC_VER +#ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#endif #pragma warning(push) #pragma warning(disable: 5039) // '...': pointer or reference to potentially throwing function passed to '...' #include diff --git a/externals/nitro/modules/c/j2k/shared/J2KDecompress.c b/externals/nitro/modules/c/j2k/shared/J2KDecompress.c index b597fe9883..12daa20206 100644 --- a/externals/nitro/modules/c/j2k/shared/J2KDecompress.c +++ b/externals/nitro/modules/c/j2k/shared/J2KDecompress.c @@ -23,7 +23,9 @@ #ifdef HAVE_J2K_H #if _MSC_VER +#ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#endif #pragma warning(push) #pragma warning(disable: 5039) // '...': pointer or reference to potentially throwing function passed to '...' #include diff --git a/externals/nitro/modules/c/jpeg/source/LibjpegDecompress.c b/externals/nitro/modules/c/jpeg/source/LibjpegDecompress.c index 934a9176d4..eb26bb6c35 100644 --- a/externals/nitro/modules/c/jpeg/source/LibjpegDecompress.c +++ b/externals/nitro/modules/c/jpeg/source/LibjpegDecompress.c @@ -28,6 +28,7 @@ #include #include #if defined(WIN32) || defined(_WIN32) + #undef BIGENDIAN #include #else #include @@ -826,7 +827,7 @@ NITFPRIV(NITF_BOOL) scanOffsets(nitf_IOInterface* io, /* Book keeping block */ const nitf_Off origin_ = nitf_IOInterface_tell(io, error); assert(NITF_IO_SUCCESS(origin_)); - uint64_t origin = origin_; + const uint64_t origin = origin_; /* End book keeping block */ DPRINTA1("File length: %ld\n", fileLength); while (bytesRead < fileLength) @@ -862,9 +863,11 @@ NITFPRIV(NITF_BOOL) scanOffsets(nitf_IOInterface* io, { off_t where = (off_t)nitf_IOInterface_tell(io, error); - uint64_t totalBytes = (fileLength - bytesRead) + - (where - origin); + (void)origin; + #ifndef NDEBUG // i.e., debug + const uint64_t totalBytes = (fileLength - bytesRead) + (where - origin); assert( fileLength == totalBytes); + #endif switch (tokenType) { case JPEG_MARKER_EOI: diff --git a/externals/nitro/modules/c/nitf/CMakeLists.txt b/externals/nitro/modules/c/nitf/CMakeLists.txt index 8be38d182a..bc705c7157 100644 --- a/externals/nitro/modules/c/nitf/CMakeLists.txt +++ b/externals/nitro/modules/c/nitf/CMakeLists.txt @@ -80,7 +80,6 @@ coda_add_tests( test_image_io.c test_mem_source.c test_moveTREs.c - test_tre_mods.c test_zero_field.c ) diff --git a/externals/nitro/modules/c/nitf/CSEXRB.vcxproj b/externals/nitro/modules/c/nitf/CSEXRB.vcxproj new file mode 100644 index 0000000000..f86f3a4085 --- /dev/null +++ b/externals/nitro/modules/c/nitf/CSEXRB.vcxproj @@ -0,0 +1,113 @@ + + + + + Debug + x64 + + + Release + x64 + + + + + + + + {f06550ad-cfc7-40b8-8727-6c82c69a8982} + + + + 16.0 + Win32Proj + {0A9BDA26-092F-4A2C-BBEF-00C64BF0C65E} + nitro + 10.0 + CSEXRB + + + + DynamicLibrary + true + v143 + + + DynamicLibrary + false + v143 + true + + + + + + + + + + + + + + + true + $(SolutionDir)$(Platform)\$(Configuration)\share\nitf\plugins\ + $(Platform)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)$(Platform)\$(Configuration)\share\nitf\plugins\ + $(Platform)\$(Configuration)\$(ProjectName)\ + + + + EnableAllWarnings + true + _DEBUG;_LIB;%(PreprocessorDefinitions);NRT_MODULE_EXPORTS;NITRO_PCH + true + $(ProjectDir)include;$(ProjectDir)..\nrt\include;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + true + true + CompileAsCpp + Guard + MultiThreadedDebugDLL + true + ProgramDatabase + stdc11 + + + + + true + + + + + Level3 + true + true + true + NDEBUG;_LIB;%(PreprocessorDefinitions);NRT_MODULE_EXPORTS;NITRO_PCH + true + $(ProjectDir)include;$(ProjectDir)..\nrt\include;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + true + CompileAsCpp + Guard + true + stdc11 + + + + + true + true + true + + + + + + \ No newline at end of file diff --git a/externals/nitro/modules/c/nitf/shared/CSEXRB.c b/externals/nitro/modules/c/nitf/shared/CSEXRB.c index 4378416764..ada74d1c31 100644 --- a/externals/nitro/modules/c/nitf/shared/CSEXRB.c +++ b/externals/nitro/modules/c/nitf/shared/CSEXRB.c @@ -20,6 +20,12 @@ * */ +#if _MSC_VER +#pragma warning(disable: 4820) // '...' : '...' bytes padding added after data member '...' +#pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' +#pragma warning(disable: 5039) // '...': pointer or reference to potentially throwing function passed to '...' function under -EHc. Undefined behavior may occur if this function throws an exception. +#endif + #include NITF_CXX_GUARD @@ -105,13 +111,13 @@ static nitf_TREDescription description[] = { {NITF_ENDIF, 0, NULL, NULL}, // TIME_STAMP_LOC eq 0 {NITF_ENDIF, 0, NULL, NULL}, // SENSOR_TYPE eq F - {NITF_BCS_A, 5, "Max Mean GSD", "MAX_GSD"}, - {NITF_BCS_A, 5, "Measured Along-Scan GSD", "ALONG_SCAN_GSD"}, - {NITF_BCS_A, 5, "Measured Cross-Scan GSD", "CROSS_SCAN_GSD"}, - {NITF_BCS_A, 5, "Measured Geometric Mean GSD", "GEO_MEAN_GSD"}, - {NITF_BCS_A, 5, "Measured Along-Scan Vertical GSD", "A_S_VERT_GSD"}, - {NITF_BCS_A, 5, "Measured Cross-Scan Vertical GSD", "C_S_VERT_GSD"}, - {NITF_BCS_A, 5, "Measured Geometric Mean Vertical GSD", "GEO_MEAN_VERT_GSD"}, + {NITF_BCS_A, 12, "Max Mean GSD", "MAX_GSD"}, + {NITF_BCS_A, 12, "Measured Along-Scan GSD", "ALONG_SCAN_GSD"}, + {NITF_BCS_A, 12, "Measured Cross-Scan GSD", "CROSS_SCAN_GSD"}, + {NITF_BCS_A, 12, "Measured Geometric Mean GSD", "GEO_MEAN_GSD"}, + {NITF_BCS_A, 12, "Measured Along-Scan Vertical GSD", "A_S_VERT_GSD"}, + {NITF_BCS_A, 12, "Measured Cross-Scan Vertical GSD", "C_S_VERT_GSD"}, + {NITF_BCS_A, 12, "Measured Geometric Mean Vertical GSD", "GEO_MEAN_VERT_GSD"}, {NITF_BCS_A, 5, "Angle Between Along-Scan and Cross-Scan Directions", "GSD_BETA_ANGLE"}, {NITF_BCS_A, 5, "Dynamic Range of Pixels", "DYNAMIC_RANGE"}, {NITF_BCS_N, 7, "Number of Lines in Entire Image Plane", "NUM_LINES"}, diff --git a/externals/nitro/modules/c/nitf/unittests/test_moveTREs.c b/externals/nitro/modules/c/nitf/unittests/test_moveTREs.c index 61e56a1795..b40fa96956 100644 --- a/externals/nitro/modules/c/nitf/unittests/test_moveTREs.c +++ b/externals/nitro/modules/c/nitf/unittests/test_moveTREs.c @@ -92,7 +92,7 @@ NITF_BOOL unmergeTREs(nitf_Record *record, nitf_Error *error) } -TEST_CASE_ARGS(testUnmerge) +TEST_CASE(testUnmerge) { nitf_Version version = NITF_VER_21; nitf_Record *record = NULL; @@ -122,9 +122,9 @@ TEST_CASE_ARGS(testUnmerge) nitf_Record_destruct(&record); } -int main(int argc, char **argv) +int main() // int argc, char **argv { - CHECK_ARGS(testUnmerge); + CHECK(testUnmerge); return 0; } diff --git a/externals/nitro/modules/c/nrt/include/nrt/Version.h b/externals/nitro/modules/c/nrt/include/nrt/Version.h index 669fc3d292..feea215eb5 100644 --- a/externals/nitro/modules/c/nrt/include/nrt/Version.h +++ b/externals/nitro/modules/c/nrt/include/nrt/Version.h @@ -1,5 +1,5 @@ #pragma once #if !defined(NRT_LIB_VERSION) -#define NRT_LIB_VERSION "2.10.13" +#define NRT_LIB_VERSION "2.11.2" #endif diff --git a/externals/nitro/modules/c/nrt/include/nrt/nrt_config.h.cmake.in b/externals/nitro/modules/c/nrt/include/nrt/nrt_config.h.cmake.in index 1c1e05d2d1..3625f7b053 100644 --- a/externals/nitro/modules/c/nrt/include/nrt/nrt_config.h.cmake.in +++ b/externals/nitro/modules/c/nrt/include/nrt/nrt_config.h.cmake.in @@ -3,6 +3,8 @@ #include +#ifndef NRT_LIB_VERSION #define NRT_LIB_VERSION "@NITRO_VERSION@" +#endif #endif diff --git a/externals/nitro/modules/c/nrt/source/Utils.c b/externals/nitro/modules/c/nrt/source/Utils.c index 7a1f760580..a538c4ae54 100644 --- a/externals/nitro/modules/c/nrt/source/Utils.c +++ b/externals/nitro/modules/c/nrt/source/Utils.c @@ -332,7 +332,7 @@ NRTAPI(void) nrt_Utils_decimalToGeographic(double decimal, int *degrees, NRTAPI(double) nrt_Utils_geographicToDecimal(int degrees, int minutes, double seconds) { - double decimal = fabs(degrees); + double decimal = fabs((double)degrees); decimal += fabs(minutes / 60.0); decimal += fabs(seconds / 3600.0); @@ -703,12 +703,12 @@ NRTPROT(void) nrt_Utils_decimalLonToGeoCharArray(double decimal, char *buffer8) * Older versions of Visual Studio do not support `inline` for C * Using `__inline` for Windows instead */ -NRTPRIV(void) #if defined(WIN32) || defined(_WIN32) __inline #else inline #endif +NRTPRIV(void) nrt_Utils_swap(uint8_t* value, size_t indexOne, size_t indexTwo) { diff --git a/externals/nitro/modules/python/CMakeLists.txt b/externals/nitro/modules/python/CMakeLists.txt index 6fd6536b93..03ee3f5102 100644 --- a/externals/nitro/modules/python/CMakeLists.txt +++ b/externals/nitro/modules/python/CMakeLists.txt @@ -1 +1,12 @@ +set(TARGET_LANGUAGE c++) + +if (MSVC) + # By default, there is a /W3 on the command-line from somewhere (?); adding + # /W4 results in a compiler warning. + #add_compile_options(/W0) + string(REGEX REPLACE "/W[0-4]" "/W0" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +elseif (UNIX) + add_compile_options(-w) # "Inhibit all warning messages" +endif() + add_subdirectory("nitf") diff --git a/externals/nitro/nitro.sln b/externals/nitro/nitro.sln index d56d0cfc7f..edc29f5c5b 100644 --- a/externals/nitro/nitro.sln +++ b/externals/nitro/nitro.sln @@ -63,6 +63,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{ .github\workflows\master.yml = .github\workflows\master.yml EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CSEXRB", "modules\c\nitf\CSEXRB.vcxproj", "{0A9BDA26-092F-4A2C-BBEF-00C64BF0C65E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -141,6 +143,10 @@ Global {C787537A-0CAC-4D6D-A6D6-A66765A06753}.Debug|x64.Build.0 = Debug|x64 {C787537A-0CAC-4D6D-A6D6-A66765A06753}.Release|x64.ActiveCfg = Release|x64 {C787537A-0CAC-4D6D-A6D6-A66765A06753}.Release|x64.Build.0 = Release|x64 + {0A9BDA26-092F-4A2C-BBEF-00C64BF0C65E}.Debug|x64.ActiveCfg = Debug|x64 + {0A9BDA26-092F-4A2C-BBEF-00C64BF0C65E}.Debug|x64.Build.0 = Debug|x64 + {0A9BDA26-092F-4A2C-BBEF-00C64BF0C65E}.Release|x64.ActiveCfg = Release|x64 + {0A9BDA26-092F-4A2C-BBEF-00C64BF0C65E}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -161,6 +167,7 @@ Global {C787537A-0CAC-4D6D-A6D6-A66765A06753} = {27A2685A-E869-42A2-956D-92994F60C536} {A45CB073-25A7-411D-A7E7-589BCC8AF547} = {5C5727E7-0CFF-42B4-8F5A-D31B3BC81F21} {AC22B9D3-0749-486F-A8F2-D6977BF9505D} = {A45CB073-25A7-411D-A7E7-589BCC8AF547} + {0A9BDA26-092F-4A2C-BBEF-00C64BF0C65E} = {27A2685A-E869-42A2-956D-92994F60C536} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {2D7AC542-BBB6-4BAC-8BF1-7E76C714BBA4} diff --git a/externals/nitro/sync_externals.csh b/externals/nitro/sync_externals.csh index 52705a96fc..15893f87a1 100755 --- a/externals/nitro/sync_externals.csh +++ b/externals/nitro/sync_externals.csh @@ -1,6 +1,6 @@ -#!/bin/tcsh +#!/bin/csh -f -git remote add -f coda-oss_remote https://github.com/mdaus/coda-oss.git +git remote add -f coda-oss_remote git@github.com:mdaus/coda-oss.git # To set this up the very first time # This does a subtree merge and puts it in the externals/coda-oss directory. --squash avoids copying all the history @@ -14,9 +14,8 @@ git remote add -f coda-oss_remote https://github.com/mdaus/coda-oss.git # Now we just want to update # Here I'm assuming you're running this on the master branch... otherwise the push command should change -git subtree pull --prefix externals/coda-oss coda-oss_remote master --squash +git subtree pull --prefix externals/coda-oss coda-oss_remote main --squash # If when you do this command you git a merge conflict because a file that has been removed here has been updated in CODA-OSS, you just need to do a 'git rm ' to resolve the merge conflict. Then a 'git commit'. # TODO: Make this script smart enough to do this. - -#git push origin master +# git push origin main diff --git a/externals/nitro/test_package/CMakeLists.txt b/externals/nitro/test_package/CMakeLists.txt index 6fbbb3533b..5a298bf8b5 100644 --- a/externals/nitro/test_package/CMakeLists.txt +++ b/externals/nitro/test_package/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.14) project(nitro-test_package) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 14) +set(CXX_STANDARD_REQUIRED true) include(${CMAKE_BINARY_DIR}/conan_paths.cmake) find_package(nitro) diff --git a/externals/nitro/wscript b/externals/nitro/wscript index 714ee7d719..42ac9cedb3 100644 --- a/externals/nitro/wscript +++ b/externals/nitro/wscript @@ -21,9 +21,12 @@ def configure(conf): conf.env['APPNAME'] = APPNAME conf.load(TOOLS, tooldir='build') + if conf.env['COMPILER_CXX'] == 'msvc': + conf.env.CXXFLAGS += ['/std:c++14']; + if conf.env['COMPILER_CXX'] != 'msvc': conf.env.CFLAGS += ['-Wall']; - conf.env.CXXFLAGS += ['-Wall']; + conf.env.CXXFLAGS += ['-Wall', '-std=c++14']; conf.recurse(DIRS) diff --git a/six/modules/CMakeLists.txt b/six/modules/CMakeLists.txt index 73dd8b0489..ecbb92ba5f 100644 --- a/six/modules/CMakeLists.txt +++ b/six/modules/CMakeLists.txt @@ -1,3 +1,5 @@ +set(TARGET_LANGUAGE c++) + add_subdirectory(c++) if (BUILD_PYTHON_MODULES) add_subdirectory(python) diff --git a/six/modules/c++/CMakeLists.txt b/six/modules/c++/CMakeLists.txt index 1911d21155..6e5dab1cd5 100644 --- a/six/modules/c++/CMakeLists.txt +++ b/six/modules/c++/CMakeLists.txt @@ -1,4 +1,29 @@ -set(TARGET_LANGUAGE c++) +# turn on maximum warnings +if (MSVC) + add_compile_options(/std:c++14) + + # By default, there is a /W3 on the command-line from somewhere (?); adding + # /Wn results in a compiler warning. + #add_compile_options(/W4) # /Wall + string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # /Wall + + add_compile_options(/wd4996) # '...': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + add_compile_options(/wd4127) # conditional expression is constant + add_compile_options(/wd4244) # '...': conversion from '...' to '...', possible loss of data + add_compile_options(/wd4267) # '...': conversion from '...' to '...', possible loss of data + +elseif (UNIX) + add_compile_options(-std=c++14) + + #add_compile_options(-Wall -pedantic -Wextra) + add_compile_options(-Wall -Wextra) + + add_compile_options(-Wno-deprecated-copy) + add_compile_options(-Wno-class-memaccess) + add_compile_options(-Wno-sizeof-pointer-div) + add_compile_options(-Wno-unused-parameter) + add_compile_options(-Wno-ignored-qualifiers) +endif() add_subdirectory(scene) add_subdirectory(six) diff --git a/six/modules/c++/cphd/CMakeLists.txt b/six/modules/c++/cphd/CMakeLists.txt index 464a171654..02aa25336d 100644 --- a/six/modules/c++/cphd/CMakeLists.txt +++ b/six/modules/c++/cphd/CMakeLists.txt @@ -13,6 +13,7 @@ coda_add_module( source/CPHDXMLParser.cpp source/Channel.cpp source/Data.cpp + source/DataWriter.cpp source/Dwell.cpp source/ErrorParameters.cpp source/FileHeader.cpp diff --git a/six/modules/c++/cphd/cphd.vcxproj b/six/modules/c++/cphd/cphd.vcxproj index 25d92147be..e7ab142f9c 100644 --- a/six/modules/c++/cphd/cphd.vcxproj +++ b/six/modules/c++/cphd/cphd.vcxproj @@ -15,6 +15,7 @@ Win32Proj {01BE4480-9620-4DED-B34F-D2E3AB4B7C8B} six + 10.0 @@ -63,6 +64,7 @@ Guard EnableAllWarnings true + stdc11
@@ -87,6 +89,7 @@ true AdvancedVectorExtensions2 MultiThreadedDLL + stdc11 @@ -118,6 +121,7 @@ + @@ -153,6 +157,7 @@ + diff --git a/six/modules/c++/cphd/cphd.vcxproj.filters b/six/modules/c++/cphd/cphd.vcxproj.filters index e9fb88640e..0eace9d1af 100644 --- a/six/modules/c++/cphd/cphd.vcxproj.filters +++ b/six/modules/c++/cphd/cphd.vcxproj.filters @@ -1,189 +1,195 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + \ No newline at end of file diff --git a/six/modules/c++/cphd/framework.h b/six/modules/c++/cphd/framework.h index 06477bb4c2..91b3386d67 100644 --- a/six/modules/c++/cphd/framework.h +++ b/six/modules/c++/cphd/framework.h @@ -7,9 +7,11 @@ // We're building in Visual Studio ... used to control where we get a little bit of config info #define NITRO_PCH 1 +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined +#pragma warning(disable: 5264) // '...': '...' variable is not used #pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified @@ -37,6 +39,10 @@ #pragma warning(disable: 6386) // Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written. #pragma warning(disable: 26812) // The enum type '...' is unscoped. Prefer '...' over '...' (Enum.3). +// error 4996: '...': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. +#define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING +#include + #pragma warning(push) #pragma warning(disable: 4464) // relative include path contains '..' #include "../../nitro_pch.h" diff --git a/six/modules/c++/cphd/include/cphd/CPHDReader.h b/six/modules/c++/cphd/include/cphd/CPHDReader.h index 97956555e7..84cc7031f2 100644 --- a/six/modules/c++/cphd/include/cphd/CPHDReader.h +++ b/six/modules/c++/cphd/include/cphd/CPHDReader.h @@ -19,8 +19,9 @@ * see . * */ -#ifndef __CPHD_CPHD_READER_H__ -#define __CPHD_CPHD_READER_H__ +#ifndef SIX_cphd_CPHDReader_h_INCLUDED_ +#define SIX_cphd_CPHDReader_h_INCLUDED_ +#pragma once #include @@ -162,4 +163,4 @@ struct CPHDReader final }; } -#endif +#endif // SIX_cphd_CPHDReader_h_INCLUDED_ diff --git a/six/modules/c++/cphd/include/cphd/CPHDWriter.h b/six/modules/c++/cphd/include/cphd/CPHDWriter.h index ce0921059c..1341cbb829 100644 --- a/six/modules/c++/cphd/include/cphd/CPHDWriter.h +++ b/six/modules/c++/cphd/include/cphd/CPHDWriter.h @@ -20,8 +20,8 @@ * */ -#ifndef __CPHD_CPHD_WRITER_H__ -#define __CPHD_CPHD_WRITER_H__ +#ifndef SIX_cphd_CPHDWriter_h_INCLUDED_ +#define SIX_cphd_CPHDWriter_h_INCLUDED_ #pragma once #include @@ -35,143 +35,11 @@ #include #include #include +#include namespace cphd { -/* - * \class DataWriter - * - * \brief Class to handle writing to file and byte swapping - */ -struct DataWriter -{ - /* - * \func DataWriter - * \brief Constructor - * - * \param stream The seekable output stream to be written - * \param numThreads Number of threads for parallel processing - */ - DataWriter(std::shared_ptr stream, - size_t numThreads); - - /* - * Destructor - */ - virtual ~DataWriter(); - - /* - * \func operator() - * \brief Overload operator performs write and endian swap - * - * \param data Pointer to the data that will be written to the filestream - * \param numElements Total number of elements in array - * \param elementSize Size of each element - */ - virtual void operator()(const sys::ubyte* data, - size_t numElements, - size_t elementSize) = 0; - virtual void operator()(const std::byte* data, - size_t numElements, - size_t elementSize) - { - (*this)(reinterpret_cast(data), numElements, elementSize); - } - -protected: - //! Output stream of CPHD - std::shared_ptr mStream; - //! Number of threads for parallelism - const size_t mNumThreads; -}; - -/* - * \class DataWriterLittleEndian - * - * \brief Class to handle writing to output stream and byte swapping - * - * For little endian to big endian storage - */ -struct DataWriterLittleEndian final : public DataWriter -{ - /* - * \func DataWriterLittleEndian - * \brief Constructor - * - * \param stream The seekable output stream to be written - * \param numThreads Number of threads for parallel processing - * \param scratchSize Size of buffer to be used for scratch space - */ - DataWriterLittleEndian(std::shared_ptr stream, - size_t numThreads, - size_t scratchSize); - - /* - * \func operator() - * \brief Overload operator performs write and endian swap - * - * \param data Pointer to the data that will be written to the filestream - * \param numElements Total number of elements in array - * \param elementSize Size of each element - */ - void operator()(const sys::ubyte* data, - size_t numElements, - size_t elementSize) override; - void operator()(const std::byte* data, - size_t numElements, - size_t elementSize) override - { - (*this)(reinterpret_cast(data), numElements, elementSize); - } - - -private: - // Scratch space buffer - std::vector mScratch; -}; - -/* - * \class DataWriterBigEndian - * - * \brief Class to handle writing to file - * - * No byte swap. Already big endian. - */ -struct DataWriterBigEndian final : public DataWriter -{ - /* - * \func DataWriter - * \brief Constructor - * - * \param stream The seekable output stream to be written - * \param numThreads Number of threads for parallel processing - */ - DataWriterBigEndian(std::shared_ptr stream, - size_t numThreads); - - /* - * \func operator() - * \brief Overload operator performs write - * - * No endian swapping is necessary. Already Big Endian. - * - * \param data Pointer to the data that will be written to the filestream - * \param numElements Total number of elements in array - * \param elementSize Size of each element - */ - void operator()(const sys::ubyte* data, - size_t numElements, - size_t elementSize) override; - void operator()(const std::byte* data, - size_t numElements, - size_t elementSize) override - { - (*this)(reinterpret_cast(data), numElements, elementSize); - } -}; - - /* * \class CPHDWriter * \brief CPHD write handler @@ -179,7 +47,7 @@ struct DataWriterBigEndian final : public DataWriter * Used to write a CPHD file. You must be able to provide the * appropriate metadata and vector based metadata. */ -struct CPHDWriter +struct CPHDWriter final { /* * \func Constructor @@ -233,6 +101,13 @@ struct CPHDWriter size_t numThreads = 0, size_t scratchSpaceSize = 4 * 1024 * 1024); + CPHDWriter() = delete; + CPHDWriter(const CPHDWriter&) = delete; + CPHDWriter& operator=(const CPHDWriter&) = delete; + CPHDWriter(CPHDWriter&&) = delete; + CPHDWriter& operator=(CPHDWriter&&) = delete; + ~CPHDWriter() = default; + /* * \func write * \brief Writes the complete CPHD into the file. @@ -351,6 +226,10 @@ struct CPHDWriter { mStream->close(); } + std::shared_ptr getStream() const + { + return mStream; + } private: /* @@ -387,7 +266,6 @@ struct CPHDWriter //! DataWriter object std::unique_ptr mDataWriter; - void initializeDataWriter(); // Book-keeping element //! metadata information @@ -407,4 +285,4 @@ struct CPHDWriter }; } -#endif +#endif // SIX_cphd_CPHDWriter_h_INCLUDED_ diff --git a/six/modules/c++/cphd/include/cphd/CPHDXMLControl.h b/six/modules/c++/cphd/include/cphd/CPHDXMLControl.h index 43162378e6..f3ef81da76 100644 --- a/six/modules/c++/cphd/include/cphd/CPHDXMLControl.h +++ b/six/modules/c++/cphd/include/cphd/CPHDXMLControl.h @@ -84,10 +84,14 @@ class CPHDXMLControl * Calls toXML * \return XML String */ - virtual std::string toXMLString( + virtual std::u8string toXMLString( const Metadata& metadata, const std::vector& schemaPaths = std::vector(), bool prettyPrint = false); + std::string toXMLString_( + const Metadata& metadata, + const std::vector& schemaPaths = std::vector(), + bool prettyPrint = false); virtual std::u8string toXMLString( const Metadata& metadata, const std::vector* pSchemaPaths, @@ -102,7 +106,7 @@ class CPHDXMLControl * \param schemaPaths Vector of XML Schema for validation * \return pointer to xml Document object */ - virtual mem::auto_ptr toXML( + virtual std::unique_ptr toXML( const Metadata& metadata, const std::vector& schemaPaths = std::vector()); diff --git a/six/modules/c++/cphd/include/cphd/DataWriter.h b/six/modules/c++/cphd/include/cphd/DataWriter.h new file mode 100644 index 0000000000..3be5c21ba7 --- /dev/null +++ b/six/modules/c++/cphd/include/cphd/DataWriter.h @@ -0,0 +1,185 @@ +/* ========================================================================= + * This file is part of cphd-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2019, MDA Information Systems LLC + * + * cphd-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ + +#ifndef SIX_cphd_DataWriter_h_INCLUDED_ +#define SIX_cphd_DataWriter_h_INCLUDED_ +#pragma once + +#include +#include +#include // std::byte + +#include +#include + +namespace cphd +{ + +/* + * \class DataWriter + * + * \brief Class to handle writing to file and byte swapping + */ +struct DataWriter +{ + /* + * \func DataWriter + * \brief Constructor + * + * \param stream The seekable output stream to be written + * \param numThreads Number of threads for parallel processing + */ + DataWriter(io::OutputStream&, size_t numThreads); + + DataWriter() = delete; + DataWriter(const DataWriter&) = delete; + DataWriter& operator=(const DataWriter&) = delete; + DataWriter(DataWriter&&) = default; + DataWriter& operator=(DataWriter&&) = default; + + /* + * Destructor + */ + virtual ~DataWriter() = default; + + /* + * \func operator() + * \brief Overload operator performs write and endian swap + * + * \param data Pointer to the data that will be written to the filestream + * \param numElements Total number of elements in array + * \param elementSize Size of each element + */ + virtual void operator()(const void* data, size_t numElements, size_t elementSize) = 0; + +protected: + //! Output stream of CPHD + io::OutputStream& mStream; + //! Number of threads for parallelism + const size_t mNumThreads; +}; + +/* + * \class DataWriterLittleEndian + * + * \brief Class to handle writing to output stream and byte swapping + * + * For little endian to big endian storage + */ +struct DataWriterLittleEndian final : public DataWriter +{ + /* + * \func DataWriterLittleEndian + * \brief Constructor + * + * \param stream The seekable output stream to be written + * \param numThreads Number of threads for parallel processing + * \param scratchSize Size of buffer to be used for scratch space + */ + DataWriterLittleEndian(io::OutputStream&, size_t numThreads, size_t scratchSize); + DataWriterLittleEndian(std::shared_ptr&, size_t numThreads, size_t scratchSize); // for SWIG + DataWriterLittleEndian() = delete; + DataWriterLittleEndian(const DataWriterLittleEndian&) = delete; + DataWriterLittleEndian& operator=(const DataWriterLittleEndian&) = delete; + DataWriterLittleEndian(DataWriterLittleEndian&&) = default; + DataWriterLittleEndian& operator=(DataWriterLittleEndian&&) = default; + ~DataWriterLittleEndian() = default; + + /* + * \func operator() + * \brief Overload operator performs write and endian swap + * + * \param data Pointer to the data that will be written to the filestream + * \param numElements Total number of elements in array + * \param elementSize Size of each element + */ + void operator()(const void* data, size_t numElements, size_t elementSize) override; + +private: + // Scratch space buffer + std::vector mScratch; +}; + +/* + * \class DataWriterBigEndian + * + * \brief Class to handle writing to file + * + * No byte swap. Already big endian. + */ +struct DataWriterBigEndian final : public DataWriter +{ + /* + * \func DataWriter + * \brief Constructor + * + * \param stream The seekable output stream to be written + * \param numThreads Number of threads for parallel processing + */ + DataWriterBigEndian(io::OutputStream&, size_t numThreads); + DataWriterBigEndian(std::shared_ptr&, size_t numThreads); // for SWIG + DataWriterBigEndian() = delete; + DataWriterBigEndian(const DataWriterBigEndian&) = delete; + DataWriterBigEndian& operator=(const DataWriterBigEndian&) = delete; + DataWriterBigEndian(DataWriterBigEndian&&) = default; + DataWriterBigEndian& operator=(DataWriterBigEndian&&) = default; + ~DataWriterBigEndian() = default; + + /* + * \func operator() + * \brief Overload operator performs write + * + * No endian swapping is necessary. Already Big Endian. + * + * \param data Pointer to the data that will be written to the filestream + * \param numElements Total number of elements in array + * \param elementSize Size of each element + */ + void operator()(const void* data, size_t numElements, size_t elementSize) override; +}; + +// Create the appropriate DataWriter instance using std::endian::native. There are fancier +// ways of doing this compile-time "if" check, but this is relatively straight-forward to understand; +// C++20 brings `consteval if`. +namespace details +{ + template + auto make_DataWriter(io::OutputStream&, size_t numThreads, size_t scratchSize); + template<> + inline auto make_DataWriter(io::OutputStream& stream, size_t numThreads, size_t /*scratchSize*/) + { + return std::make_unique(stream, numThreads); + } + template<> + inline auto make_DataWriter(io::OutputStream& stream, size_t numThreads, size_t scratchSize) + { + return std::make_unique(stream, numThreads, scratchSize); + } +} +inline auto make_DataWriter(io::OutputStream& stream, size_t numThreads, size_t scratchSize) +{ + return details::make_DataWriter(stream, numThreads, scratchSize); +} + +} + +#endif // SIX_cphd_DataWriter_h_INCLUDED_ diff --git a/six/modules/c++/cphd/source/ByteSwap.cpp b/six/modules/c++/cphd/source/ByteSwap.cpp index f67a520129..241d3dd987 100644 --- a/six/modules/c++/cphd/source/ByteSwap.cpp +++ b/six/modules/c++/cphd/source/ByteSwap.cpp @@ -21,60 +21,34 @@ */ #include +#include + #include -#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include #include #include +#include #include namespace { -// TODO: Maybe this should go in sys/Conf.h -// It's more flexible in that it properly handles float's - you can't -// just call sys::byteSwap(floatVal) because the compiler may change the -// byte-swapped float value into a valid IEEE value beforehand. -// TODO: If we're really looking to optimize this, could specialize it for -// sizes of 2, 4, and 8 to eliminate the for loop template -inline -void byteSwap(const void* in, T& out) +inline void byteSwap(const void* in, T& out) { - const std::byte* const inPtr = static_cast(in); - std::byte* const outPtr = reinterpret_cast(&out); - - for (size_t ii = 0, jj = sizeof(T) - 1; ii < jj; ++ii, --jj) - { - outPtr[ii] = inPtr[jj]; - outPtr[jj] = inPtr[ii]; - } + auto const inBytes = sys::make_span(in, sizeof(T)); + out = sys::swapBytes(inBytes); } -class ByteSwapRunnable : public sys::Runnable -{ -public: - ByteSwapRunnable(void* buffer, - size_t elemSize, - size_t startElement, - size_t numElements) : - mBuffer(static_cast(buffer) + startElement * elemSize), - mElemSize(static_cast(elemSize)), - mNumElements(numElements) - { - } - - virtual void run() - { - sys::byteSwap(mBuffer, mElemSize, mNumElements); - } - -private: - std::byte* const mBuffer; - const unsigned short mElemSize; - const size_t mNumElements; -}; - inline const std::byte* calc_offset(const void* input_, size_t offset) { auto input = static_cast(input_); @@ -82,9 +56,8 @@ inline const std::byte* calc_offset(const void* input_, size_t offset) } template -class ByteSwapAndPromoteRunnable : public sys::Runnable +struct ByteSwapAndPromoteRunnable final : public sys::Runnable { -public: ByteSwapAndPromoteRunnable(const void* input, size_t startRow, size_t numRows, @@ -96,16 +69,14 @@ class ByteSwapAndPromoteRunnable : public sys::Runnable { } - virtual void run() + void run() override { InT real(0); InT imag(0); for (size_t row = 0, inIdx = 0, outIdx = 0; row < mDims.row; ++row) { - for (size_t col = 0; - col < mDims.col; - ++col, inIdx += sizeof(std::complex), ++outIdx) + for (size_t col = 0; col < mDims.col; ++col, inIdx += sizeof(std::complex), ++outIdx) { // Have to be careful here - can't treat mInput as a // std::complex directly in case InT is a float (see @@ -114,8 +85,7 @@ class ByteSwapAndPromoteRunnable : public sys::Runnable byteSwap(input, real); byteSwap(calc_offset(input, sizeof(InT)), imag); - mOutput[outIdx] = std::complex(real, - imag); + mOutput[outIdx] = std::complex(real, imag); } } } @@ -128,9 +98,8 @@ class ByteSwapAndPromoteRunnable : public sys::Runnable template -class ByteSwapAndScaleRunnable : public sys::Runnable +struct ByteSwapAndScaleRunnable final : public sys::Runnable { -public: ByteSwapAndScaleRunnable(const void* input, size_t startRow, size_t numRows, @@ -144,7 +113,7 @@ class ByteSwapAndScaleRunnable : public sys::Runnable { } - virtual void run() + void run() override { InT real(0); InT imag(0); @@ -254,38 +223,9 @@ void byteSwapAndScale(const void* input, namespace cphd { -void byteSwap(void* buffer, - size_t elemSize, - size_t numElements, - size_t numThreads) +void byteSwap(void* buffer, size_t elemSize, size_t numElements, size_t numThreads) { - if (numThreads <= 1) - { - sys::byteSwap(buffer, - static_cast(elemSize), - numElements); - } - else - { - mt::ThreadGroup threads; - const mt::ThreadPlanner planner(numElements, numThreads); - - size_t threadNum(0); - size_t startElement(0); - size_t numElementsThisThread(0); - while (planner.getThreadInfo(threadNum++, - startElement, - numElementsThisThread)) - { - auto thread = std::make_unique( - buffer, - elemSize, - startElement, - numElementsThisThread); - threads.createThread(std::move(thread)); - } - threads.joinAll(); - } + return mt::threadedByteSwap(buffer, elemSize, numElements, numThreads); } void byteSwapAndPromote(const void* input, diff --git a/six/modules/c++/cphd/source/CPHDWriter.cpp b/six/modules/c++/cphd/source/CPHDWriter.cpp index dfa2914ba7..e80946b0e5 100644 --- a/six/modules/c++/cphd/source/CPHDWriter.cpp +++ b/six/modules/c++/cphd/source/CPHDWriter.cpp @@ -39,81 +39,6 @@ namespace cphd { -DataWriter::DataWriter(std::shared_ptr stream, - size_t numThreads) : - mStream(stream), - mNumThreads(numThreads == 0 ? std::thread::hardware_concurrency() : numThreads) -{ -} - -DataWriter::~DataWriter() -{ -} - -DataWriterLittleEndian::DataWriterLittleEndian( - std::shared_ptr stream, - size_t numThreads, - size_t scratchSize) : - DataWriter(stream, numThreads), - mScratch(scratchSize) -{ -} - -void DataWriterLittleEndian::operator()(const sys::ubyte* data, - size_t numElements, - size_t elementSize) -{ - size_t dataProcessed = 0; - const size_t dataSize = numElements * elementSize; - while (dataProcessed < dataSize) - { - const size_t dataToProcess = - std::min(mScratch.size(), dataSize - dataProcessed); - - memcpy(mScratch.data(), data + dataProcessed, dataToProcess); - - cphd::byteSwap(mScratch.data(), - elementSize, - dataToProcess / elementSize, - mNumThreads); - - mStream->write(mScratch.data(), dataToProcess); - - dataProcessed += dataToProcess; - } -} - -DataWriterBigEndian::DataWriterBigEndian( - std::shared_ptr stream, size_t numThreads) : - DataWriter(stream, numThreads) -{ -} - -void DataWriterBigEndian::operator()(const sys::ubyte* data, - size_t numElements, - size_t elementSize) -{ - mStream->write(data, - numElements * elementSize); -} - -void CPHDWriter::initializeDataWriter() -{ - // Get the correct dataWriter. - // The CPHD file needs to be big endian. - auto endianness = std::endian::native; // "conditional expression is constant" - if (endianness == std::endian::big) - { - mDataWriter = std::make_unique(mStream, mNumThreads); - } - else - { - mDataWriter = std::make_unique(mStream, - mNumThreads, - mScratchSpaceSize); - } -} - CPHDWriter::CPHDWriter(const Metadata& metadata, std::shared_ptr outStream, @@ -127,7 +52,9 @@ CPHDWriter::CPHDWriter(const Metadata& metadata, mSchemaPaths(schemaPaths), mStream(outStream) { - initializeDataWriter(); + // Get the correct dataWriter. + // The CPHD file needs to be big endian. + mDataWriter = make_DataWriter(*mStream, mNumThreads, mScratchSpaceSize); } CPHDWriter::CPHDWriter(const Metadata& metadata, @@ -135,16 +62,12 @@ CPHDWriter::CPHDWriter(const Metadata& metadata, const std::vector& schemaPaths, size_t numThreads, size_t scratchSpaceSize) : - mMetadata(metadata), - mElementSize(metadata.data.getNumBytesPerSample()), - mScratchSpaceSize(scratchSpaceSize), - mNumThreads(numThreads), - mSchemaPaths(schemaPaths) + CPHDWriter(metadata, + std::make_shared(pathname), // Initialize output stream + schemaPaths, + numThreads, + scratchSpaceSize) { - // Initialize output stream - mStream = std::make_shared(pathname); - - initializeDataWriter(); } void CPHDWriter::writeMetadata(size_t supportSize, diff --git a/six/modules/c++/cphd/source/CPHDXMLControl.cpp b/six/modules/c++/cphd/source/CPHDXMLControl.cpp index 0e5ab43202..9aa6bff7bf 100644 --- a/six/modules/c++/cphd/source/CPHDXMLControl.cpp +++ b/six/modules/c++/cphd/source/CPHDXMLControl.cpp @@ -71,7 +71,7 @@ std::u8string CPHDXMLControl::toXMLString( doc->getRootElement()->print(ss); return ss.stream().str(); } -std::string CPHDXMLControl::toXMLString( +std::u8string CPHDXMLControl::toXMLString( const Metadata& metadata, const std::vector& schemaPaths_, bool prettyPrint) @@ -80,15 +80,22 @@ std::string CPHDXMLControl::toXMLString( std::transform(schemaPaths_.begin(), schemaPaths_.end(), std::back_inserter(schemaPaths), [](const std::string& s) { return s; }); - const auto result = toXMLString(metadata, &schemaPaths, prettyPrint); + return toXMLString(metadata, &schemaPaths, prettyPrint); +} +std::string CPHDXMLControl::toXMLString_( + const Metadata& metadata, + const std::vector& schemaPaths, + bool prettyPrint) +{ + const auto result = toXMLString(metadata, schemaPaths, prettyPrint); return str::EncodedStringView(result).native(); } -mem::auto_ptr CPHDXMLControl::toXML( +std::unique_ptr CPHDXMLControl::toXML( const Metadata& metadata, const std::vector& schemaPaths) { - mem::auto_ptr doc(toXMLImpl(metadata).release()); + std::unique_ptr doc(toXMLImpl(metadata).release()); if(!schemaPaths.empty()) { six::XMLControl::validate(doc.get(), schemaPaths, mLog); diff --git a/six/modules/c++/cphd/source/CPHDXMLParser.cpp b/six/modules/c++/cphd/source/CPHDXMLParser.cpp index 90362399d6..419ddb65d3 100644 --- a/six/modules/c++/cphd/source/CPHDXMLParser.cpp +++ b/six/modules/c++/cphd/source/CPHDXMLParser.cpp @@ -1076,13 +1076,15 @@ void CPHDXMLParser::fromXML(const xml::lite::Element* globalXML, Global& global) } // IonoParameters - const xml::lite::Element* ionoXML = getOptional(globalXML, "IonoParameters"); - if (ionoXML) + if (const auto ionoXML = getOptional(globalXML, "IonoParameters")) { // Optional global.ionoParameters.reset(new IonoParameters()); parseDouble(getFirstAndOnly(ionoXML, "TECV"), global.ionoParameters->tecv); - parseDouble(getFirstAndOnly(ionoXML, "F2Height"), global.ionoParameters->f2Height); + if (const auto f2HeightXML = getOptional(ionoXML, "F2Height")) + { + parseDouble(f2HeightXML, global.ionoParameters->f2Height); + } } } @@ -1634,7 +1636,7 @@ void CPHDXMLParser::fromXML(const xml::lite::Element* errParamXML, ErrorParamete mCommon.parseDecorrType(rangeBiasDecorrXML, *(errParam.monostatic->radarSensor.rangeBiasDecorr)); } - XMLElem tropoErrorXML = getFirstAndOnly(monostaticXML, "TropoError"); + XMLElem tropoErrorXML = getOptional(monostaticXML, "TropoError"); if(tropoErrorXML) { errParam.monostatic->tropoError.reset(new six::TropoError()); @@ -1643,7 +1645,7 @@ void CPHDXMLParser::fromXML(const xml::lite::Element* errParamXML, ErrorParamete mCommon.parseOptionalDecorrType(tropoErrorXML, "TropoRangeDecorr", errParam.monostatic->tropoError->tropoRangeDecorr); } - XMLElem ionoErrorXML = getFirstAndOnly(monostaticXML, "IonoError"); + XMLElem ionoErrorXML = getOptional(monostaticXML, "IonoError"); if(ionoErrorXML) { errParam.monostatic->ionoError.reset(new six::IonoError()); diff --git a/six/modules/c++/cphd/source/DataWriter.cpp b/six/modules/c++/cphd/source/DataWriter.cpp new file mode 100644 index 0000000000..9cc3a5393a --- /dev/null +++ b/six/modules/c++/cphd/source/DataWriter.cpp @@ -0,0 +1,94 @@ +/* ========================================================================= + * This file is part of cphd-c++ + * ========================================================================= + * + * (C) Copyright 2004 - 2019, MDA Information Systems LLC + * + * cphd-c++ is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; If not, + * see . + * + */ +#include + +#include +#include + +#include + +#include +#undef min +#undef max + + +namespace cphd +{ +DataWriter::DataWriter(io::OutputStream& stream, size_t numThreads) : + mStream(stream), + mNumThreads(numThreads == 0 ? std::thread::hardware_concurrency() : numThreads) +{ +} + +DataWriterLittleEndian::DataWriterLittleEndian( + io::OutputStream& stream, + size_t numThreads, + size_t scratchSize) : + DataWriter(stream, numThreads), + mScratch(scratchSize) +{ +} +DataWriterLittleEndian::DataWriterLittleEndian( + std::shared_ptr& stream, + size_t numThreads, + size_t scratchSize) : DataWriterLittleEndian(*stream, numThreads, scratchSize) +{ +} +void DataWriterLittleEndian::operator()(const void* pData, size_t numElements, size_t elementSize) +{ + const auto data = static_cast(pData); + + size_t dataProcessed = 0; + const size_t dataSize = numElements * elementSize; + while (dataProcessed < dataSize) + { + const size_t dataToProcess = + std::min(mScratch.size(), dataSize - dataProcessed); + + memcpy(mScratch.data(), data + dataProcessed, dataToProcess); + + cphd::byteSwap(mScratch.data(), + elementSize, + dataToProcess / elementSize, + mNumThreads); + + mStream.write(mScratch.data(), dataToProcess); + + dataProcessed += dataToProcess; + } +} + +DataWriterBigEndian::DataWriterBigEndian(io::OutputStream& stream, size_t numThreads) : + DataWriter(stream, numThreads) +{ +} +DataWriterBigEndian::DataWriterBigEndian( + std::shared_ptr& stream, + size_t numThreads) : DataWriterBigEndian(*stream, numThreads) +{ +} +void DataWriterBigEndian::operator()(const void* data, size_t numElements, size_t elementSize) +{ + mStream.write(data, numElements * elementSize); +} + +} diff --git a/six/modules/c++/cphd/tests/test_metadata_round.cpp b/six/modules/c++/cphd/tests/test_metadata_round.cpp index 93af0f796e..2b0ca1e8f5 100644 --- a/six/modules/c++/cphd/tests/test_metadata_round.cpp +++ b/six/modules/c++/cphd/tests/test_metadata_round.cpp @@ -53,7 +53,7 @@ void parseXMLFile(xml::lite::MinidomParser& xmlParser, std::string pathname) } bool testEqual(const std::string& inPathname, const std::string& outPathname, - size_t numThreads, const std::vector& schemas) + size_t /*numThreads*/, const std::vector& schemas) { // Read in first XML file xml::lite::MinidomParser xmlParser; diff --git a/six/modules/c++/cphd/unittests/test_cphd_xml_control.cpp b/six/modules/c++/cphd/unittests/test_cphd_xml_control.cpp index 14d8e089fe..4a4e5edbcd 100644 --- a/six/modules/c++/cphd/unittests/test_cphd_xml_control.cpp +++ b/six/modules/c++/cphd/unittests/test_cphd_xml_control.cpp @@ -31,9 +31,7 @@ #include #include "TestCase.h" -namespace -{ -std::string testCPHDXMLBody() +static std::string testCPHDXMLBody() { const char* xmlBody = " \n" @@ -1151,7 +1149,6 @@ void runTest(const std::string& testName, const std::string& version) TEST_ASSERT_EQ(ref.monostatic->layoverAngle, 30.0); TEST_ASSERT_EQ(ref.monostatic->dopplerConeAngle, 30.0); } -} TEST_CASE(testVersions) { @@ -1172,7 +1169,26 @@ TEST_CASE(testReadXML) } } +TEST_CASE(testPhaseSGN) +{ + auto v = cphd::PhaseSGN::toType("-1"); + TEST_ASSERT_EQ(v, -1); + auto s = v.toString(); + TEST_ASSERT_EQ("-1", s); + + v = cphd::PhaseSGN::toType("+1"); + TEST_ASSERT_EQ(v, +1); + s = v.toString(); + TEST_ASSERT_EQ("1", s); + + v = cphd::PhaseSGN::toType("1"); + TEST_ASSERT_EQ(v, 1); + s = v.toString(); + TEST_ASSERT_EQ("1", s); +} + TEST_MAIN( TEST_CHECK(testVersions); TEST_CHECK(testReadXML); + TEST_CHECK(testPhaseSGN); ) diff --git a/six/modules/c++/cphd03/cphd03.vcxproj b/six/modules/c++/cphd03/cphd03.vcxproj index a7e2e65c9d..54d884e9d0 100644 --- a/six/modules/c++/cphd03/cphd03.vcxproj +++ b/six/modules/c++/cphd03/cphd03.vcxproj @@ -15,6 +15,7 @@ Win32Proj {016EF417-E41C-404C-B3B5-34B6CDD94BB3} six + 10.0 @@ -63,6 +64,7 @@ Guard EnableAllWarnings true + stdc11 @@ -87,6 +89,7 @@ true AdvancedVectorExtensions2 MultiThreadedDLL + stdc11 diff --git a/six/modules/c++/cphd03/framework.h b/six/modules/c++/cphd03/framework.h index fad8974824..3d30b1f778 100644 --- a/six/modules/c++/cphd03/framework.h +++ b/six/modules/c++/cphd03/framework.h @@ -5,9 +5,11 @@ // We're building in Visual Studio ... used to control where we get a little bit of config info #define NITRO_PCH 1 +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined +#pragma warning(disable: 5264) // '...': '...' variable is not used #pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified diff --git a/six/modules/c++/cphd03/include/cphd03/CPHDWriter.h b/six/modules/c++/cphd03/include/cphd03/CPHDWriter.h index 22566a88b5..e02924c28b 100644 --- a/six/modules/c++/cphd03/include/cphd03/CPHDWriter.h +++ b/six/modules/c++/cphd03/include/cphd03/CPHDWriter.h @@ -42,7 +42,7 @@ namespace cphd03 * \brief Used to write a CPHD file. You must be able to provide the * appropriate metadata and vector based metadata. */ -struct CPHDWriter +struct CPHDWriter final { /* * \func Constructor @@ -90,6 +90,13 @@ struct CPHDWriter size_t numThreads = 0, size_t scratchSpaceSize = 4 * 1024 * 1024); + CPHDWriter() = delete; + CPHDWriter(const CPHDWriter&) = delete; + CPHDWriter& operator=(const CPHDWriter&) = delete; + CPHDWriter(CPHDWriter&&) = delete; + CPHDWriter& operator=(CPHDWriter&&) = delete; + ~CPHDWriter() = default; + /* * \func addImage * \brief Pushes a new image to the file for writing. This only works with @@ -168,10 +175,11 @@ struct CPHDWriter void close() { - if (mStream.get()) - { - mStream->close(); - } + mStream->close(); + } + std::shared_ptr getStream() const + { + return mStream; } private: @@ -187,7 +195,6 @@ struct CPHDWriter size_t size); std::unique_ptr mDataWriter; - void initializeDataWriter(); Metadata mMetadata; const size_t mElementSize; @@ -199,8 +206,8 @@ struct CPHDWriter std::vector mCPHDData; std::vector mVBMData; - size_t mCPHDSize; - size_t mVBMSize; + size_t mCPHDSize = 0; + size_t mVBMSize = 0; }; } diff --git a/six/modules/c++/cphd03/include/cphd03/CPHDXMLControl.h b/six/modules/c++/cphd03/include/cphd03/CPHDXMLControl.h index e765cd1c28..b7926fb17a 100644 --- a/six/modules/c++/cphd03/include/cphd03/CPHDXMLControl.h +++ b/six/modules/c++/cphd03/include/cphd03/CPHDXMLControl.h @@ -51,16 +51,16 @@ class CPHDXMLControl : public six::XMLParser * This function takes in a Metadata object and converts * it to a new-allocated XML DOM. */ - mem::auto_ptr toXML(const Metadata& metadata); + std::unique_ptr toXML(const Metadata& metadata); /*! * Function takes a DOM Document* node and creates a new-allocated * CPHDData* populated by the DOM. */ - mem::auto_ptr fromXML(const xml::lite::Document* doc); + std::unique_ptr fromXML(const xml::lite::Document* doc); Metadata fromXML(const xml::lite::Document& doc); - mem::auto_ptr fromXML(const std::string& xmlString); + std::unique_ptr fromXML(const std::string& xmlString); std::unique_ptr fromXML(const std::u8string& xmlString); std::string toXMLString_(const Metadata& metadata); diff --git a/six/modules/c++/cphd03/source/CPHDWriter.cpp b/six/modules/c++/cphd03/source/CPHDWriter.cpp index 75ce7160d6..91d5d93537 100644 --- a/six/modules/c++/cphd03/source/CPHDWriter.cpp +++ b/six/modules/c++/cphd03/source/CPHDWriter.cpp @@ -34,22 +34,6 @@ namespace cphd03 { -void CPHDWriter::initializeDataWriter() -{ - //! Get the correct dataWriter. - // The CPHD file needs to be big endian. - auto endianness = std::endian::native; // "conditional expression is constant" - if (endianness == std::endian::big) - { - mDataWriter = std::make_unique(mStream, mNumThreads); - } - else - { - mDataWriter = std::make_unique(mStream, mNumThreads, mScratchSpaceSize); - } -} - - CPHDWriter::CPHDWriter(const Metadata& metadata, std::shared_ptr stream, size_t numThreads, @@ -58,28 +42,22 @@ CPHDWriter::CPHDWriter(const Metadata& metadata, mElementSize(metadata.data.getNumBytesPerSample()), mScratchSpaceSize(scratchSpaceSize), mNumThreads(numThreads), - mStream(stream), - mCPHDSize(0), - mVBMSize(0) + mStream(stream) { - initializeDataWriter(); + //! Get the correct dataWriter. + // The CPHD file needs to be big endian. + mDataWriter = cphd::make_DataWriter(*mStream, mNumThreads, mScratchSpaceSize); } CPHDWriter::CPHDWriter(const Metadata& metadata, const std::string& pathname, size_t numThreads, size_t scratchSpaceSize) : - mMetadata(metadata), - mElementSize(metadata.data.getNumBytesPerSample()), - mScratchSpaceSize(scratchSpaceSize), - mNumThreads(numThreads), - mCPHDSize(0), - mVBMSize(0) -{ - // Create file stream to write - mStream = std::make_shared(pathname); - - initializeDataWriter(); + CPHDWriter(metadata, + std::make_shared(pathname), // Create file stream to write + numThreads, + scratchSpaceSize) +{ } template diff --git a/six/modules/c++/cphd03/source/CPHDXMLControl.cpp b/six/modules/c++/cphd03/source/CPHDXMLControl.cpp index 0e5c2548c5..b83d441137 100644 --- a/six/modules/c++/cphd03/source/CPHDXMLControl.cpp +++ b/six/modules/c++/cphd03/source/CPHDXMLControl.cpp @@ -82,7 +82,7 @@ size_t CPHDXMLControl::getXMLsize(const Metadata& metadata) return toXMLString(metadata).size(); } -mem::auto_ptr CPHDXMLControl::toXML(const Metadata& metadata) +std::unique_ptr CPHDXMLControl::toXML(const Metadata& metadata) { auto doc = std::make_unique(); @@ -105,7 +105,7 @@ mem::auto_ptr CPHDXMLControl::toXML(const Metadata& metadat //set the XMLNS root->setNamespacePrefix("", getDefaultURI()); - return mem::auto_ptr(doc.release()); + return std::unique_ptr(doc.release()); } XMLElem CPHDXMLControl::createLatLonAltFootprint(const std::string& name, @@ -491,10 +491,10 @@ XMLElem CPHDXMLControl::areaSampleDirectionParametersToXML( return adpXML; } -mem::auto_ptr CPHDXMLControl::fromXML(const std::string& xmlString) +std::unique_ptr CPHDXMLControl::fromXML(const std::string& xmlString) { auto result = fromXML(str::EncodedStringView(xmlString).u8string()); - return mem::auto_ptr(result.release()); + return std::unique_ptr(result.release()); } std::unique_ptr CPHDXMLControl::fromXML(const std::u8string& xmlString) { @@ -505,7 +505,7 @@ std::unique_ptr CPHDXMLControl::fromXML(const std::u8string& xmlString return fromXML(&parser.getDocument()); } -mem::auto_ptr CPHDXMLControl::fromXML(const xml::lite::Document* doc) +std::unique_ptr CPHDXMLControl::fromXML(const xml::lite::Document* doc) { auto cphd03 = std::make_unique(); @@ -535,7 +535,7 @@ mem::auto_ptr CPHDXMLControl::fromXML(const xml::lite::Document* doc) fromXML(vectorParametersXML, cphd03->vectorParameters); - return mem::auto_ptr(cphd03.release()); + return std::unique_ptr(cphd03.release()); } Metadata CPHDXMLControl::fromXML(const xml::lite::Document& doc) { diff --git a/six/modules/c++/cpp_pch.h b/six/modules/c++/cpp_pch.h index 6defe997f8..7040596567 100644 --- a/six/modules/c++/cpp_pch.h +++ b/six/modules/c++/cpp_pch.h @@ -12,6 +12,11 @@ #pragma warning(disable: 5027) // '...': move assignment operator was implicitly defined as deleted #pragma warning(disable: 5219) // implicit conversion from '...' to '...', possible loss of data #pragma warning(disable: 6285) // ( || ) is always a non-zero constant. Did you intend to use the bitwise-and operator? +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' +#pragma warning(disable: 5264) // '...': '...' variable is not used + +// error 4996: '...': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. +#define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING #define _USE_MATH_DEFINES #include diff --git a/six/modules/c++/nitro_pch.h b/six/modules/c++/nitro_pch.h index c56845b1cc..cd8bf45e16 100644 --- a/six/modules/c++/nitro_pch.h +++ b/six/modules/c++/nitro_pch.h @@ -10,7 +10,10 @@ #include #include +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4251) // '...' : class '...' needs to have dll-interface to be used by clients of struct '...' +#pragma warning(disable: 5264) // '...': '...' variable is not used + #pragma warning(push) #pragma warning(disable: 26447) // The function is declared '...' but calls function '..' which may throw exceptions (f.6). #pragma warning(disable: 26812) // The enum type '...' is unscoped. Prefer '...' over '...' (Enum.3). diff --git a/six/modules/c++/samples/check_valid_six.dir/check_valid_six.vcxproj b/six/modules/c++/samples/check_valid_six.dir/check_valid_six.vcxproj index 6593eebd7f..a2a6ac3d2f 100644 --- a/six/modules/c++/samples/check_valid_six.dir/check_valid_six.vcxproj +++ b/six/modules/c++/samples/check_valid_six.dir/check_valid_six.vcxproj @@ -15,6 +15,7 @@ Win32Proj {f0e2c8ff-57d4-4331-9bd2-76ff01cb54eb} checkvalidsix + 10.0 @@ -63,6 +64,7 @@ Guard EnableAllWarnings true + stdc11 Console @@ -87,6 +89,7 @@ AdvancedVectorExtensions2 Speed MultiThreadedDLL + stdc11 Console diff --git a/six/modules/c++/samples/check_valid_six.dir/pch.h b/six/modules/c++/samples/check_valid_six.dir/pch.h index 854398bbdf..29b8047444 100644 --- a/six/modules/c++/samples/check_valid_six.dir/pch.h +++ b/six/modules/c++/samples/check_valid_six.dir/pch.h @@ -5,16 +5,18 @@ // We're building in Visual Studio ... used to control where we get a little bit of config info #define NITRO_PCH 1 +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined -#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified +#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified #pragma warning(disable: 4625) // '...': copy constructor was implicitly defined as deleted #pragma warning(disable: 4626) // '...': assignment operator was implicitly defined as deleted #pragma warning(disable: 5026) // '...': move constructor was implicitly defined as deleted #pragma warning(disable: 5027) // '...': move assignment operator was implicitly defined as deleted +#pragma warning(disable: 5264) // '...': '...' variable is not used // TODO: get rid of these someday? #pragma warning(disable: 4774) // '...' : format string expected in argument 3 is not a string literal diff --git a/six/modules/c++/samples/crop_sicd.dir/crop_sicd.vcxproj b/six/modules/c++/samples/crop_sicd.dir/crop_sicd.vcxproj index 6414967757..6d0a2c796c 100644 --- a/six/modules/c++/samples/crop_sicd.dir/crop_sicd.vcxproj +++ b/six/modules/c++/samples/crop_sicd.dir/crop_sicd.vcxproj @@ -15,6 +15,7 @@ Win32Proj {7DCFF6D2-72E8-43E8-8085-35C1721E8DAC} checkvalidsix + 10.0 @@ -63,6 +64,7 @@ Guard EnableAllWarnings true + stdc11 Console @@ -87,6 +89,7 @@ AdvancedVectorExtensions2 Speed MultiThreadedDLL + stdc11 Console diff --git a/six/modules/c++/samples/crop_sicd.dir/pch.h b/six/modules/c++/samples/crop_sicd.dir/pch.h index 854398bbdf..bdfe863c92 100644 --- a/six/modules/c++/samples/crop_sicd.dir/pch.h +++ b/six/modules/c++/samples/crop_sicd.dir/pch.h @@ -9,12 +9,14 @@ #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined -#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified +#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4625) // '...': copy constructor was implicitly defined as deleted #pragma warning(disable: 4626) // '...': assignment operator was implicitly defined as deleted #pragma warning(disable: 5026) // '...': move constructor was implicitly defined as deleted #pragma warning(disable: 5027) // '...': move assignment operator was implicitly defined as deleted +#pragma warning(disable: 5264) // '...': '...' variable is not used // TODO: get rid of these someday? #pragma warning(disable: 4774) // '...' : format string expected in argument 3 is not a string literal diff --git a/six/modules/c++/samples/test_create_sidd_from_mem.cpp b/six/modules/c++/samples/test_create_sidd_from_mem.cpp index 21ed25904c..d4459473f7 100644 --- a/six/modules/c++/samples/test_create_sidd_from_mem.cpp +++ b/six/modules/c++/samples/test_create_sidd_from_mem.cpp @@ -2127,7 +2127,7 @@ void initGeoData(six::GeoDataBase& geoData) } void initExploitationFeatures(six::sidd::ExploitationFeatures& exFeatures, - const std::string& version) + const std::string& strVersion) { // The first collection is corresponds to the parent image six::sidd::Collection& collection = *exFeatures.collections[0]; @@ -2161,7 +2161,7 @@ void initExploitationFeatures(six::sidd::ExploitationFeatures& exFeatures, polarization->txPolarization = six::PolarizationSequenceType::V; polarization->rcvPolarization = six::PolarizationSequenceType::OTHER; polarization->rcvPolarizationOffset = 1.37; - if (version == "1.0.0") + if (strVersion == "1.0.0") { polarization->processed = six::BooleanType::IS_TRUE; } @@ -2191,7 +2191,7 @@ void initExploitationFeatures(six::sidd::ExploitationFeatures& exFeatures, exFeatures.product[0].north = 58.332; exFeatures.product[0].extensions.push_back(param); - if (version == "2.0.0") + if (strVersion == "2.0.0") { exFeatures.product[0].ellipticity = 12.0; exFeatures.product[0].polarization.resize(1); diff --git a/six/modules/c++/samples/test_large_offset.cpp b/six/modules/c++/samples/test_large_offset.cpp index d55d686faa..92a86113e5 100644 --- a/six/modules/c++/samples/test_large_offset.cpp +++ b/six/modules/c++/samples/test_large_offset.cpp @@ -44,7 +44,7 @@ static const size_t SIDD_ROWS_TO_SKIP = NUM_ROWS_IN_FIRST_SIDD_SEGMENT - 1000; size_t calculateEdgeLength(size_t elementSize) { - const float desiredImageSize = 11e9; + const float desiredImageSize = 11e9f; const float elementsPerImage = desiredImageSize / elementSize; return static_cast(std::sqrt(elementsPerImage)); } diff --git a/six/modules/c++/scene/framework.h b/six/modules/c++/scene/framework.h index edbb9e4e44..841b20cab8 100644 --- a/six/modules/c++/scene/framework.h +++ b/six/modules/c++/scene/framework.h @@ -3,12 +3,15 @@ // We're building in Visual Studio ... used to control where we get a little bit of config info #define NITRO_PCH 1 +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined -#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified +#pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified #pragma warning(disable: 4514) // '...': unreferenced inline function has been removed +#pragma warning(disable: 5264) // '...': '...' variable is not used +// changing this breaks SWIG #pragma warning(disable: 26812) // The enum type '...' is unscoped. Prefer '...' over '...' (Enum.3). // TODO: get rid of these someday? ... from Visual Studio code-analysis diff --git a/six/modules/c++/scene/include/scene/EllipsoidModel.h b/six/modules/c++/scene/include/scene/EllipsoidModel.h index 4193768a0a..18d528add7 100644 --- a/six/modules/c++/scene/include/scene/EllipsoidModel.h +++ b/six/modules/c++/scene/include/scene/EllipsoidModel.h @@ -184,9 +184,10 @@ class WGS84EllipsoidModel : public EllipsoidModel * * @param m The WGS84EllipsoidModel to copy attribute values from */ - WGS84EllipsoidModel(const WGS84EllipsoidModel & m); + WGS84EllipsoidModel(const WGS84EllipsoidModel&); + WGS84EllipsoidModel& operator=(const WGS84EllipsoidModel&); - virtual ~WGS84EllipsoidModel(){} + virtual ~WGS84EllipsoidModel() = default; /** * This function sets the radius values to those specified by the WGS84 diff --git a/six/modules/c++/scene/include/scene/Types.h b/six/modules/c++/scene/include/scene/Types.h index aa00d405ba..44d7956d81 100644 --- a/six/modules/c++/scene/include/scene/Types.h +++ b/six/modules/c++/scene/include/scene/Types.h @@ -97,18 +97,17 @@ namespace scene } - LatLon(const LatLon& lla) + LatLon(const LatLon& ll) { - mLat = lla.mLat; - mLon = lla.mLon; + *this = ll; } - LatLon& operator=(const LatLon& lla) + LatLon& operator=(const LatLon& ll) { - if (this != &lla) + if (this != &ll) { - mLat = lla.mLat; - mLon = lla.mLon; + mLat = ll.mLat; + mLon = ll.mLon; } return *this; } @@ -194,13 +193,10 @@ namespace scene { } - LatLonAlt(const LatLonAlt& lla) + LatLonAlt(const LatLonAlt& lla) : LatLon(lla) { - mLat = lla.mLat; - mLon = lla.mLon; mAlt = lla.mAlt; } - LatLonAlt& operator=(const LatLonAlt& lla) { if (this != &lla) diff --git a/six/modules/c++/scene/scene.vcxproj b/six/modules/c++/scene/scene.vcxproj index cfab3d78f1..0eb0e122ad 100644 --- a/six/modules/c++/scene/scene.vcxproj +++ b/six/modules/c++/scene/scene.vcxproj @@ -15,6 +15,7 @@ Win32Proj {1CFCDE59-6410-4037-95EB-B37D31E10820} six + 10.0 @@ -65,6 +66,7 @@ EnableAllWarnings true true + stdc11 @@ -89,6 +91,7 @@ true AdvancedVectorExtensions2 MultiThreadedDLL + stdc11 diff --git a/six/modules/c++/scene/source/EllipsoidModel.cpp b/six/modules/c++/scene/source/EllipsoidModel.cpp index 249a36fd92..4da3d6a04b 100644 --- a/six/modules/c++/scene/source/EllipsoidModel.cpp +++ b/six/modules/c++/scene/source/EllipsoidModel.cpp @@ -165,11 +165,21 @@ WGS84EllipsoidModel::WGS84EllipsoidModel(Units unitsVal, initRadiusValues(); } -WGS84EllipsoidModel::WGS84EllipsoidModel( - const WGS84EllipsoidModel & m) +WGS84EllipsoidModel::WGS84EllipsoidModel(const WGS84EllipsoidModel & m) : EllipsoidModel(m) { *this = m; - initRadiusValues(); +} +WGS84EllipsoidModel& WGS84EllipsoidModel::operator=(const WGS84EllipsoidModel & m) +{ + if (this != &m) + { + units = m.units; + angularUnits = m.angularUnits; + equatorialRadius = m.equatorialRadius; + polarRadius = m.polarRadius; + initRadiusValues(); + } + return *this; } void WGS84EllipsoidModel::initRadiusValues() diff --git a/six/modules/c++/six.convert/framework.h b/six/modules/c++/six.convert/framework.h index c6c37359ef..3a45780fc3 100644 --- a/six/modules/c++/six.convert/framework.h +++ b/six/modules/c++/six.convert/framework.h @@ -3,11 +3,13 @@ // We're building in Visual Studio ... used to control where we get a little bit of config info #define NITRO_PCH 1 +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined #pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified #pragma warning(disable: 4514) // '...': unreferenced inline function has been removed +#pragma warning(disable: 5264) // '...': '...' variable is not used #pragma warning(disable: 26812) // The enum type '...' is unscoped. Prefer '...' over '...' (Enum.3). diff --git a/six/modules/c++/six.convert/include/six/convert/BaseConverter.h b/six/modules/c++/six.convert/include/six/convert/BaseConverter.h index 843a5b8242..484a07e7c6 100644 --- a/six/modules/c++/six.convert/include/six/convert/BaseConverter.h +++ b/six/modules/c++/six.convert/include/six/convert/BaseConverter.h @@ -51,10 +51,10 @@ struct BaseConverter : protected six::XMLParser * * \return ComplexData corresponding to given file */ - virtual mem::auto_ptr convert() const = 0; + virtual std::unique_ptr convert() const = 0; protected: - static mem::auto_ptr + static std::unique_ptr readXML(const std::string& xmlPathname); XMLElem findUniqueElement(const xml::lite::Element* root, diff --git a/six/modules/c++/six.convert/include/six/convert/ConverterProvider.h b/six/modules/c++/six.convert/include/six/convert/ConverterProvider.h index 430fee0e6a..7c468b95e3 100644 --- a/six/modules/c++/six.convert/include/six/convert/ConverterProvider.h +++ b/six/modules/c++/six.convert/include/six/convert/ConverterProvider.h @@ -51,7 +51,7 @@ class ConverterProvider virtual void load(const std::string& pathname) = 0; //! Parse loaded file and return a ComplexData object - virtual mem::auto_ptr convert() = 0; + virtual std::unique_ptr convert() = 0; /*! * Read given region from image diff --git a/six/modules/c++/six.convert/six.convert.vcxproj b/six/modules/c++/six.convert/six.convert.vcxproj index 628197d6f3..a28b85f3ef 100644 --- a/six/modules/c++/six.convert/six.convert.vcxproj +++ b/six/modules/c++/six.convert/six.convert.vcxproj @@ -15,6 +15,7 @@ Win32Proj {DB4ECC28-A862-4CF4-8A03-69B3CC0C4E8B} six + 10.0 @@ -62,6 +63,7 @@ ProgramDatabase Guard EnableAllWarnings + stdc11 @@ -86,6 +88,7 @@ true AdvancedVectorExtensions2 MultiThreadedDLL + stdc11 diff --git a/six/modules/c++/six.convert/source/BaseConverter.cpp b/six/modules/c++/six.convert/source/BaseConverter.cpp index c25e8f6c30..84ad637244 100644 --- a/six/modules/c++/six.convert/source/BaseConverter.cpp +++ b/six/modules/c++/six.convert/source/BaseConverter.cpp @@ -37,7 +37,7 @@ BaseConverter::BaseConverter() : { } -mem::auto_ptr +std::unique_ptr BaseConverter::readXML(const std::string& xmlPathname) { six::MinidomParser parser; @@ -45,7 +45,7 @@ BaseConverter::readXML(const std::string& xmlPathname) parser.parse(xmlInputStream); std::unique_ptr pDocument; parser.getDocument(pDocument); - return mem::auto_ptr(pDocument.release()); + return std::unique_ptr(pDocument.release()); } BaseConverter::XMLElem BaseConverter::findUniqueElement( diff --git a/six/modules/c++/six.sicd/framework.h b/six/modules/c++/six.sicd/framework.h index be8cc2893f..654f5fa4b8 100644 --- a/six/modules/c++/six.sicd/framework.h +++ b/six/modules/c++/six.sicd/framework.h @@ -3,11 +3,13 @@ // We're building in Visual Studio ... used to control where we get a little bit of config info #define NITRO_PCH 1 +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined #pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified #pragma warning(disable: 4514) // '...': unreferenced inline function has been removed +#pragma warning(disable: 5264) // '...': '...' variable is not used #pragma warning(disable: 26812) // The enum type '...' is unscoped. Prefer '...' over '...' (Enum.3). diff --git a/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser.h b/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser.h index c24db3ec64..c7fae24be1 100644 --- a/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser.h +++ b/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser.h @@ -41,13 +41,6 @@ class ComplexXMLParser : public XMLParser std::unique_ptr&& comParser, logging::Logger* log = nullptr, bool ownLog = false); -#if !CODA_OSS_cpp17 - ComplexXMLParser(const std::string& version, - bool addClassAttributes, - mem::auto_ptr comParser, - logging::Logger* log = nullptr, - bool ownLog = false); -#endif ComplexXMLParser(const ComplexXMLParser&) = delete; ComplexXMLParser& operator=(const ComplexXMLParser&) = delete; diff --git a/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser041.h b/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser041.h index bcec458bbb..600c975acb 100644 --- a/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser041.h +++ b/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser041.h @@ -41,13 +41,6 @@ class ComplexXMLParser041 : public ComplexXMLParser04x std::unique_ptr&& comParser, logging::Logger* log = nullptr, bool ownLog = false); -#if !CODA_OSS_cpp17 - ComplexXMLParser041(const std::string& version, - bool addClassAttributes, - mem::auto_ptr comParser, - logging::Logger* log = nullptr, - bool ownLog = false); -#endif ComplexXMLParser041(const ComplexXMLParser041&) = delete; ComplexXMLParser041& operator=(const ComplexXMLParser041&) = delete; diff --git a/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser04x.h b/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser04x.h index 5d3ea5e3ae..071f7ba522 100644 --- a/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser04x.h +++ b/six/modules/c++/six.sicd/include/six/sicd/ComplexXMLParser04x.h @@ -35,13 +35,6 @@ struct ComplexXMLParser04x : public ComplexXMLParser std::unique_ptr&& comParser, logging::Logger* log = nullptr, bool ownLog = false); -#if !CODA_OSS_cpp17 - ComplexXMLParser04x(const std::string& version, - bool addClassAttributes, - mem::auto_ptr comParser, - logging::Logger* log = nullptr, - bool ownLog = false); -#endif ComplexXMLParser04x(const ComplexXMLParser04x&) = delete; ComplexXMLParser04x& operator=(const ComplexXMLParser04x&) = delete; diff --git a/six/modules/c++/six.sicd/include/six/sicd/CropUtils.h b/six/modules/c++/six.sicd/include/six/sicd/CropUtils.h index 281da2837b..1c65ade312 100644 --- a/six/modules/c++/six.sicd/include/six/sicd/CropUtils.h +++ b/six/modules/c++/six.sicd/include/six/sicd/CropUtils.h @@ -126,7 +126,7 @@ void cropSICD(six::NITFReadControl& reader, * \returns A cloned complex data object where the * meta data has been updated to reflect the cropped aoi. */ -mem::auto_ptr +std::unique_ptr cropMetaData(const six::sicd::ComplexData& complexData, const types::RowCol& aoiOffset, const types::RowCol& aoiDims); diff --git a/six/modules/c++/six.sicd/include/six/sicd/Utilities.h b/six/modules/c++/six.sicd/include/six/sicd/Utilities.h index 13e95cecc6..d56b06dbc1 100644 --- a/six/modules/c++/six.sicd/include/six/sicd/Utilities.h +++ b/six/modules/c++/six.sicd/include/six/sicd/Utilities.h @@ -63,13 +63,6 @@ class Utilities /*! * Get information in or deriveable from the ComplexData. */ -#if !CODA_OSS_cpp17 - static void getModelComponents( - const ComplexData& complexData, - mem::auto_ptr& geometry, - mem::auto_ptr& projectionModel, - six::sicd::AreaPlane& areaPlane); -#endif static void getModelComponents( const ComplexData& complexData, std::unique_ptr& geometry, @@ -86,7 +79,7 @@ class Utilities * with the valid data polygon. * \return ProjectionPolynomialFitter from ComplexData */ - static mem::auto_ptr + static std::unique_ptr getPolynomialFitter(const ComplexData& complexData, size_t numPoints1D = scene::ProjectionPolynomialFitter::DEFAULTS_POINTS_1D, @@ -119,12 +112,6 @@ class Utilities * six::sicd::Utilities::getWidebandData * */ -#if !CODA_OSS_cpp17 - static void readSicd(const std::string& sicdPathname, - const std::vector& schemaPaths, - mem::auto_ptr& complexData, - std::vector >& widebandData); -#endif static void readSicd(const std::string& sicdPathname, const std::vector& schemaPaths, std::unique_ptr& complexData, @@ -170,18 +157,6 @@ class Utilities * six::sicd::Utilities::getWidebandData * */ -#if !CODA_OSS_cpp17 - static void readSicd(const std::string& sicdPathname, - const std::vector& schemaPaths, - size_t orderX, - size_t orderY, - mem::auto_ptr& complexData, - std::vector >& widebandData, - six::Poly2D& outputRowColToSlantRow, - six::Poly2D& outputRowColToSlantCol, - mem::auto_ptr& noiseMesh, - mem::auto_ptr& scalarMesh); -#endif static void readSicd(const std::string& sicdPathname, const std::vector& schemaPaths, size_t orderX, @@ -206,7 +181,7 @@ class Utilities * \throws except::Exception if file is not a SICD or Complex XML */ static - mem::auto_ptr getComplexData( + std::unique_ptr getComplexData( const std::string& pathname, const std::vector& schemaPaths); @@ -221,7 +196,7 @@ class Utilities * \throws except::Exception if the provided reader is not a SICD * */ - static mem::auto_ptr getComplexData(NITFReadControl& reader); + static std::unique_ptr getComplexData(NITFReadControl& reader); /* * Given a loaded NITFReadControl and a ComplexData object, this @@ -401,7 +376,7 @@ class Utilities * * \return Data representation of 'xmlStr' */ - static mem::auto_ptr parseData( + static std::unique_ptr parseData( ::io::InputStream& xmlStream, const std::vector& schemaPaths, logging::Logger& log); @@ -418,7 +393,7 @@ class Utilities * * \return Data representation of the contents of 'pathname' */ - static mem::auto_ptr parseDataFromFile( + static std::unique_ptr parseDataFromFile( const std::string& pathname, const std::vector& schemaPaths, logging::Logger& log); @@ -434,7 +409,7 @@ class Utilities * * \return Data representation of 'xmlStr' */ - static mem::auto_ptr parseDataFromString( + static std::unique_ptr parseDataFromString( const std::string& xmlStr, const std::vector& schemaPaths, logging::Logger& log); @@ -465,7 +440,7 @@ class Utilities * * \return mock ComplexData object */ - static mem::auto_ptr createFakeComplexData(const types::RowCol* pDims = nullptr); + static std::unique_ptr createFakeComplexData(const types::RowCol* pDims = nullptr); static std::unique_ptr createFakeComplexData(const std::string& strVersion, PixelType, bool makeAmplitudeTable, const types::RowCol* pDims = nullptr); @@ -477,7 +452,7 @@ class Utilities * \throws except::Exception if the provided reader is not a SICD * */ - static mem::auto_ptr getNoiseMesh(const NITFReadControl& reader); + static std::unique_ptr getNoiseMesh(const NITFReadControl& reader); /* * Given a reference to a loaded NITFReadControl, this function @@ -490,7 +465,7 @@ class Utilities * * \return Scalar Mesh associated with the SICD NITF */ - static mem::auto_ptr getScalarMesh(const NITFReadControl& reader); + static std::unique_ptr getScalarMesh(const NITFReadControl& reader); /* * Given a reference to a loaded NITFReadControl, this function @@ -511,15 +486,6 @@ class Utilities * \throws except::Exception if the provided reader is not a SICD or * projection polynomials can't be computed. */ -#if !CODA_OSS_cpp17 - static void getProjectionPolys( - const NITFReadControl& reader, - size_t orderX, - size_t orderY, - mem::auto_ptr& complexData, - six::Poly2D& outputRowColToSlantRow, - six::Poly2D& outputRowColToSlantCol); -#endif static void getProjectionPolys( const NITFReadControl& reader, size_t orderX, diff --git a/six/modules/c++/six.sicd/six.sicd.vcxproj b/six/modules/c++/six.sicd/six.sicd.vcxproj index 0c7c2fcf64..5127169e50 100644 --- a/six/modules/c++/six.sicd/six.sicd.vcxproj +++ b/six/modules/c++/six.sicd/six.sicd.vcxproj @@ -15,6 +15,7 @@ Win32Proj {34AC2314-FBD1-42AD-AAF4-0CEBC6BF737E} six + 10.0 @@ -63,6 +64,7 @@ ProgramDatabase Guard EnableAllWarnings + stdc11 @@ -87,6 +89,7 @@ true AdvancedVectorExtensions2 MultiThreadedDLL + stdc11 diff --git a/six/modules/c++/six.sicd/source/ComplexXMLParser.cpp b/six/modules/c++/six.sicd/source/ComplexXMLParser.cpp index 85355eca22..6d1e212bea 100644 --- a/six/modules/c++/six.sicd/source/ComplexXMLParser.cpp +++ b/six/modules/c++/six.sicd/source/ComplexXMLParser.cpp @@ -45,16 +45,6 @@ ComplexXMLParser::ComplexXMLParser(const std::string& strVersion, mCommon(comParser.release()) { } -#if !CODA_OSS_cpp17 -ComplexXMLParser::ComplexXMLParser(const std::string& strVersion, - bool addClassAttributes, - mem::auto_ptr comParser, - logging::Logger* log, - bool ownLog) : - ComplexXMLParser(strVersion, addClassAttributes, std::unique_ptr(comParser.release()), log, ownLog) -{ -} -#endif ComplexData* ComplexXMLParser::fromXML(const xml::lite::Document* doc) const { diff --git a/six/modules/c++/six.sicd/source/ComplexXMLParser041.cpp b/six/modules/c++/six.sicd/source/ComplexXMLParser041.cpp index 63c04d8a76..cdfc983d35 100644 --- a/six/modules/c++/six.sicd/source/ComplexXMLParser041.cpp +++ b/six/modules/c++/six.sicd/source/ComplexXMLParser041.cpp @@ -53,17 +53,6 @@ ComplexXMLParser041::ComplexXMLParser041( ComplexXMLParser04x(strVersion, addClassAttributes, std::move(comParser), log, ownLog) { } -#if !CODA_OSS_cpp17 -ComplexXMLParser041::ComplexXMLParser041( - const std::string& strVersion, - bool addClassAttributes, - mem::auto_ptr comParser, - logging::Logger* log, - bool ownLog) : - ComplexXMLParser041(strVersion, addClassAttributes, std::unique_ptr(comParser.release()), log, ownLog) -{ -} -#endif XMLElem ComplexXMLParser041::convertRMATToXML( const RMAT* rmat, diff --git a/six/modules/c++/six.sicd/source/ComplexXMLParser04x.cpp b/six/modules/c++/six.sicd/source/ComplexXMLParser04x.cpp index e404d35ea4..ff8fb4f97c 100644 --- a/six/modules/c++/six.sicd/source/ComplexXMLParser04x.cpp +++ b/six/modules/c++/six.sicd/source/ComplexXMLParser04x.cpp @@ -41,17 +41,6 @@ ComplexXMLParser04x::ComplexXMLParser04x( ComplexXMLParser(strVersion, addClassAttributes, std::move(comParser), log, ownLog) { } -#if !CODA_OSS_cpp17 -ComplexXMLParser04x::ComplexXMLParser04x( - const std::string& strVersion, - bool addClassAttributes, - mem::auto_ptr comParser, - logging::Logger* log, - bool ownLog) : - ComplexXMLParser04x(strVersion, addClassAttributes, std::unique_ptr(comParser.release()), log, ownLog) -{ -} -#endif XMLElem ComplexXMLParser04x::convertGeoInfoToXML( const GeoInfo *geoInfo, diff --git a/six/modules/c++/six.sicd/source/CropUtils.cpp b/six/modules/c++/six.sicd/source/CropUtils.cpp index 058a485753..f59c127cb2 100644 --- a/six/modules/c++/six.sicd/source/CropUtils.cpp +++ b/six/modules/c++/six.sicd/source/CropUtils.cpp @@ -53,7 +53,7 @@ void updateMinMax(double val, double& curMin, double& curMax) } } -six::sicd::ComplexData* const updateMetadata( +six::sicd::ComplexData* updateMetadata( const six::sicd::ComplexData& data, const scene::SceneGeometry& geom, const scene::ProjectionModel& projection, @@ -138,7 +138,7 @@ namespace six namespace sicd { -mem::auto_ptr cropMetaData( +std::unique_ptr cropMetaData( const six::sicd::ComplexData& complexData, const types::RowCol& aoiOffset, const types::RowCol& aoiDims) @@ -157,7 +157,7 @@ mem::auto_ptr cropMetaData( aoiOffset, aoiDims); - return mem::auto_ptr(aoiData); + return std::unique_ptr(aoiData); } void cropSICD(const std::string& inPathname, diff --git a/six/modules/c++/six.sicd/source/ImageData.cpp b/six/modules/c++/six.sicd/source/ImageData.cpp index 9955b62bc3..60511ebcd2 100644 --- a/six/modules/c++/six.sicd/source/ImageData.cpp +++ b/six/modules/c++/six.sicd/source/ImageData.cpp @@ -24,6 +24,10 @@ #include #include #include +#include // std::ignore +#include +#include +#include #include #include @@ -32,6 +36,50 @@ #include "six/sicd/Utilities.h" #include "six/sicd/ComplexToAMP8IPHS8I.h" + // There was in coda-oss, but I removed it. + // + // First of all, C++11's std::async() is now (in 2023) thought of as maybe a + // bit "half baked," and perhaps shouldn't be emulated. Then, C++17 added + // parallel algorithms which might be a better way of satisfying our immediate + // needs (below) ... although we're still at C++14. +namespace +{ + namespace details + { + template + inline OutputIt transform_async(const InputIt first1, const InputIt last1, OutputIt d_first, TFunc f, + typename std::iterator_traits::difference_type cutoff, std::launch policy) + { + // https://en.cppreference.com/w/cpp/thread/async + const auto len = std::distance(first1, last1); + if (len < cutoff) + { + return std::transform(first1, last1, d_first, f); + } + + const auto mid1 = first1 + len / 2; + const auto d_mid = d_first + len / 2; + auto handle = std::async(policy, transform_async, mid1, last1, d_mid, f, cutoff, policy); + details::transform_async(first1, mid1, d_first, f, cutoff, policy); + return handle.get(); + } + } + template + inline OutputIt transform_async(const InputIt first1, const InputIt last1, OutputIt d_first, TFunc f, + typename std::iterator_traits::difference_type cutoff, std::launch policy) + { + // details::... eliminates the overload + return details::transform_async(first1, last1, d_first, f, cutoff, policy); + } + template + inline OutputIt transform_async(const InputIt first1, const InputIt last1, OutputIt d_first, TFunc f, + typename std::iterator_traits::difference_type cutoff) + { + const std::launch policy = std::launch::deferred | std::launch::async; + return transform_async(first1, last1, d_first, f, cutoff, policy); + } +} + using namespace six; using namespace six::sicd; @@ -240,7 +288,7 @@ void ImageData::from_AMP8I_PHS8I(const input_amplitudes_t& values, std::span inputs, std::span inputs, std::span(numBytesPerPixel), - numPixelsTotal); + sys::byteSwap(imageData, numBytesPerPixel, numPixelsTotal); } const size_t globalNumCols = data->getNumCols(); @@ -181,9 +179,7 @@ void SICDWriteControl::save(void* imageData, // Byte swap back if needed if (doByteSwap && restoreData) { - sys::byteSwap(imageData, - static_cast(numBytesPerPixel), - numPixelsTotal); + sys::byteSwap(imageData, numBytesPerPixel, numPixelsTotal); } } diff --git a/six/modules/c++/six.sicd/source/Utilities.cpp b/six/modules/c++/six.sicd/source/Utilities.cpp index 5ddde85a21..6f04c5f666 100644 --- a/six/modules/c++/six.sicd/source/Utilities.cpp +++ b/six/modules/c++/six.sicd/source/Utilities.cpp @@ -261,12 +261,12 @@ static void getDesBuffer(const six::NITFReadControl& reader, } template -mem::auto_ptr extractMesh(const std::string& meshID, +std::unique_ptr extractMesh(const std::string& meshID, size_t desIndex, const six::NITFReadControl& reader) { // Extract the mesh - mem::auto_ptr mesh(new MeshTypeT(meshID)); + std::unique_ptr mesh(new MeshTypeT(meshID)); mem::ScopedAlignedArray buffer; getDesBuffer(reader, desIndex, buffer); @@ -386,15 +386,6 @@ static void getModelComponents_(const ComplexData& complexData, AreaPlaneUtility::deriveAreaPlane(complexData, areaPlane); } } -#if !CODA_OSS_cpp17 -void Utilities::getModelComponents(const ComplexData& complexData, - mem::auto_ptr& geometry, - mem::auto_ptr& projectionModel, - AreaPlane& areaPlane) -{ - getModelComponents_(complexData, geometry, projectionModel, areaPlane); -} -#endif void Utilities::getModelComponents(const ComplexData& complexData, std::unique_ptr& geometry, std::unique_ptr& projectionModel, @@ -403,7 +394,7 @@ void Utilities::getModelComponents(const ComplexData& complexData, getModelComponents_(complexData, geometry, projectionModel, areaPlane); } -mem::auto_ptr Utilities::getPolynomialFitter(const ComplexData& complexData, +std::unique_ptr Utilities::getPolynomialFitter(const ComplexData& complexData, size_t numPoints1D, bool sampleWithinValidDataPolygon) { @@ -431,7 +422,7 @@ mem::auto_ptr Utilities::getPolynomialFitter( if (!sampleWithinValidDataPolygon) { - return mem::auto_ptr( + return std::unique_ptr( new scene::ProjectionPolynomialFitter(*projectionModel, ecefTransform, offset, @@ -447,7 +438,7 @@ mem::auto_ptr Utilities::getPolynomialFitter( std::vector> polygon; Utilities::projectValidDataPolygonToOutputPlane(complexData, polygon); - return mem::auto_ptr( + return std::unique_ptr( new scene::ProjectionPolynomialFitter(*projectionModel, ecefTransform, fullExtent, @@ -595,15 +586,6 @@ static void readSicd_(const std::string& sicdPathname, // own an XMLControlRegistry reader.setXMLControlRegistry(); } -#if !CODA_OSS_cpp17 -void Utilities::readSicd(const std::string& sicdPathname, - const std::vector& schemaPaths, - mem::auto_ptr& complexData, - std::vector>& widebandData) -{ - readSicd_(sicdPathname, schemaPaths, complexData, widebandData); -} -#endif void Utilities::readSicd(const std::string& sicdPathname, const std::vector& schemaPaths, std::unique_ptr& complexData, @@ -660,22 +642,7 @@ static void readSicd_(const std::string& sicdPathname, reader.setXMLControlRegistry(); } -#if !CODA_OSS_cpp17 -void Utilities::readSicd(const std::string& sicdPathname, - const std::vector& schemaPaths, - size_t orderX, - size_t orderY, - mem::auto_ptr& complexData, - std::vector>& widebandData, - six::Poly2D& outputRowColToSlantRow, - six::Poly2D& outputRowColToSlantCol, - mem::auto_ptr& noiseMesh, - mem::auto_ptr& scalarMesh) -{ - readSicd_(sicdPathname, schemaPaths, orderX, orderY, complexData, widebandData, - outputRowColToSlantRow, outputRowColToSlantCol, noiseMesh, scalarMesh); -} -#endif + void Utilities::readSicd(const std::string& sicdPathname, const std::vector& schemaPaths, size_t orderX, @@ -691,7 +658,7 @@ void Utilities::readSicd(const std::string& sicdPathname, outputRowColToSlantRow, outputRowColToSlantCol, noiseMesh, scalarMesh); } -mem::auto_ptr Utilities::getComplexData(NITFReadControl& reader) +std::unique_ptr Utilities::getComplexData(NITFReadControl& reader) { const six::Data* data = reader.getContainer()->getData(0); @@ -707,12 +674,12 @@ mem::auto_ptr Utilities::getComplexData(NITFReadControl& reader) // Note that you don't have to do this yourself if in your usage the // reader stays in scope. // TODO: If the container held shared pointers we wouldn't need to do this - mem::auto_ptr complexData( + std::unique_ptr complexData( static_cast(data->clone())); return complexData; } -mem::auto_ptr Utilities::getComplexData( +std::unique_ptr Utilities::getComplexData( const std::string& pathname, const std::vector& schemaPaths) { @@ -731,7 +698,7 @@ mem::auto_ptr Utilities::getComplexData( reader.load(pathname, &schemaPaths); auto pComplexData = reader.getComplexData(); - return mem::auto_ptr(pComplexData.release()); + return std::unique_ptr(pComplexData.release()); } } @@ -993,12 +960,12 @@ TReturn Utilities_parseData(::io::InputStream& xmlStream, const TSchemaPaths& sc auto data(six::parseData(xmlRegistry, xmlStream, schemaPaths, log)); return TReturn(static_cast(data.release())); } -mem::auto_ptr Utilities::parseData( +std::unique_ptr Utilities::parseData( ::io::InputStream& xmlStream, const std::vector& schemaPaths, logging::Logger& log) { - return Utilities_parseData>(xmlStream, schemaPaths, log); + return Utilities_parseData>(xmlStream, schemaPaths, log); } std::unique_ptr Utilities::parseData(::io::InputStream& xmlStream, const std::vector* pSchemaPaths, logging::Logger& log) @@ -1006,7 +973,7 @@ std::unique_ptr Utilities::parseData(::io::InputStream& xmlStream, return Utilities_parseData>(xmlStream, pSchemaPaths, log); } -mem::auto_ptr Utilities::parseDataFromFile( +std::unique_ptr Utilities::parseDataFromFile( const std::string& pathname, const std::vector& schemaPaths, logging::Logger& log) @@ -1024,7 +991,7 @@ std::unique_ptr Utilities::parseDataFromFile(const std::filesystem: return parseData(inStream, pSchemaPaths, *logger); } -mem::auto_ptr Utilities::parseDataFromString( +std::unique_ptr Utilities::parseDataFromString( const std::string& xmlStr_, const std::vector& schemaPaths_, logging::Logger& log) @@ -1036,7 +1003,7 @@ mem::auto_ptr Utilities::parseDataFromString( [](const std::string& s) { return s; }); auto result = parseDataFromString(xmlStr, &schemaPaths, &log); - return mem::auto_ptr(result.release()); + return std::unique_ptr(result.release()); } std::unique_ptr Utilities::parseDataFromString(const std::u8string& xmlStr, const std::vector* pSchemaPaths, logging::Logger* pLogger) @@ -1243,14 +1210,14 @@ std::unique_ptr Utilities::createFakeComplexData(const std::string& } throw std::invalid_argument("strVersion = '" + strVersion + "' is not supported."); } -mem::auto_ptr Utilities::createFakeComplexData(const types::RowCol* pDims) +std::unique_ptr Utilities::createFakeComplexData(const types::RowCol* pDims) { auto result = createFakeComplexData_("" /*strVersion*/, PixelType::RE32F_IM32F, false /*makeAmplitudeTable*/, pDims); - return mem::auto_ptr(result.release()); + return std::unique_ptr(result.release()); } -mem::auto_ptr Utilities::getNoiseMesh(const NITFReadControl& reader) +std::unique_ptr Utilities::getNoiseMesh(const NITFReadControl& reader) { const std::map nameToDesIndex = getAdditionalDesMap(reader); @@ -1270,7 +1237,7 @@ mem::auto_ptr Utilities::getNoiseMesh(const NITFReadControl& reader) reader); } -mem::auto_ptr Utilities::getScalarMesh(const NITFReadControl& reader) +std::unique_ptr Utilities::getScalarMesh(const NITFReadControl& reader) { const std::map nameToDesIndex = getAdditionalDesMap(reader); @@ -1281,7 +1248,7 @@ mem::auto_ptr Utilities::getScalarMesh(const NITFReadControl& reader // Scalar mesh is optional - return null if the ID is not present in the DES if (it == nameToDesIndex.end()) { - return mem::auto_ptr(); + return std::unique_ptr(); } // Extract the scalar mesh @@ -1381,17 +1348,6 @@ static void getProjectionPolys_(const NITFReadControl& reader, outputRowColToSlantRow, outputRowColToSlantCol); } -#if !CODA_OSS_cpp17 -void Utilities::getProjectionPolys(const NITFReadControl& reader, - size_t orderX, - size_t orderY, - mem::auto_ptr& complexData, - six::Poly2D& outputRowColToSlantRow, - six::Poly2D& outputRowColToSlantCol) -{ - getProjectionPolys_(reader, orderX, orderY, complexData, outputRowColToSlantRow, outputRowColToSlantCol); -} -#endif void Utilities::getProjectionPolys(const NITFReadControl& reader, size_t orderX, size_t orderY, diff --git a/six/modules/c++/six.sicd/tests/TestUtilities.h b/six/modules/c++/six.sicd/tests/TestUtilities.h index e0eb5300b9..056ee0ba3f 100644 --- a/six/modules/c++/six.sicd/tests/TestUtilities.h +++ b/six/modules/c++/six.sicd/tests/TestUtilities.h @@ -56,10 +56,10 @@ struct GetPixelType // Create dummy SICD data template -mem::auto_ptr +std::unique_ptr createData(const types::RowCol& dims) { - mem::auto_ptr data = + std::unique_ptr data = six::sicd::Utilities::createFakeComplexData(); setExtent(*data, dims); data->setPixelType(GetPixelType::getPixelType()); diff --git a/six/modules/c++/six.sicd/tests/test_read_sicd_mesh.cpp b/six/modules/c++/six.sicd/tests/test_read_sicd_mesh.cpp index dd90d6195b..686097bbb7 100644 --- a/six/modules/c++/six.sicd/tests/test_read_sicd_mesh.cpp +++ b/six/modules/c++/six.sicd/tests/test_read_sicd_mesh.cpp @@ -53,8 +53,8 @@ int main(int argc, char** argv) complexData->radarCollection->area->plane->referencePoint.rowCol.col); const types::RowCol slantCenter( - complexData->imageData->scpPixel.row, - complexData->imageData->scpPixel.col); + static_cast(complexData->imageData->scpPixel.row), + static_cast(complexData->imageData->scpPixel.col)); std::cout << "outputRowColToSlantRow(outputCenter): " << outputRowColToSlantRow(outputCenter.row, outputCenter.col) << diff --git a/six/modules/c++/six.sicd/tests/test_sicd_byte_provider.cpp b/six/modules/c++/six.sicd/tests/test_sicd_byte_provider.cpp index 118d5f7f01..c2121f0da2 100644 --- a/six/modules/c++/six.sicd/tests/test_sicd_byte_provider.cpp +++ b/six/modules/c++/six.sicd/tests/test_sicd_byte_provider.cpp @@ -66,11 +66,12 @@ struct Tester final } mBigEndianImage = mImage; - if (std::endian::native == std::endian::little) + if (sys::isLittleEndianSystem()) { - sys::byteSwap(mBigEndianImage.data(), - sizeof(DataTypeT), - mBigEndianImage.size() * 2); + void* const buffer = mBigEndianImage.data(); + constexpr auto elemSize = sizeof(DataTypeT); + const auto numElems = mBigEndianImage.size() * 2; // real and imag + sys::byteSwap(buffer, elemSize, numElems); } normalWrite(); diff --git a/six/modules/c++/six.sicd/unittests/test_AMP8I_PHS8I.cpp b/six/modules/c++/six.sicd/unittests/test_AMP8I_PHS8I.cpp index 133990bba7..6d09b437f2 100644 --- a/six/modules/c++/six.sicd/unittests/test_AMP8I_PHS8I.cpp +++ b/six/modules/c++/six.sicd/unittests/test_AMP8I_PHS8I.cpp @@ -57,44 +57,6 @@ using AMP8I_PHS8I_t = six::sicd::AMP8I_PHS8I_t; -static std::filesystem::path argv0() -{ - static const sys::OS os; - static const std::filesystem::path retval = os.getSpecialEnv("0"); - return retval; -} - -static std::filesystem::path externals_nitro_RelativelPath(const std::filesystem::path& filename) -{ - return std::filesystem::path("externals") / "nitro" / "modules"/ "c++" / "nitf" / "unittests" / filename; -} - -static std::filesystem::path getNitfExternalsPath(const std::filesystem::path& filename) -{ - const auto root_dir = six::testing::buildRootDir(argv0()); - return root_dir / externals_nitro_RelativelPath(filename); -} - -static std::filesystem::path nitfPluginRelativelPath() -{ - if ((argv0().filename() == "Test.exe") || (argv0().filename() == "testhost.exe")) // Visual Studio - { - static const sys::OS os; - static const std::string configuration = os.getSpecialEnv("Configuration"); - static const std::string platform = os.getSpecialEnv("Platform"); - return std::filesystem::path("externals") / "nitro" / platform / configuration / "share" / "nitf" / "plugins"; - } - - //return fs::path("install") / "share" / "six.sicd" / "conf" / "schema"; - return std::filesystem::path("install") / "share" / "CSM" / "plugins"; -} -static void setNitfPluginPath() -{ - const auto path = six::testing::buildRootDir(argv0()) / nitfPluginRelativelPath(); - //std::clog << "NITF_PLUGIN_PATH=" << path << "\n"; - sys::OS().setEnv("NITF_PLUGIN_PATH", path.string(), true /*overwrite*/); -} - static std::shared_ptr getContainer(six::sicd::NITFReadComplexXMLControl& reader) { static const std::string testName("test_AMP8I_PHS8I"); @@ -290,7 +252,7 @@ TEST_CASE(read_8bit_ampphs_with_table) { const auto subdir = std::filesystem::path("8_bit_Amp_Phs_Examples") / "With_amplitude_table"; const auto filename = subdir / "sicd_example_1_PFA_AMP8I_PHS8I_VV_with_amplitude_table_SICD.nitf"; - const auto inputPathname = getNitfExternalsPath(filename); + const auto inputPathname = six::testing::getNitroPath(filename); std::optional amplitudeTable; std::unique_ptr pComplexData; @@ -317,7 +279,7 @@ TEST_CASE(read_8bit_ampphs_no_table) { const auto subdir = std::filesystem::path("8_bit_Amp_Phs_Examples") / "No_amplitude_table"; const auto filename = subdir / "sicd_example_1_PFA_AMP8I_PHS8I_VV_no_amplitude_table_SICD.nitf"; - const auto inputPathname = getNitfExternalsPath(filename); + const auto inputPathname = six::testing::getNitroPath(filename); std::optional amplitudeTable; std::unique_ptr pComplexData; @@ -369,12 +331,12 @@ TEST_CASE(test_readFromNITF_8_bit_Amp_Phs_Examples) { auto subdir = std::filesystem::path("8_bit_Amp_Phs_Examples") / "No_amplitude_table"; auto filename = subdir / "sicd_example_1_PFA_AMP8I_PHS8I_VV_no_amplitude_table_SICD.nitf"; - auto inputPathname = getNitfExternalsPath(filename); + auto inputPathname = six::testing::getNitroPath(filename); auto buffer = readFromNITF(inputPathname); subdir = std::filesystem::path("8_bit_Amp_Phs_Examples") / "With_amplitude_table"; filename = subdir / "sicd_example_1_PFA_AMP8I_PHS8I_VV_with_amplitude_table_SICD.nitf"; - inputPathname = getNitfExternalsPath(filename); + inputPathname = six::testing::getNitroPath(filename); buffer = readFromNITF(inputPathname); } @@ -393,12 +355,12 @@ TEST_CASE(test_read_sicd_8_bit_Amp_Phs_Examples) { auto subdir = std::filesystem::path("8_bit_Amp_Phs_Examples") / "No_amplitude_table"; auto filename = subdir / "sicd_example_1_PFA_AMP8I_PHS8I_VV_no_amplitude_table_SICD.nitf"; - auto inputPathname = getNitfExternalsPath(filename); + auto inputPathname = six::testing::getNitroPath(filename); auto widebandData = readSicd(inputPathname); subdir = std::filesystem::path("8_bit_Amp_Phs_Examples") / "With_amplitude_table"; filename = subdir / "sicd_example_1_PFA_AMP8I_PHS8I_VV_with_amplitude_table_SICD.nitf"; - inputPathname = getNitfExternalsPath(filename); + inputPathname = six::testing::getNitroPath(filename); widebandData = readSicd(inputPathname); } @@ -406,7 +368,7 @@ template static void adjust_image(TImage& image) { // Make it easier to know what we're looking at when examining a binary dump of the SICD - const auto pImageBytes = six::as_bytes(image); + const auto pImageBytes = six::as_writable_bytes(image); pImageBytes[0] = static_cast('['); for (size_t i = 1; i < pImageBytes.size() - 1; i++) @@ -580,8 +542,6 @@ static void test_create_sicd_from_mem(const std::string& testName, TEST_CASE(test_create_sicd_from_mem_8i) { - setNitfPluginPath(); - test_create_sicd_from_mem(testName, "test_create_sicd_from_mem_8i_amp.sicd", six::PixelType::AMP8I_PHS8I, true /*makeAmplitudeTable*/); test_create_sicd_from_mem(testName, "test_create_sicd_from_mem_8i_noamp.sicd", six::PixelType::AMP8I_PHS8I, false /*makeAmplitudeTable*/); } diff --git a/six/modules/c++/six.sicd/unittests/test_projection_polynomial_fitter.cpp b/six/modules/c++/six.sicd/unittests/test_projection_polynomial_fitter.cpp index c4a5a010c1..52256692bc 100644 --- a/six/modules/c++/six.sicd/unittests/test_projection_polynomial_fitter.cpp +++ b/six/modules/c++/six.sicd/unittests/test_projection_polynomial_fitter.cpp @@ -11,39 +11,12 @@ #include "six/sicd/ComplexData.h" #include "six/sicd/Utilities.h" -std::filesystem::path findSixHome(const std::filesystem::path& exePath) -{ - std::filesystem::path sixHome = exePath; - do - { - const auto croppedNitfs = sixHome / "croppedNitfs"; - if (is_directory(absolute(croppedNitfs))) - { - return sixHome; - } - sixHome = sixHome.parent_path(); - } while (absolute(sixHome) != absolute(sixHome.parent_path())); - return ""; -} - std::unique_ptr -loadPolynomialFitter(const std::filesystem::path& exePath) +loadPolynomialFitter() { - const auto sixHome = findSixHome(exePath); - if (sixHome.empty()) - { - std::ostringstream oss; - oss << "Environment error: Cannot determine source tree root"; - throw except::Exception(Ctxt(oss.str())); - } - - const auto sicdPathname = absolute(sixHome / "croppedNitfs" / "SICD"/ "cropped_sicd_110.nitf"); - if (!is_regular_file(sicdPathname)) - { - std::ostringstream oss; - oss << "Environment error: Cannot find SICD file: " << sicdPathname; - throw except::Exception(Ctxt(oss.str())); - } + static const auto modulePath = std::filesystem::path("croppedNitfs") / "SICD"; + static const auto sicdPathname = six::testing::getModuleFile(modulePath, "cropped_sicd_110.nitf"); + std::clog << sicdPathname << "\n"; std::vector schemaPaths; std::unique_ptr complexData; @@ -90,18 +63,11 @@ inline const double* output_plane_points(size_t i) return OUTPUT_PLANE_POINTS[i]; } -static std::filesystem::path argv0() -{ - static const sys::OS os; - static const std::filesystem::path retval = os.getSpecialEnv("0"); - return retval; -} - TEST_CASE(testProjectOutputToSlant) { if (globalFitter == nullptr) { - globalFitter = loadPolynomialFitter(six::testing::buildRootDir(argv0())); + globalFitter = loadPolynomialFitter(); } math::poly::TwoD outputToSlantRow; @@ -132,7 +98,7 @@ TEST_CASE(testProjectSlantToOutput) { if (globalFitter == nullptr) { - globalFitter = loadPolynomialFitter(six::testing::buildRootDir(argv0())); + globalFitter = loadPolynomialFitter(); } math::poly::TwoD slantToOutputRow; diff --git a/six/modules/c++/six.sicd/unittests/test_valid_six.cpp b/six/modules/c++/six.sicd/unittests/test_valid_six.cpp index b7f571cf06..28bb327105 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_six.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_six.cpp @@ -54,53 +54,6 @@ #pragma warning(disable: 4459) // declaration of '...' hides global declaration #endif -static std::filesystem::path argv0() -{ - static const sys::OS os; - static const std::filesystem::path retval = os.getSpecialEnv("0"); - return retval; -} - -static std::filesystem::path nitfRelativelPath(const std::filesystem::path& filename) -{ - return std::filesystem::path("six") / "modules" / "c++" / "six" / "tests" / "nitf" / filename; -} - -static std::filesystem::path getNitfPath(const std::filesystem::path& filename) -{ - const auto root_dir = six::testing::buildRootDir(argv0()); - return root_dir / nitfRelativelPath(filename); -} - -static std::filesystem::path nitfPluginRelativelPath() -{ - if (argv0().filename() == "Test.exe") // Google Test in Visual Studio - { - static const sys::OS os; - static const std::string configuration = os.getSpecialEnv("Configuration"); - static const std::string platform = os.getSpecialEnv("Platform"); - return std::filesystem::path("externals") / "nitro" / platform / configuration / "share" / "nitf" / "plugins"; - } - - //return std::filesystem::path("install") / "share" / "six.sicd" / "conf" / "schema"; - return std::filesystem::path("install") / "share" / "CSM" / "plugins"; -} -static void setNitfPluginPath() -{ - const auto path = six::testing::buildRootDir(argv0()) / nitfPluginRelativelPath(); - //std::clog << "NITF_PLUGIN_PATH=" << path << "\n"; - sys::OS().setEnv("NITF_PLUGIN_PATH", path.string(), true /*overwrite*/); -} - -static std::vector schemaPaths() -{ - static const std::string testName = "test_valid_six"; - const auto relativePath = std::filesystem::path("six") / "modules" / "c++" / "six.sicd" / "conf" / "schema"; - auto path = six::testing::buildRootDir(argv0()) / relativePath; - TEST_ASSERT(exists(path)); - return { std::move(path) }; -} - static std::shared_ptr getContainer(six::sicd::NITFReadComplexXMLControl& reader) { static const std::string testName = "test_valid_six"; @@ -172,7 +125,7 @@ static void test_nitf_image_info(six::sicd::ComplexData& complexData, const std: static void valid_six_50x50_(const std::string& testName, const std::vector* pSchemaPaths) { - static const auto inputPathname = getNitfPath("sicd_50x50.nitf"); + static const auto inputPathname = six::testing::getNitfPath("sicd_50x50.nitf"); std::unique_ptr pComplexData; const auto image = six::sicd::readFromNITF(inputPathname, pSchemaPaths, pComplexData); const six::Data* pData = pComplexData.get(); @@ -189,11 +142,9 @@ static void valid_six_50x50_(const std::string& testName, const std::vector pComplexData; - const auto schemaPaths_ = schemaPaths(); + const auto schemaPaths_ = six::testing::getSchemaPaths(); const auto image = six::sicd::readFromNITF(inputPathname, &schemaPaths_, pComplexData); const six::Data* pData = pComplexData.get(); @@ -229,11 +178,9 @@ TEST_CASE(sicd_French_xml) //TEST_CASE(sicd_French_legacy_xml) //{ -// setNitfPluginPath(); -// -// const auto inputPathname = getNitfPath("sicd_French_xml.nitf"); +// const auto inputPathname = six::testing::getNitfExternalsPath("sicd_French_xml.nitf"); // const auto pathname = inputPathname.string(); -// const auto schemaPaths = ::schemaPaths(); +// const auto schemaPaths = ::six::testing::getSchemaPaths(); // // // Use legacy APIs ... to test other XML processing path // std::vector schemaPaths_; @@ -274,7 +221,7 @@ static void sicd_French_xml_raw_() { static const std::string testName("test_valid_six"); // This is a binary file with XML burried in it somewhere - const auto path = getNitfPath("sicd_French_xml.nitf"); + const auto path = six::testing::getNitfPath("sicd_French_xml.nitf"); io::FileInputStream input(path.string()); const auto result = find_string(input, " readFromNITF(const std::filesystem::path& inputPat TEST_CASE(test_readFromNITF_sicd_50x50) { - setNitfPluginPath(); - - auto inputPathname = getNitfPath("sicd_50x50.nitf"); + auto inputPathname = six::testing::getNitfPath("sicd_50x50.nitf"); auto buffer = readFromNITF(inputPathname); } @@ -358,9 +303,7 @@ static std::vector> readSicd(const std::filesystem::path& in } TEST_CASE(test_read_sicd_50x50) { - setNitfPluginPath(); - - auto inputPathname = getNitfPath("sicd_50x50.nitf"); + auto inputPathname = six::testing::getNitfPath("sicd_50x50.nitf"); auto widebandData = readSicd(inputPathname); } @@ -477,7 +420,6 @@ static void test_create_sicd_from_mem(const std::string& testName, const std::fi TEST_CASE(test_create_sicd_from_mem_32f) { - setNitfPluginPath(); test_create_sicd_from_mem(testName, "test_create_sicd_from_mem_32f.sicd", six::PixelType::RE32F_IM32F); } diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index d8df86a6e0..4482f7e5e6 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -37,40 +37,10 @@ #include "TestCase.h" -static std::filesystem::path argv0() -{ - static const sys::OS os; - static const auto retval = os.getSpecialEnv("0"); - return retval; -} - -static inline std::filesystem::path six_sicd_relative_path() -{ - return std::filesystem::path("six") / "modules" / "c++" / "six.sicd"; -} -static std::filesystem::path sample_xml_relative_path(const std::filesystem::path& filename) -{ - return six_sicd_relative_path() / "tests" / "sample_xml" / filename; -} -static std::filesystem::path schema_relative_path() -{ - return six_sicd_relative_path() / "conf" / "schema"; -} - -static std::filesystem::path get_sample_xml_path(const std::filesystem::path& filename) -{ - const auto root_dir = six::testing::buildRootDir(argv0()); - return root_dir / sample_xml_relative_path(filename); -} - -static std::vector getSchemaPaths() -{ - const auto root_dir = six::testing::buildRootDir(argv0()); - return std::vector { (root_dir / schema_relative_path()) }; -} +namespace fs = std::filesystem; static std::unique_ptr test_assert_round_trip(const std::string& testName, - const six::sicd::ComplexData& complexData, const std::vector* pSchemaPaths) + const six::sicd::ComplexData& complexData, const std::vector* pSchemaPaths) { auto strXML = six::sicd::Utilities::toXMLString(complexData, pSchemaPaths); TEST_ASSERT_FALSE(strXML.empty()); @@ -101,7 +71,7 @@ static void test_createFakeComplexData_(const std::string& testName, const std:: TEST_ASSERT_NULL(Unmodeled); // not part of the fake data, only added in SICD 1.3 // validate XML against schema - const auto schemaPaths = getSchemaPaths(); + const auto schemaPaths = six::testing::getSchemaPaths(); pComplexData = test_assert_round_trip(testName , *pFakeComplexData, &schemaPaths); Unmodeled = get_Unmodeled(*pComplexData, strVersion); TEST_ASSERT_NULL(Unmodeled); // not part of the fake data, only added in SICD 1.3 @@ -146,9 +116,9 @@ static void test_assert(const std::string& testName, const six::sicd::ComplexDat TEST_ASSERT_EQ(strTxRcvPolarizationProc,"OTHER_TxRcvPolarizationProc:OTHER_TxRcvPolarizationProc"); } -static void test_read_sicd_xml(const std::string& testName, const std::filesystem::path& path) +static void test_read_sicd_xml(const std::string& testName, const fs::path& path) { - const auto pathname = get_sample_xml_path(path); + const auto pathname = six::testing::getSampleXmlPath(fs::path("six.sicd") / "tests" / "sample_xml", path); // NULL schemaPaths, no validation auto pComplexData = six::sicd::Utilities::parseDataFromFile(pathname, nullptr /*pSchemaPaths*/); @@ -158,7 +128,7 @@ static void test_read_sicd_xml(const std::string& testName, const std::filesyste test_assert(testName, *pComplexData); // validate XML against schema - const auto schemaPaths = getSchemaPaths(); + const auto schemaPaths = six::testing::getSchemaPaths(); pComplexData = six::sicd::Utilities::parseDataFromFile(pathname, &schemaPaths); test_assert(testName, *pComplexData); diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SFA.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SFA.xsd new file mode 100644 index 0000000000..295ce2dcbb --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SFA.xsd @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SICommonTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SICommonTypes.xsd new file mode 100644 index 0000000000..fba8f2ec73 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SICommonTypes.xsd @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents range and azimuth + + + + + Range dimension. + + + + + Azimuth dimension. + + + + + + + The reference point + + + + + The XYZ ECEF (units = m) reference point. + + + + + The row and column (units = pixels) which maps to the ECEF point. + + + + + + Used for implementation specific signifier for the reference point. + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SICommonTypes_V1.0.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SICommonTypes_V1.0.xsd new file mode 100644 index 0000000000..66c101c167 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SICommonTypes_V1.0.xsd @@ -0,0 +1,731 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents range and azimuth + + + + + Range dimension. + + + + + Azimuth dimension. + + + + + + + The reference point + + + + + The XYZ ECEF (units = m) reference point. + + + + + The row and column (units = pixels) which maps to the ECEF point. + + + + + + Used for implementation specific signifier for the reference point. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_schema_V3.0.0.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SIDD_schema_V3.0.0.xsd similarity index 100% rename from six/modules/c++/six.sidd/conf/schema/SIDD_schema_V3.0.0.xsd rename to six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/SIDD_schema_V3.0.0.xsd diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISM25X.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISM25X.xml new file mode 100644 index 0000000000..fe1694691c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISM25X.xml @@ -0,0 +1,222 @@ + + + + + + CVEnumISM25X + All currently authorized authority block declass date/event exemptions. + + 2012-01-04T02:15:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + + AEA + + When using a source document that contains portions of Restricted Data (RD) + or Formerly Restricted Data (FRD) where the RD/FRD source document(s) + do not have declassification instructions, the derivatively classified + document shall not contain a declassification date or event on the + Declassify On line. The following shall be annotated on the Declassify On + line: "Not Applicable or (N/A) to RD/FRD portions" and + "See source list for NSI portions" separated by a period. + The source list must include the declassification instruction + for each of the source documents classified under E.O. 13526 and + shall not appear in the classification authority block + + + + + NATO + + Since NATO information is not to be declassified or downgraded without the prior consent + of NATO, the “Declassify on” line of documents that commingle information classified by + NATO and U.S. classified NSI, will read “N/A to NATO portions. + See source list for NSI portions.” + The NSI source list will appear beneath the classification authority block + in a manner that clearly identifies it as separate and distinct. + + + + + NATO-AEA + + Handles special case of BOTH NATO and AEA as a single exemption. + + + + 25X1 + + Reveal the identity of a confidential + human source, a human intelligence source, + a relationship with an intelligence or security + service of a foreign government or + international organization, or a non-human + intelligence source; or impair the + effectiveness of an intelligence method + currently in use, available for use, or under + development. + + + + 25X1-EO-12951 + + "25X1, EO 12951" (prescribed by the DNI for use on information described in E.O. 12951, + Release of Imagery Acquired by Space-Based National Intelligence Reconnaissance Systems) + + + + 25X2 + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + 25X3 + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + 25X4 + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + 25X5 + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + 25X6 + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + 25X7 + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + 25X8 + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + 25X9 + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + + 50X1-HUM + + When the information clearly and + demonstrably could be expected to + reveal the identity of a confidential + human source or a human intelligence + source. + + + + 50X1 + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + 50X2-WMD + + When the information clearly and + demonstrably could reveal key design + concepts of weapons of mass + destruction. + + + + 50X6 + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMAtomicEnergyMarkings.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMAtomicEnergyMarkings.xml new file mode 100644 index 0000000000..dca366b77b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMAtomicEnergyMarkings.xml @@ -0,0 +1,80 @@ + + + + + + CVEnumISMatomicEnergyMarkings + All currently valid Atomic Energy information markings from the published register + + 2011-02-04T00:22:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + + RD + RESTRICTED DATA + + + RD-CNWDI + RD-CRITICAL NUCLEAR WEAPON DESIGN INFORMATION + + + RD-SG-((14)|(15)|(18)|(20)) + RD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + FRD + FORMERLY RESTRICTED DATA + + + FRD-SG-((14)|(15)|(18)|(20)) + FRD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + DCNI + DoD CONTROLLED NUCLEAR INFORMATION + + + UCNI + DoE CONTROLLED NUCLEAR INFORMATION + + + TFNI + TRANSCLASSIFIED FOREIGN NUCLEAR INFORMATION + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMAttributes.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMAttributes.xml new file mode 100644 index 0000000000..2a54357f3a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMAttributes.xml @@ -0,0 +1,211 @@ + + + + + + CVEnumISMAttributes + All currently authorized ISM attribute names + + 2010-05-30T16:52:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + compliesWith + compliesWith attribute + + + classification + classification attribute + + + ownerProducer + ownerProducer attribute + + + SCIcontrols + SCIcontrols attribute + + + SARIdentifier + SARIdentifier attribute + + + atomicEnergyMarkings + atomicEnergyMarkings attribute + + + disseminationControls + disseminationControls attribute + + + FGIsourceOpen + FGIsourceOpen attribute + + + FGIsourceProtected + FGIsourceProtected attribute + + + releasableTo + releasableTo attribute + + + displayOnlyTo + displayOnlyTo attribute + + + nonICmarkings + nonICmarkings attribute + + + classifiedBy + classifiedBy attribute + + + derivativelyClassifiedBy + derivativelyClassifiedBy attribute + + + classificationReason + classificationReason attribute + + + nonUSControls + nonUSControls attribute + + + derivedFrom + derivedFrom attribute + + + declassDate + declassDate attribute + + + declassEvent + declassEvent attribute + + + declassException + declassException attribute + + + resourceElement + resourceElement attribute + + + excludeFromRollup + excludeFromRollup attribute + + + createDate + createDate attribute + + + compilationReason + compilationReason attribute + + + noticeType + noticeType attribute + + + externalNotice + externalNotice attribute + + + DESVersion + DESVersion attribute + + + ISMCATCESVersion + ISMCATCESVersion attribute + + + noticeDate + notice date attribute + + + noticeReason + notice Reason attribute + + + exemptFrom + exemptFrom attribute + + + unregisteredNoticeType + unregisteredNoticeType attribute + + + pocType + Specifies a point-of contact for a security-related + requirement. + + + joint + Indicator that multiple ownerProducers should be interpreted + as JOINT. + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMClassificationAll.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMClassificationAll.xml new file mode 100644 index 0000000000..641673f4b1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMClassificationAll.xml @@ -0,0 +1,52 @@ + + + + + + CVEnumISMClassificationAll + All currently valid classification marks + 2010-05-31T21:22:00-04:00 + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + R + RESTRICTED + + + C + CONFIDENTIAL + + + S + SECRET + + + TS + TOP SECRET + + + U + UNCLASSIFIED + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMClassificationUS.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMClassificationUS.xml new file mode 100644 index 0000000000..3935fd87c2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMClassificationUS.xml @@ -0,0 +1,61 @@ + + + + + + CVEnumISMClassificationUS + All currently valid US classification marks + + 2010-03-12T11:29:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + + TS + TOP SECRET + + + S + SECRET + + + C + CONFIDENTIAL + + + U + UNCLASSIFIED + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMCompliesWith.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMCompliesWith.xml new file mode 100644 index 0000000000..4c133993df --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMCompliesWith.xml @@ -0,0 +1,69 @@ + + + + + + CVEnumISMCompliesWith + ISM rule sets documents may comply + with. + + 2010-05-30T16:52:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + USGov + Document claims compliance with all rules encoded in ISM for + documents produced by the US Federal Government. This is the minimum set of rules + for US documents to adhere to, and all US documents should claim compliance with + USGov. For example, a US Intelligence Community document should claim + ism:compliesWith="USGov USIC". + + + USIC + Document claims compliance with all rules encoded in ISM for + documents produced by the US Intelligence Community. Documents that claim compliance + with USIC MUST also claim compliance with USGov. + + + USDOD + Document claims compliance with all rules encoded in ISM for + documents produced by the US Department of Defense. Documents that claim compliance + with USDOD MUST also claim compliance with USGov. + + + OtherAuthority + Document claims compliance with an authority other than the + USGov, USIC, or USDOD. This token is not allowed if the ism:ownerProducer contains + USA. + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMDissem.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMDissem.xml new file mode 100644 index 0000000000..e5f2334115 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMDissem.xml @@ -0,0 +1,103 @@ + + + + + + + CVEnumISMDissem + All currently valid Dissemination controls from the published register + 2012-01-04T00:14:00-04:00 + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + RS + RISK SENSITIVE + + + FOUO + FOR OFFICIAL USE ONLY + + + OC + ORIGINATOR CONTROLLED + + + OC-USGOV + ORIGINATOR CONTROLLED US GOVERNMENT + + + IMC + CONTROLLED IMAGERY + + + NF + NOT RELEASABLE TO FOREIGN NATIONALS + + + PR + CAUTION-PROPRIETARY INFORMATION INVOLVED + + + REL + AUTHORIZED FOR RELEASE TO + + + RELIDO + RELEASABLE BY INFORMATION DISCLOSURE OFFICIAL + + + EYES + EYES ONLY + + + DSEN + DEA SENSITIVE + + + FISA + FOREIGN INTELLIGENCE SURVEILLANCE ACT + + + DISPLAYONLY + AUTHORIZED FOR DISPLAY BUT NOT RELEASE TO + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMElements.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMElements.xml new file mode 100644 index 0000000000..d9e6bb207e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMElements.xml @@ -0,0 +1,64 @@ + + + + + + CVEnumISMElements + All currently authorized ISM element names + + 2011-04-15T15:16:00-05:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + Notice + Notice element + + + NoticeText + NoticeText element + + + NoticeList + NoticeList element + + + NoticeExternal + NoticeExternal element + + + NoticeExternalList + NoticeExternalList element + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMExemptFrom.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMExemptFrom.xml new file mode 100644 index 0000000000..09079af573 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMExemptFrom.xml @@ -0,0 +1,49 @@ + + + + + + + CVEnumISMExemptFrom + Current rule set names that documents may comply + with + + 2010-05-30T16:52:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + IC_710_MANDATORY_FDR + Document claims exemption from ICD-710 rules mandating the + use of Foreign Disclosure and Release markings that have been encoded in ISM. + Currently, the requirement for FD&R is only mandatory for Disseminated Analytic + Product; however, it is strongly encouraged otherwise. + + + DOD_DISTRO_STATEMENT + Document claims exemption from the rules in DoD5230.24 + requiring DoD Distribution Statements that have been encoded into + ISM. + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNonIC.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNonIC.xml new file mode 100644 index 0000000000..80cab2bfef --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNonIC.xml @@ -0,0 +1,89 @@ + + + + + + CVEnumISMNonIC + All currently valid Non-IC markings from the published register + + 2012-01-04T00:14:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + + DS + LIMITED DISTRIBUTION + + + XD + EXCLUSIVE DISTRIBUTION + + + ND + NO DISTRIBUTION + + + SBU + SENSITIVE BUT UNCLASSIFIED + + + SBU-NF + SENSITIVE BUT UNCLASSIFIED NOFORN + + + LES + LAW ENFORCEMENT SENSITIVE + + + LES-NF + LAW ENFORCEMENT SENSITIVE NOFORN + + + SSI + SENSITIVE SECURITY INFORMATION + + + ACCM-[A-Z0-9\-_]{1,61} + The name of the ALTERNATE COMPENSATORY CONTROL MEASURE, substituting "_" for a space. + + + NNPI + NAVAL NUCLEAR PROPULSION INFORMATION + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNonUSControls.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNonUSControls.xml new file mode 100644 index 0000000000..7e8625c620 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNonUSControls.xml @@ -0,0 +1,54 @@ + + + + + + CVEnumISMNonUSControls + NonUS Control markings supported by ISM + + 2010-06-06T20:11:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + ATOMAL + NATO Atomal mark + + + BOHEMIA + NATO Bohemia mark + + + BALK + NATO Balk mark + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNotice.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNotice.xml new file mode 100644 index 0000000000..e7a017a7f4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMNotice.xml @@ -0,0 +1,142 @@ + + + + + + CVEnumISMNotice + All currently authorized Notice values + + 2010-03-12T11:29:00-04:00 + + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + FISA + FISA Warning statement + + + IMC + IMCON Warning statement + + + CNWDI + Controled Nuclear Weapon Design Information Warning statement + + + RD + RD Warning statement + + + FRD + FRD Warning statement + + + DS + LIMDIS caveat + + + LES + LES Notice + + + LES-NF + LES-NF Notice + + + DSEN + DSEN Notice + + + DoD-Dist-A + DoD Distribution statement A from DoD Directive 5230.24 + + + DoD-Dist-B + DoD Distribution statement B from DoD Directive 5230.24 + + + DoD-Dist-C + DoD Distribution statement C from DoD Directive 5230.24 + + + DoD-Dist-D + DoD Distribution statement D from DoD Directive 5230.24 + + + DoD-Dist-E + DoD Distribution statement E from DoD Directive 5230.24 + + + DoD-Dist-F + DoD Distribution statement F from DoD Directive 5230.24 + + + DoD-Dist-X + DoD Distribution statement X from DoD Directive 5230.24 + + + US-Person + US Person info Notice + + + pre13526ORCON + Indicates that an instance document must abide by rules pertaining to ORIGINATOR CONTROLLED data issued prior to Executive Order 13526. + + + POC + Indicates that the contents of this notice specify the contact information for a required point-of-contact. + + + COMSEC + COMSEC Notice + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMPocType.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMPocType.xml new file mode 100644 index 0000000000..d74c8d3b87 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMPocType.xml @@ -0,0 +1,77 @@ + + + + + + CVEnumISMPocType + All currently authorized types for ISM-related points-of-contact. + + 2011-07-13T14:42:00-04:00 + + + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + ICD-710 + Point-of-contact for an ICD-710 notice. + + + DoD-Dist-B + DoD Distribution statement B from DoD Directive 5230.24 + + + DoD-Dist-C + DoD Distribution statement C from DoD Directive 5230.24 + + + DoD-Dist-D + DoD Distribution statement D from DoD Directive 5230.24 + + + DoD-Dist-E + DoD Distribution statement E from DoD Directive 5230.24 + + + DoD-Dist-F + DoD Distribution statement F from DoD Directive 5230.24 + + + DoD-Dist-X + DoD Distribution statement X from DoD Directive 5230.24 + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMSAR.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMSAR.xml new file mode 100644 index 0000000000..4a4175eb35 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMSAR.xml @@ -0,0 +1,60 @@ + + + + + + CVEnumISMSAR + All currently valid SAR controls from the published register + + 2010-03-12T11:29:00-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + [A-Z_0-9\-]{1,100} + SPECIAL ACCESS REQUIRED-XXX,Within the nickname or name of a SAR all spaces must be replaced with a "_". The XSL will restore the spaces for rendering. + + + [A-Z]{2,} + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + [A-Z]{2,}-[A-Z][A-Z0-9]+ + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + [A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,} + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMSCIControls.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMSCIControls.xml new file mode 100644 index 0000000000..e56b0d1968 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/CVEnumISMSCIControls.xml @@ -0,0 +1,108 @@ + + + + + CVEnumISMSCIControls + All currently valid SCI controls from the published register + + 2014-05-02T17:55:04.921-04:00 + + + + + Office IC CIO + ic-standards-support@intelink.gov + + + + + + + + EL + ENDSEAL + + + EL-EU + ECRU + + + EL-NK + NONBOOK + + + HCS + HCS + + + HCS-O + HCS-O + + + HCS-P + HCS-P + + + KDK + KLONDIKE + + + KDK-BLFH + KDK BLUEFISH + + + KDK-IDIT + KDK IDITAROD + + + KDK-KAND + KDK KANDIK + + + KDK-BLFH-[A-Z0-9]{1,6} + KDK-BLFH-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub BLUEFISH compartment + + + KDK-IDIT-[A-Z0-9]{1,6} + KDK-IDIT-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub IDITAROD compartment + + + KDK-KAND-[A-Z0-9]{1,6} + KDK-KAND-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub KANDIK compartment + + + RSV + RESERVE + + + RSV-[A-Z0-9]{3} + RSV-XXX, XXX represents 3 alpha numeric characters to indicate sub Reserve compartments + + + SI + SPECIAL INTELLIGENCE + + + SI-G + SI-GAMMA + + + SI-G-[A-Z]{4} + G-AAAA, AAAA represents 4 alpha characters to indicate sub Gamma compartments + + + SI-[A-Z]{3} + SPECIAL INTELLIGENCE compartment + + + SI-[A-Z]{3}-[A-Z]{4} + SPECIAL INTELLIGENCE sub-compartment + + + TK + TALENT KEYHOLE + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/Documentation/ISMCVEnums.pdf b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/Documentation/ISMCVEnums.pdf new file mode 100644 index 0000000000..55718abcb2 Binary files /dev/null and b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/ISM/Documentation/ISMCVEnums.pdf differ diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/CVEXml.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/CVEXml.xsd new file mode 100644 index 0000000000..3fe144a3ba --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/CVEXml.xsd @@ -0,0 +1,149 @@ + + + + This schema describes a structure for simple XML files (CVE files) + which list the valid values for elements and attributes defined in an + IC Data Encoding Specification. The primary purpose of the CVE files is to + document the valid values in a structured manner. + + + + + + + + + + + + + + + An attribute used to declare the namespace/codespace of the term value. + + + + + + The root node of a CVEXXX.xml document. This node + carries the overall classification of the entire enumeration + and resource metadata through ISM attributes. + + + + + + + + + + The version number of the CVE. + + + + + + + + + + + Information resource metadata for this CVE. + + + + + + + + + + + + + + + + + + + + + + + + A container for all of the values represented by this CVE. + + + + + + + + + Boolean defining if the validation should allow only 1 occurrence or multiple occurrences of values + from this CVE in an instance document true allows multiples. + + + + + + + + + + + + + + A single entry in the CVE. Contains the actual + value being specified by the DES and a description to facilitate human + understanding of the value. Note, the description is purely informative. + + + + + + + If a CVE is being created at a classification level + at which a particular "Value" is allowed, but the usual description of + that "Value" is at a higher classification level, the description should + be rewritten to the desired level. + + + + + + + A date indicating when this term is no longer allowed. Presence of + this date indicated the value is currently deprecated and processing systems should produce a warning + or error for any occurrences of this term's value or take other action as appropriate. + + + + + + + + + A valid value specified in the CVE. + + + + + + + A boolean indicator that this term is defined via a Regular Express. + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-GeospatialCoverage.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-GeospatialCoverage.xsd new file mode 100644 index 0000000000..c5a13a3b3b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-GeospatialCoverage.xsd @@ -0,0 +1,179 @@ + + + + + This XML Schema implements elements and attribute groups of the Department of Defense Discovery Metadata Specification (DDMS Spec), with a version number the same as that in the above 'version' attribute of the 'xs:schema' element. Unless otherwise stated, all references to the DDMS Spec refer to that version of the document. + + + Change Log: + + 6/05/2007 (J. Pantella) -- Created pursuant to approved CR 2007-1. See also http://metadata.dod.mil/irs/DDMS/cm/CR/2007/DDMS-CR-2007-1. + 1/3/2007 (J. Pantella) -- Modified version attribute to reflect that this is version 1.4.2. + 6/30/2008 (D. Barclay) -- Made attribute osuffix optional (for CR 2008-5). + 7/1/2008 (D. Barclay) -- Corrected "minVerticalExent" to "minVerticalExtent" + 7/15/2008 (J. Pantella) -- Modified namespace to reflect DDMS 2.0. + 1/4/2010 (P. Lunceford) -- Created DDMS 3.0. Implemented CR 2009-12 to add Security markings to GeospatialCoverageType and CR 2009-14 to make the value and qualifier of CompoundCountryCodeIdentifierType to be required. + 6/05/2011 (E. Hughes) -- Created DDMS 3.1. Implemented CR 2011-1 to create DDMS-Includes.xsd wherein all IC-ISM references are consolidated. + 12/12/2012 (E. Carswell) -- Created DDMS 5.0. Implemented CR 2012-07 to replace the existing use of GML with TSPI version 2. + + + + + + + + A geographic indication of one or more places or facilities that relate to the resource. See DDMS Spec Category: Geospatial Coverage. + + + + + + + + + + + + Priority claimed or received as a result of preeminence. When used on the element CountryCode, this attribute is used to distinguish the primary focus when an intelligence product covers two or more countries. Permissible values are Primary, Secondary. + + + + + Specifies a user-defined order of an element within the given document. All elements in the document which specify the order attribute should be interpreted as entries in a single, ordered list even though they may appear on different elements.Values must be sequential, starting at 1, and may not contain duplicates. + + + + + + + + Models a GML compliant geographic identifier. See ISO 19115 EX_GeographicDescription. + + + + + + + + + + A standards-based abbreviation of an administrative subdivision of a country. The code elements may consist of a controlled vocabulary value such as the ones defined in ISO 3166-2. + + + + + + + + + + + The codespace attribute holds the codespace identifying the standard being used. The code attribute holds the two-alpha, three-alpha, or numeric code identifying the country. + + + + + + + + + + + (GMI:BE_NUMBER, 1.0) Uniquely identifies the installation of the facility. The BE_NUMBER is generated based on the value input for the COORD to determine the appropriate World Area Code (WAC), the system assigned record originator and a one-up-number. Pos. 1-4, World Area Code (WAC). Pos. 5, A hyphen, '-', or an 'E', in the fifth position indicates that position-6 will contain values 0-9. Alternately, the fifth position may contain the first of a two-character system assigned record originator code, position-6 will then contain the second character of the system assigned record originator code. Pos. 6, May contain the second character of the system assigned record originator code, the one-up-number series will then begin in position seven, and range from 0001-9909. If the one-up-number series begins in postion 6, this position will contain the first of a five-position one-up-number, i.e., 00001-99999.Pos. 7-10, A one-up-number series. Depending on the content of position 5, the series may have begun in position 6 and have a range of 00001-99999. Or, have begun in position 7 and have a range from 0001-9999. + + + + + + (GMI:OSUFFIX, 1.0) Uniquely identifies a facility or demographic area in conjunction with a BE_NUMBER. Pos. 1-2. SYSTEM ASSIGNED RECORD_ORIGINATOR. The organization creating the facility or demographic area. DIA installation records created prior to IDB generation of OSUFFIX contain DD.Pos. 3-5 A one-up number. + + + + + + + + Models a TSPI compliant bounding geometry. See TSPI 2.0 Polygon. +Developer's Note: It is recommended that the srsName attribute be populated on a gml:Point or gml:Polygon element within the DDMS. Recommended values for the attribute are: + + 1) "http://metadata.dod.mil/mdr/ns/GSIP/crs/WGS84C_3D" -- representing World Geodetic System 1984 - Earth Centered, Earth Fixed (ECEF), where the X axis is mass center - equator/prime meridian, and the units are meters; the Y axis is mass center - equator/90° E, and the units are meters; and the Z axis is mass center - North Pole, and the units are meters. + OR + 2) "http://metadata.dod.mil/mdr/ns/GSIP/crs/WGS84E_2D" -- representing World Geodetic System 1984 - Geographic, 2-Dimensional, where latitude is north positive, measured in degrees; and latitude is east positive, measured in degrees. + OR + 3) "http://metadata.dod.mil/mdr/ns/GSIP/crs/WGS84E_3D" -- representing World Geodetic System 1984 - Geographic, 3-Dimensional, where latitude is north positive, measured in degrees; and latitude is east positive, measured in degrees; and height is height above ellipsoid, measured in meters. + See also: http://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350_2.html. + + For gml:pos elements populating the gml:Polygon/gml:exterior/gml:LinearRing/gml:pos element the following guidance should be followed: + 1. Latitude shall be in decimal degrees in the range -90° less than or equal to latitude greater than or equal to +90°. + 2. North latitudes shall be positive, south latitudes shall be negative. + 3. Longitude shall be in decimal degrees in the range -180° less than or equal to longitude greater than or equal to +180°; note that there are two equally acceptable values of longitude for the meridian opposite the prime meridian. + 4. East longitudes shall be positive, west longitudes shall be negative. + 5. Only the element gml:pos shall be used to encode a geographic point location as either: + a. two decimal values in the order of latitude then longitude (no commas) when WGS84E_2D, or + b. three decimal values in the order latitude, longitude and finally height above ellipsoid (no commas) when using the WGS84E_3D CRS. + +Developer's Note: The srsName attribute is required on the Polygon element. The Polygon/@srsName is the identifier for the CRS which is controlling for the child gml:pos elements. It is important to note that the srsName attribute may also appear on the gml:pos elements, however given the current allowable CRSs above there is no need to repeat the information on the gml:pos elements thus the srsName attribute is optional and not required. If the srsName does appear on the gml:pos elements then it must be the same as the value of the srsName attribute on the Polygon element. + + + + + + Type that defines a GML compliant bounding geometry. See ISO 19115 EX_BoundingPolygon. +Developer's Note: It is required that the srsName attribute be populated on a gml:Point or gml:Polygon element within the DDMS. Recommended values for the attribute are: + + + 1) "http://metadata.ces.mil/dse/ns/GSIP/crs/WGS84C_3D" -- representing World Geodetic System 1984 - Earth Centered, Earth Fixed (ECEF), where the X axis is mass center - equator/prime meridian, and the units are meters; the Y axis is mass center - equator/90° E, and the units are meters; and the Z axis is mass center - North Pole, and the units are meters. + OR + 2) "http://metadata.ces.mil/mdr/ns/GSIP/crs/WGS84E_2D" -- representing World Geodetic System 1984 - Geographic, 2-Dimensional, where latitude is north positive, measured in degrees; and latitude is east positive, measured in degrees. + OR + 3) "http://metadata.ces.mil/dse/ns/GSIP/crs/WGS84E_3D" -- representing World Geodetic System 1984 - Geographic, 3-Dimensional, where latitude is north positive, measured in degrees; and latitude is east positive, measured in degrees; and height is height above ellipsoid, measured in meters. + See also: http://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350_2.html. + + For gml:pos elements populating the gml:Polygon/gml:exterior/gml:LinearRing/gml:pos element the following guidance should be followed: + 1. Latitude shall be in decimal degrees in the range -90° less than or equal to latitude greater than or equal to +90°. + 2. North latitudes shall be positive, south latitudes shall be negative. + 3. Longitude shall be in decimal degrees in the range -180° less than or equal to longitude greater than or equal to +180°; note that there are two equally acceptable values of longitude for the meridian opposite the prime meridian. + 4. East longitudes shall be positive, west longitudes shall be negative. + 5. Only the element gml:pos shall be used to encode a geographic point location as either: + a. two decimal values in the order of latitude then longitude (no commas) when WGS84E_2D, or + b. three decimal values in the order latitude, longitude and finally height above ellipsoid (no commas) when using the WGS84E_3D CRS. + + 6. The outside edge of a linearRing is defined by four or more coordinate tuples, in counter- clockwise order, with linear interpolation between them; the first and last coordinates must be identical. + +Developer's Note: The srsName attribute is required on the Polygon element. The Polygon/@srsName is the identifier for the CRS which is controlling for the child gml:pos elements. It is important to note that the srsName attribute may also appear on the gml:pos elements, however given the current allowable CRSs above there is no need to repeat the information on the gml:pos elements thus the srsName attribute is optional and not required. If the srsName does appear on the gml:pos elements then it must be the same as the value of the srsName attribute on the Polygon element. + + + + + + + + + + + + + + Models a standalone postal address. + + + + + + + + + Group of entities used in the ddms:postalAddress element. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-Globals.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-Globals.xsd new file mode 100644 index 0000000000..b0cf3e1bb9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-Globals.xsd @@ -0,0 +1,1017 @@ + + + + + This XML Schema implements elements and attribute groups of the Department of Defense Discovery Metadata Specification (DDMS Spec), with a version number the same as that in the above 'version' attribute of the 'xs:schema' element. Unless otherwise stated, all references to the DDMS Spec refer to that version of the document. + + + Change Log: + 6/05/2007 (J. Pantella) -- Created pursuant to approved CR 2007-1. See also http://metadata.dod.mil/irs/DDMS/cm/CR/2007/DDMS_CR_2007-1. + 1/3/2007 (J. Pantella) -- Modified version attribute to reflect that this is version 1.4.2. + 7/1/2008 (D. Barclay) -- Made elements "extent" and "medium" optional in type MediaType (per DDMS-CR-2008-6). + 7/15/2008 (J. Pantella) -- Modified security attributes on creator, publisher, and contributor to be optional, added optional security attributes to pointOfContact for consistency across the elements. + 7/15/2008 (J. Pantella) -- Modified version to reflect that this is version 2.0. + 1/5/2010 (P. Lunceford) -- Created DDMS 3.0. Implemented CRs 2009-04 (replaced creatorType/publisherType/contributorType/pointOfContactType with contactInfoType), 2009-07 (set minOccurs on RelatedResourceType to 1), 2009-09 (added Unknown entity to accompany Person, Organization, and Service for a choice for Creator, Publisher, Contributor, and PointOfContact), 2009-10 (added extensions to CompoundKeywordIdentifierType and CompoundCategoryIdentifierType), and 2009-12 (added Security Markings to SubjectCoverageType, CompoundSouceIdentifierType, TemporalCoverageType, and VirtualCoverageType). + 6/05/2011 (E. Hughes) -- Created DDMS 3.1. Implemented CR 2011-1 to create DDMS-Includes.xsd wherein all IC-ISM references are consolidated. + 6/05/2011 (E. Hughes) -- Added approvedOn attribute pursuant to CR 2011-5. + 11/11/2011 (E. Hughes) -- Implemented CR 2011-17 to use IC-ISM POCType. + 05/25/2012 (E. Hughes and P. Attas) - Implemented CR_2011-18, CR_2012-01, CR_2012-02, and CR2012-03. + + + + + + + + + Information about the metadata card. + + + + + An unambiguous reference to a resource within a given context. {An attribute stores the source of the tag's value} +{sources: DCMI: identifier, v. 004; IC MSP v. 1.0a: IdentifierList} An identifier may be an internal, external, and/or universal identification label for representing a resource by means of a string or number conforming to a formal identification system. An example of an identifier would be an International Standard Serial Number (ISSN), or a Uniform Resource Locator (URL). Any type of identifier can be accommodated, so long as the identifier qualifier is specified with the identifier value. See also, DDMS Spec Category: Identifier. + + + + + + A name, or names, given to the resource {from DCMI: title, v. 004}. The title category must contain at least one title, and may contain subtitles, or supplementary, explanatory titles for use on cover pages and for cataloging and searching. See also, DDMS Spec Category: Title. + + + + + + A subtitle may be any form of the title used as a substitute, or it may be an alternative to the formal title of the resource. See also, DDMS Spec Category: Title. + + + + + + Information about the entity responsible for generating the resource {Source: DCMI: creator, v. 004; IC MSP v. 1.0a: AuthorInfo, POCInfo} When a creator is a service or an organization, and not an individual, it is expected that the contact authority (person or organization) for the resource will be listed. The relations provided in this schema are Organization, Person, Service, Unknown. See also, DDMS Spec Category: Creator. + + + + + + This category is used to tag the identification of the entity responsible for releasing the data asset--the entity primarily responsible for the intellectual content of the product. It is intended that this category apply whenever applicable to an organization, as opposed to a person. Typically, the name of a Publisher should be used to indicate the organization, agency, or domain responsible for the resource. See also, DDMS Spec Category: Publisher. + + + + + + Information about an organization, person, or entity, that contributed intellectual content to a resource, other than the publishing organization {DCMI: contributor, v. 004; IC MSP v. 1.0a: Contributor} When a creator is a service or an organization, and not an individual, it is expected that the contact authority (person or organization) for the resource will be listed. The relations provided in this schema are Organization, Person, Service, Unknown. See also, DDMS Spec Category: Contributor. + + + + + + The point of contact, usually a Person, is the entity primarily responsible for accepting inquiries regarding the resource. + + + + + + Type used to model the ddms:creator, ddms:publisher, ddms:contributor, and ddms:pointOfContact elements. + + + + + + + + + + + + + References to assets or resources from which the tagged data asset is derived. {Source: DCMI: type, v. 004} +Sources may be derived partially or wholly, and it is recommended that an identifier (such as a string or number from a formal identification system) be used as a reference. See also, DDMS Spec Category: Source. + + + + + + The primary language of the intellectual content of the resource. {Source: DCMI: language, v. 004IC MSP v. 1.0a: Language} The most specific in-scope language present (if any) should be specified in this category. See DDMS Spec Category: Language. + + + + + + + An account of the content of the resource. {Source: DCMI: description, v. 004IC MSP v. 1.0a: Description} Description may include but is not limited to: an abstract, reference to a graphical representation of content or a free-text account of the content. See DDMS Spec Category: Description. + + + + + + + The date related properties of this resource. See DDMS Spec Category: Date. + + + + + + + Information about rights held in and over the resource. Typically, a rights element will contain a rights management statement for the resource, or reference a service providing such information. Rights information often encompasses Intellectual Property Rights (IPR), Copyright, and various Property Rights. If the rights element is absent, no assumptions can be made about the status of these and other rights with respect to the resource. See DDMS Spec Category: Rights. + + + + + + + The nature or genre of the content of the resource. See, DCMI Type Vocabulary [DCMITYPE], which includes, Collection, Dataset, Event Image, InteractiveResource, Service, Software, Sound, Text, PhysicalObject, StillImage, MovingImage. See DDMS Spec Category: Type. + + + + + + + The physical or digital manifestation of the resource. Used to define the medium, extent or duration, and MIME type of the resource. See DDMS Spec Category: Format. + + + + + + + The physical medium or instantiation of the resource. See also DDMS Spec Category: Format. + + + + + + + The Internet Media Type [MIME] of the Resource. See DDMS Spec Category: Format. + + + + + + + A related data size, compression rate, or pixel size (etc.) of the resource. See also, DDMS Spec Category: Format. + + + + + + + Container for the categorical subject and natural language subject classifications. It is assumed that all content under subjectCoverage is related to the same subject. See also SubjectType. NOTE: At least one of either Keyword or Category must appear, after one instance of either appears, additional categories must appear before additional keywords. See DDMS Spec Category: Subject. + + + + + + + Specification of the subject matter by a qualified entry from a controlled vocabulary. See DDMS Spec Category: Subject. + + + + + + + A natural language indication of the resource's subject matter. See DDMS Spec Category: Subject. + + + + + + A categorization scheme whose values and use are defined by DDNI-A. + + + + + Non-state actors that are within the scope of coverage for the described item. + + + + + + The subject-matter coverage in terms of one or more periods of time. That is, an indication of the time period for which the subject of the resource applies. (E.g. The 50's, or a span of time indicated by a start and end time.) See DDMS Spec Category: Temporal Coverage. + + + + + + + + A named organization responsible as indicated by its encompasing element, i.e. as a creator, contributor, or publisher. See also, DDMS Spec Categories: Contributor, Creator, Publisher. + + + + + + + A person responsible as indicated by its encompasing element, i.e. as a creator, contributor, or publisher. See also, DDMS Spec Categories: Contributor, Creator, Publisher. + + + + + + + A named service responsible as indicated by its encompasing element, i.e. as a creator, contributor, or publisher. See also, DDMS Spec Categories: Contributor, Creator, Publisher. + + + + + + + Identification that the type of entity of the encompassing element i.e. as a creator, contributor, or publisher, is unknown. See also, DDMS Spec Categories: Contributor, Creator, Publisher. + + + + + + + Each relatedResources element represents a single type of relationship between the resource described in the enclosing ddms:Resource and other identified resources. + + + + + + + Information about when and/or how a product was transformed post-publication, including adding metadata to a published product. + + + + + A container for information about the format of the publication file and the authoring software used to produce the publication. + + + + + The memorandum titled Intelligence Community Standards and Procedures for Revised or Recalled Intelligence Products signed by DNI Negroponte on 5 August 2005 specified how to indicate, in a textual form, the revision or recall of a previously released document. This element specifies methods for conveying revision and recall indicators and additional data in XML. + + + + + + The identification of an organization or agency with which an individual, service, or unknown producer has an affiliation. + + + + + + + + + + + + + + + + + + + + + + + + + + Used to represent a Resource Identifier. + + + + + + + + + Common type for the title element. + + + + + + + + + + + + Common type for the subtitle element. + + + + + + + + + + + + Type used to model the rights element. + + + + + + (TBD:PrivacyActIndicator, 1.0) An indicator that this product is categorized as containing personal information subject to protection by the Privacy Act. This element has no data content. Attribute "indicator", a yes/no toggle, is used to specify applicability of the Privacy Act. The default is "no". {False = No} + + + + + + + An indicator identifying products under protection against reproduction and distribution without the express written permission of the intellectual property rights owner. A yes/no value used to specify applicability of the rights. The default is "no". {False = No} + + + + + + + An indicator identifying products under protection against reproduction and distribution without the express written permission of the copyright owner. A yes/no value used to specify applicability of the rights. The default is "no". {False = No} (TBD:CopyrightIndicator, 1.0) An indicator identifying documents under protection against reproduction and distribution without the express written permission of the copyright owner This prohibition is binding on individuals and corporations, as well as the US Government. Examples of applicability: books (yes), newspaper photos (yes), US Federal Publications (no), magazine articles (yes), vendor technical information (yes). + + + + + + + + The foundation of the ProducerType complexType. + + + + + + + + The type used to model the ddms:producer element. + + + + + + + + + + A telephone number. Optional. This value must include country code and area code, when applicable. + + + + + + + An address for electronic mail. + + + + + + + + + + + + The type used to model the ddms:Person element. + + + + + + + + A name shared in common to identify members of a family; also called "last name". + + + + + + + A telephone number. Optional. This value must include country code and area code, when applicable. + + + + + + + An address for electronic mail. + + + + + + + Unique identifier applied by an agency to an author, coauthor, POC, tasking requester or addressee. + + + + + + + + + + The type used to model the ddms:Organization element. + + + + + + + + A telephone number. Optional. This value must include country code and area code, when applicable. + + + + + + + An address for electronic mail. + + + + + + + + + + + + + + + + + + + The type used to model the ddms:Service element. + + + + + + + + + + The type used to model the ddms:Unknown element. + + + + + + + + + + Type used for the dates element. + + + + + + + Date of acquisition of the information + + + + + + + + Date of creation of the resource + + + + + + + The date a product is posted to a shared network or system. + + + + + + + The date that a product should be removed from a registry, index, or catalog. + + + + + + + The cutoff date of information in a product. This is commonly referred to as Information Cutoff Date (ICOD). It is the date of last input. + + + + + + + The date on which the resource was approved for publishing or posting. + + + + + + + The date on which the resource was received for publishing or posting. + + + + + + + + The type used to support the range of date representations. + Recommended practice is that date be specified in one of the following formats: + YYYY + YYYY-MM + YYYY-MM-DD + YYYY-MM-DDThh:mmTZD + YYYY-MM-DDThh:mm.ssTZD + YYYY-MM-DDThh:mm:ss.sTZD + Where:YYYY 0000 through current year + MM 01 through 12 (month) + DD 01 through 31 (day) + hh 00 through 24 (hour) + mm 00 through 59 (minute) + ss 00 through 60 (second) + .s .0 through 999 (fractional second) + TZD = time zone designator (Z or +hh:mm or -hh:mm) +This profile suggests two ways of handling time zone offsets: 1. Times are expressed in UTC (Coordinated Universal Time), with a special UTC designator ("Z"). 2. Times are expressed in local time, together with a time zone offset in hours and minutes. A time zone offset of "+hh:mm" indicates that the date/time uses a local time zone which is "hh" hours and "mm" minutes ahead of UTC. A time zone offset of "-hh:mm" indicates that the date/time uses a local time zone which is "hh" hours and "mm" minutes behind UTC. + + + + + + + + + + + + + Type used to model the ddms:dates element. + + + + + + + + Type used to modify the type modeling date to allow "Not Applicable" and "Unknown". + + + + + + + + + + + Type used to model dates that are approximate, and may not be processable by search engines. + Use of the searchableDate is intended to inform search engines when this record should be returned; without it, query matching is system-dependent. + This date can be obfuscated for security or other reasons. + Example: The information was received on 2010-06-14 but to reduce the risk of compromising the source it is shown in a document as + searchableDate start="2010-05-01T00:00:00Z" end="2010-07-01T00:00:00Z" + + + + + + + A string describing a date, such as "Ramadan 2010". This string is descriptive, but not necessarily processable by search engines. + + + + + + + An ISO 8601 date with an approximation attribute to add values such as + "early". ISO 8601 allows for dates such as 2010-06; search engines have different + interpretations about when to return records marked as such. + + + + + + + + + + + + + + A range of dates covering the time period of the approximable date. A search engine should be able to return DDMS records for queries in which the searched time period intersects this date range. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Type used to model the ddms:source element. + + + + + + + + + + + + + The value that specifies the originating agency or discipline of the language vocabulary. Specifies the domain vocabulary of which the Language Value is a member. ISO 639-1 and ISO 639-2, Codes for the representation of names of languages, reference 2 and 3 digit language codes. + + + + + + + The primary language of the intellectual content of the resource. {Source: DCMI: language, v. 004IC MSP v. 1.0a: Language} The most specific in-scope language present (if any) should be specified in this category. + + + + + + + + Type used to model the description element. + + + + + + + + + + + + Types used to model the type element. + + + + + + + + + + + + + + + Type used to model the ddms:format element. + + + + + + + + + + + + + Type used to model the attributes of the ddms:extent element. + + + + + + A vocabulary that specifies the type of format extent that will be supplied. The qualifier attribute indicates the type of extent value listed. In the case of data bytes, it may indicate "byte size". In the case of a document length, it may indicate "page count". In the case of streaming content, it may indicate "bits per second" or "frames per second". + + + + + + + A related data size, compression rate, or pixel size (etc.) of the resource. + + + + + + + + Type used to model the medium attribute of the ddms:medium element. + + + + + + + + Type used to model the mimeType element. + + + + + + + + The type used to model the subjectCoverage element. + + + + + + + + + + + + + + Type used to model the ddms:keyword element. + Allowed extension for allowing automated populators to give extra values for confidence and relativity. + + + + + + + + + + Type used to model the attributes of the ddms:category element. The UCore taxonomy is a specific use of category that is permitted. + Allowed attriubute extension for allowing automated populators to give extra values for confidence and relativity. + + + + + + + + + + + + Type used to model the TimePeriod sub-element of the ddms:temporalCoverage element. + + + + + + + + + + + + + + + + + + + + The type entity used by the ddms:relationship element. Each ddms:relatedResource element designates the relationship and the directionality of the relationship between the resource described by the parent ddms:Resource and any ddms:RelatedResource elements. + + + + + + + + + + + + + + Represents a relationship of some relationship type between the resource described by the parent ddms:Resource element and another resource or resources. + + + + + + + + + + Used to indicate that the relationship direction is from the related resource to the resource described in the instance DDMS record. + + + + + + + Used to indicate that the relationship direction is from the resource described in the instance DDMS record to the related resource identified. + + + + + + + Used to indicate that the relationship is bidirectional between the resource described in the instance DDMS record and the related resource identified. + + + + + + + + + + + + + + + + + + Information about who requested resource be produced. + + + + + + + + + + The memorandum titled Intelligence Community Standards + and Procedures for Revised or Recalled Intelligence Products signed by DNI + Negroponte on 5 August 2005 specified how to indicate, in a textual form, the + revision or recall of a previously released document. This element specifies methods + for conveying revision and recall indicators and additional data in XML. + + + + + + + + + + + + + + + + + + + + + + + A sequential integer for the revision. + Higher numbers take precedence over lower numbers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The administrative entity, unit, office, responsible for the custody and ongoing management of the records during their active business use. + + + + + + A unique identifier for the Record Keeper + + + + + + + + + The name or description of the software application(s) used to create the object or product to which this metadata applies. The application should be described in sufficient detail to ensure readability, retrieval, and preservation. As a minimum, specify the application name and version, and the operating system. + + + + + + + + + + + + + + An indication that a publication is categorized a vital record by the originating agency. A vital record is a resource that is needed: (a) to restore an enterprise to full operation following a catastrophe, or (b) as a record that is essential to protect the legal and financial rights of the government or the individual directly affected by its activities. + + + + + + + + + + + + + + + + + + + + + + + + + + + A tracking identification number associated with the tasking that resulted in development of this resource. The format of element "TaskID" content is agency-specific, and is not prescribed by this documentation. + + + + + + + + + + + + + + + + + + + Specifies a user-defined order of an element within the given document. All elements in the document which specify the order attribute should be interpreted as entries in a single, ordered list even though they may appear on different elements. Values must be sequential, starting at 1, and may not contain duplicates. + + + + + + + + + + + A method of categorizing the subject of a document in a fashion understandable by DDNI-A + + + + + A method of categorizing the coverage of a document in a fashion understandable by DDNI-A + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-Includes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-Includes.xsd new file mode 100644 index 0000000000..83cc2ee744 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-Includes.xsd @@ -0,0 +1,62 @@ + + + + +This schema file is intended to simplify importation of IC-ISM Schema files. The supported version of ISM is version 7 public. + + + Change Log: + 6/05/2011 (E. Hughes) -- Created DDMS 3.1. Implemented CR 2011-1 to create DDMS-Includes.xsd wherein all IC-ISM references are consolidated. + 8/05/2011 (E. Hughes) -- Implemented CR 2011-15 to update DDMS 4 to ISM 7. Updated documentation. + 11/11/2011 (E. Hughes) -- Implemented CR 2011-17 to use IC-ISM POCType. + 6/12/2012 (E. Hughes) -- Removed commented sections for support of ISM versions prior to 7 due to fundamental incompatibility issues. + + + + + + + + + + + Indicates that the element specifies a point-of-contact (POC) and the methods with which to contact them. + + + + + + + + + + + + + + + + + + + + + + + + + type created to ensure an element / attribute is comprised of more than whitespace, tab, newline, etc. + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-v5.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-v5.xsd new file mode 100644 index 0000000000..4e7fb5e31d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/DDMS/DDMS-v5.xsd @@ -0,0 +1,120 @@ + + + + + +This XML Schema is an implementation of the Department of Defense Discovery Metadata Specification (DDMS Spec) version 5. Unless otherwise stated, all references to the DDMS Spec refer to version 5 of that document. + +Version 1.0 was created by the DDMS Focus Group: + Robert Allegar - Booz Allen Hamilton + Arsic Antoinette - Mitre Corp. + Wil Bailey - DLA + Daniel Barclay - FGM, Inc. + Brian Brotsos - SAIC + Clive Carpi - SAIC + Mike Daconta - McDonald Bradley + Stan Davis - DISA + Michael Fontaine - OSD/NII + Glenda Hayes - Mitre Corp. + Kirk Maskalenko - FGM, Inc. + Mary Ann Melosh - SAIC + Eric Peterson - McDonald Bradley + Jim Pipher - DISA + Joseph J. Pantella, FGM, Inc. + Glenn Pruitt - FGM, Inc. + Tony Reggio - Pennsylvania State University + Kyle Rice - McDonald Bradley + Clay Robinson - OSD/NII + Rebecca Smith - DIA + Brian Sullivan - NGA (NIMA) + Eric Yuan - Booz Allen Hamilton +JJP + + + Change Log: + + 07/13/2004 (J. Pantella) -- Added a global classification attribute per CR #1 of July 1, 2004 DDMS modification. + 07/13/2004 (J. Pantella) -- Modified title and subtitle elements to use the classification attribute per CR #1 of July 1, 2004 DDMS modification. + 07/13/2004 (J. Pantella) -- Modified SubjectType category and keywords per CR #2 of July 1, 2004 DDMS modification. NOTE: At least one of either Keyword or Category must appear, after one instance of either appears, additional categories must appear before additional keywords. + 07/13/2004 (J. Pantella) -- Modified CompoundSourceIdentifierType to support the schema qualifier and schema HREF attributes on the source element per CR#4 of July 1, 2004 DDMS modification. + 07/14/2004 (J. Pantella) -- Fixed bug that prevented street address information from being included in the Place and Facility elements. + 07/26/2004 (J. Pantella) -- Modified the qualifier attribute of the CompoundCategoryIdentifierType used in the category element to be of type xs:anyURI. + 08/04/2004 (J. Pantella) -- Modified Place and Facility to support the state element. + 08/04/2004 (J. Pantella) -- Removed AddressType because it was not used. + 08/06/2004 (J. Pantella) -- Required xs:any element to have a minoccurs of 0. + 08/11/2004 (J. Pantella) -- Modified contributor, producer, creator and pointOfContact to be of respective types. Eliminated the substitution group solution previously employed. + 08/16/2004 (J. Pantella) -- Modified CompoundResourceIdentifierType and QualifiedExtentValueType qualifier attributes to be of xs:anyURI per Tiger Team. + 08/17/2004 (J. Pantella) -- Modified the target namespace to reflect the needs identified in the Registry meetings (G. Hayes in attendance). + 08/23/2004 (J. Pantella) -- Added comments to annotate changes made by the Tiger Team. + 11/23/2004 (J. Pantella) -- Modified title, subtitle, description, publisher, contributor, creator and security elements to reuse the ICISM:SecurityAttributesGroup. + 11/23/2004 (J. Pantella) -- Removed prior implementation of security and classification attributes. + 11/23/2004 (J. Pantella) -- Modified the temporalCoverage sub-elements to provide mechanism to specify Unknown or Not Applicable value defaulting to Unknown persuant to the approval of CR#11. + 12/12/2004 (J. Pantella) -- Modified subjectType to eliminate redundancy causing tool issues. + 12/16/2004 (J. Pantella) -- Commented out all residual elements and types related to the previous, substitution group based, modeling of the creator, publisher, and contributor. + 1/2/2005 (J. Pantella) -- Modified namespace and comments to remove anticipated name change. + 1/19/2005 (J. Pantella) -- Modified title and subtitle to support mulitple appearances. + 6/22/2005 (J.Pantella) -- Modified geospatialCoverage element to support a richer geospatial description compliant with ISO 19115, pursuant to the approval of CR #13, the geospatialCoverage elment within a Resource is not strictly mandatory per the specification. + 7/20/2005 (J.Pantella) -- Changed geospatialCoverage/Place to geospatialCoverage/GeospatialExtent per comments from NGA et al. at IC MWG meeting of July 8, 2005. + 6/05/2007 (J. Pantella) -- Modified the SubjectType to comply with the approved resolution of CR 2006-1. See also http://metadata.dod.mil/mdr/irs/DDMS/cm/CR/2006/DDMS-CR-2006-1. + 6/05/2007 (J. Pantella) -- Modified the DDMS XML Schema file structure to reflect the approved changes per CR 2007-1. See also http://metadata.dod.mil/mdr/irs/DDMS/cm/CR/2007/DDMS-CR-2007-1. + 1/3/2007 (J. Pantella) -- Modified version attribute to reflect that this is version 1.4.2. + 1/3/2007 (J. Pantella) -- Corrected spelling error in the top level documentation element of the XML Schema. + 7/15/2008 (J. Pantella) -- Modified creator, publisher, contributor, and pointOfContact to fall under a mandatory choice. The desired effect is that one or more creator, publisher, contributor, or pointOfContact elements may appear in a DDMS instance, but there must be at least one. Change is pursuant to CR 2008-3. See also http://metadata.dod.mil/mdr/irs/DDMS/cm/CR/2008/DDMS-CR-2008-3. + 7/15/2008 (J. Pantella) -- Modified ddms:Resource to support a relatedResources element allowing a DDMS instance document to assert relationships between the described resource and other related resources. + 1/4/2010 (P. Lunceford) -- Created DDMS 3.0. Implemented CR 2009-08 (make maxOccurs on any to be unbounded), and CR 2009-12 (adding Security markings to the header and requiring a ddmsRecordDate). + 6/05/2011 (E. Hughes) -- Created DDMS 3.1. Implemented CR 2011-1 to create DDMS-Includes.xsd wherein all IC-ISM references are consolidated. + 6/05/2011 (E. Hughes) -- Added approvedOn attribute pursuant to CR 2011-5. + 8/22/2011 (P. Attas) -- Added implementations of DDMS_CR_2011-4, and 6-15. The DDMS namespace was changed from a URL to a URN. In this file this added a mandatory metacardInfo element and an optional resourceManagment element. Also corrected an error in the resourceType definition that couldhave permitted an instance with no creater, publisher, contributor, or point of contact to validate, when at least one of those elements is required to be present and populated with data. + 1/11/2013 (E. Carswell) -- Added implementations of DDMS CRs 2012-07, 2012-10, and 2012-11. Added simpleTokenType to enforce content in strings. Replaced DDMS GML Profile with TSPI GML Profile. Using GENC as the standard for country codes. Replaced DDMS Virtual Coverage with VIRT.xsd from the IC. Removed attributes under resource and Metacard Info that belong under a TDO/TDC. Also removed the extension capability under Resource to comply with the format of TDO/TDC. + + DDMS XML Schema file describing the root element for a record compliant with the DDMS Spec of the same version as that specified in the above 'version' attribute on the 'xs:schema' element. + This XML Schema defines only the root Resource element of the DDMS, for the definitions of other global DDMS elements see the DDMS Globals and DDMS geospatialCoverage XML Schemas. + + + + + + The Resource element is the root element for a DDMS record. + + + + + + + + The type definition for the ddms:Resource element. + Defines the structure of a DDMS record. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/IC-COMMON/IC-Common.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/IC-COMMON/IC-Common.xsd new file mode 100644 index 0000000000..d061f6a756 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/IC-COMMON/IC-Common.xsd @@ -0,0 +1,198 @@ + + + + + Intelligence Community Technical Specification + Common XML Structures and Types + + + Introduction + This XML Schema file is one component of the XML Data Encoding + Specification (DES). It is envisioned that this schema or its components, as well as other + parts of the DES may be overridden for localized implementations. + Therefore, permission to use, copy, modify and distribute this XML + Schema and the other parts of the DES for any purpose is hereby + granted in perpetuity. + Please reference the preceding two paragraphs in all copies or + variations. The developers make no representation about the + suitability of the schema or DES for any purpose. It is provided + "as is" without expressed or implied warranty. + If you modify this XML Schema in any way label your schema + as a variant of IC-Common. + Please direct all questions, bug reports,or suggestions for changes + to the points of contact identified in the document referenced above. + + + + + + + + + + + + + + + + + + + + + + A universally unique identifier UUID. See http://tools.ietf.org/html/rfc4122 for more information. + + + + + + + + + + + + + + Description + Module for defining common types and groups that will be used + across multiple schema's in the IC. + This schema defines types and is intended to be called by other + schemas in the Intelligence Community. + This module contains declarations of Types and attribute + groups to be used in multiple schemas. + This module depends on ISM.xml and the IC-XLINK modules. + This module is not designed to be used by itself, it must be called + by another schema. + + + Implementation Notes + The IC Common schema is not a standalone construct; it is a shared resource that is + imported into parent IC XML schemas. + + + Creators + Office of the Director of National Intelligence + Intelligence Community Chief Information Officer + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + + 2013-01-06 + D'Ambra, ODNI/OCIO/ICEA + + + Removed the + following link attribute groups, as they are now in VIRT: + SimpleOrResourceLinkAttributesGroup, SimpleOrExtendedLinkAttributesGroup, + SimpleLinkAttributesGroup, RequiredSimpleLinkAttributesGroup + OptionalResourceLinkAttributesGroup, NetworkAttributesGroup + + + + + + 2011-12-27 + Stuart, ODNI/OCIO/ICEA + + + Added type for UUID + + + + + + 2011-07-25 + Colbert, ODNI/OCIO/ICEA + + + Combined attributes @network and @otherNetwork into a separate attribute + group, and made their form unqualified so that they can be used in other + specifications + Added reference to NetworkAttributesGroup to each ODNI XLink attribute group + in IC-Common + + + + + + 2011-05-05 + Colbert, ODNI/OCIO/ICEA + + + Added OptionalResourceLinkAttributesGroup for cases when @href is not + required + Made @type attributes optional instead of required + + + + + + 2011-05-04 + Gilsenan, ODNI/OCIO/ICEA + + + Replaced references in SimpleLinkAttributesGroup to the simpleAttrs attribute + group defined in XLink + + + + + + 2011-05-02 + + + Colbert, ODNI/OCIO/ICEA + Gilsenan, ODNI/OCIO/ICEA + + + + + Removed inline definitions of the @type attribute and replaced with + references to the XLink @type attribute + Added fixed values, where applicable, for @type to minimize the number of + Schematron rules required + + + + + + 2011-04-26 + Colbert, ODNI/OCIO/ICEA + + + Moved ODNI-specific attribute groups RequiredSimpleLinkAttributesGroup, + SimpleOrResourceAttributesGroup, and SimpleOrExtendedLinkAttributesGroup + from IC-XLink to IC-Common + Renamed SimpleOrResourceAttributesGroup to + SimpleOrResourceLinkAttributesGroup + Moved String types from IC-Common to IC-ISM and updated namespaces accordingly + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd new file mode 100644 index 0000000000..021d72aa64 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd @@ -0,0 +1,208 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISM25X Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISM25X.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized authority block declass date/event exemptions. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISM25X.xml + + + + + + + + When using a source document that contains portions of Restricted Data (RD) + or Formerly Restricted Data (FRD) where the RD/FRD source document(s) + do not have declassification instructions, the derivatively classified + document shall not contain a declassification date or event on the + Declassify On line. The following shall be annotated on the Declassify On + line: "Not Applicable or (N/A) to RD/FRD portions" and + "See source list for NSI portions" separated by a period. + The source list must include the declassification instruction + for each of the source documents classified under E.O. 13526 and + shall not appear in the classification authority block + + + + + + + Since NATO information is not to be declassified or downgraded without the prior consent + of NATO, the “Declassify on” line of documents that commingle information classified by + NATO and U.S. classified NSI, will read “N/A to NATO portions. + See source list for NSI portions.” + The NSI source list will appear beneath the classification authority block + in a manner that clearly identifies it as separate and distinct. + + + + + + + Handles special case of BOTH NATO and AEA as a single exemption. + + + + + + + Reveal the identity of a confidential + human source, a human intelligence source, + a relationship with an intelligence or security + service of a foreign government or + international organization, or a non-human + intelligence source; or impair the + effectiveness of an intelligence method + currently in use, available for use, or under + development. + + + + + + + "25X1, EO 12951" (prescribed by the DNI for use on information described in E.O. 12951, + Release of Imagery Acquired by Space-Based National Intelligence Reconnaissance Systems) + + + + + + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + + + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + + + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + + + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + + + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + + + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + + + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + + + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + + + + When the information clearly and + demonstrably could be expected to + reveal the identity of a confidential + human source or a human intelligence + source. + + + + + + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + + + + When the information clearly and + demonstrably could reveal key design + concepts of weapons of mass + destruction. + + + + + + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd new file mode 100644 index 0000000000..28a8bfab26 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd @@ -0,0 +1,85 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMatomicEnergyMarkings Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMatomicEnergyMarkings.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Atomic Energy information markings from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMatomicEnergyMarkings.xml + + + + + + + + + RD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + + + FRD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + + + + + + + RESTRICTED DATA + + + + + RD-CRITICAL NUCLEAR WEAPON DESIGN INFORMATION + + + + + FORMERLY RESTRICTED DATA + + + + + DoD CONTROLLED NUCLEAR INFORMATION + + + + + DoE CONTROLLED NUCLEAR INFORMATION + + + + + TRANSCLASSIFIED FOREIGN NUCLEAR INFORMATION + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMAttributes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMAttributes.xsd new file mode 100644 index 0000000000..126566b18e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMAttributes.xsd @@ -0,0 +1,209 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMAttributes Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMAttributes.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized ISM attribute names + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMAttributes.xml + + + + + + + compliesWith attribute + + + + + classification attribute + + + + + ownerProducer attribute + + + + + SCIcontrols attribute + + + + + SARIdentifier attribute + + + + + atomicEnergyMarkings attribute + + + + + disseminationControls attribute + + + + + FGIsourceOpen attribute + + + + + FGIsourceProtected attribute + + + + + releasableTo attribute + + + + + displayOnlyTo attribute + + + + + nonICmarkings attribute + + + + + classifiedBy attribute + + + + + derivativelyClassifiedBy attribute + + + + + classificationReason attribute + + + + + nonUSControls attribute + + + + + derivedFrom attribute + + + + + declassDate attribute + + + + + declassEvent attribute + + + + + declassException attribute + + + + + resourceElement attribute + + + + + excludeFromRollup attribute + + + + + createDate attribute + + + + + compilationReason attribute + + + + + noticeType attribute + + + + + externalNotice attribute + + + + + DESVersion attribute + + + + + ISMCATCESVersion attribute + + + + + notice date attribute + + + + + notice Reason attribute + + + + + exemptFrom attribute + + + + + unregisteredNoticeType attribute + + + + + Specifies a point-of contact for a security-related + requirement. + + + + + Indicator that multiple ownerProducers should be interpreted + as JOINT. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd new file mode 100644 index 0000000000..d0cc8aadfd --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd @@ -0,0 +1,54 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMClassificationAll Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMClassificationAll.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid classification marks + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMClassificationAll.xml + + + + + + + RESTRICTED + + + + + CONFIDENTIAL + + + + + SECRET + + + + + TOP SECRET + + + + + UNCLASSIFIED + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.xsd new file mode 100644 index 0000000000..7cbd1cdc6e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.xsd @@ -0,0 +1,49 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMClassificationUS Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMClassificationUS.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid US classification marks + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMClassificationUS.xml + + + + + + + TOP SECRET + + + + + SECRET + + + + + CONFIDENTIAL + + + + + UNCLASSIFIED + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd new file mode 100644 index 0000000000..750d1c5c96 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd @@ -0,0 +1,68 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCompliesWith Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCompliesWith.xml CVE it is based on, instead of here. + + + + + + + + (U) ISM rule sets documents may comply + with. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCompliesWith.xml + + + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Federal Government. This is the minimum set of rules + for US documents to adhere to, and all US documents should claim compliance with + USGov. For example, a US Intelligence Community document should claim + ism:compliesWith="USGov USIC". + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Intelligence Community. Documents that claim compliance + with USIC MUST also claim compliance with USGov. + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Department of Defense. Documents that claim compliance + with USDOD MUST also claim compliance with USGov. + + + + + Document claims compliance with an authority other than the + USGov, USIC, or USDOD. This token is not allowed if the ism:ownerProducer contains + USA. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd new file mode 100644 index 0000000000..590028da20 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd @@ -0,0 +1,102 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMDissem Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMDissem.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Dissemination controls from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMDissem.xml + + + + + + + RISK SENSITIVE + + + + + FOR OFFICIAL USE ONLY + + + + + ORIGINATOR CONTROLLED + + + + + ORIGINATOR CONTROLLED US GOVERNMENT + + + + + CONTROLLED IMAGERY + + + + + NOT RELEASABLE TO FOREIGN NATIONALS + + + + + CAUTION-PROPRIETARY INFORMATION INVOLVED + + + + + AUTHORIZED FOR RELEASE TO + + + + + RELEASABLE BY INFORMATION DISCLOSURE OFFICIAL + + + + + EYES ONLY + + + + + DEA SENSITIVE + + + + + FOREIGN INTELLIGENCE SURVEILLANCE ACT + + + + + AUTHORIZED FOR DISPLAY BUT NOT RELEASE TO + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd new file mode 100644 index 0000000000..c8fb5586a9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd @@ -0,0 +1,53 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMExemptFrom Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMExemptFrom.xml CVE it is based on, instead of here. + + + + + + + + (U) Current rule set names that documents may comply + with + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMExemptFrom.xml + + + + + + + Document claims exemption from ICD-710 rules mandating the + use of Foreign Disclosure and Release markings that have been encoded in ISM. + Currently, the requirement for FD&R is only mandatory for Disseminated Analytic + Product; however, it is strongly encouraged otherwise. + + + + + Document claims exemption from the rules in DoD5230.24 + requiring DoD Distribution Statements that have been encoded into + ISM. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd new file mode 100644 index 0000000000..ef11fc15e2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd @@ -0,0 +1,95 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNonIC Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNonIC.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Non-IC markings from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNonIC.xml + + + + + + + + + The name of the ALTERNATE COMPENSATORY CONTROL MEASURE, substituting "_" for a space. + + + + + NAVAL NUCLEAR PROPULSION INFORMATION + + + + + + + + + LIMITED DISTRIBUTION + + + + + EXCLUSIVE DISTRIBUTION + + + + + NO DISTRIBUTION + + + + + SENSITIVE BUT UNCLASSIFIED + + + + + SENSITIVE BUT UNCLASSIFIED NOFORN + + + + + LAW ENFORCEMENT SENSITIVE + + + + + LAW ENFORCEMENT SENSITIVE NOFORN + + + + + SENSITIVE SECURITY INFORMATION + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd new file mode 100644 index 0000000000..fcdbb00c5a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd @@ -0,0 +1,52 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNonUSControls Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNonUSControls.xml CVE it is based on, instead of here. + + + + + + + + (U) NonUS Control markings supported by ISM + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNonUSControls.xml + + + + + + + NATO Atomal mark + + + + + NATO Bohemia mark + + + + + NATO Balk mark + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd new file mode 100644 index 0000000000..52d6f74bfb --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd @@ -0,0 +1,137 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNotice Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNotice.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized Notice values + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNotice.xml + + + + + + + FISA Warning statement + + + + + IMCON Warning statement + + + + + Controled Nuclear Weapon Design Information Warning statement + + + + + RD Warning statement + + + + + FRD Warning statement + + + + + LIMDIS caveat + + + + + LES Notice + + + + + LES-NF Notice + + + + + DSEN Notice + + + + + DoD Distribution statement A from DoD Directive 5230.24 + + + + + DoD Distribution statement B from DoD Directive 5230.24 + + + + + DoD Distribution statement C from DoD Directive 5230.24 + + + + + DoD Distribution statement D from DoD Directive 5230.24 + + + + + DoD Distribution statement E from DoD Directive 5230.24 + + + + + DoD Distribution statement F from DoD Directive 5230.24 + + + + + DoD Distribution statement X from DoD Directive 5230.24 + + + + + US Person info Notice + + + + + Indicates that an instance document must abide by rules pertaining to ORIGINATOR CONTROLLED data issued prior to Executive Order 13526. + + + + + Indicates that the contents of this notice specify the contact information for a required point-of-contact. + + + + + COMSEC Notice + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd new file mode 100644 index 0000000000..c8886ca663 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd @@ -0,0 +1,72 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMPocType Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMPocType.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized types for ISM-related points-of-contact. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMPocType.xml + + + + + + + Point-of-contact for an ICD-710 notice. + + + + + DoD Distribution statement B from DoD Directive 5230.24 + + + + + DoD Distribution statement C from DoD Directive 5230.24 + + + + + DoD Distribution statement D from DoD Directive 5230.24 + + + + + DoD Distribution statement E from DoD Directive 5230.24 + + + + + DoD Distribution statement F from DoD Directive 5230.24 + + + + + DoD Distribution statement X from DoD Directive 5230.24 + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd new file mode 100644 index 0000000000..f7e730b8e6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd @@ -0,0 +1,57 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMSAR Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMSAR.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid SAR controls from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMSAR.xml + + + + + + + SPECIAL ACCESS REQUIRED-XXX,Within the nickname or name of a SAR all spaces must be replaced with a "_". The XSL will restore the spaces for rendering. + + + + + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + + + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + + + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd new file mode 100644 index 0000000000..acf0caa818 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd @@ -0,0 +1,150 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMSCIControls Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMSCIControls.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid SCI controls from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMSCIControls.xml + + + + + + + + + KDK-BLFH-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub BLUEFISH compartment + + + + + KDK-IDIT-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub IDITAROD compartment + + + + + KDK-KAND-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub KANDIK compartment + + + + + RSV-XXX, XXX represents 3 alpha numeric characters to indicate sub Reserve compartments + + + + + G-AAAA, AAAA represents 4 alpha characters to indicate sub Gamma compartments + + + + + SPECIAL INTELLIGENCE compartment + + + + + SPECIAL INTELLIGENCE sub-compartment + + + + + + + + + ENDSEAL + + + + + ECRU + + + + + NONBOOK + + + + + HCS + + + + + HCS-O + + + + + HCS-P + + + + + KLONDIKE + + + + + KDK BLUEFISH + + + + + KDK IDITAROD + + + + + KDK KANDIK + + + + + RESERVE + + + + + SPECIAL INTELLIGENCE + + + + + SI-GAMMA + + + + + TALENT KEYHOLE + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/IC-ISM.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/IC-ISM.xsd new file mode 100644 index 0000000000..11ec24d937 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISM/IC-ISM.xsd @@ -0,0 +1,1548 @@ + + + + + + Intelligence Community + Technical Specification XML Data Encoding Specification for Information Security + Marking Metadata (ISM.XML) + + + Notices + distEditionBlockReplace + + + + Description + W3C XML Schema for the XML Data + Encoding Specification Intelligence Community Metadata Standard for Information + Security Marking (ISM.XML). + + + Introduction + This XML Schema file is one + component of the XML Data Encoding Specification (DES). Please see the document + titled + XML Data Encoding Specification for + Information Security Marking Metadata + for a complete description of the encoding as well as list of all + components. + It is envisioned that this + schema or its components, as well as other parts of the DES may be overridden for + localized implementations. Therefore, permission to use, copy, modify and distribute + this XML Schema and the other parts of the DES for any purpose is hereby granted in + perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or DES for any purpose. It is provided "as is" + without expressed or implied warranty. + If you modify this XML Schema + in any way label your schema as a variant of ISM.XML. + Please direct all questions, + bug reports,or suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + + The IC ISM schema is not a + standalone construct; it should be imported into a parent XML schema. + Refer to the + XML Data Encoding Specification for + Information Security Marking Metadata + Data Encoding Specification (ISM.XML DES) for an explanation of the + relationships of the IC ISM attributes and the associated controlled + vocabularies. The CAPCO Register and CAPCO Implementation Manual provide + additional business rules (that may be classified) not provided in this schema + or the associated documentation. + The IC ISM attributes are + intended to support all CAPCO security markings. However, the attribute values + are NOT intended to be verbatim pieces of portionmarks and banners. Instead, the + values should be interpreted by XSLT stylesheets or other formatting speci- + fications to produce the required portionmarks and banners. + The controlled vocabularies + containing the required values for popu- lating the attributes are described in + the ISM.XML DES. + Attribute group + "SecurityAttributesGroup" should be referenced in the attribute definition list + of any element that REQUIRES security metadata. + Attribute group + "SecurityAttributesOptionGroup" may be referenced in the attribute definition + list of any element for which security metadata may be appropriate but is not + required (such as, an individual cell of a table). + Elements declared in this + specification are conveniences to developers of Schema. Their use is not + required but was determined to be helpful for many Schemas that would otherwise + have to declare these simple elements. Schema developers are free to implement + their own versions of these elements. + This file provides an + XML-based schema for specification of metadata for classification and controls + markings. The goal of the IC ISM XML Schema is to provide a common set of XML + attributes for implementing security-based metadata throughout the IC. The IC + ISM XML Schema provides markup for the tokens that are used to format the CAPCO + markings. + The IC ISM XML Schema may + be incorporated into organizational XML-based schemas by (a) declaring the IC + ISM namespace and (b) inserting an "import" statement: + <xsd:schema xmlns="...my namespace name..." targetNamespace="...my + namespace name..." xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:ism="urn:us:gov:ic:ism"> ... <xsd:import + namespace="urn:us:gov:ic:ism schemaLocation="IC-ISM.xsd" /> + + + + + Creators + Office of the Director of + National Intelligence Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying DoE + markings. It is manifested in portion marks and security banners. The + permissible values for this simple type are defined in the Controlled Value + Enumeration: CVEnumISMAtomicEnergyMarkings.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. A single indicator of the highest + level of classification applicable to an information resource or portion within + the domain of classified national security information. The Classification + element is always used in conjunction with the Owner Producer element. Taken + together, the two elements specify the classification category and the type of + classification (US, non-US, or Joint). It is manifested in portion marks and + security banners. PERMISSIBLE VALUES The permissible values for this simple type + are defined in the Controlled Value Enumeration: CVEnumISMClassificationAll.xml + + + + + + + + + This attribute is used + primarily at the resource level. One or more reason indicators or explanatory + text describing the basis for an original classification decision. It is + manifested only in the 'Reason' line of a resource's classification authority + block. + + + + + + + + + + + + + This attribute is used + primarily at the resource level. The identity, by name or personal identifier, + and position title of the original classification authority for a resource. It + is manifested only in the 'Classified By' line of a resource's classification + authority block. + + + + + + + + + + + + + A description of the + reasons that the classification of this element is more restrictive than a + simple roll-up of the sub elements would result in. This acts as an indicator to + rule engines that there is not accidental over classification going on and to + users that special care beyond what the portion marks reveal must be taken when + using this data. Use of this mark does not replace the need for the compilation + reason being defined in the prose in accordance with ISOO Directive 1. For + example this would document why 3 Unclassified bullet items form a Secret List. + Without this reason being noted the above described document would be considered + to be miss-marked and overclassified. + + + + + + + + + + + + + This attribute is used at + the resource level. An indicator of what optional ISM rule sets the documents + complies with. This allows systems to know that the document claims compliance + with these rule sets and they should be enforced. PERMISSIBLE VALUES The + permissible values for this simple type are defined in the Controlled Value + Enumeration: CVEnumISMCompliesWith.xml + + + + + + + + This attribute is used to designate what date the ISM was produced/updated on. This is the date that will be used by various constraint rules to determine if the ISM markings meet all the business rules. It must be on the element where resourceElement is true. + + + + + + + + + + + This attribute is used + primarily at the resource level. A specific year, month, and day upon which the + information shall be automatically declassified if not properly exempted from + automatic declassification. It is manifested in the 'Declassify On' line of a + resource's classification authority block. + + + + + + + + + + + This attribute is used + primarily at the resource level. A description of an event upon which the + information shall be automatically declassified if not properly exempted from + automatic declassification. It is manifested only in the 'Declassify On' line of + a resource's classification authority block. + + + + + + + + + + + + + This attribute is used + primarily at the resource level. A single indicator describing an exemption to + the nominal 25-year point for automatic declassification. This element is used + in conjunction with the Declassification Date or Declassification Event. It is + manifested in the 'Declassify On' line of a resource's classification authority + block. ISOO has stated it should be a SINGLE value giving the longest + protection. + + + PERMISSIBLE VALUE: The + permissible value for this attribute is defined in the Controlled Value + Enumeration: CVEnumISMN25X.xml + + + + + + + + This attribute is used + primarily at the resource level. The identity, by name or personal identifier, + of the derivative classification authority. It is manifested only in the + 'Classified By' line of a resource's classification authority block. + + + + + + + + + + + + + This attribute is used + primarily at the resource level. A citation of the authoritative source or + reference to multiple sources of the classification markings used in a + classified resource. It is manifested only in the 'Derived From' line of a + document's classification authority block. ISOO's guidance is: Source of + derivative classification. (1) The derivative classifier shall concisely + identify the source document or the classification guide on the ‘‘Derived From’’ + line, including the agency and, where available, the office of origin, and the + date of the source or guide. An example might appear as: Derived From: Memo, + ‘‘Funding Problems,’’ October 20, 2008, Office of Administration, Department of + Good Works or Derived From: CG No. 1, Department of Good Works, dated October + 20, 2008 (i) When a document is classified derivatively on the basis of more + than one source document or classification guide, the ‘‘Derived From’’ line + shall appear as: Derived From: Multiple Sources (ii) The derivative classifier + shall include a listing of the source materials on, or attached to, each + derivatively classified document. + + + + + + + + + + + + + The version number of the + DES. Should there be multiple specified in an instance document the first + one found is the one that will apply to the entire document. + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + country or countries and/or international organization(s) to which classified + information may be displayed but NOT released based on the determination of an + originator in accordance with established foreign disclosure procedures. This + element is used in conjunction with the DisplayOnly Dissemination Controls + value. It is manifested in portion marks and security banners. PERMISSIBLE + VALUES The permissible values for this attribute are defined in the Controlled + Value Enumeration: CVEnumISMRelTo.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + expansion or limitation on the distribution of information. It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMDissem.xml + + + + + + + + This attribute is used to + designate that an element's ISM attributes should not be used in a rollup. + Generally this is because the element is defining the security attributes of a + remote object NOT indicating security constraints for data in this document. + This allows an Unclassified document to assert that some document not included + has a Top Secret classification without the TS attribute value causing rollup to + make the document TS. + + + + + + + + + + + This attribute is used to declare + specific exemptions within a rule set - for example exemption from ICD 710 + FD&R requirements. This attribute is used on the resource node of a document + in conjunction with compliesWith. PERMISSIBLE VALUES The permissible values for + this simple type are defined in the Controlled Value Enumeration: + CVEnumISMExemptFrom.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying + information which qualifies as foreign government information for which the + source(s) of the information is not concealed. The attribute can indicate that + the source of information of foreign origin is unknown. It is manifested in + portion marks and security banners. PERMISSIBLE VALUES 1) The value "UNKNOWN" is + permitted under the circumstances described above. 2) The full set of values are + defined in the Controlled Value Enumeration: CVEnumISMFGIOpen.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. This attribute has unique specific + rules concerning its usage. A single indicator that information qualifies as + foreign government information for which the source(s) of the information must + be concealed. Within protected internal organizational spaces this element may + be used to maintain a record of the one or more indicators identifying + information which qualifies as foreign government information for which the + source(s) of the information must be concealed. Measures must be taken prior to + dissemination of the information to conceal the source(s) of the foreign + government information. An indication that information qualifies as foreign + government information according to CAPCO guidelines for which the source(s) of + the information must be concealed when the information is disseminated in shared + spaces This data element has a dual purpose. Within shared spaces, the data + element serves only to indicate the presence of information which is categorized + as foreign government information according to CAPCO guidelines for which the + source(s) of the information is concealed, in which case, this data element's + value will always be "FGI". The data element may also be employed in this manner + within protected internal organizational spaces. However, within protected + internal organizational spaces this data element may alternatively be used to + maintain a formal record of the foreign country or countries and/or registered + international organization(s) that are the non-disclosable owner(s) and/or + producer(s) of information which is categorized as foreign government + information according to CAPCO guidelines for which the source(s) of the + information must be concealed when the resource is disseminated to shared + spaces. If the data element is employed in this manner, then additional measures + must be taken prior to dissemination of the resource to shared spaces so that + any indications of the non-disclosable owner(s) and/or producer(s) of + information within the resource are eliminated. In all cases, the corresponding + portion marking or banner marking should be compliant with CAPCO guidelines for + FGI when the source must be concealed. In other words, even if the data element + is being employed within protected internal organizational spaces to maintain a + formal record of the non-disclosable owner(s) and/or producer(s) within an XML + resource, if the resource is rendered for display within the protected internal + organizational spaces in any format by a stylesheet or as a result of any other + transformation process, then the non-disclosable owner(s) and/or producer(s) + should not be included in the corresponding portion marking or banner marking. + PERMISSIBLE VALUES 1) The value "FGI" is permitted under the circumstances + described above. 2) The full set of values are defined in the Controlled Value + Enumeration: CVEnumISMFGIProtected.xml + + + + + + + + The version number of the + ISM CAT CVE Encoding Sepcification(CES). Should there be multiple specified in an instance document the first + one found is the one that will apply to the entire document. + + + + + + + + The group of Information + Security Marking attributes for use on a notice element without externalNotice + + + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element adding optional externalNotice + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element adding required externalNotice=true + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance + document. + + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance + document. + + + + + + + + + + + + An attribute group to be + used on the root node of a schema implementing ISM. ISM being entirely + attributes based groups such as this are the only way to specify required use. + + + + + + + + + + + An attribute group to be + used on the root node of a schema implementing ISM. ISM being entirely + attributes based groups such as this are the only way to specify required use. + This group has all the attributes as optional.This group could be used in a + schema where many element may be the root node. When the element is acting as + the root element it should have attributes used similar to + ISMRootNodeAttributeGroup. + + + + + + + + + + A long string, less than + 32000 characters. + + + + + + + + + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators of the + expansion or limitation on the distribution of an information resource or + portion within the domain of information originating from non-intelligence + components. It is manifested in portion marks and security banners. PERMISSIBLE + VALUES The permissible values for this attribute are defined in the Controlled + Value Enumeration: CVEnumISMNonIC.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators of the + expansion or limitation on the distribution of an information resource or + portion within the domain of information originating from non-US components. It + is manifested in portion marks and security banners. PERMISSIBLE VALUES The + permissible values for this attribute are defined in the Controlled Value + Enumeration: CVEnumISMNonUSControls.xml + + + + + + + + Base type for Notices. Does not include any attributes. + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText + + + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText for use when the notice refers to something external. + + + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText + + + + + + + + A single Notice that may + consist of 1 or more NoticeText for use when the notice refers to something external. + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + attributes 'classification' and 'ownerProducer' is required. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + Security on the notice is optional. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + attributes 'classification' and 'ownerProducer' is required and the notice is for something external to the object. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + Security on the notice is optional and the notice is for something external to the object. + + + + + + + + + + + A Date associated with a + notice such as the DoD Distribution notice date. + + + + + + + + + + + + + A list of Notices + + + + + + + + + + + + + + A list of Notices + + + + + + + + + + + + + A Reason (less than 2048 + chars) associated with a notice such as the DoD Distribution reason. + + + + + + + + + + + + + The actual text of a + notice. + + + + + + + + + + + + + + + This attribute is an + indicator that the element contains a security-related notice and is used to + categorize which of the required notices is specified in the element. These + categories include those described in the CAPCO Register, as well as additional + well-defined and formally recognized security notice types described in other + directives, such as US-Person and DoD Distribution. The element could contain + any structure that the implementing schema defines, and details of the rendering + would be relegated to the implementing schema. The permissible value for this + attribute are defined in the Controlled Value Enumeration: CVEnumISMNotice.xml + + + + + + + + + This attribute is an + indicator that the element contains a security-related notice NOT in this document. This flag allows + for a notice to exist in a document without the data that would normally require the notice. Example a + FISA notice when there is no FISA data present. + A common use case is source citations where the notice if for the sourced document and should + not impact the requirements for that type of data in this document. + + + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + national government or international organization that have purview over the + classification marking of an information resource or portion therein. This + element is always used in conjunction with the Classification element. Taken + together, the two elements specify the classification category and the type of + classification (US, non-US, or Joint). Within protected internal organizational + spaces this element may include one or more indicators identifying information + which qualifies as foreign government information for which the source(s) of the + information must be concealed. Measures must be taken prior to dissemination of + the information to conceal the source(s) of the foreign government information. + Specifically, under these specific circumstances, when data are moved to the + shared spaces, the non-disclosable owner(s) and/or producer(s) listed in this + data element's value should be removed and replaced with "FGI". The attribute + value may be manifested in portion marks or security banners. PERMISSIBLE VALUES + 1) The value "FGI" is permitted under the circumstances described above. 2) The + full set of values are defined in the Controlled Value Enumeration: + CVEnumISMOwnerProducer.xml + + + + + + + + + This attribute, when true, is used to signify that + multiple values in the ownerProducer attribute are + JOINT owners of the data. + + + + + + + + + An attribute group to be + used on the element that represents an entity that can be designated as a + point-of-contact. This node may be a single person or an organization. + + + + + + + + + + Indicates that the element + specifies a point-of-contact (POC) and the methods with which to contact that + individual. As certain POCs are required for different reasons (ICD-710 + compliance, DoD Distribution statements, etc), the values for this attribute + specify the reason(s) why the POC is provided. + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + country or countries and/or international organization(s) to which classified + information may be released based on the determination of an originator in + accordance with established foreign disclosure procedures. This element is used + in conjunction with the Dissemination Controls element. It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMRelTo.xml + + + + + + + + This attribute is used to + designate which element has the ISM attributes representing the classification + for the entire resource. Every document must have at least one element with this + indicator as true. It should be rare that a document has more than one. Mainly + this would occur in some sort of aggregator schema. In that unusual case the + first one encountered in XML document order is the one used for all constraint + rules. + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. Implementing Schemas might use this on the + Root node or any other node. + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. Implementing Schemas might use this on the + Root node or any other node. This group has all the attributes as optional. It + could be used in a schema where many nodes may be the resource element. When the + element is acting as the resource element it should have attributes used similar + to ResourceNodeAttributeGroup. + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + defense or intelligence programs for which special access is required. It is + manifested in portion marks and security banners. PERMISSIBLE VALUES The + permissible values for this attribute are defined in the Controlled Value + Enumeration: CVEnumISMSAR.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying + sensitive compartmented information control system(s). It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMSCIControls.xml + + + + + + + + The group of Information + Security Marking attributes in which the use of attributes 'classification' and + 'ownerProducer' is required. + + + This group is to be + contrasted with group 'SecurityAttributesOptionGroup' in which use of those + attributes is optional. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The group of Information + Security Marking attributes in which the use of attributes 'classification' and + 'ownerProducer' is optional. This group is to be contrasted with group + 'SecurityAttributesGroup' in which use of these attributes is required. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A short string, less than + 256 characters. + + + + + + + + + + + + + + + + + + + A notice that is of a + category that is not described in the CAPCO Register and/or is not sufficiently + defined to be represented in the Controlled Value Enumeration + CVEnumISMNotice.xml. This attribute can be used by specifications that import + ISM to represent a wider variety of security-related notices. + + + + + + + + + + + + + + Include all of the generated CVE + types applicable. + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 12 + 2013-05-20 + ODNI/OCIO/ME/D&I + + + Decoupled the + specification from the country code CVEs. Created a new ISMCAT specification + that can rev independently of ISM. + + + + + 11 + 2013-02-15 + ODNI/OCIO/ME/D&I + + + Added joint + attribute for signifying that multiple values in the ownerProducer + attribute are both producers of the portion/document. + Added + attribute for joint ownership. [artf13902]. + + + + + 9 + 2012-3-19 + ODNI/OCIO/ME/D&I + + + Changed + DESVersion attribute from xsd:int to ShortStringType. + Changed + declaration of NoticeText to be simple content. + [artf12153]. + + + + + 8 + 2011-12-22 + Sun, ODNI/OCIO/ICEA + + + Added + unique namespaces to generated CVE schema fragments. + Removed + CVEGenerated schema import from and moved schema fragment + imports directly to the base ISM schema. + + + + + 7 + 2011-08-10 + Colbert, ODNI/OCIO/ICEA + + + Added a + complex type for NoticeList + + + + + 7 + 2011-07-14 + + + Colbert, + ODNI/OCIO/ICEA + Gilsenan, + ODNI/OCIO/ICEA + + + + + Renamed + @ism:notice to @ism:noticeType + Removed + @ism:ORCONPOC and @ism:noticePOC. They're replaced with the new + @ism:pocType attribute which indicates that an element specifies + a point-of-contact's name and contact method. + + + + + 7 + 2011-07-07 + + + Colbert, + ODNI/OCIO/ICEA + Gilsenan, + ODNI/OCIO/ICEA + + + + + Added + version information to the header + Removed + ACCM attribute + + + + + 7 + 2011-06-10 + Hansen, ODNI/OCIO/ICEA + + + Removed + @fixed="true" from the resourceElement attribute definition in + the ISMResourceNodeAttributeGroup and + ISMResourceNodeAttributeOptionGroup + + + + + 7 + 2011-05-11 + Colbert, ODNI/OCIO/ICEA + + + Added + ORCONPOC attribute and POCAttributeGroup + + + + + 7 + 2011-04-26 + Colbert, ODNI/OCIO/ICEA + + + Added + String types LongStringType, ShortStringType, + LongStringWithSecurityType, and + ShortStringWithSecurityType + Added + attribute unregisteredNoticeType and included it in + ISMNoticeAttributeGroup + + + + + 7 + 2011-04-22 + Colbert, ODNI/OCIO/ICEA + + + Explicitly + declared minOccurs and maxOccurs where appropriate. + + + + + 7 + 2011-04-19 + Hodges, ODNI/OCIO/ICEA + + + (CR 2010-4) + Add ISMNoticeAttributeGroup to hold the Notice specific + attributes and changed the NoticeAttribute groups to reference + it. ISMResourceAttributeGroup also added and Resource specific + attributes have been removed from the ResourceAttribute groups + and the new group added. + + + + + 7 + 2011-04-15 + Colbert, ODNI/OCIO/ICEA + + + Add + elements NoticeList, Notice, and NoticeText + + + + + 6 + 2011-01-27 + ODNI/OCIO/ICEA + + + Add + ACCM + + + + + 5 + 2010-09-25 + ODNI/OCIO/ICEA + + + Add + atomicEnergyMarkings + Remove + typeOfExemptedSource and dateOfExemptedSource + Add + ResourceNodeAttributeOptionGroup + Add + ISMRootNodeAttributeOptionGroup + + + + + 4 + 2010-06-01 + ODNI OCIO ICIS + + + Add DoD + Distro statements + Add NATO + refactor + Add Use of + Generated CVE schema types + + + + + 3 + 2010-01-22 + ODNI OCIO ICIS + + + (CR + 2010-02) Add notice attribute, NoticeAttributesGroup and + NoticeAttributesOptionGroup + Final + review before signature 2010-06-06 + Remove comment about LES not being in the Register + since it is now in the register. + Correct NoticeAttributesOptionGroup to have + SecurityAttributesOptionGroup so that NoteInline in PUBS + works correctly. + + + + + + + 2 + 2009-12-01 + ODNI OCIO ICIS + + + (CR + 2009-09) Added "compilationReason" to allow capturing + information about the reason that the document or portion bears + a more restrictive classification than the data would appear to + support. + (CR + 2009-07) Point to CVE files for enumeration values. + (CR + 2009-22) Change declassException and typeOfExemptedSource to + NMTOKEN. + (CR + 2009-16) Add ability to specify DES Version. + (CR + 2009-05) Add createDate, excludeFromRollup, resourceElement to + allow ISM rules to be independent of implementing + schema. + (CR + 2009-05) Add ISMRootNodeAttributeGroup and + ResourceNodeAttributeGroup. + + + + + 2.1 + 2008-08-19 + ODNI OCIO ICIS + Updated to support IC Standard for Information Security Marking + Metadata (2007-500-2) + Added + "DerivativelyClassifiedBy" to allow capturing information about + a derivative classifier separate from an original + classifier + + + + + 2.0 + 2004-04-30 + IC MWG + Updated to support changes to the CAPCO Register and + Implementation Manual. + Added + "ownerProducer" as a required attribute for entity + "SecurityAttributes" and as an optional attribute for entity + "SecurityAttributesOption." Purpose is to provide a single + method for specification of US, non-US, and joint + classifications. + Changed the + enumerated list that is the declared value of attribute + "classification" in order to accommodate non-US + classifications. + Added + optional attribute "SARIdentifier" as a separate container for + DoD/DoE special-access-required nicknames, codewords, or + trigraph/ digraph to support elevation of SAR to the same level + as SCI controls. + Added + optional attributes "classifiedBy" and "classificationReason" to + support generation of EO 12958 classification/declassification + blocks. + Changed the + declared value of "derivedFrom" to CDATA to allow the titles and + dates of source documents or classification guides to be + specified. + Replaced + the single attribute "declassification" with distinct attri- + butes for date-determined and event-determined declassification + and for the 25X declassification exceptions. + Added + attributes "typeOfExemptedSource" and "dateOfExemptedSource" for + use in specifying that one or more sources was marked OADR, X1 + through X8, or X-Foreign Relations. + Added + attribute "declassManualReview" for use in forcing "MR" to + appear in header and footer banners (regardless of whether any + caveats in the portions would necessitate manual + review). + + + + + 1.0 + 2002-07-05 + IC MWG + Released as a registered, production XML entity set + + + + + + + + Formal CVE Change + List + + Change History + + + Version + Date + By + Description + + + + + 7 + 2011-07-18 + Colbert, ODNI/OCIO/ICEA + + + Added + pocType + + + + + 7 + 2011-01-27 + ODNI/OCIO/ICEA + + + Remove ACCM + as attribute and move its values to nonICmarkings + + + + + 6 + 2011-01-27 + ODNI/OCIO/ICEA + + + Add + ACCM + + + + + 5 + 2010-09-25 + ODNI/OCIO/ICEA + + + Add + atomicEnergyMarkings + Remove + typeOfExemptedSource + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd new file mode 100644 index 0000000000..8d3ae78582 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd @@ -0,0 +1,1568 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATFGIOpen Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATFGIOpen.xml CVE it is based on, instead of here. + + + + + + + + (U) + All currently valid GENC trigraphs except USA in alphabetical order by trigraph, + followed by all currently valid CAPCO Coalition tetragraphs in alphabetical order by tetragraph. UNKNOWN removed since GENC has it as AX1 + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATFGIOpen.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Unknown + + + + + Guantanamo Bay Naval Base + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People's Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People's Republic of China + + + + + Republic of Côte d'Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cape Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People's Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Department of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Department of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People's Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Department of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of the Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People's Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + Palestinian Territory + + + + + French Polynesia + + + + + State of Qatar + + + + + Department of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Somalia, Federal Republic of + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Tunisian Republic + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Etorofu, Habomai, Kunashiri, and Shikotan Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + No Man's Land + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Suppressed + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + FIVE EYES + + + + + Global Counter-Terrorism Forces + + + + + Global Maritime Interception Forces + + + + + International Security Assistance Force for Afghanistan + + + + + Stabilization Forces in Kosovo + + + + + Multi-Lateral Enduring Contingency + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO Convention Armed Forces in Europe + + + + + Open Skies Treaty + + + + + Suppressed + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd new file mode 100644 index 0000000000..9a02a98c09 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd @@ -0,0 +1,1568 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATFGIProtected Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATFGIProtected.xml CVE it is based on, instead of here. + + + + + + + + (U) + FGI, followed by all currently valid GENC trigraphs except USA in alphabetical order by trigraph, + followed by all currently valid CAPCO Coalition tetragraphs in alphabetical order by tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATFGIProtected.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Foreign Government Information + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People's Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People's Republic of China + + + + + Republic of Côte d'Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cape Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People's Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Department of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Department of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People's Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Department of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of the Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People's Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + Palestinian Territory + + + + + French Polynesia + + + + + State of Qatar + + + + + Department of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Somalia, Federal Republic of + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Tunisian Republic + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Etorofu, Habomai, Kunashiri, and Shikotan Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + No Man's Land + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Suppressed + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + FIVE EYES + + + + + Global Counter-Terrorism Forces + + + + + Global Maritime Interception Forces + + + + + International Security Assistance Force for Afghanistan + + + + + Stabilization Forces in Kosovo + + + + + Multi-Lateral Enduring Contingency + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO Convention Armed Forces in Europe + + + + + Open Skies Treaty + + + + + Suppressed + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd new file mode 100644 index 0000000000..19e51a74b9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd @@ -0,0 +1,1573 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATOwnerProducer Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATOwnerProducer.xml CVE it is based on, instead of here. + + + + + + + + (U) + FGI, followed by all currently valid GENC trigraphs in alphabetical order by trigraph, + followed by all currently valid CAPCO Coalition tetragraphs in alphabetical order by tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATOwnerProducer.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Foreign Government Information + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People's Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People's Republic of China + + + + + Republic of Côte d'Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cape Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People's Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Department of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Department of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People's Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Department of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of the Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People's Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + Palestinian Territory + + + + + French Polynesia + + + + + State of Qatar + + + + + Department of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Somalia, Federal Republic of + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Tunisian Republic + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + United States of America + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Etorofu, Habomai, Kunashiri, and Shikotan Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + No Man's Land + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Suppressed + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + FIVE EYES + + + + + Global Counter-Terrorism Forces + + + + + Global Maritime Interception Forces + + + + + International Security Assistance Force for Afghanistan + + + + + Stabilization Forces in Kosovo + + + + + Multi-Lateral Enduring Contingency + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO Convention Armed Forces in Europe + + + + + Open Skies Treaty + + + + + Suppressed + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd new file mode 100644 index 0000000000..f5bed770a9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd @@ -0,0 +1,1568 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATRelTo Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATRelTo.xml CVE it is based on, instead of here. + + + + + + + + (U) + USA, followed by all currently valid GENC trigraphs except USA in alphabetical order by trigraph, + followed by all currently valid CAPCO Coalition tetragraphs in alphabetical order by tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATRelTo.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + United States + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People's Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People's Republic of China + + + + + Republic of Côte d'Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cape Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People's Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Department of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Department of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People's Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Department of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of the Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People's Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + Palestinian Territory + + + + + French Polynesia + + + + + State of Qatar + + + + + Department of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Somalia, Federal Republic of + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Tunisian Republic + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Etorofu, Habomai, Kunashiri, and Shikotan Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + No Man's Land + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Suppressed + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + FIVE EYES + + + + + Global Counter-Terrorism Forces + + + + + Global Maritime Interception Forces + + + + + International Security Assistance Force for Afghanistan + + + + + Stabilization Forces in Kosovo + + + + + Multi-Lateral Enduring Contingency + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO Convention Armed Forces in Europe + + + + + Open Skies Treaty + + + + + Suppressed + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/SchemaGuideSchema.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/SchemaGuideSchema.xsd new file mode 100644 index 0000000000..1436fd199a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ISMCAT/SchemaGuideSchema.xsd @@ -0,0 +1,88 @@ + + + + + Intelligence Community + Technical Specification XML CVE Encoding Specification for ISM Country Codes and Tetragraphs (ISMCAT.XML) + SchemaGuide + + + + Notices + distEditionBlockReplace + + + + Description + W3C XML Schema used to + facilitate generation of the SchemaGuide for the XML Data Encoding Specification for + CVE Encoding Specification for ISM Country Codes and Tetragraphs (ISMCAT.XML). + + + Introduction + This XML Schema file is only + used to produce the schemaGuide for the XML Data Encoding Specification (DES). + Please see the document titled + XML Data Encoding Specification for + CVE Encoding Specification for ISM Country Codes and Tetragraphs + for a complete description of the encoding as well as list of all + components. + It is envisioned that this + schema or its components, as well as other parts of the DES may be overridden for + localized implementations. Therefore, permission to use, copy, modify and distribute + this XML Schema and the other parts of the DES for any purpose is hereby granted in + perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or DES for any purpose. It is provided "as is" + without expressed or implied warranty. + If you modify this XML Schema + in any way label your schema as a variant of ISMCAT.XML. + Please direct all questions, + bug reports,or suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + ISMCAT.XML is a collection of 4 CVEs + + CVEnumISMCATFGIOpen + + CVEnumISMCATFGIProtected + + CVEnumISMCATOwnerProducer + + + CVEnumISMCATRelTo + + + + + Creators + Office of the Director of + National Intelligence Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/NTK/IC-NTK.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/NTK/IC-NTK.xsd new file mode 100644 index 0000000000..53e6a0457e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/NTK/IC-NTK.xsd @@ -0,0 +1,527 @@ + + + + Intelligence Community Technical Specification XML Data Encoding Specification for + Need-To-Know Metadata (NTK.XML) + + + + Notices + + distEditionBlockReplace + + + + + Description + W3C XML Schema for the XML Data Encoding Specification for intelligence Need-To-Know + metadata (NTK.XML). + + + Introduction + This XML Schema file is one component of the XML Data Encoding Specification (DES). + Please see the document titled + XML Data + Encoding Specification For Need-To-Know Metadata + for a complete + description of the encoding as well as list of all components. + It is envisioned that this schema or its components, as well as other parts of the + DES may be overridden for localized implementations. Therefore, permission to use, + copy, modify and distribute this XML Schema and the other parts of the DES for any + purpose is hereby granted in perpetuity. + Please reference the preceding two paragraphs in all copies or variations. The + developers make no representation about the suitability of the schema or DES for any + purpose. It is provided "as is" without expressed or implied warranty. + If you modify this XML Schema in any way label your schema as a variant of NTK.XML. + Please direct all questions, bug reports,or suggestions for changes to the points of + contact identified in the document referenced above. + + + Implementation Notes + The document element for NTK is ntk:Access. However, the NTK schema is not a standalone construct; it + should be imported into a parent XML schema. + + + Creators + Office of the Director of National Intelligence Intelligence Community Chief + Information Officer + + + + + + + + + + + + + + + + + A way of describing a formalized Need to Know required for a + document. NTK requires being inside a schema that implements ISM therefore some + element in the implementing schema MUST have ism:ISMRootNodeAttributeGroup and + ism:ResourceNodeAttributeGroup since both of those are required for a valid ISM + implementation. In addition the root node of the implementing schema must have + ntk:NTKRootNodeAttributeGroup specified. + + + + + + + + + A way of describing a formalized Need to Know required for an EXTERNAL + document. NTK requires being inside a schema that implements ISM therefore some + element in the implementing schema MUST have ism:ISMRootNodeAttributeGroup and + ism:ResourceNodeAttributeGroup since both of those are required for a valid ISM + implementation. In addition the root node of the implementing schema must have + ntk:NTKRootNodeAttributeGroup specified. + + + + + + + + + + + + + + + + + + An access policy name followed by 1 or more group values representing the + groups that a user wanting access to the document must be a member of. Logic for the + group list being boolean AND vs OR is Access Policy defined. + + + + + + + + + + + + + + + + + + + + + + + + + A string representing a group, the string must be portion marked. + + + + + + + + + An access policy name followed by 1 or more Individual values representing + the people that a user wanting access to the document must be a member of. + + + + + + + + + + + + + + + + + + + + + + + + + + A string representing a person, the string must be portion marked. + + + + + + + + + + An access policy name followed by 1 or more values representing a profile + that a user wanting access to the document must meet. Logic for the profile list + being boolean AND vs OR is Access Policy defined. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A list of words, codes and/or phrases: a + lexicon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + The version number of the DES + + + + + + + + A unique XML identifier used to assign an XML + unique identifier to an element, such as a paragraph, note or table. + + + + + + + + + A cross-reference to a unique identifier used to + point from one element to one or more other elements. The value of the attribute + must be one or more XML unique identifiers that are the value(s) of id + attribute(s) elsewhere in the document. + + + + + + + + + + + + + + + + + + The value of this element references the + NTK profile. This value should be represented by an IC-ID, however, is not currently restrict to + an IC-ID type so that legacy systems do not break during the transition to a complete restriction + to IC-ID. + + + + + + + + + + + A user-defined property within an element for + general purpose processing used with block objects to provide supplemental + information over and above that conveyed by the element name. This attribute is + analogous to HTML's "class" attribute. + + + + + + + + A logical grouping indicating + that all included access policies are required. + + + + + + + + + + + + + + + + + + A logical grouping indicating + that one of the included access policies is required. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Used for portion marking + access requirements. The format consists of a series of namespace-prefixed + key-value pair sets. The '#' character is used to delimit between a series of + access requirements which are all required and a series of requirements in which + only one is required. The format of an access requirement consists of a + namespace-prefix followed by sets of key-value pairs. The '|' character is used + to separate the key-value pairs and the '^' character is used to join keys with + their values. The characters '^', '|', and '#' are not allowed in + namespace-prefixes, keys, and values. Multiple namespace-prefixed sets can be + used. + + For example: + + ntk:access="namespace1|key1^value1|key2^value1|key2^value2 # + namespace2|key1^value1 namespace3|key1^value1" + ntk:access="# namespace1|key1^value1 + namespace2|key1^value1|key2^value2" + ntk:access="namespace1|key1^value1|key2^val2 namespace1|key1^value3 + #" + + + + + + + + + + + + + + + + + + + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 10 + 2013-7-25 + ODNI/OCIO/ME/D&I + + + Added a Profile element. + + + + + 9 + 2012-2-4 + ODNI/OCIO/ME/D&I + + + Added "AND" logic to NTK Access element and access attribute. + + + + + 7 + 2012-5-28 + ODNI/OCIO/ME/D&I + + + Updated NTK attribute to use a schema restriction regex instead of schematron rule NTK-ID-00005 [artf12287]. + + + + + 7 + 2012-4-06 + ODNI/OCIO/ME/D&I + + + Add NTK attribute for use on portions [artf12287]. + + + + + 7 + 2012-3-19 + ODNI/OCIO/ME/D&I + + + Changed DESVersion + attribute from xsd:int to ism:ShortStringType. + Changed declaration of AccessProfileValueType to be simple content. [artf12153]. + + + + + 6 + 2011-12-13 + Hodges, ODNI/OCIO/ICEA + + + Extracting out attributes and elements to move towards NIEM + compliance + + + + + 5 + 2011-07-07 + Colbert, ODNI/OCIO/ICEA + + + Added version information to header + + + + + 4 + 2011-04-22 + Colbert, ODNI/OCIO/ICEA + + + Explicitly declared minOccurs and maxOccurs where + appropriate. + + + + + 3 + 2011-01-31 + Sun, ODNI/OCIO/ICEA + + + (CR 2011-01) Remove unused ddms namespace declaration + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/VIRT/CVEGenerated/CVEnumVIRTNetworkName.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/VIRT/CVEGenerated/CVEnumVIRTNetworkName.xsd new file mode 100644 index 0000000000..0ce309a9d9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/VIRT/CVEGenerated/CVEnumVIRTNetworkName.xsd @@ -0,0 +1,89 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumVIRTNetworkName Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumVIRTNetworkName.xml CVE it is based on, instead of here. + + + + + + + + (U) All valid network names + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumVIRTNetworkName.xml + + + + + + + + + Other Network + + + + + + + + + + DISA Non-classified IP Router Network + + + + + + DoD and DoS Secret Internet Protocol Router Network + + + + + + Joint Worldwide Intelligence Communications System + (JWICS) highside network. + + + + + + ADSN Network + + + + + + DIA Top Secret Sensitive + Compartmented Information Network + + + + + + Linked Operations-Intelligence Centers Europe + (LOCE) Network is a USEUCOM system supoorting joint forces with communications + + + + + + Crisis Response Operations in NATO Operating Systems + (CRONOS) is a system of interconnected computer networks used by NATO to transmit classified information + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/VIRT/VIRT.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/VIRT/VIRT.xsd new file mode 100644 index 0000000000..525d452958 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/VIRT/VIRT.xsd @@ -0,0 +1,256 @@ + + + + + + Intelligence Community Technical Specification + XML Encoding Specification for Virtual Coverage + + + Notices + + distEditionBlockReplace + + + + Description + + W3C XML Schema for the XML Encoding Specification defining Virtual Coverage. + + + + Introduction + + This XML Schema file is one component of the XML + Encoding Specification. Please see the document titled + + XML Encoding Specification for Virtual Coverage + + for a complete description of the encoding as well as list + of all components. + + + If you modify this XML Schema in any way label your schema + as a variant of VIRT.XML. + + + Please direct all questions, bug reports,or suggestions for changes + to the points of contact identified in the document referenced above. + + + + Creators + Office of the Director of National Intelligence + Intelligence Community Chief Information Officer + + + + + + + + + + Import IC Information Security Marking (ISM) attributes + + + + + + + Import IC Need To Know (NTK) + + + + + + + + + + + + + + + + + + The subject-matter coverage of a publication in terms of one or more virtual addresses. May identify the protocol being used and the virtual address of the resource. + + + + + + + + + The version number of the DES + + + + + + + + + Type used to model the virtualCoverage element. + + + + + + + + + + + + + + + + + + An Internet-Protocol-based computer network. Use this attribute to make explicit the + network where the address resides. + Specify "other:name" if none of the primary choices applies. + + + + + + + + + + + + + + + + + + + + A Schematron rule enforces that for each of the groups below, + either @xlink:type or @xlink:href must be specified if any + xlink attributes are specified + + + + + + + + + + + + + + + + + Basic Type for a required link + + + + + + + + + + + + + Basic Type for a required link with ISM security on the link + + + + + + + + + + + + + + + + + + + An additional restriction on xlink:type to be "simple" or "extended" should be enforced with Schematron rules + in the specifications using this attribute group + + + + + + + + + + + + + + + + + + An additional restriction on xlink:type to be "simple" or "extended" should be enforced with Schematron rules + in the specifications using this attribute group + + + + + + + + + + + + + + + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 1 + 2012-09-30 + ODNI/OCIO/ICEA + Initial release + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/fgdc/schema/address/addr.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/fgdc/schema/address/addr.xsd new file mode 100644 index 0000000000..60c0ac7d72 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/fgdc/schema/address/addr.xsd @@ -0,0 +1,255 @@ + + + + + + Base types form the AddressStandard + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a Complete Address Number and a Complete Street Name. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + + Defining Characteristics: +1. An address of this class must include two or more Complete Street Names, each separated by a Separator Element. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + + Defining Characteristics +1. Addresses of this class must include two Complete Address Numbers separated by a hyphen. The first Complete Address Number must be less than or equal to the second. +2. The two Complete Address Numbers must be followed by a Complete Street Name. +3. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include four Complete Address Numbers, representing respectively the left low, left high, right low, and right high four Complete Address Numbers for the block or transportation segment(s), followed by a Complete Street Name. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. +3. The Four Number Address Range syntax follows the structure established by the U.S. Census Bureau for TIGER/Line file street segment address ranges (see http://www.census.gov/geo/www/tiger/tgrshp2008/TGRSHP08.pdf ("All Lines Shapefile" attribute table layout)). + + + + + + + + + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must contain a Complete Street Name with no Complete Address Number preceding it. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a Complete Landmark Name, with no Complete Address Number preceding it and no Complete Street Name following it. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a Complete Address Number followed by a Complete Landmark Name or a Complete Place Name, and they must not include a Complete Street Name. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a USPS Box in the required format, and must not include a USPS Route. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a USPS Address in the specified RR or HC or overseas military delivery format. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a USPSGeneral Delivery Point in the specified format. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + Defining Characteristic: +In addresses of this class the Delivery Address must be unparsed (except that in Types 2 and 3 the Complete Subaddress may be separated from the rest of the Delivery Address) and may contain thoroughfare, landmark, or postal syntaxes. This class may also include addresses that do not conform to any of the thoroughfare, landmark, or postal classes, including non-U.S. addresses. + + + + + + + + + + + + + + + The Single Choice Union of all Address Types + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/fgdc/schema/address/addr_type.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/fgdc/schema/address/addr_type.xsd new file mode 100644 index 0000000000..d4276c2425 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/fgdc/schema/address/addr_type.xsd @@ -0,0 +1,2224 @@ + + + + + + GML 3.2.1 from OpenGeospatial Consortium + + + + + The ID for this version of the Address Standard. + + + + + + + + +A word, phrase, or symbol used as a separator between components of a complex element or class. The Separator Element is required for +Intersection Addresses and for Two Number Address Ranges, and it may be used in constructing a Complete Street Name. + + + + + + + + + A directional word describing a corner formed by the +intersection of two thoroughfares. + + + + + + The order in which the elements of a Complete Subaddress, +Complete Landmark Name, or Complete Place Name should be written. + + + + + + +"A permanent, unique number assigned to a geographic feature for the +sole purpose of uniquely identifying that feature as a record in any +information system database, dataset, file, or document and for +distinguishing it from all other feature records so identified. The +number is assigned sequentially (highest existing number plus one) +to new records as they are created in the Geographic Names Information System." +Definition Source Geographic Names Project, USGS, 523 National Center, +Reston, VA 20192-0523, as posted August 25, 2009 at: +http://geonames.usgs.gov/domestic/metadata.htm "Feature Identifier" + + + + + + + The portion of the Complete +Address Number which precedes the Address Number itself. + + + + + + + + + + + The numeric identifier for a +land parcel, house, building or other location along a thoroughfare or +within a community. +1. The Address Number is defined as an integer to support address +sorting, parity (even/odd) definition, and in/out of address range +tests. +2. The Address Number must be converted to a characterString when it is +combined with the prefix and suffix into a Complete Address Number. +3. Some addresses may contain letters, fractions, hyphens, decimals and +other non-integer content within the Complete Address Number. Those +non-integer elements should be placed in the Address Number Prefix if +they appear before the Address Number, or in the Address Number Suffix +if they follow the Address Number. For example, if the New York City +hyphenated address 194-03 ½ 50th Avenue, New York, NY 11365 were to be +parsed rather than represented as a Complete Address Number: +---the Address Number Prefix would be "194-" (including the hyphen), +---the Address Number would be 3 (converted to "03" (text) in +constructing the Complete Address Number), +---and the Address Number Suffix would be "1/2". +4. Special care should be taken with records where the Address Number +is 0 (zero). Occasionally zero is issued as a valid address number +(e.g. Zero Prince Street, Alexandria, VA 22314) or it can be imputed +(1/2 Fifth Avenue, New York, NY 10003 (for which the Address Number +would be 0 and the Address Number Suffix would be "1/2")). More often, +though, zero is shown because the Address Number is either missing or +non-existent, and null value has been converted to zero. +5. Address Numbers vs. Address "Letters". In rare instances, +thoroughfare addresses may be identified by letters instead of numbers +(for example, "A" Main Street, "B" Main Street, "C" Main Street, "AA" +Main Street, "AB" Main Street, etc.) A few thousand such cases have +been verified in Puerto Rico, and others may be found elsewhere. In +such cases, the letter(s) cannot be treated as an Address Number, +because an Address Number must be an integer. The letter(s) also cannot +be an Address Number Prefix or Address Number Suffix, because neither +of those can be created except in conjunction with an Address Number. +Instead, the letter(s) should be treated a Subaddress Identifier in an +Unnumbered Thoroughfare Address. (For example: Complete Street Name = +"Calle Sanchez", Complete Subaddress Identifier = "AB", Complete Place +Name = "Mayaguez" State Name = "PR"). As an alternative, the address +may be classified in the General Address Class and treated accordingly. + + + + + + + + + The portion of the Complete +Address Number which follows the Address Number itself. +1. This element is not found in most Complete Address Numbers. When +found, it should be separated from the Address Number so that the +Address Number can be maintained as an integer for sorting and quality +control tests. +2. Informally an Address Number and Address Number Suffix may be +written with or without a space between them. Within this standard, the +default assumption is that an empty space separates elements unless +stated otherwise. The Attached Element can be used to indicate where +the assumed space between the Address Number and Address Number Suffix +has been omitted within an address file (see Attached Element for +additional notes). +3. If a hyphen appears between the Address Number and the Address +Number Suffix, the hyphen is included in the Address Number Suffix. +4. When milepost Complete Address Numbers include decimal fractions, +the integer portion of the milepost number is treated as the Address +Number, and the fraction (including the decimal point) is treated as an +Address Number Suffix. (See Complete Address Number for additional +notes on milepost address numbers.) + + + + + + + + + + + A word or phrase in a +Complete Street Name that +1. Precedes and modifies the Street Name, but is separated from it by a +Street Name Pre Type or a Street Name Pre Directional or both, or +2. Is placed outside the Street Name so that the Street Name can be +used in creating a sorted (alphabetical or alphanumeric) list of street +names. + + + + + + + + + + A word preceding the Street +Name that indicates the direction or position of the thoroughfare +relative to an arbitrary starting point or line, or the sector where it +is located. + + + + + + + + + + A word or phrase that +precedes the Street Name and identifies a type of thoroughfare in a +Complete Street Name. + + + + + + + + + + +Official name of a street as assigned by a local +governing authority, or an alternate (alias) name that +is used and recognized, excluding street types, +directionals, and modifiers. +1. Each jurisdiction should establish its own list of +street names and use it as a domain of values to +validate addresses. Alternate and Official names are +distinguished by the address attribute "Alias Status +Attribute" +2. Local addressing authorities are urged to follow +consistent internal street naming practices, and to +resolve internal street name inconsistencies, especially +for numbered streets ("Twentieth" or "20th" ?), internal +capitalization ("McIntyre" or "Mcintyre" ?), hyphens, +and apostrophes. +3. If alternate or abbreviated versions of street names +are needed for a specialized purpose such as mailing or +emergency +dispatch, they can be created in views or +export routines. + + + + + + + + + A word or phrase in a +Complete Street Name that follows and modifies the Street Name, but is +separated from it by a Street Name Post Type or a Street Name Post +Directional or both. + + + + + + + + + + A word preceding the Street +Name that indicates the direction or position of the thoroughfare +relative to an arbitrary starting point or line, or the sector where it +is located. + + + + + + + + + + A word or phrase that follows +the Street Name and identifies a type of thoroughfare in a Complete +Street Name. + + + + + + + + + + + + +The order in which SubaddressType and +SubaddressIdentifier appear within an +SubaddressElement when expressed as text. "Apartment 7" + + + + + + SubaddressType first, then SubaddressIdentifier +(or: SubaddressElement does not include an SubaddressType). +Example: "Floor 7" + + + + + SubaddressIdentifier first, then SubaddressType. +Example: "Empire Room" + + + + + Order is not known or unstated. + + + + + + + + +This is a modifier to the SubaddressIdentifier element and this +cannot exist without it. The type of structure (when +several structures are found at the same address), e.g., +Apartment, Tower, Block. Used with Building Identifier +to designate one of several structures at a given site. +Fits within the general USPS definition of a "secondary +address designator" and EPA definitions of "secondary +address identifier" + + + + + + + +The letters, numbers, words or combination thereof used +to distinguish one structure from another when several +occur at the same address. Used with +SubaddressType to designate one of several +structures at a given site. Fits within the USPS +definition of a "secondary address designator" and the +general EPA definition of "secondary address +identifier" + + + + + + + +A single combination of SubaddressType and +SubaddressIdentifier (or, in some cases, a +SubaddressIdentifier alone), which, alone or in +combination with other SubaddressElements, distinguishes +one subaddress within or between structures from another +when several occur within the same feature. See +CompleteSubaddress for a definition of "subaddress." + + + + + + + + + + + + + + + +The name by which a prominent feature is publicly known. +Landmarks usually have a street address. A landmark name +does not imply official historic landmark status, but +simply a commonly used name that substitutes for an +address number and street name in identifying the +location of a specific building or feature. Generally +the use of a landmark's street address is preferable +because it is unambiguous. All landmark names should be +cross-referenced to a street address or other coordinate +location. + + + + + + + + + + + + + +A named area, sector, or development that is not an +incorporated municipality or other governmental unit, +such as a neighborhood in a city, or a rural settlement +in unincorporated area. Often called "urbanization" in +Puerto Rican addressing usage. +1. "Urbanizacion", commonly used in urban areas of +Puerto Rico, is an important part of the address. Street +names and address ranges are often repeated in a city, +especially where a city has annexed older towns; they are +distinguished by their urbanizacion or community name. +2. Certain other words can be used in place of +"urbanizacion": extenciones, mansiones, reparto, villa, +parque, jardine, altura, alturas, colinas, estancias, +extension, quintas, sector, terraza, villa, villas. +3. For more information on Puerto Rican addressing +conventions, see USPS Publication 28 Section 29, and +USPS "Addressing Standards for Puerto Rico and the +Virgin Islands". + + + + + + + + + + + + +The name given by the U.S. Postal Service to the +post office from which mail is delivered to the +address. In many places this will be different from the name +of the municipality in which the address is physically located. +The name given by the U.S. Postal Service to the +post office from which mail is delivered to the +address. In many places this will be different +from the name of the incorporated municipality +in which the address is physically located. + + + + + + +The name of the municipality (city, township, or +other non-county local government) in which the +address is physically located. In many places +this will be different than the city name used +by the U.S. Postal Service. +Required by most local governments for tax and services +determinations. This will be null for addresses in unincorporated +portions of counties. + + + + + + +The primary administrative subdivision of a state in the United States. + + + + + + + + +The primary legal subdivision of the United States, +represented by its two letter USPS abbreviation. +This is the only element stored in abbreviated form. + + + + + + + + + + +A five-digit code that identifies a specific pseudo +geographic delivery area. ZIP Codes can represent an +area within a state, an area that crosses state +boundaries (unusual condition) or a single building or +company that has a very high mail volume. "ZIP" is an +acronym for Zone Improvement Plan. Zero pad from the +left to fill the range as in 01776. + + + + + + + + + +A four-digit extension of the five-digit Zip Code that +identifies a portion of a carrier route for USPS mail +delivery. Zero pad from the left to fill the range as in +0030. + + + + + + + + + +The name of the country in which the address is located. +1.Although the scope of this standard is restricted to US addresses, this item is +included for two reasons: to facilitate reconciliation with address standards of +other nations, and to accommodate files which mix +addresses from the US and other countries. +2. ISO 3166-1 official short English names are +specified because they are familiar and concise, and +because ISO 3166-1 is specified in the UPU address standard. +3. The names can be found at: +http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html + + + + + + + +A box used for receipt of USPS mail. The box may be +located in the post office lobby (e.g. PO Box), on the +customer's premises or other USPS authorized place (e.g. +rural route box). + + + + + + + + + +The numbers or letters distinguishing one box from +another within a post office. May include slash, hyphen +or period. + + + + + + + + + A container for the receipt of USPS mail uniquely +identified by the combination of a USPS Box Type and a USPS Box ID. + + + + + + + + + + +A collection of postal boxes served from a single distribution point. +This group includes rural routes, highway contract routes, postal service centers, +overseas military common mail rooms and military unit numbers. + + + + + + + + + +The numbers or letters distinguishing one group of boxes +from another within a distribution point. May include +hyphen, slash or period. + + + + + + + + + + + + + + + + + + + + + +A central point where mail may be picked up by the +addressee. Two values are permitted: "General Delivery" +(for post offices), and ship's names (for overseas military addresses). + + + + + + + + + +A Concatenation of codes found in FIPS 5-2, 6-4, and +55-3 data guides, with a locally defined code that MUST +be defined in the metadata. The general format is +(expressed as regular expressions) +[0-9]{2}[0-9]{3}[0-9]{5}[0-9]{4}. + + + + + + + + + + The X coordinate of the +address location. + + + + + + The Y coordinate of the +address location. + + + + + + +The longitude coordinate of the address location, noted in decimal degrees. For +point and polygon features, coordinate pairs typically locate the point of +assignment: a centroid point, a point locating the entry to a +property, etc. + + + + + + + +The latitude coordinate of the address location, noted +in decimal degrees. For point and polygon features, +coordinate pairs typically locate the point of +assignment: a centroid point, a point locating the entry +to a property, etc. + + + + + + + +The USNG or US National Grid is an alphanumeric +reference system that overlays the Universal Transverse +Mercator (UTM) numerical coordinate system. A USNG +coordinate consists of three parts, the: +1. Grid Zone Designation (GZD) for worldwide unique +geoaddresses (two digits plus one letter, developed from +the UTM system). +2. 100,000-meter Square Identification for regional +areas (two letters). +3. Grid Coordinates for local areas (always an even +number of digits between 2 and 10 depending upon +precision necessary to uniquely identify the location). +Look to www.fgdc.gov/standards/status/usng.html for a +normative definition. +Adapted from US National Grid, FDGC-STD-011-2001, Section 3.3 + + + + + + + + + Distance of the address +in specified units above or below a vertical datum, as defined by a +specified coordinate reference system. + + + + + + +Floor or level of the structure. The lowest level of a building is 1, and +ascending numbers are assigned in order to each higher level. + + + + + + + + + A name or number which, +along with the Address Coordinate Reference System Authority, +identifies the coordinate reference system to which Address X +Coordinate and Address Y Coordinate. Address Latitude and Address +Longitude, US National Grid Coordinate, or Address Elevation values +are referenced. + + + + + + The Authority that +assigns the unique Address Coordinate Reference System ID (number or +name) to the Address Coordinate Reference System to which the +Address X Coordinate and Address Y Coordinate, Address Latitude and +Address Longitude, US National Grid Coordinate, or Address Elevation +are referenced. + + + + + + + + + + + + + The unique +identification number assigned to an address by the addressing +authority. The ID number must be unique for each address assigned. + + + + + + + + + A unique identifier of +the Address Reference System for a specified area (Address Reference +System Extent). + + + + + + The name of the address +system used in a specified area (Address Reference System Extent). + + + + + + + The Authority that +assigns the unique Address Coordinate Reference System ID (number or +name) to the Address Coordinate Reference System to which the +Address X Coordinate and Address Y +Coordinate, Address Latitude and Address Longitude, US +National Grid Coordinate, or Address Elevation are referenced. + + + + + + + Boundary of the area(s) +within which an Address Reference System is used. + + + + + + + + + +The category of address reference system in use. The +type of reference system determines and guides the +assignment of numbers within the Address Reference +System Extent. + + + + + + + + + + + + + + +The rules by which address numbers, street names and +other components of a thoroughfare address are determined. + + + + + + + + + + + + + + This element defines a +block in an Address Reference System, and sets forth the rules for +block ranges and block breaks. + + + + + + The rules for numbering +along a thoroughfare, including parity (odd/even side definition), +and numbering increment distance and value. + + + + + + The rules for the +selection and use of street names within an Address Reference System + + + + + + + Rules pertaining to the +use of street types (suffix and prefix), directionals (prefix and +suffix), and modifiers (prefix and suffix) of street names. + + + + + + + This element contains +rules for the use of place names, state names, country names, and +ZIP Codes within the jurisdiction of an Address Authority. + + + + + + + The rules that are +applied to the addressing of areas within structures as subaddresses +(units, suites, apartments, spaces, etc.) within a given Address +Reference System + + + + + + The line that defines the +points of origin for address numbering along thoroughfares that +intersect it, or which are numbered in parallel to streets that +intersect it. It may be a road, another geographic feature, or an +imaginary line. + + + + + + + + Coordinate location of the +beginning point of address numbering along an Address Reference System +Axis. + + + + + + + + The degree to which a +specific, named address grid is tilted off a north/south or east/west +orientation. + + + + + + + + + A street, geometric +line, or other line used to measure address number assignment +intervals and ranges within an Address Reference System. The Address +Reference System Reference Polyline may consist of a beginning +point, one or more segments of a street centerline, geographically +identified line, such as a line of latitude or longitude, a +land-division based line, such as a township, range, or section +line, or an imaginary line constructed for the purpose of allocating +address ranges and address numbers. + + + + + + + + A point along a street +or other thoroughfare within an Address Reference System where an +address range beginning and/or endpoint is located. + + + + + + + + + A line connecting the +Address Reference System Range Breakpoints with the same value +within an Address Reference System + + + + + + + + A line connecting the +Address Reference System Range Breakpoints with the same value +within an Address Reference System + + + + + + + + A bibliographic +reference to an ordinance, map, manual, or other document in which +the rules governing an Address Reference System are written. + + + + + + + An Address Reference System is a set of rules and +geometries that define how addresses are assigned along thoroughfares and/or within a given area +(Address Reference System Extent). At minimum, an Address Reference System must specify where +Complete Address Number sequences begin and how Complete Address Numbers are assigned along +the length of thoroughfares governed by the Address Reference System within the Address Reference +System Extent. Address Reference Systems typically provide rules governing left-right parity of +Complete Address Numbers, assignment of Street Names and street types, use of directionals and quadrants, and +other aspects of address assignment. An Address Reference System that is based on axis lines, an Address +Reference System Axis defined for each axis used to define address assignment. Each Address Reference System +Axis must have an identified Address Reference System Axis Point Of Beginning. An Address Reference System +is known by it’s Address Reference System Name (required). Additional business rules for an Address +Reference System are described in the Address Reference System Rules. + + + + + + + + + + + + + + + + + + + +The identifier of an address that is related to the identifier of another address. + + + + + + + + + + + The manner in which an +address identified by a RelatedAddressID is related to an address +identified by an AddressID. + + + + + + + + + The unique identifier +assigned (within the reference transportation base model) to a +transportation feature to which an address is related. see U.S. +Federal Geographic Data Committee, "Framework Data Content +Standard Part 7: Transportation base." +"Framework Data Content Standard Part 7c: Roads." + + + + + + + + + The unique identifier +assigned to the particular feature that represents an address within +a transportation base model. see U.S. Federal Geographic Data +Committee, "Framework Data Content Standard Part 7: Transportation +base." "Framework Data Content Standard Part 7c: Roads." + + + + + + + + + The type of +transportation feature (TranFeature) used to represent an address. +For transportation features generally: U.S. Federal Geographic Data +Committee, "Framework Data Content Standard Part 7: Transportation +base." For roads features only: U.S. Federal Geographic Data +Committee, "Framework Data Content Standard Part 7: Transportation +base," as extended by "Framework Data Content Standard Part 7c: Roads." + + + + + + + + + The authority that +maintains the transportation base model specified by the Address +Transportation System Name, and assigns Address Transportation +Feature I Ds to the features it represents. + + + + + + + + + The name of the +transportation base model to which the address is related. + + + + + + + + + The primary permanent +identifier, as defined by the Address Parcel Identifier Source, for +a parcel that includes the land or feature identified by an address. +A parcel is a single cadastral unit, which is the spatial +extent of the past, present, and future rights and interests in real +property. Definition source for parcel identifier: Adapted from FGDC, +May 2008. Geographic Information Framework Data Content Standard +Part 1: Cadastral. Section 4.2. Definition source for parcel: FGDC, May 2008. Cadastral +Data Content Standard for the National Spatial Data Infrastructure. +Version 1.4 – Fourth Revision. p. 45. (Part 3.2 Parcel) + + + + + + + + + The permanent +identifier for the agency, organization, or jurisdiction that +assigns and maintains the Address Parcel Identifier. +Definition source: FGDC, May 2008. Geographic Information +Framework Data Content Standard Part 1: Cadastral. Section 4.7. + + + + + + + + + +The unique identification number assigned to an address +by the addressing authority. The ID number must be +unique for each address assigned by an addressing +authority. This, combined with the FIPS number of the +addressing authority, can provide a unique ID for every +address in the US. + + + + + + + + + +The unique identification number of and address related to this one. + + + + + + + + + +Identifies whether an addresses receives USPS mail +delivery (that is, the address is occupiable, and the +USPS provides on-premises USPS mail delivery to it). + + + + + + + The USPS delivers mail to this address. + + + + + + The USPS does not deliver mail to this address. + + + + + + It is unknown whether the USPS delivers mail to +this address. + + + + + + + +The side of the transportation segment (right , left, +both, none, unknown) on which the address is located. +U.S. Federal Geographic Data Committee, "Framework Data +Content Standard Part 7: Transportation base," sections +7.3.2 and B.3.6 + + + + + + + The address is related to the right side of the street. + + + + + + The address is related to the left side of the street. + + + + + + The address pertains to both sides of the street. + + + + + + The address is not on either or both sides of +the street or the concept of side of street does not apply to the address. +For instance an intersection address would have a AddressSideOfStreet of none. + + + + + + + + + +The side of the transportation segment (right , left, +both, none, unknown) on which the address range applies. + + + + + + + The address is related to the right side of the street. + + + + + + The address is related to the left side of the street. + + + + + + The address pertains to both sides of the street. + + + + + + The address is not on either or both sides of +the street or the concept of side of street does not apply to the address. +For instance an intersection address would have a AddressSideOfStreet of none. + + + + + + + + + +The set of Address Number Parity values specified in the Address Reference +System Numbering Rules for the Address Numbers in an address range. + + + + + + + All Address Numbers in the range have an Address Number Parity of "even". + + + + + + All Address Numbers in the range have an Address Number Parity of "odd". + + + + + + Both even and odd Address Numbers are found in the range. + + + + + + No Address Number is found within the range. + + + + + + The parity of the Address Numbers in the range +in not known. + + + + + + + +Whether the address, street name, landmark name, or +place name is as given by the official addressing +authority (official), or an alternate or alias (official +or unofficial), or a verified error. + + + + + + + +The address or name as designated by the Address Authority. + + + + + + +An alternate or alias to the official address or +name that is also in official or popular use. +The Related Address ID can be used to link an +alternate or alias to the Address ID of the +official address. There are two types of +alternate or alias names, official and +unofficial, each of which has subtypes. + + + + + + +These are alternate names designated by an official Address Authority. + + + + + + An Address Authority may replace one +address or name with another, e.g. by renaming or renumbering. +The prior, older address should be retained as an alias, to +provide for conversion to the new address. + + + + + An Address Authority may establish a name or +number to be used in addition to the official address or name. For +example, a state highway designation (State Highway 7) may be +given to a locally-named road, or a memorial name may be applied +to an existing street by posting an additional sign, while the +local or original name and addresses continue to be recognized as +official. + + + + + +These are addresses or names that are used by the public or by an individual, but are not +recognized as official by the Address Authority. + + + + + + An address or name that is in popular use but is +not the official name or an official alternate or alias. + + + + + + In data processing, entry errors +occur. Such errors if frequently encountered may be corrected by +a direct match of the error and a substitution of a correct name. + + + + + + For data processing efficiency, +entities often create alternate names or abbreviations for internal +use. These must be changed to the official form for public use and +transmittal to external users. + + + + + An address that is posted, but is not +recognized by the Address Authority (e.g. a vanity address on a building); + + + + + + +An address that has been verified as being invalid, but which keeps appearing in address +lists. Different from Unofficial Alternate Names in that these addresses are known not to +exist. + + + + + + + +The earliest date on which the address is known to exist. + + + + + + + +The earliest date on which the address is known to no longer be valid. + + + + + + + +The locally defined ID for the DataSet. + + + + + + + +The type or classification of the address according to the classification standard. + + + + + + + + + + + + + + + + + + + +The type of feature identified by the address +Initial list of feature types: Building Utility Cabinet, +Telephone Pole, Building, Street block, street block +face, intersection, parcel, building, entrance, unit. +The list might be expanded indefinitely to include +infrastructure and other features. + + + + + + + + + +The Lifecycle status of the address. + + + + + + + + + + + + +The life cycle status of the address. + + + + + + +Address falls within a theoretical range, but has never been used. + + + + + + +Application pending for use of this address +(e.g., address tentatively issued for +subdivision plat that is not yet fully approved). + + + + + + +Address has been issued and is in use. + + + + + + +Address was issued, but is now obsolete (e.g. +street name has been changed), building was +demolished, etc. + + + + + + + + +Whether the address is as given by the official +addressing authority (official), or an unofficial +variant or equivalent of it (alias). + + + + + + + +The address or name as designated by the addressing authority. + + + + + + +In any of the address classes described in 2.2, the collective name element may have another +acceptable form. Some alternate names may be conditional, on attempt, i.e. if the alias +resolves the address no further alternate names should be considered. Other alternate names are +always applied, such as official renamings. All alternate names carry a limit of applicability +and a timeframe of applicability. The limit of applicability may be a limit to a single zipcode, +a naming authorities boundary, such as city or county limits, or a range of address numbers +with such a boundary. + + + + + + +Upon official renaming of an address, or renumbering of an address, or a series of +addresses, the prior, older address will occur in address lists for a period of time and +a conversion to current names or current addresses will need to be +provided. Such an entity may match a single address or a range of addresses. + + + + + + +The alternate name is established by a separate, or the same, naming authority. Such names may +apply to any address class, including landmarks. Such names would be established by naming +authorities with a geographically larger area of responsibility, containing all or part of a +naming authority with a smaller region, such as a state name overlaying a county name or a +county name overlaying a city or town name. Examples would be a state highway designation +(State Highway 7) overlaid upon locally named roads or a memorial highway overlaid on local +road names or state highway names. + + + + + + +Local communities hold on to address names much longer than do regional agencies. A community +may use a colloquial address name as much as 30 years after that name has either expired or is +no longer salient. This entry provides a conversion to a current name. + + + + + + +In data processing, entry errors occur. Such errors if frequently encountered may be +corrected by a direct match of the error and a substitution to a current name. + + + + + + +For data processing efficiency, entities often create alternate names for internal use. When +such alternate names are exposed to other entities they need to be resolved to a current name. + + + + + + +Address is posted, but not recognized by addressing authority (e.g. vanity address on a building). + + + + + + +Address is verified as being invalid, but keeps appearing in address lists. Different from Unofficial Altername +Names in that these are known not to exist; Address has been issued and is in use. + + + + + + + + +A status flag, or an explanatory note, for an address that is not correct according to the address schema in +which it is located, but is nonetheless a valid address. This field may be used to identify the type of anomaly +(e.g. wrong parity, out of sequence, out of range, etc.) rather than simply whether or not it is anomalous. Local +jurisdictions may create specific categories for anomalies. + + + + + + + +Whether an address range covers part of a transportation segment, one segment, multiple +segments, or the entire thoroughfare within the Address Reference System Extent. + + + + + + + + + + + + + + +Whether the low Complete Address Number of an address range is closer to the +from-node or the to-node of the transportation segment(s) that the range is related to. + + + + + + The low address is nearer the from node; numbers +ascend toward the to node. + + + + + The low address is nearer the to node; numbers +descend toward the to node. + + + + + The numbers run in opposite directions on either +side of the street. The low number on the left side is nearer the +from node. The low number on the right side is nearer the to node. + + + + + + The numbers run in opposite +directions on either side of the street. The low number on the left side +is nearer the to node. The low number on the right side is nearer the from node. + + + + + + The address range has null values for +the high and low Complete Address Numbers. + + + + + + Does not apply (transportation +segment directionality is inconsistent within the range). + + + + + + The address range directionality is not known. + + + + + + + + This attribute states +whether an address range (either a Two Number Address Range +or a Four Number Address Range) is actual or potential. + + + + + + +The low and high CompleteAddressNumbers are numbers that have been assigned and are in use +along the addressed feature. + + + + + + +The low and high CompleteAddressNumbers are numbers that would be assigned if all possible +numbers were in use along the addressed feature, and there were no gaps between the +range and its preceding and following ranges. + + + + + + +The relationship between the low and high CompleteAddressNumbers and the addressed feature +is unknown. + + + + + + + +A text description providing more detail on how to identify or find the addressed feature. + + + + + + + The property of an +Address Number with respect to being odd or even. "A relation between a pair of integers: if both integers +are odd or both are even they have the same parity; if one is odd and the other is even they have different +parity." + + + + + + + + + + +This attribute identifies when two or more Complete Address Number elements or two +or more Complete Street Name elements have been combined without a space +separating them. + + + + + + +The elements inside the CompleteAddressNumber or +CompleteStreetName are attached and need special parsing rules. + + + + + + + + + + +"The Concept of Left and Right sides of a feature that a Number Range Applies to. + + + + + + + + + + + +"The Concept of Low or High of numbers participating in a Number Range Applies to. + + + + + + + + + + + +A geographic area where the street names conform to a theme. For example, some neighborhoods +feature streets named for birds, US presidents or trees. A subset of the +complete street name domain applies to this area. + + + + + + + + + + + +Name of the address scheme that operates over a specified area, i.e.: mountain addresses, +plains addresses. + + + + + + + + + +A description of an Address Scheme that includes business rules about parity, naming +conventions, and other matters concerning the assignment and maintenance +of an addressing scheme. This element may refer to an address ordinance, Standard +Operating Procedures manual or other external document wherein the rules for addresses in a given scheme +are written. + + + + + + + + + + + +Location where the address axes meet. + + + + + + + + + + + + +Address axes define the boundaries between adjoining zones in address schema. Those zones may +be quadrants (northwest, northeast, southeast, southwest) or other +geographic divisions. Lowest address numbers occur nearest an axis. + + + + + + + + + + + +Boundary of the area over which an address schema is used when assigning addresses. + + + + + + + + + +Source from whom the data provider obtained the address, or with whom the data provider +validated the address. Important if the data provider did not obtain the +address directly from the local authority. + + + + + + + + + +The authority (e.g., municipality, county) that created or has jurisdiction over the +creation of an address. The addressing authority may or may not be +the same as the physical or postal jurisdiction noted for the address. + + + + + + + + + +The FIPS or GNIs code for the authority (e.g., municipality, county) that created or has jurisdiction +over the creation of an address. The addressing authority may or may not be the same as +the physical or postal jurisdiction noted for the address. + + + + + + + + + + +An action command for incremental datasets. Add indicates that the information is new. +DELETE indicates that the information is to be removed. + + + + + + + + + + +Whether the Delivery Address includes or excludes the Complete Subaddress. + + + + + + The Delivery Address includes the Complete +Subaddress (if any) + + + + + The Delivery Address includes the Complete +Subaddress (if any) + + + + + Not stated/no information (default value) + + + + + + + + + +The entire address, unparsed, except for the Place Name, State Name, +Zip Code, Zip Plus 4, Country Name, and, optionally, Complete Subaddress elements. + + + + + + + + + + + +The unparsed accumulation of Postal City, State, and ZIPCode elements. + + + + + + + + + +This element is defined solely for use with the General Address class, which is constructed +to accommodate and mix addresses of all types (e.g., a general postal +mailing list or contact list). Place Name, State Name, Zip Code, and +Zip Plus 4, which appear in all address classes, are kept separate +from the rest of the address. No longer a parsed datatype. Content +still represents it as such. + + + + + + + + + +This element is defined solely for use with the General Address class, which is constructed +to accommodate and mix addresses of all types (e.g., a general postal +mailing list or contact list). Place Name, State Name, Zip Code, and +Zip Plus 4, which appear in all address classes, are kept separate +from the rest of the address. No longer a parsed datatype. Content +still represents it as such. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The portion of the Complete Address +Number which follows the Address Number itself. +1. The Address Number element is required to compose a Complete Address +Number. The other elements are optional. +2. The Address Number must be converted from integer to characterString +when constructing the Complete Address Number. +3. The great majority of Complete Address Numbers are simple integers. +Infrequently the integer is followed by an alphanumeric Address Number +Suffix, typically a letter or a fraction. Even more rarely the integer +is preceded by an alphanumeric Address Number Prefix. In addition to +the typical numbering format, four special-case formats are found in +the United States: Milepost addresses, grid-style address numbers, +hyphenated address numbers, and other Address Number Prefix letters or +symbols. +4. Milepost Complete Address Numbers (Example: "Milepost 240"). Road +mileposts are sometimes used to specify locations along highways and +similar roads. Mileposts are often used to locate, for example, crash +sites, emergency call boxes, bridge locations, inspection stations, +roadside rest stops, railroad crossings, highway exits, park and +campground entrances, RV parks, and truck stops. Milepost addresses +should be parsed as follows: +---"Milepost" (or equivalent word or phrase, such as "kilometer" or +'Mile Marker") is an Address Number Prefix +---The milepost number (integer part only) is an Address Number +---Tenths, if given, are an Address Number Suffix, including the decimal point. +---The road name or highway route number is a Complete Street Name, and +parsed accordingly +Note that, in Puerto Rico, road measurements are given in kilometers +(km), which are sometimes divided into hectometers (hm). +5. Grid-style Complete Address Numbers (Example: "N89W16758"). In +certain communities in and around southern Wisconsin, Complete Address +Numbers include a map grid cell reference preceding the Address Number. +In the examples above, "N89W16758" should be read as "North 89, West +167, Address Number 58". "W63N645" should be read as "West 63, North, +Address Number 645." The north and west values specify a locallydefined +map grid cell with which the address is located. Local +knowledge is needed to know when the grid reference stops and the +Address Number begins. +6. Hyphenated Complete Address Numbers (Example: "5-5415"). In some +areas (notably certain parts of New York City, southern California, and +Hawaii), Complete Address Numbers often include hyphens. Hyphenated +Complete Address Numbers should not be confused with Two Number Address +Ranges. The former is a single Complete Address Number while the latter +includes two Complete Address Numbers. +7. Hyphenated Complete Address Numbers can be parsed so that the number +indicating the site or structure is the Address Number, and the +remainder (including the hyphen) is the Address Number Prefix or +Address Number Suffix. +8. In New York City, hyphenated Complete Address Numbers (the +recommended format for storing complete address numbers in New York +City) follow a more complex set of rules. The number to the left of the +hyphen indicates the "block" (conceptually--the number does not always +change at street intersections and sometimes it changes within a single +block face). The number to the right of the hyphen indicates the site +or house number within the "block". If the Address Number is less than +ten, it is written with a leading zero, as in 194-03 1/2 above. +Additional leading zeros may be added to either number to provide for +correct sorting if the entire Complete Address Number is treated as a +characterString with the hyphen included. Within the address standard, +these numbers can be constructed and parsed as follows: +a. The left-side number (194) and the hyphen form the Address Number +Prefix element (text), with leading zeros shown if needed. +Federal Geographic Data Committee FGDC Document Number FGDC-STD-016-2011 +United States Thoroughfare, Landmark, and Postal Address Data Standard 461 +b. The right-side number (3) is the Address Number (integer), converted +to a characterString with the leading zero(s) added (03) upon +conversion to Complete Address Number. +c. The suffix, if any (such as the "1/2" in 194-03 1/2), is an Address Number Suffix. +9. Other Address Number Prefix Letters or Symbols. In Puerto Rico, +Address Numbers are commonly preceded by an Address Number Prefix +letter (e.g. "A 19"). In Portland, OR, negative Address Numbers have +been assigned in an area along the west bank of the Willamette River. +The minus sign is represented as a leading zero ("0121" and "121" are +two different Complete Address Numbers). In such cases the leading zero +should be treated as an Address Number Prefix. +10. Zero as a Complete Address Number. Special care should be taken +with records where the Address Number is 0 (zero). Occasionally zero is +issued as a valid address number (e.g. 0 Prince Street, Alexandria, VA +22314) or it can be imputed (1/2 Fifth Avenue, New York, NY 10003, for +which the Address Number would be 0 and the Address Number Suffix would +be "1/2"). More often, though, the Address Number is either missing or +non-existent, and null value has been converted to zero. +11. Address Numbers vs. Address "Letters". In rare instances, +thoroughfare addresses may be identified by letters instead of numbers +(for example, "A" Main Street, "B" Main Street, "C" Main Street, "AA" +Main Street, "AB" Main Street, etc.) A few thousand such cases have +been verified in Puerto Rico, and others may be found elsewhere. In +such cases, the letter(s) cannot be treated as an Address Number, +because an Address Number must be an integer. The letter(s) also cannot +be an Address Number Prefix or Address Number Suffix, because neither +of those can be created except in conjunction with an Address Number. +Instead, the letter(s) should be treated a Subaddress Identifier in an +Unnumbered Thoroughfare Address. (For example: Complete Street Name = +"Calle Sanchez", Complete Subaddress Identifier = "AB", Complete Place +Name = "Mayaguez" State Name = "PR"). As an alternative, the address +may be classified in the General Address Class and treated accordingly. + + + + + + + + + + + + + + + + + + + + +{ Complete Address Number (low)*} + { Separator Element *} + { Complete Address Number +(high)*} A set of two address numbers, separated by a "Separator", +representing the low and high numbers of an address range. An address +number range element should be accompanied by an Address Range Type +Attribute that describes the type of range presented in this element. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Support information and record level metadata for each Address + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO15924_2004.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO15924_2004.xml new file mode 100644 index 0000000000..ef82fb533b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO15924_2004.xml @@ -0,0 +1,1471 @@ + + + + + + This International Standard provides a code for the presentation of names of scripts. The codes were devised for use in terminology, lexicography, bibliography, and linguistics, but they may be used for any application requiring the expression of scripts in coded form. + + ISO15924_2004 + Codes for the representation of names of scripts + + + + Arabic + arabe + Arabic + + Arab + 160 + + + + + + Imperial Aramaic + arameen imperial + Imperial_Aramaic + + Armi + 124 + + + + + + Armenian + armenien + Armenian + + Armn + 230 + + + + + + Avestan + avestique + Avestan + + Avst + 134 + + + + + + Balinese + balinais + Balinese + + Bali + 360 + + + + + + Bamum + bamoum + Bamum + + Bamu + 435 + + + + + + Batak + batak + + Batk + 365 + + + + + + Bengali + bengali + Bengali + + Beng + 325 + + + + + + Blissymbols + symboles Bliss + + Blis + 550 + + + + + + Bopomofo + bopomofo + Bopomofo + + Bopo + 285 + + + + + + Brahmi + brahmi + + Brah + 300 + + + + + + Braille + braille + Braille + + Brai + 570 + + + + + + Buginese + bouguis + Buginese + + Bugi + 367 + + + + + + Buhid + bouhide + Buhid + + Buhd + 372 + + + + + + Chakma + chakma + + Cakm + 349 + + + + + + Unified Canadian Aboriginal Syllabics + syllabaire autochtone canadien unifie + Canadian_Aboriginal + + Cans + 440 + + + + + + Carian + carien + Carian + + Cari + 201 + + + + + + Cham + cham (cam, tcham) + + Cham + 358 + + + + + + Cherokee + tcheroki + Cherokee + + Cher + 445 + + + + + + Cirth + cirth + + Cirt + 291 + + + + + + Coptic + copte + Coptic + + Copt + 204 + + + + + + Cypriot + syllabaire chypriote + Cypriot + + Cprt + 403 + + + + + + Cyrillic + cyrillique + Cyrillic + + Cyrl + 220 + + + + + + Cyrillic (Old Church Slavonic variant) + cyrillique (variante slavonne) + + Cyrs + 221 + + + + + + Devanagari (Nagari) + devanagari + Devanagari + + Deva + 315 + + + + + + Deseret (Mormon) + deseret (mormon) + Deseret + + Dsrt + 250 + + + + + + Egyptian demotic + demotique egyptien + + Egyd + 070 + + + + + + Egyptian hieratic + hieratique egyptien + + Egyh + 060 + + + + + + Egyptian hieroglyphs + hieroglyphes egyptiens + Egyptian_Hierogyphs + + Egyp + 050 + + + + + + Ethiopic (Ge'ez) + ethiopien (ge'ez, gueze) + Ethiopic + + Ethi + 430 + + + + + + Georgian (Mkhedruli) + georgien (mkhedrouli) + Georgian + + Geor + 240 + + + + + + Khutsuri (Asomtavruli and Nuskhuri) + khoutsouri (assomtavrouli et nouskhouri) + + Geok + 241 + + + + + + Glagolitic + glagolitique + Glagolitic + + Glag + 225 + + + + + + Gothic + gotique + Gothic + + Goth + 206 + + + + + + Greek + grec + Greek + + Grek + 200 + + + + + + Gujarati + goudjarati (gujrati) + Gujarati + + Gujr + 320 + + + + + + Gurmukhi + gourmoukhi + Gurmukhi + + Guru + 310 + + + + + + Hangul (Hangul, Hangeul) + hangul (hangul, hangeul) + Hangul + + Hang + 286 + + + + + + Han (Hanzi, Kanji, Hanja) + ideogrammes han (sinogrammes) + Han + + Hani + 500 + + + + + + Hanunoo (Hanunoo) + hanounoo + Hanunoo + + Hano + 371 + + + + + + Han (Simplified variant) + ideogrammes han (variante simplifiee) + + Hans + 501 + + + + + + Han (Traditional variant) + ideogrammes han (variante traditionnelle) + + Hant + 502 + + + + + + Hebrew + hebreu + Hebrew + + Hebr + 125 + + + + + + Hiragana + hiragana + Hiragana + + Hira + 410 + + + + + + Pahawh Hmong + pahawh hmong + + Hmng + 450 + + + + + + (alias for Hiragana + Katakana) + (alias pour hiragana + katakana) + Katakana_Or_Hiragana + + Hrkt + 412 + + + + + + Old Hungarian + ancien hongrois + + Hung + 176 + + + + + + Indus (Harappan) + indus + + Inds + 610 + + + + + + Old Italic (Etruscan, Oscan, etc.) + ancien italique (etrusque, osque, etc.) + Old_Italic + + Ital + 210 + + + + + + Javanese + javanais + Javanese + + Java + 361 + + + + + + Japanese (alias for Han + Hiragana + Katakana) + japonais (alias pour han + hiragana + katakana) + + Jpan + 413 + + + + + + Kayah Li + kayah li + Kayah_Li + + Kali + 357 + + + + + + Katakana + katakana + Katakana + + Kana + 411 + + + + + + Kharoshthi + kharochthi + Kharoshthi + + Khar + 305 + + + + + + Khmer + khmer + Khmer + + Khmr + 355 + + + + + + Kannada + kannara (canara) + Kannada + + Knda + 345 + + + + + + Korean (alias for Hangul + Han) + coreen (alias pour hangul + han) + + Kore + 287 + + + + + + Kaithi + kaithi + Kaithi + + Kthi + 317 + + + + + + Tai Tham (Lanna) + tai tham (lanna) + Tai_Tham + + Lana + 351 + + + + + + Lao + laotien + Lao + + Laoo + 356 + + + + + + Latin (Fraktur variant) + latin (variante bris�e) + + Latf + 217 + + + + + + Latin (Gaelic variant) + latin (variante gaelique) + + Latg + 216 + + + + + + Latin + latin + Latin + + Latn + 215 + + + + + + Lepcha (Rong) + lepcha (rong) + Lepcha + + Lepc + 335 + + + + + + Limbu + limbou + Limbu + + Limb + 336 + + + + + + Linear A + lineaire A + + Lina + 400 + + + + + + Linear B + lineaire B + Linear_B + + Linb + 401 + + + + + + Lisu (Fraser) + lisu (Fraser) + Lisu + + Lisu + 399 + + + + + + Lycian + lycien + Lycian + + Lyci + 202 + + + + + + Lydian + lydien + Lydian + + Lydi + 116 + + + + + + Mandaic, Mandaean + mandeen + + Mand + 140 + + + + + + Manichaean + manicheen + + Mani + 139 + + + + + + Mayan hieroglyphs + hieroglyphes mayas + + Maya + 090 + + + + + + Meroitic + meroitique + + Mero + 100 + + + + + + Malayalam + malayalam + Malayalam + + Mlym + 347 + + + + + + Moon (Moon code, Moon script, Moon type) + ecriture Moon + + Moon + 218 + + + + + + Mongolian + mongol + Mongolian + + Mong + 145 + + + + + + Meitei Mayek (Meithei, Meetei) + meitei mayek + Meetei_Mayek + + Mtei + 337 + + + + + + Myanmar (Burmese) + birman + Myanmar + + Mymr + 350 + + + + + + Nakhi Geba ('Na-'Khi 'Ggo-'baw, Naxi Geba) + nakhi geba + + Nkgb + 420 + + + + + + N'Ko + n'ko + Nko + + Nkoo + 165 + + + + + + Ogham + ogam + Ogham + + Ogam + 212 + + + + + + Ol Chiki (Ol Cemet', Ol, Santali) + ol tchiki + Ol_Chiki + + Olck + 261 + + + + + + Old Turkic, Orkhon Runic + orkhon + Old_Turkic + + Orkh + 175 + + + + + + Oriya + oriya + Oriya + + Orya + 327 + + + + + + Osmanya + osmanais + Osmanya + + Osma + 260 + + + + + + Old Permic + ancien permien + + Perm + 227 + + + + + + Phags-pa + 'phags pa + Phags_Pa + + Phag + 331 + + + + + + Inscriptional Pahlavi + pehlevi des inscriptions + Inscriptional_Pahlavi + + Phli + 131 + + + + + + Psalter Pahlavi + pehlevi des psautiers + + Phlp + 132 + + + + + + Book Pahlavi + pehlevi des livres + + Phlv + 133 + + + + + + Phoenician + phenicien + Phoenician + + Phnx + 115 + + + + + + Miao (Pollard) + miao (Pollard) + + Plrd + 282 + + + + + + Inscriptional Parthian + parthe des inscriptions + Inscriptional_Parthian + + Prti + 130 + + + + + + Reserved for private use (start) + reserve a l'usage prive (debut) + + Qaaa + 900 + + + + + + Reserved for private use (end) + reserve a l'usage prive (fin) + + Qabx + 949 + + + + + + Rejang (Redjang, Kaganga) + redjang (kaganga) + Rejang + + Rjng + 363 + + + + + + Rongorongo + rongorongo + + Roro + 620 + + + + + + Runic + runique + Runic + + Runr + 211 + + + + + + Samaritan + samaritain + Samaritan + + Samr + 123 + + + + + + Sarati + sarati + + Sara + 292 + + + + + + Old South Arabian + sud-arabique, himyarite + Old_South_Arabian + + Sarb + 105 + + + + + + Saurashtra + saurachtra + Saurashtra + + Saur + 344 + + + + + + SignWriting + SignEcriture, SignWriting + + Sgnw + 095 + + + + + + Shavian (Shaw) + shavien (Shaw) + Shavian + + Shaw + 281 + + + + + + Sinhala + singhalais + Sinhala + + Sinh + 348 + + + + + + Sundanese + sundanais + Sundanese + + Sund + 362 + + + + + + Syloti Nagri + syloti nagri + Syloti_Nagri + + Sylo + 316 + + + + + + Syriac + syriaque + Syriac + + Syrc + 135 + + + + + + Syriac (Estrangelo variant) + syriaque (variante estranghelo) + + Syre + 138 + + + + + + Syriac (Western variant) + syriaque (variante occidentale) + + Syrj + 137 + + + + + + Syriac (Eastern variant) + syriaque (variante orientale) + + Syrn + 136 + + + + + + Tagbanwa + tagbanoua + Tagbanwa + + Tagb + 373 + + + + + + Tai Le + tai-le + Tai_Le + + Tale + 353 + + + + + + New Tai Lue + nouveau tai-lue + New_Tai_Lue + + Talu + 354 + + + + + + Tamil + tamoul + Tamil + + Taml + 346 + + + + + + Tai Viet + tai viet + Tai_Viet + + Tavt + 359 + + + + + + Telugu + telougou + Telugu + + Telu + 340 + + + + + + Tengwar + tengwar + + Teng + 290 + + + + + + Tifinagh (Berber) + tifinagh (berbere) + Tifinagh + + Tfng + 120 + + + + + + Tagalog (Baybayin, Alibata) + tagal (baybayin, alibata) + Tagalog + + Tglg + 370 + + + + + + Thaana + thana + Thaana + + Thaa + 170 + + + + + + Thai + thai + Thai + + Thai + 352 + + + + + + Tibetan + tibetain + Tibetan + + Tibt + 330 + + + + + + Ugaritic + ougaritique + Ugaritic + + Ugar + 040 + + + + + + Vai + vai + Vai + + Vaii + 470 + + + + + + Visible Speech + parole visible + + Visp + 280 + + + + + + Old Persian + cuneiforme persepolitain + Old_Persian + + Xpeo + 030 + + + + + + Cuneiform, Sumero-Akkadian + cuneiforme sumero-akkadien + Cuneiform + + Xsux + 020 + + + + + + Yi + yi + Yi + + Yiii + 460 + + + + + + Code for inherited script + codet pour ecriture heritee + Inherited + + Zinh + 994 + + + + + + Mathematical notation + notation mathematique + + Zmth + 995 + + + + + + Symbols + symboles + + Zsym + 996 + + + + + + Code for unwritten documents + codet pour les documents non ecrites + + Zxxx + 997 + + + + + + Code for undetermined script + codet pour ecriture indeterminee + Common + + Zyyy + 998 + + + + + + Code for uncoded script + codet pour ecriture non codee + Unknown + + Zzzz + 999 + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO3166-1.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO3166-1.xml new file mode 100644 index 0000000000..ae70183aef --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO3166-1.xml @@ -0,0 +1,1427 @@ + + + + + ISO 3166-1 is part of the ISO 3166 standard published by the International Organization for Standardization (ISO), and defines codes for the names of countries, dependent territories, and special areas of geographical interest. The official name of the standard is Codes for the representation of names of countries and their subdivisions - Part 1: Country codes. + + ISO3166-1 + Codes for the Representation of Country Names + + + AD + ANDORRA + + + + + AE + UNITED + + + + + AF + AFGHANISTAN + + + + + AG + ANTIGUA + + + + + AI + ANGUILLA + + + + + AL + ALBANIA + + + + + AM + ARMENIA + + + + + AN + NETHERLANDS + + + + + AO + ANGOLA + + + + + AQ + ANTARCTICA + + + + + AR + ARGENTINA + + + + + AS + AMERICAN + + + + + AT + AUSTRIA + + + + + AU + AUSTRALIA + + + + + AW + ARUBA + + + + + AZ + AZERBAIJAN + + + + + BA + BOSNIA + + + + + BB + BARBADOS + + + + + BD + BANGLADESH + + + + + BE + BELGIUM + + + + + BF + BURKINA + + + + + BG + BULGARIA + + + + + BH + BAHRAIN + + + + + BI + BURUNDI + + + + + BJ + BENIN + + + + + BM + BERMUDA + + + + + BN + BRUNEI + + + + + BO + BOLIVIA + + + + + BR + BRAZIL + + + + + BS + BAHAMAS + + + + + BT + BHUTAN + + + + + BV + BOUVET + + + + + BW + BOTSWANA + + + + + BY + BELARUS + + + + + BZ + BELIZE + + + + + CA + CANADA + + + + + CC + COCOS + + + + + CD + CONGO, + + + + + CF + CENTRAL + + + + + CG + CONGO + + + + + CH + SWITZERLAND + + + + + CI + C?TE + + + + + CK + COOK + + + + + CL + CHILE + + + + + CM + CAMEROON + + + + + CN + CHINA + + + + + CO + COLOMBIA + + + + + CR + COSTA + + + + + CU + CUBA + + + + + CV + CAPE + + + + + CX + CHRISTMAS + + + + + CY + CYPRUS + + + + + CZ + CZECH + + + + + DE + GERMANY + + + + + DJ + DJIBOUTI + + + + + DK + DENMARK + + + + + DM + DOMINICA + + + + + DO + DOMINICAN + + + + + DZ + ALGERIA + + + + + EC + ECUADOR + + + + + EE + ESTONIA + + + + + EG + EGYPT + + + + + EH + WESTERN + + + + + ER + ERITREA + + + + + ES + SPAIN + + + + + ET + ETHIOPIA + + + + + FI + FINLAND + + + + + FJ + FIJI + + + + + FK + FALKLAND + + + + + FM + MICRONESIA, + + + + + FO + FAROE + + + + + FR + FRANCE + + + + + GA + GABON + + + + + GB + UNITED + + + + + GD + GRENADA + + + + + GE + GEORGIA + + + + + GF + FRENCH + + + + + GH + GHANA + + + + + GI + GIBRALTAR + + + + + GL + GREENLAND + + + + + GM + GAMBIA + + + + + GN + GUINEA + + + + + GP + GUADELOUPE + + + + + GQ + EQUATORIAL + + + + + GR + GREECE + + + + + GS + SOUTH + + + + + GT + GUATEMALA + + + + + GU + GUAM + + + + + GW + GUINEA-BISSAU + + + + + GY + GUYANA + + + + + HK + HONG + + + + + HM + HEARD + + + + + HN + HONDURAS + + + + + HR + CROATIA + + + + + HT + HAITI + + + + + HU + HUNGARY + + + + + ID + INDONESIA + + + + + IE + IRELAND + + + + + IL + ISRAEL + + + + + IN + INDIA + + + + + IO + BRITISH + + + + + IQ + IRAQ + + + + + IR + IRAN, + + + + + IS + ICELAND + + + + + IT + ITALY + + + + + JM + JAMAICA + + + + + JO + JORDAN + + + + + JP + JAPAN + + + + + KE + KENYA + + + + + KG + KYRGYZSTAN + + + + + KH + CAMBODIA + + + + + KI + KIRIBATI + + + + + KM + COMOROS + + + + + KN + SAINT + + + + + KP + KOREA, + + + + + KR + KOREA, + + + + + KW + KUWAIT + + + + + KY + CAYMAN + + + + + KZ + KAZAKHSTAN + + + + + LA + LAO + + + + + LB + LEBANON + + + + + LC + SAINT + + + + + LI + LIECHTENSTEIN + + + + + LK + SRI + + + + + LR + LIBERIA + + + + + LS + LESOTHO + + + + + LT + LITHUANIA + + + + + LU + LUXEMBOURG + + + + + LV + LATVIA + + + + + LY + LIBYAN + + + + + MA + MOROCCO + + + + + MC + MONACO + + + + + MD + MOLDOVA, + + + + + MG + MADAGASCAR + + + + + MH + MARSHALL + + + + + MK + MACEDONIA, + + + + + ML + MALI + + + + + MM + MYANMAR + + + + + MN + MONGOLIA + + + + + MO + MACAU + + + + + MP + NORTHERN + + + + + MQ + MARTINIQUE + + + + + MR + MAURITANIA + + + + + MS + MONTSERRAT + + + + + MT + MALTA + + + + + MU + MAURITIUS + + + + + MV + MALDIVES + + + + + MW + MALAWI + + + + + MX + MEXICO + + + + + MY + MALAYSIA + + + + + MZ + MOZAMBIQUE + + + + + NA + NAMIBIA + + + + + NC + NEW + + + + + NE + NIGER + + + + + NF + NORFOLK + + + + + NG + NIGERIA + + + + + NI + NICARAGUA + + + + + NL + NETHERLANDS + + + + + NO + NORWAY + + + + + NP + NEPAL + + + + + NU + NIUE + + + + + NZ + NEW + + + + + OM + OMAN + + + + + PA + PANAMA + + + + + PE + PERU + + + + + PF + FRENCH + + + + + PG + PAPUA + + + + + PH + PHILIPPINES + + + + + PK + PAKISTAN + + + + + PL + POLAND + + + + + PM + SAINT + + + + + PN + PITCAIRN + + + + + PR + PUERTO + + + + + PT + PORTUGAL + + + + + PW + PALAU + + + + + PY + PARAGUAY + + + + + QA + QATAR + + + + + RE + R?UNION + + + + + RO + ROMANIA + + + + + RU + RUSSIAN + + + + + RW + RWANDA + + + + + SA + SAUDI + + + + + SB + SOLOMON + + + + + SC + SEYCHELLES + + + + + SD + SUDAN + + + + + SE + SWEDEN + + + + + SG + SINGAPORE + + + + + SH + SAINT + + + + + SI + SLOVENIA + + + + + SJ + SVALBARD + + + + + SK + SLOVAKIA + + + + + SL + SIERRA + + + + + SM + SAN + + + + + SN + SENEGAL + + + + + SO + SOMALIA + + + + + SR + SURINAME + + + + + ST + SAO + + + + + SV + EL + + + + + SY + SYRIAN + + + + + SZ + SWAZILAND + + + + + TC + TURKS + + + + + TD + CHAD + + + + + TF + FRENCH + + + + + TG + TOGO + + + + + TH + THAILAND + + + + + TJ + TAJIKISTAN + + + + + TK + TOKELAU + + + + + TM + TURKMENISTAN + + + + + TN + TUNISIA + + + + + TO + TONGA + + + + + TP + EAST + + + + + TR + TURKEY + + + + + TT + TRINIDAD + + + + + TV + TUVALU + + + + + TW + TAIWAN, + + + + + TZ + TANZANIA, + + + + + UA + UKRAINE + + + + + UG + UGANDA + + + + + UM + UNITED + + + + + US + UNITED + + + + + UY + URUGUAY + + + + + UZ + UZBEKISTAN + + + + + VE + VENEZUELA + + + + + VG + VIRGIN + + + + + VI + VIRGIN + + + + + VN + VIET + + + + + VU + VANUATU + + + + + WF + WALLIS + + + + + WS + SAMOA + + + + + YE + YEMEN + + + + + YT + MAYOTTE + + + + + YU + YUGOSLAVIA + + + + + ZA + SOUTH + + + + + ZM + ZAMBIA + + + + + ZW + ZIMBABWE + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO639-3.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO639-3.xml new file mode 100644 index 0000000000..17f26d7268 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/ISO639-3.xml @@ -0,0 +1,3047 @@ + + + + + ISO 639-3 is a code that aims to define three-letter identifiers for all known human languages. At the core of ISO 639-3 are the individual languages already accounted for in ISO 639-2. The large number of living languages in the initial inventory of ISO 639-3 beyond those already included in ISO 639-2 was derived primarily from Ethnologue (15th edition). Additional extinct, ancient, historic, and constructed languages have been obtained from Linguist List. + + ISO639-3 + Codes for the Representation of Names of Languages + + + aaa + Ghotuo + + + + + aab + Alumu-Tesu + + + + + aaa + Ari + + + + + aac + Amal + + + + + aae + Arbereshe Albanian + + + + + aac + Aranadan + + + + + aae + Ambrak + + + + + aae + Abu' Arapesh + + + + + aac + Arifama-Miniafia + + + + + aak + Ankave + + + + + aae + Afade + + + + + aal + Aramanik + + + + + aac + Anambe + + + + + aah + Algerian Saharan Arabic + + + + + aan + Para Arara + + + + + aaa + Eastern Abnaki + + + + + aae + Afar + + + + + aai + Aasax + + + + + aan + Arvanitika Albanian + + + + + aar + Abau + + + + + aaw + Solong + + + + + aab + Mandobo Atas + + + + + aae + Amarasi + + + + + aah + Abe + + + + + aal + Bankon + + + + + aao + Ambala Ayta + + + + + aar + Camarines Norte Agta + + + + + aau + Western Abnaki + + + + + aaz + Abai Sungai + + + + + abc + Abaga + + + + + abf + Tajiki Arabic + + + + + abi + Abidji + + + + + aaa + Aka-Bea + + + + + aac + Abkhazian + + + + + aae + Lampung Nyo + + + + + aag + Abanyom + + + + + aai + Abua + + + + + aal + Abon + + + + + aan + Abenlen Ayta + + + + + aap + Abaza + + + + + aar + Abron + + + + + aat + Ambonese Malay + + + + + aaw + Ambulas + + + + + aaz + Abure + + + + + abb + Baharna Arabic + + + + + abd + Pal + + + + + abf + Inabaknon + + + + + abh + Aneme Wake + + + + + abj + Abui + + + + + abl + Achagua + + + + + abn + Anca + + + + + abp + Gikyode + + + + + abr + Achinese + + + + + abt + Saint Lucian Creole French + + + + + abv + Acoli + + + + + abx + Aka-Cari + + + + + abz + Aka-Kora + + + + + acb + Akar-Bale + + + + + ace + Mesopotamian Arabic + + + + + acf + Achang + + + + + ach + Eastern Acipa + + + + + aci + Ta'izzi-Adeni Arabic + + + + + ack + Achi + + + + + acl + Acroa + + + + + acm + Achterhoeks + + + + + acn + Achuar-Shiwiar + + + + + acp + Achumawi + + + + + acq + Hijazi Arabic + + + + + acr + Omani Arabic + + + + + acs + Cypriot Arabic + + + + + act + Acheron + + + + + acu + Adangme + + + + + acv + Adabe + + + + + acw + Dzodinka + + + + + acx + Adele + + + + + acy + Dhofari Arabic + + + + + acz + Andegerebinha + + + + + ada + Adhola + + + + + adb + Adi + + + + + add + Adioukrou + + + + + ade + Galo + + + + + adf + Adang + + + + + adg + Abu + + + + + adh + Adap + + + + + adi + Adangbe + + + + + adj + Adonara + + + + + adl + Adamorobe Sign Language + + + + + adn + Adnyamathanha + + + + + ado + Aduge + + + + + adp + Amundava + + + + + adq + Amdo Tibetan + + + + + adr + Adyghe + + + + + ads + Adzera + + + + + adt + Areba + + + + + adu + Tunisian Arabic + + + + + adw + Saidi Arabic + + + + + adx + Argentine Sign Language + + + + + ady + Northeast Pashayi + + + + + adz + Haeke + + + + + aea + Ambele + + + + + aeb + Arem + + + + + aec + Armenian Sign Language + + + + + aed + Aer + + + + + aee + Eastern Arrernte + + + + + aek + Alsea + + + + + ael + Akeu + + + + + aem + Ambakich + + + + + aen + Amele + + + + + aeq + Aeka + + + + + aer + Gulf Arabic + + + + + aes + Andai + + + + + aeu + Putukwam + + + + + aew + Afghan Sign Language + + + + + aey + Afrihili + + + + + aez + Akrukay + + + + + afb + Nanubae + + + + + afd + Defaka + + + + + afe + Eloyi + + + + + afg + Tapei + + + + + afh + Afrikaans + + + + + afi + Afro-Seminole Creole + + + + + afk + Afitti + + + + + afn + Awutu + + + + + afo + Obokuitai + + + + + afp + Aguano + + + + + afr + Legbo + + + + + afs + Agatu + + + + + aft + Agarabi + + + + + afu + Angal + + + + + afz + Arguni + + + + + aga + Angor + + + + + agb + Ngelima + + + + + agc + Agariya + + + + + agd + Argobba + + + + + age + Isarog Agta + + + + + agf + Fembe + + + + + agg + Angaataha + + + + + agh + Agutaynen + + + + + agi + Tainae + + + + + agj + Paranan + + + + + agk + Aghem + + + + + agl + Aguaruna + + + + + agm + Esimbi + + + + + agn + Central Cagayan Agta + + + + + ago + Aguacateco + + + + + agp + Remontado Agta + + + + + agq + Kahua + + + + + agr + Aghul + + + + + ags + Southern Alta + + + + + agt + Mt. Iriga Agta + + + + + agu + Ahanta + + + + + agv + Axamb + + + + + agw + Qimant + + + + + agx + Aghu + + + + + agy + Tiagbamrin Aizi + + + + + agz + Akha + + + + + aha + Igo + + + + + ahb + Mobumrin Aizi + + + + + ahg + Ahan + + + + + ahh + Ahom + + + + + ahi + Aproumu Aizi + + + + + ahk + Ahirani + + + + + ahl + Ashe + + + + + ahm + Ahtena + + + + + ahn + Arosi + + + + + aho + Ainu (China) + + + + + ahp + Ainbai + + + + + ahr + Alngith + + + + + ahs + Amara + + + + + aht + Agi + + + + + aia + Antigua and Barbuda Creole English + + + + + aib + Ai-Cham + + + + + aic + Assyrian Neo-Aramaic + + + + + aid + Lishanid Noshan + + + + + aie + Ake + + + + + aif + Aimele + + + + + aig + Aimol + + + + + aih + Ainu (Japan) + + + + + aii + Aiton + + + + + aij + Burumakok + + + + + aik + Aimaq + + + + + ail + Airoran + + + + + aim + Nataoran Amis + + + + + ain + Arikem + + + + + aio + Aari + + + + + aip + Aighon + + + + + aiq + Ali + + + + + air + Aja (Sudan) + + + + + ais + Aja (Benin) + + + + + ait + Ajie + + + + + aiw + South Levantine Arabic + + + + + aix + Judeo-Tunisian Arabic + + + + + aiy + Judeo-Moroccan Arabic + + + + + aja + Ajawa + + + + + ajg + Amri Karbi + + + + + aji + AkanMacrolanguageLivingmore ... + + + + + ajp + Batak Angkola + + + + + ajt + Mpur + + + + + aju + Ukpet-Ehom + + + + + ajw + Akawaio + + + + + ajz + Akpa + + + + + aka + Anakalangu + + + + + akb + Angal Heneng + + + + + akc + Aiome + + + + + akd + Aka-Jeru + + + + + ake + Akkadian + + + + + akf + Aklanon + + + + + akg + Aka-Bo + + + + + akh + Akurio + + + + + aki + Siwu + + + + + akj + Ak + + + + + akk + Araki + + + + + akl + Akaselem + + + + + akm + Akolet + + + + + ako + Akum + + + + + akp + Akhvakh + + + + + akq + Akwa + + + + + akr + Aka-Kede + + + + + aks + Aka-Kol + + + + + akt + Alabama + + + + + aku + Alago + + + + + akv + Qawasqar + + + + + akw + Alladian + + + + + akx + Aleut + + + + + aky + Alege + + + + + akz + Alawa + + + + + ala + Amaimon + + + + + alc + Alangan + + + + + ald + Alak + + + + + ale + Allar + + + + + alf + Amblong + + + + + alh + Gheg Albanian + + + + + ali + Larike-Wakasihu + + + + + alj + Alune + + + + + alk + Algonquin + + + + + all + Alutor + + + + + alm + Tosk Albanian + + + + + aln + Southern Altai + + + + + alo + 'Are'are + + + + + alp + Alaba-K�abeena + + + + + alq + Amol + + + + + alr + Alyawarr + + + + + als + Alur + + + + + alt + Amanaye + + + + + alu + Ambo + + + + + alw + Amahuaca + + + + + alx + Yanesha' + + + + + aly + Hamer-Banna + + + + + alz + Amarag + + + + + ama + Amharic + + + + + amb + Amis + + + + + amc + Amdang + + + + + ame + Ambai + + + + + amf + War-Jaintia + + + + + amg + Ama (Papua New Guinea) + + + + + amh + Amanab + + + + + ami + Amo + + + + + amj + Alamblak + + + + + amk + Amahai + + + + + aml + Amarakaeri + + + + + amm + Southern Amami-Oshima + + + + + amn + Amto + + + + + amo + Guerrero Amuzgo + + + + + amp + Ambelau + + + + + amq + Western Neo-Aramaic + + + + + amr + Anmatyerre + + + + + ams + Ami + + + + + amt + Atampaya + + + + + amu + Andaqui + + + + + amv + Andoa + + + + + amw + Ngas + + + + + amx + Ansus + + + + + amy + Xaracuu + + + + + amz + Animere + + + + + ana + Old English (ca. 450-1100) + + + + + anb + Nend + + + + + anc + Andi + + + + + and + Anor + + + + + ane + Goemai + + + + + anf + Anu + + + + + ang + Anal + + + + + anh + Obolo + + + + + ani + Andoque + + + + + anj + Angika + + + + + ank + Jarawa (India) + + + + + anl + Andh + + + + + anm + Anserma + + + + + ann + Antakarinya + + + + + ano + Anuak + + + + + anp + Denya + + + + + anq + Anaang + + + + + anr + Andra-Hus + + + + + ans + Anyin + + + + + ant + Anem + + + + + anu + Angolar + + + + + anv + Abom + + + + + anw + Pemon + + + + + anx + Andarum + + + + + any + Angal Enen + + + + + anz + Bragat + + + + + aoa + Angoram + + + + + aob + Arma + + + + + aoc + Anindilyakwa + + + + + aod + Mufian + + + + + aoe + Arho + + + + + aof + Alor + + + + + aog + Omie + + + + + aoh + Bumbita Arapesh + + + + + aoi + Aore + + + + + aoj + Taikat + + + + + aok + A'tong + + + + + aol + Atorada + + + + + aom + Uab Meto + + + + + aon + Sa'a + + + + + aor + North Levantine Arabic + + + + + aos + Sudanese Arabic + + + + + aot + Bukiyip + + + + + aox + Ampanang + + + + + aoz + Athpariya + + + + + apb + Apiaka + + + + + apc + Jicarilla Apache + + + + + apd + Kiowa Apache + + + + + ape + Lipan Apache + + + + + apg + Mescalero-Chiricahua Apache + + + + + aph + Apinaye + + + + + api + Apalik + + + + + apj + Apma + + + + + apk + A-Pucikwar + + + + + apl + Arop-Lokep + + + + + apm + Arop-Sissano + + + + + apn + Apatani + + + + + apo + Apurina + + + + + app + Alapmunte + + + + + apq + Western Apache + + + + + apr + Aputai + + + + + aps + Apalai + + + + + apt + Safeyoka + + + + + apu + Archi + + + + + apv + Arigidi + + + + + apw + Atohwaim + + + + + apx + Northern Alta + + + + + apy + Atakapa + + + + + apz + Arh� + + + + + aqc + ArabicMacrolanguageLivingmore ... + + + + + aqg + Standard Arabic + + + + + aqm + Official Aramaic (700-300 BCE) + + + + + aqn + Arabana + + + + + aqp + Western Arrarnta + + + + + aqr + Aragonese + + + + + ara + Arhuaco + + + + + arb + Arikara + + + + + arc + Arapaso + + + + + ard + Arikapu + + + + + are + Arabela + + + + + arg + Mapudungun + + + + + arh + Araona + + + + + ari + Arapaho + + + + + arj + Algerian Arabic + + + + + ark + Karo (Brazil) + + + + + arl + Najdi Arabic + + + + + arn + Arua (Amazonas State) + + + + + aro + Arbore + + + + + arp + Arawak + + + + + arq + Arua (Rodonia State) + + + + + arr + Moroccan Arabic + + + + + ars + Egyptian Arabic + + + + + aru + Asu (Tanzania) + + + + + arv + Assiniboine + + + + + arw + Casuarina Coast Asmat + + + + + arx + Asas + + + + + ary + American Sign Language + + + + + arz + Australian Sign Language + + + + + asa + Cishingini + + + + + asb + Abishira + + + + + asc + Buruwai + + + + + asd + Nsari + + + + + ase + Ashkun + + + + + asf + Asilulu + + + + + asg + Assamese + + + + + ash + Xingu Asurini + + + + + asi + Dano + + + + + asj + Algerian Sign Language + + + + + ask + Austrian Sign Language + + + + + asl + Asuri + + + + + asm + Ipulo + + + + + asn + Asturian + + + + + aso + Tocantins Asurini + + + + + asp + Asoa + + + + + asq + Australian Aborigines Sign Language + + + + + asr + Muratayak + + + + + ass + Yaosakor Asmat + + + + + ast + As + + + + + asu + Pele-Ata + + + + + asv + Zaiwa + + + + + asw + Atsahuaca + + + + + asx + Ata Manobo + + + + + asy + Atemble + + + + + asz + Ivbie North-Okpela-Arhe + + + + + ata + Attie + + + + + atb + Atikamekw + + + + + atc + Ati + + + + + atd + Mt. Iraya Agta + + + + + ate + Ata + + + + + atg + Ashtiani + + + + + ati + Atong + + + + + atj + Pudtol Atta + + + + + atk + Aralle-Tabulahan + + + + + atl + Waimiri-Atroari + + + + + atm + Gros Ventre + + + + + atn + Pamplona Atta + + + + + ato + Reel + + + + + atp + Northern Altai + + + + + atq + Atsugewi + + + + + atr + Arutani + + + + + ats + Aneityum + + + + + att + Arta + + + + + atu + Asumboa + + + + + atv + Alugu + + + + + atw + Waorani + + + + + atx + Anuta + + + + + aty + =/Kx'au//'ein + + + + + atz + Aguna + + + + + aua + Aushi + + + + + aub + Anuki + + + + + auc + Awjilah + + + + + aud + Heyo + + + + + aue + Aulua + + + + + aug + Asu (Nigeria) + + + + + auh + Molmo One + + + + + aui + Auyokawa + + + + + auj + Makayam + + + + + auk + Anus + + + + + aul + Aruek + + + + + aum + Austral + + + + + aun + Auye + + + + + auo + Awyi + + + + + aup + Aura + + + + + auq + Awiyaana + + + + + aur + Uzbeki Arabic + + + + + aut + Avaric + + + + + auu + Avau + + + + + auw + Alviri-Vidari + + + + + aux + Avestan + + + + + auy + Avikam + + + + + auz + Kotava + + + + + ava + Eastern Egyptian Bedawi Arabic + + + + + avb + Avatime + + + + + avd + Agavotaguerra + + + + + ave + Aushiri + + + + + avi + Au + + + + + avk + Avokaya + + + + + avl + Av�-Canoeiro + + + + + avn + awa Awadhi + + + + + avo + Awa (Papua New Guinea) + + + + + avs + Cicipu + + + + + avt + Aweti + + + + + avu + Awbono + + + + + avv + Aekyom + + + + + awa + Awabakal + + + + + awb + Arawum + + + + + awc + Awngi + + + + + awe + Awak + + + + + awh + Awera + + + + + awi + South Awyu + + + + + awk + Arawete + + + + + awm + Central Awyu + + + + + awn + Jair Awyu + + + + + awo + Awun + + + + + awr + Awara + + + + + aws + Edera Awyu + + + + + awt + Abipon + + + + + awu + Mato Grosso Arara + + + + + awv + Yaka (Central African Republic) + + + + + aww + Middle Armenian + + + + + awx + Xaragure + + + + + awy + Awar + + + + + axb + Ayizo Gbe + + + + + axg + Southern Aymara + + + + + axk + Ayabadhu + + + + + axm + Ayere + + + + + axx + Ginyanga + + + + + aya + Hadrami Arabic + + + + + ayb + Leyigha + + + + + ayc + Akuku + + + + + ayd + Libyan Arabic + + + + + aye + Aymara + + + + + ayg + Sanaani Arabic + + + + + ayh + Ayoreo + + + + + ayi + North Mesopotamian Arabic + + + + + ayk + Ayi (Papua New Guinea) + + + + + ayl + Central Aymara + + + + + aym + Sorsogon Ayta + + + + + ayn + Bataan Ayta + + + + + ayo + Ayu + + + + + ayp + Ayi (China) + + + + + ayq + Tayabas Ayta + + + + + ayr + Mai Brat + + + + + ays + Azha + + + + + ayt + South Azerbaijani + + + + + ayu + Azerbaijani + + + + + ayx + San Pedro Amuzgos Amuzgo + + + + + ayy + North Azerbaijani + + + + + ayz + Ipalapa Amuzgo + + + + + aza + Awing + + + + + azb + Faire Atta + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierBibliographicTypeCodeDictionary.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierBibliographicTypeCodeDictionary.xml new file mode 100644 index 0000000000..7cdc6f0ef7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierBibliographicTypeCodeDictionary.xml @@ -0,0 +1,52 @@ + + + + + The type of a bibliographic reference citation for a location instance in a gazetteer. + + GeoIdentifierBibliographicTypeCode + DoD/IC Dictionary: GSIP Geographic Identifier Bibliographic Reference Citation Type Code Dictionary + + + + A collection of data records intended for computer processing. + dataset + Dataset + + + + + A formal meeting in which one or more persons question, consult, or evaluate another person. + interview + Interview + + + + + A representation of the features of an area of the Earth that portrays them in their respective forms, sizes, and relationships according to some convention of representation on a flat surface. + map + Map + + + + + A book or other written or printed work. + text + Text + + + + + A connected group of pages on the World Wide Web regarded as a single entity, usually maintained by one person or organization and devoted to a single topic or several closely related topics. + website + Website + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierIDTypeCodeDictionary.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierIDTypeCodeDictionary.xml new file mode 100644 index 0000000000..635b96282b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierIDTypeCodeDictionary.xml @@ -0,0 +1,31 @@ + + + + + The type of an identification for a location type in a gazetteer. + + GeoIdentifierIDTypeCode + DoD/IC Dictionary: GSIP Geographic Identifier Identification Type Code Dictionary + + + + An assigned unique alphanumeric string (or 'code') by which a particular geographic entity is, or was, known. + code + Code + + + + + A unique proper name, specific term, or expression by which a particular geographic entity is, or was, known. + name + Name + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierNameTypeCodeDictionary.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierNameTypeCodeDictionary.xml new file mode 100644 index 0000000000..e0322f4c46 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierNameTypeCodeDictionary.xml @@ -0,0 +1,118 @@ + + + + + The type of an alternative geographic identifier (e.g., a name) of a location instance in a gazetteer. + + GeoIdentifierNameTypeCode + DoD/IC Dictionary: GSIP Geographic Identifier Name Type Code Dictionary + + + + + + + The approved geographic name for a feature as determined in accordance with the naming policy of the U.S. Board on Geographic Names (BGN). + approved + Approved + + + + + An English name that is in widespread usage for a feature that is located in a region where English is not the official language. + conventional + Conventional + + + + + A historical name for a feature that remains in the original (non-Latin/Roman) script. + historicalOriginal + Historical Original + + + + + A historical name for a feature that has been transliterated to the Latin/Roman script as necessary. + historicalTransliterated + Historical Transliterated + + + + + The official local name for a feature that remains in the original (non-Latin/Roman) script and is approved by the U.S. Board on Geographic Names (BGN). + nativeOriginal + Native Original + + + + + The official local name for a feature that has been transliterated to the Latin/Roman script as necessary and is approved by the U.S. Board on Geographic Names (BGN). + nativeTransliterated + Native Transliterated + + + + + A provisional name for a feature that remains in the original (non-Latin/Roman) script. + provisionalOriginal + Provisional Native + + + + + A local name for a feature that remains in the original (non-Latin/Roman) script, where a native source for the name was either unavailable or nonexistant and a non-native source for the name was used instead and the resulting name could not be verified from a recent local official source. + unverifiedOriginal + Unverified Original + An unverified name is usually indicated in a gazetteer using the dagger symbol. + + + + + A local name for a feature that has been transliterated to the Latin/Roman script as necessary, where a native source for the name was either unavailable or nonexistant and a non-native source for the name was used instead and the resulting name could not be verified from a recent local official source. + unverifiedTransliterated + Unverified Transliterated + An unverified name is usually indicated in a gazetteer using the dagger symbol. + + + + + A variant or alternate name for a feature that remains in the original (non-Latin/Roman) script. + variantOriginal + Variant Original + For example, a former name, a name in local usage, alternate name spellings found in various sources, or a derived short name. + + + + + A variant or alternate name for a feature that has been transliterated to the Latin/Roman script as necessary. + variantTransliterated + Variant Transliterated + For example, a former name, a name in local usage, alternate name spellings found in various sources, or a derived short name. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/si.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/si.xsd new file mode 100644 index 0000000000..5291432c69 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19112/BP_2012/si.xsd @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + A collection of location instances. + + + + + A collection-type intended for use as a generic container of location instances. + + + + + + + + + + + + + + + + + + + + + A spatial reference system using geographic identifiers. It is comprised of one or more location types (which may +be related). Each location instance is uniquely identified by means of a geographic identifier. [ISO 19112:2003 Clause 7.1] For example, countries as defined in ISO 3166-1 or named population centres in a region. + + + + + A spatial reference system using geographic identifiers type. A spatial reference system using geographic identifiers is comprised of a related set of one or more location types, together with their corresponding geographic identifiers. These location types may be related to each other through aggregation or disaggregation, possibly forming a hierarchy. [ISO 19112:2003 Clause 6.2] For example, countries as defined in ISO 3166-1 or named population centres in a region. + + + + + + + + The name of a spatial reference system using geographic identifiers. + + + + + + The geographic area within which the reference system occurs. + + + + + + + A characterization of the basis for the spatial reference system. For example: 'administration', 'electoral', and 'postal'. + + + + + Authority with overall responsibility for the spatial reference system. + + + + + + iso19112:SI_LocationType + The location type in the spatial reference system. + + + + + + + + + + + + + A location type in a spatial reference system. A location type specifies the nature of the location that is specified by a location instance. For example, a "county", a "town", a "property", or a "river". + + + + + A location type type in a spatial reference system. + + + + + + + + The name of the location type. + + + + + + A method of uniquely identifying location instances. For example, 'name' or 'code'. + + + + + + The way in which location instances are defined. The definition of the location type shall be in the form of one of the following: + - an area, defined by a set of boundaries, for example countries defined by their borders; + - a single feature, for example a street defined by its centre line, or a junction of two such streets; + - a collection of smaller features, for example trade areas defined by groups of countries. +Where a location type is defined as a collection of smaller units, an instance of that location need not have a well-defined boundary, for +example a postal code defined as a collection of postal delivery points. + + + + + + The geographic area within which the location type occurs. For example, in the case of a gazetteer of "rivers” then the extent of North America. + + + + + The name of the organization or class of organization that is able to create and destroy location instances. + + + + + + + iso19112:SI_LocationType + A parent location type (a location type of which this location type is a subdivision). Parent and child location types are linked to the location type by the nesting association. + + + + + iso19112:SI_LocationType + A child location type (a location type which subdivides this location type). Parent and child location types are linked to the location type by the nesting association. + + + + + + + + + + + + A gazetteer is a directory of geographic identifiers describing location instances. It will contain additional information regarding the position of each location instance. It may include a coordinate reference, but it may also be purely descriptive. If it contains a coordinate reference, this will enable transformation from the spatial reference system using geographic identifiers to the coordinate reference system. If it contains a descriptive reference, this will be a spatial reference using a different spatial reference system with geographic identifiers, for example the postcode of a property. For any location type, there may be more than one gazetteer. + + + + + A gazetteer type; a gazetteer is a directory of geographic identifiers describing location instances. + + + + + + + + The name of the gazetteer, including its version date. A new version of the gazetteer shall be created whenever any location instance is created or destroyed, or a new version of a location instance is created. + + + + + + A description of the location types contained in the gazetteer. For example, the “rivers of North America” or the “streets of London”. + + + + + + The geographic domain covered by the gazetteer. For example, for a gazetteer of rivers the extent of North America, or for a gazetteer of streets the extent of the City of London. + + + + + The organization responsible for maintenance of the gazetteer. + + + + + The coordinate reference system, if any, that is used in the gazetteer for describing position. The coordinate reference system provides a linking mechanism between referencing using geographic identifiers and referencing using coordinates. + + + + + iso19112:SI_LocationType + The location type for which instances are recorded in the gazetteer. + + + + + + + + + + + + A location instance in a spatial reference system. A location instance specifies a location that is characterized by a location type. For example, a particular "county", "town", "property", or "river". + + + + + A location instance in a spatial reference system. + + + + + + + + The unique geographic identifier for the location instance. In order to ensure that the geographic identifier is unique within a wider geographic domain, the geographic identifier may need to include an identifier of an instance of a parent location type, for example “Paris, Texas” (as distinguished from "Paris, France"). + + + + + Optional additional geographic identifiers for the location instance. + + + + + The coordinates of a representative point for the location instance. An example of the position is the coordinates of the centroid of the location instance. This provides a linking mechanism to spatial referencing by coordinates. + + + + + + A description of the location instance. The geographic extent shall be defined in one of the following ways: + - as a collection of smaller geographic features, for example the European Union, defined by its constituent countries; + - by a bounding polygon, described by either of the following: + -- as a closed set of boundary segments (each defined by one or more geographic features), for example a block defined +by the bounding streets; + -- by a set of coordinates, for example, a land parcel defined by the coordinates of its boundary. + + + + + + The date of creation of this version of the location instance. The temporal extent will normally be the date of creation of this version of the gazetteer containing this location instance. + + + + + The name of organization responsible for defining the characteristics of the location instance. + + + + + Optional reference to the feature being identified by this location instance. + + + + + iso19112:SI_LocationInstance + A location instance of a different location type, for which this location instance is a sub-division. + + + + + iso19112:SI_LocationInstance + A location instance of a different location type, which subdivides this location instance. + + + + + iso19112:SI_LocationType + The location type of this location instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Optionally identifies partner organization that specified this geographic identifier, such as 'State of Montana'. + + + + + + A unique geographic identifier for a location instance. In order to ensure that the geographic identifier is unique within a wider geographic domain, the geographic identifier may need to include an identifier of an instance of a parent location type, for example “Paris, Texas” (as distinguished from "Paris, France"). + + + + + + An identifier associated with the (e.g., name) geographic identifier. + + + + + + Domain value describing if the alternativeGeographicIdentifier value (e.g, name) is, for example, an 'official' or 'variant'. For example, Canada has two official languages so there may be two official names; one English and one French. + + + + + Optionally, the date on which this geographic identifier (e.g., a name) was determined. + + + + + Identifies whether this geographic identifier (e.g., a name) is considered to be primary for the location instance. + + + + + + Optional bibliographic reference citation codes (e.g., in the case that this geographic identifier is a "name"). + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/ReadMe.txt new file mode 100644 index 0000000000..8a1ac7cb02 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/ReadMe.txt @@ -0,0 +1,26 @@ +ISO(c) ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Information - Metadata - XML Schema Implementation + +This XML Schema implementation is composed of the following namespaces: +- Geographic Common (GCO) extensible markup language + (http://www.isotc211.org/2005/gco) +- Geographic MetaData (GMD) extensible markup language + (http://www.isotc211.org/2005/gmd) +- Geographic Metadata XML (GMX) Schema (http://www.isotc211.org/2005/gmx) +- Geographic Spatial Schema (GSS) extensible markup language + (http://www.isotc211.org/2005/gss) +- Geographic Spatial Referencing (GSR) extensible markup language + (http://www.isotc211.org/2005/gsr) +- Geographic Temporal Schema (GTS) extensible markup language + (http://www.isotc211.org/2005/gts) + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +XML resources related to those namespaces are also provided at this location. + +------------------------------------------------------------------------------- + +See X\ReadMe.txt for details of lineage and modification of the package X diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/ReadMe.txt new file mode 100644 index 0000000000..db0b4ed98b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/ReadMe.txt @@ -0,0 +1,47 @@ +ISO(c) GCO schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic COmmon (GCO) extensible markup language + +GCO is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GCO includes all the definitions of http://www.isotc211.org/2005/gco +namespace. The root document of this namespace is the file gco.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Adoption of W3C Implementation of XLink: + - schemaLocation changed to: http://www.w3.org/1999/xlink.xsd + - xlink:simpleLink renamed xlink:simpleAttrs + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GCO + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GCO + * GCO XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (nicolas.lesage@ign.fr). diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/basicTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/basicTypes.xsd new file mode 100644 index 0000000000..49df769221 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/basicTypes.xsd @@ -0,0 +1,431 @@ + + + + + Geographic COmmon (GCO) extensible markup language is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. GCO includes all the definitions of http://www.isotc211.org/2005/gco namespace. The root document of this namespace is the file gco.xsd. This basicTypes.xsd schema implements concepts from the "basic types" package of ISO/TS 19103. + + + + + + + + + + + + + A TypeName is a LocalName that references either a recordType or object type in some form of schema. The stored value "aName" is the returned value for the "aName()" operation. This is the types name. - For parsing from types (or objects) the parsible name normally uses a "." navigation separator, so that it is of the form [class].[member].[memberOfMember]. ...) + + + + + + + + + + + + + + + + + + + + + + + A MemberName is a LocalName that references either an attribute slot in a record or recordType or an attribute, operation, or association role in an object instance or type description in some form of schema. The stored value "aName" is the returned value for the "aName()" operation. + + + + + + + + + + + + + + + + + + + + + + + + Use to represent the possible cardinality of a relation. Represented by a set of simple multiplicity ranges. + + + + + + + + + + + + + + + + + + + + + + + A component of a multiplicity, consisting of an non-negative lower bound, and a potentially infinite upper bound. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/gco.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/gco.xsd new file mode 100644 index 0000000000..6090d49d5f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/gco.xsd @@ -0,0 +1,12 @@ + + + + + Geographic COmmon (GCO) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GCO includes all the definitions of http://www.isotc211.org/2005/gco namespace. The root document of this namespace is the file gco.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/gcoBase.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/gcoBase.xsd new file mode 100644 index 0000000000..2f34174fb3 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gco/gcoBase.xsd @@ -0,0 +1,63 @@ + + + + + Geographic COmmon (GCO) extensible markup language is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. GCO includes all the definitions of http://www.isotc211.org/2005/gco namespace. The root document of this namespace is the file gco.xsd. This gcoBase.xsd schema provides: + 1. tools to handle specific objects like "code lists" and "record"; + 2. Some XML types representing that do not follow the general encoding rules. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/ReadMe.txt new file mode 100644 index 0000000000..2c4c7c66c8 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/ReadMe.txt @@ -0,0 +1,45 @@ +ISO(c) GMD schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic MetaData (GMD) extensible markup language + +GMD is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GMD includes all the definitions of http://www.isotc211.org/2005/gmd +namespace. The root document of this namespace is the file gmd.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GMD + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GMD + * GMD XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (http://www.ign.fr). + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/applicationSchema.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/applicationSchema.xsd new file mode 100644 index 0000000000..0a7ccbbb5b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/applicationSchema.xsd @@ -0,0 +1,43 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This applicationSchema.xsd schema implements the UML conceptual schema defined in A.2.12 of ISO 19115:2003. It contains the implementation of the class MD_ApplicationSchemaInformation. + + + + + + + + + + + Information about the application schema used to build the dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/citation.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/citation.xsd new file mode 100644 index 0000000000..4f5d7dd1d7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/citation.xsd @@ -0,0 +1,276 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This citation.xsd schema implements the UML conceptual schema defined in A.3.2 of ISO 19115:2003. It contains the implementation of the following classes: CI_ResponsibleParty, CI_Citation, CI_Address, CI_OnlineResource, CI_Contact, CI_Telephone, URL, CI_Date, CI_Series, CI_RoleCode, CI_PresentationFormCode, CI_OnLineFunctionCode, CI_DateTypeCode. + + + + + + + + + + + Identification of, and means of communication with, person(s) and organisations associated with the dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + Standardized resource reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Location of the responsible individual or organisation + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information about online sources from which the dataset, specification, or community profile name and extended metadata elements can be obtained. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information required enabling contact with the responsible person and/or organisation + + + + + + + + + + + + + + + + + + + + + + + + + + + Telephone numbers for contacting the responsible individual or organisation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/constraints.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/constraints.xsd new file mode 100644 index 0000000000..b683389c35 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/constraints.xsd @@ -0,0 +1,107 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This constraints.xsd schema implements the UML conceptual schema defined in A.2.3 of ISO 19115:2003. It contains the implementation of the following classes: MD_Constraints, MD_LegalConstraints, MD_SecurityConstraints, MD_ClassificationCode, MD_RestrictionCode. + + + + + + + + + + Restrictions on the access and use of a dataset or metadata + + + + + + + + + + + + + + + + + + + + + + + Restrictions and legal prerequisites for accessing and using the dataset. + + + + + + + + + + + + + + + + + + + + + + + + + Handling restrictions imposed on the dataset because of national security, privacy, or other concerns + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/content.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/content.xsd new file mode 100644 index 0000000000..bf3c94657b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/content.xsd @@ -0,0 +1,190 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This content.xsd schema implements the UML conceptual schema defined in ISO 19115:2003, A.2.8. It contains the implementation of the following classes: MD_FeatureCatalogueDescription, MD_CoverageDescription, +MD_ImageDescription, MD_ContentInformation, MD_RangeDimension, MD_Band, MD_CoverageContentTypeCode, MD_ImagingConditionCode. + + + + + + + + + + + Information identifing the feature catalogue + + + + + + + + + + + + + + + + + + + + + + + + + + + Information about the domain of the raster cell + + + + + + + + + + + + + + + + + + + + + + + + + Information about an image's suitability for use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set of adjacent wavelengths in the electro-magnetic spectrum with a common characteristic, such as the visible band + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/dataQuality.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/dataQuality.xsd new file mode 100644 index 0000000000..3cd6d16e1d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/dataQuality.xsd @@ -0,0 +1,556 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This dataQuality.xsd schema implements the UML conceptual schema defined in A.2.4 of ISO 19115:2003. It contains the implementation of the following classes: LI_ProcessStep, LI_Source, LI_Lineage, +DQ_ConformanceResult, DQ_QuantitativeResult, DQ_Result, DQ_TemporalValidity, DQ_AccuracyOfATimeMeasurement, DQ_QuantitativeAttributeAccuracy, DQ_NonQuantitativeAttributeAccuracy, DQ_ThematicClassificationCorrectness, DQ_RelativeInternalPositionalAccuracy, DQ_GriddedDataPositionalAccuracy, DQ_AbsoluteExternalPositionalAccuracy, DQ_TopologicalConsistency, DQ_FormatConsistency, DQ_DomainConsistency, DQ_ConceptualConsistency, DQ_CompletenessOmission, DQ_CompletenessCommission, DQ_TemporalAccuracy, DQ_ThematicAccuracy, DQ_PositionalAccuracy, DQ_LogicalConsistency, DQ_Completeness, DQ_Element, DQ_DataQuality. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + quantitative_result from Quality Procedures - - renamed to remove implied use limitiation. + + + + + + + + + + + + + + + + + + + + + + + + + Quantitative_conformance_measure from Quality Procedures. - - Renamed to remove implied use limitation - - OCL - -- result is type specified by valueDomain - result.tupleType = valueDomain + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/distribution.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/distribution.xsd new file mode 100644 index 0000000000..380cecab04 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/distribution.xsd @@ -0,0 +1,203 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This distribution.xsd schema implements the UML conceptual schema defined in A.2.10 of ISO 19115:2003. It contains the implementation of the following classes: MD_Medium, MD_DigitalTransferOptions, MD_StandardOrderProcess, MD_Distributor, MD_Distribution, MD_Format, MD_MediumFormatCode, MD_MediumNameCode. + + + + + + + + + + + Information about the media on which the data can be distributed + + + + + + + + + + + + + + + + + + + + + + + + + + + + Technical means and media by which a dataset is obtained from the distributor + + + + + + + + + + + + + + + + + + + + + + + + + + Common ways in which the dataset may be obtained or received, and related instructions and fee information + + + + + + + + + + + + + + + + + + + + + + + + + + Information about the distributor + + + + + + + + + + + + + + + + + + + + + + + + + + Information about the distributor of and options for obtaining the dataset + + + + + + + + + + + + + + + + + + + + + + + + + Description of the form of the data to be distributed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/extent.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/extent.xsd new file mode 100644 index 0000000000..363da1346c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/extent.xsd @@ -0,0 +1,206 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This extent.xsd schema implements the UML conceptual schema defined in A.3.1 of ISO 19115:2003 and the associated corrigendum. It contains the implementation of the following classes: EX_TemporalExtent, EX_VerticalExtent, EX_BoundingPolygon, EX_Extent, EX_GeographicExtent, EX_GeographicBoundingBox, EX_SpatialTemporalExtent, EX_GeographicDescription. + + + + + + + + + + + + + + Time period covered by the content of the dataset + + + + + + + + + + + + + + + + + + + + + + + Vertical domain of dataset + + + + + + + + + + + + + + + + + + + + + + + + + Boundary enclosing the dataset expressed as the closed set of (x,y) coordinates of the polygon (last point replicates first point) + + + + + + + + + + + + + + + + + + + + + + + Information about spatial, vertical, and temporal extent + + + + + + + + + + + + + + + + + + + + + + + + + + Geographic area of the dataset + + + + + + + + + + + + + + + + + + + + + + + Geographic area of the entire dataset referenced to WGS 84 + + + + + + + + + + + + + + + + + + + + + + + + + + Extent with respect to date and time + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/freeText.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/freeText.xsd new file mode 100644 index 0000000000..f55277029d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/freeText.xsd @@ -0,0 +1,123 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This freeText.xsd schema implements cultural and linguistic adaptability extensions defined in 7.3 of ISO/TS 19139:2007. This extension essentially formalizes the free text concept described in Annex J of ISO 19115:2003. For this reason, and in order to simplify the organization of overall geographic metadata XML schema, this schema has been included as part of the gmd namespace instead of the gmx namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/gmd.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/gmd.xsd new file mode 100644 index 0000000000..7e4963059e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/gmd.xsd @@ -0,0 +1,13 @@ + + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/identification.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/identification.xsd new file mode 100644 index 0000000000..1e23f57c9c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/identification.xsd @@ -0,0 +1,349 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This identification.xsd schema implements the UML conceptual schema defined in A.2.2 of ISO 19115:2003. It contains the implementation of the following classes: MD_Identification, MD_BrowseGraphic, MD_DataIdentification, MD_ServiceIdentification, MD_RepresentativeFraction, MD_Usage, MD_Keywords, DS_Association, MD_AggregateInformation, MD_CharacterSetCode, MD_SpatialRepresentationTypeCode, MD_TopicCategoryCode, MD_ProgressCode, MD_KeywordTypeCode, DS_AssociationTypeCode, DS_InitiativeTypeCode, MD_ResolutionType. + + + + + + + + + + + + + Basic information about data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Graphic that provides an illustration of the dataset (should include a legend for the graphic) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + See 19119 for further info + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Brief description of ways in which the dataset is currently used. + + + + + + + + + + + + + + + + + + + + + + + + + + Keywords, their type and reference source + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Encapsulates the dataset aggregation information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + High-level geospatial data thematic classification to assist in the grouping and search of available geospatial datasets + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/maintenance.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/maintenance.xsd new file mode 100644 index 0000000000..9e7236938c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/maintenance.xsd @@ -0,0 +1,87 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This maintenance.xsd schema implements the UML conceptual schema defined in A.2.5 of ISO 19115:2003. It contains the implementation of the following classes: MD_MaintenanceInformation, MD_MaintenanceFrequencyCode, MD_ScopeCode, MD_ScopeDescription. + + + + + + + + + + + + Information about the scope and frequency of updating + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Description of the class of information covered by the information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataApplication.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataApplication.xsd new file mode 100644 index 0000000000..14429199e9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataApplication.xsd @@ -0,0 +1,176 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This metadataApplication.xsd schema implements the UML conceptual schema defined in A.2.12 of ISO 19115:2003. It contains the implementation of the class: MD_ApplicationSchemaInformation. + + + + + + + + + + + Identifiable collection of datasets + + + + + + + + + + + + + + + + + + + + + + + + + + Identifiable collection of data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataEntity.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataEntity.xsd new file mode 100644 index 0000000000..d0ae0bf288 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataEntity.xsd @@ -0,0 +1,71 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This metadataEntity.xsd schema implements the UML conceptual schema defined in A.2.1 of ISO 19115:2003. It contains the implementation of the class MD_Metadata. + + + + + + + + + + + + + + + + + + Information about the metadata + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataExtension.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataExtension.xsd new file mode 100644 index 0000000000..665740a4e6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/metadataExtension.xsd @@ -0,0 +1,100 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This metadataExtension.xsd schema implements the UML conceptual schema defined in A.2.11 of ISO 19115:2003. It contains the implementation of the following classes: MD_ExtendedElementInformation, MD_MetadataExtensionInformation, MD_ObligationCode, MD_DatatypeCode. + + + + + + + + + + + New metadata element, not found in ISO 19115, which is required to describe geographic data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information describing metadata extensions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/portrayalCatalogue.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/portrayalCatalogue.xsd new file mode 100644 index 0000000000..5cf370d0e1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/portrayalCatalogue.xsd @@ -0,0 +1,37 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This portrayalCatalogue.xsd schema implements the UML conceptual schema defined in A.2.9 of ISO 19115:2003. It contains the implementation of the class MD_PortrayalCatalogueReference. + + + + + + + + + + + Information identifing the portrayal catalogue used + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/referenceSystem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/referenceSystem.xsd new file mode 100644 index 0000000000..b6abd58723 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/referenceSystem.xsd @@ -0,0 +1,101 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This referenceSystem.xsd schema implements the UML conceptual schema defined in A.2.7 of ISO 19115:2003 and ISO 19115:2003/Cor. 1:2006. It contains the implementation of the following classes: RS_Identifier, MD_ReferenceSystem, MD_Identifier and RS_Reference System. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Description of the spatial and temporal reference systems used in the dataset + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/spatialRepresentation.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/spatialRepresentation.xsd new file mode 100644 index 0000000000..34e0f23081 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmd/spatialRepresentation.xsd @@ -0,0 +1,238 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This portrayalCatalogue.xsd schema implements the UML conceptual schema defined in A.2.6 of ISO 19115:2003. It contains the implementation of the following classes: MD_GridSpatialRepresentation, MD_VectorSpatialRepresentation, MD_SpatialRepresentation, MD_Georeferenceable, MD_Dimension, MD_Georectified, MD_GeometricObjects, MD_TopologyLevelCode, MD_GeometricObjectTypeCode, MD_CellGeometryCode, MD_DimensionNameTypeCode, MD_PixelOrientationCode. + + + + + + + + + + + + Types and numbers of raster spatial objects in the dataset + + + + + + + + + + + + + + + + + + + + + + + + + + Information about the vector spatial objects in the dataset + + + + + + + + + + + + + + + + + + + + + + + + Digital mechanism used to represent spatial information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/ReadMe.txt new file mode 100644 index 0000000000..16a0ede8ef --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/ReadMe.txt @@ -0,0 +1,47 @@ +ISO(c) GMX schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Metadata XML (GMX) Schema + +GMX is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GMX includes all the definitions of http://www.isotc211.org/2005/gmx +namespace. The root document of this namespace is the file gmx.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Adoption of W3C Implementation of XLink: + - schemaLocation changed to: http://www.w3.org/1999/xlink.xsd + - xlink:simpleLink renamed xlink:simpleAttrs + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GMX + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GMX + * GMX XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (nicolas.lesage@ign.fr). diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/catalogues.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/catalogues.xsd new file mode 100644 index 0000000000..4f6d6c2192 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/catalogues.xsd @@ -0,0 +1,113 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This catalogues.xsd schema implements the UML conceptual schema defined in 7.4.4.1 of ISO/TS 19139:2007. It contains the implementation of CT_Catalogue, CT_CodelistCatalogue, CT_UomCatalogue and CT_CrsCatalogue. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/codelistItem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/codelistItem.xsd new file mode 100644 index 0000000000..f16462a52b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/codelistItem.xsd @@ -0,0 +1,169 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This codelistItem.xsd schema implements the UML conceptual schema defined in 7.4.4.4 of ISO/TS 19139:2007. It contains the implementation of CT_Codelist and CT_CodelistValue. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constraints: - 1) metadataProperty.card = 0 - 2) dictionaryEntry.card = 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constraint: codeEntry.type = ML_CodeListDefinition + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/crsItem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/crsItem.xsd new file mode 100644 index 0000000000..62ea73323a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/crsItem.xsd @@ -0,0 +1,1031 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This crsItem.xsd schema implements the UML conceptual schema defined in 7.4.4.3 of ISO/TS 19139:2007. It contains the implementation of CT_CRS, CT_CoordinateSystem, CT_CoordinateSystemAxis, CT_Datum, CT_Ellipsoid, CT_PrimeMeridian, CT_Operation, CT_OperationMethod and CT_OperationParameters. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/extendedTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/extendedTypes.xsd new file mode 100644 index 0000000000..bf47803bbe --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/extendedTypes.xsd @@ -0,0 +1,76 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This extendedTypes.xsd schema contains the XML definitions of FileName, Anchor and MimeFileType classes. These classes are fully described in 7.2 of ISO/TS 19139:2007. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/gmx.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/gmx.xsd new file mode 100644 index 0000000000..0df5b3756c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/gmx.xsd @@ -0,0 +1,12 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/gmxUsage.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/gmxUsage.xsd new file mode 100644 index 0000000000..824e10b82d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/gmxUsage.xsd @@ -0,0 +1,128 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This gmxUsage.xsd schema implements the UML conceptual schema defined in 7.4.1 of ISO/TS 19139:2007. It contains the implementation of the following classes: MX_Dataset, MX_Aggregate, MX_DataFile and MX_ScopeCode. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/uomItem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/uomItem.xsd new file mode 100644 index 0000000000..02eee9e5d6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gmx/uomItem.xsd @@ -0,0 +1,163 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This uomItem.xsd schema implements the UML conceptual schema defined in 7.4.4.2 of ISO/TS 19139:2007. It contains the implementation of the UnitDefinition class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/ReadMe.txt new file mode 100644 index 0000000000..6bbcd21d6a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/ReadMe.txt @@ -0,0 +1,45 @@ +ISO(c) GSR schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Spatial Referencing (GSR) extensible markup language + +GSR is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GSR includes all the definitions of http://www.isotc211.org/2005/gsr +namespace. The root document of this namespace is the file gsr.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GSR + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GSR + * GSR XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (http://www.ign.fr). + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/gsr.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/gsr.xsd new file mode 100644 index 0000000000..a3aacf3aab --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/gsr.xsd @@ -0,0 +1,12 @@ + + + + + Geographic Spatial Referencing (GSR) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GSR includes all the definitions of http://www.isotc211.org/2005/gsr namespace. The root document of this namespace is the file gsr.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/spatialReferencing.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/spatialReferencing.xsd new file mode 100644 index 0000000000..2e9bf0fac4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gsr/spatialReferencing.xsd @@ -0,0 +1,25 @@ + + + + + Geographic Spatial Referencing (GSR) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GSR includes all the definitions of http://www.isotc211.org/2005/gsr namespace. The root document of this namespace is the file gsr.xsd. This spatialReferencing.xsd schema contains the implementation of SC_CRS. The encoding of this class is mapped to an ISO 19136 XML type. + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/ReadMe.txt new file mode 100644 index 0000000000..d1d377a77c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/ReadMe.txt @@ -0,0 +1,44 @@ +ISO(c) GSS schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Spatial Schema (GSS) extensible markup language + +GSS is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GSS includes all the definitions of http://www.isotc211.org/2005/gss +namespace. The root document of this namespace is the file gss.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GSS + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GSS + * GSS XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (nicolas.lesage@ign.fr). diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/geometry.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/geometry.xsd new file mode 100644 index 0000000000..4fec2bfb2e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/geometry.xsd @@ -0,0 +1,36 @@ + + + + + Geographic Spatial Schema (GSS) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GSS includes all the definitions of http://www.isotc211.org/2005/gss namespace. The root document of this namespace is the file gss.xsd. This geometry.xsd schema contains the implementation of GM_Object and GM_Point. The encoding of these classes is mapped to ISO 19136 geometric types. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/gss.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/gss.xsd new file mode 100644 index 0000000000..2594cfe939 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gss/gss.xsd @@ -0,0 +1,12 @@ + + + + + Geographic Spatial Schema (GSS) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GSS includes all the definitions of http://www.isotc211.org/2005/gss namespace. The root document of this namespace is the file gss.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/ReadMe.txt new file mode 100644 index 0000000000..29b13074a1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/ReadMe.txt @@ -0,0 +1,44 @@ +ISO(c) GTS schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Temporal Schema (GTS) extensible markup language + +GTS is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GTS includes all the definitions of http://www.isotc211.org/2005/gts +namespace. The root document of this namespace is the file gts.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GTS + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GTS + * GTS XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (http://www.ign.fr). diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/gts.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/gts.xsd new file mode 100644 index 0000000000..a4184fdb83 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/gts.xsd @@ -0,0 +1,12 @@ + + + + + Geographic Temporal Schema (GTS) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GTS includes all the definitions of http://www.isotc211.org/2005/gts namespace. The root document of this namespace is the file gts.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/temporalObjects.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/temporalObjects.xsd new file mode 100644 index 0000000000..2c8a9b670e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/gts/temporalObjects.xsd @@ -0,0 +1,35 @@ + + + + + Geographic Temporal Schema (GTS) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GTS includes all the definitions of http://www.isotc211.org/2005/gts namespace. The root document of this namespace is the file gts.xsd. The temporalObjects.xsd schema contains the XML implementation of TM_Object, TM_Primitive and TM_PeriodDuration from ISO 19108. The encoding of these classes is mapped to ISO 19136 temporal types and W3C built-in types. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/ReadMe.txt new file mode 100644 index 0000000000..2cdbe533f2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/ReadMe.txt @@ -0,0 +1,20 @@ +ISO(c) - ISO/TS 19139:2007 resources +------------------------------------------------------------------------------ + +ISO/TS 19139:2007 resources are XML Files provided with the XML +Schema Implementations defined in ISO/TS 19139-2. Those resources are: +- Catalogues of Codelist, Units of measure (uom) and Coordinate Reference + Systems (CRS) +- sample XML + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of Readme.txt file + * Use of absolute schema locations + * Adoption of W3C Implementation of XLink: + + Validation: XML Files have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + + +No history... diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/ML_gmxCodelists.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/ML_gmxCodelists.xml new file mode 100644 index 0000000000..4fbbdd5a0e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/ML_gmxCodelists.xml @@ -0,0 +1,841 @@ + + + + + + ML_gmxCodelists + + + Codelists for description of metadata datasets compliant with ISO/TC 211 19115:2003 and 19139 + + + Listes de codes pour la description de lots de métadonnées conforme ISO TC/211 19115:2003 et 19139 + + + + + GMX (and imported) namespace + + + 0.0 + + + 2005-03-18 + + + + + English + + + UTF 8 + + + + + + French + + + France + + + UTF 8 + + + + + + + + + + identification of when a given event occurred + CI_DateTypeCode + + + date identifies when the resource was brought into existence + creation + creation + + + date identifiant la création de la ressource + creation + création + + + + + + + + date identifies when the resource was issued + publication + publication + + + date identifiant la publication de la ressource + publication + publication + + + + + + + + date identifies when the resource was examined or re-examined and imporved or amended + revision + revision + + + amélioration ou amendement de la ressource + revision + révision + + + + + + + + identification de quand un événement s'est produit + CI_DateTypeCode + + + + + + + + + function performed by the resource + CI_OnLineFunctionCode + + + online instructions for transferring data from one storage device or system to another + download + Download + + + transfert de la ressource d'un système à un autre + download + Téléchargement + + + + + + + + online information about the resource + information + Information + + + description de la ressource en ligne + information + Information + + + + + + + + online instructions for requesting the resource from the provider + offlineAccess + Off line access + + + information pour requérir la ressource + offlineAccess + Accès hors ligne + + + + + + + + online order process for obtening the resource + order + Order + + + formulaire pour obtenir la ressource + order + commande en ligne + + + + + + + + online search interface for seeking out information about the resource + search + Search + + + interface de recherche d'information sur la ressource + search + Moteur de recherche + + + + + + + + Fonctionnalité offerte par la ressource + CI_OnLineFunctionCode + + + + + + + + + name of the character coding standard used in the resource + MD_CharacterSetCode + + + 16-bit fixed size Universal Character Set, based on ISO/IEC 10646 + ucs2 + + + 16 bits ISO/IEC 10646 + ucs2 + + + + + + + + 32-bit fixed size Universal Character Set, based on ISO/IEC 10646 + ucs4 + + + 32 bits ISO/IEC 10646 + ucs4 + + + + + + + + 7-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf7 + + + 7 bits ISO/IEC 10646 + utf7 + + + + + + + + 8-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf8 + + + 8 bits ISO/IEC 10646 + utf8 + + + + + + + + 16-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf16 + + + 16 bits ISO/IEC 10646 + utf16 + + + + + + + + ISO/IEC 8859-1, Information technology - 8-bit single byte coded graphic character sets - Part 1 : Latin alphabet No.1 + 8859part1 + + + ISO/IEC 8859-1, alphabet latin 1 + 8859part1 + + + + + + + + ISO/IEC 8859-2, Information technology - 8-bit single byte coded graphic character sets - Part 2 : Latin alphabet No.2 + 8859part2 + + + ISO/IEC 8859-2, alphabet latin 2 + 8859part2 + + + + + + + + ISO/IEC 8859-3, Information technology - 8-bit single byte coded graphic character sets - Part 3 : Latin alphabet No.3 + 8859part3 + + + ISO/IEC 8859-3, alphabet latin 3 + 8859part3 + + + + + + + + ISO/IEC 8859-4, Information technology - 8-bit single byte coded graphic character sets - Part 4 : Latin alphabet No.4 + 8859part4 + + + ISO/IEC 8859-4, alphabet latin 4 + 8859part4 + + + + + + + + ISO/IEC 8859-5, Information technology - 8-bit single byte coded graphic character sets - Part 5 : Latin/Cyrillic alphabet + 8859part5 + + + ISO/IEC 8859-5, alphabet latin/cyrillique + 8859part5 + + + + + + + + ISO/IEC 8859-6, Information technology - 8-bit single byte coded graphic character sets - Part 6 : Latin/Arabic alphabet + 8859part6 + + + ISO/IEC 8859-6, alphabet latin/arabe + 8859part6 + + + + + + + + ISO/IEC 8859-7, Information technology - 8-bit single byte coded graphic character sets - Part 7 : Latin/Greek alphabet + 8859part7 + + + ISO/IEC 8859-7, alphabet latin/grec + 8859part7 + + + + + + + + ISO/IEC 8859-8, Information technology - 8-bit single byte coded graphic character sets - Part 8 : Latin/Hebrew alphabet + 8859part8 + + + ISO/IEC 8859-8, alphabet latin/hébreu + 8859part8 + + + + + + + + ISO/IEC 8859-9, Information technology - 8-bit single byte coded graphic character sets - Part 9 : Latin alphabet No.5 + 8859part9 + + + ISO/IEC 8859-9, alphabet latin 5 + 8859part9 + + + + + + + + ISO/IEC 8859-10, Information technology - 8-bit single byte coded graphic character sets - Part 10 : Latin alphabet No.6 + 8859part10 + + + ISO/IEC 8859-10, alphabet latin 6 + 8859part10 + + + + + + + + ISO/IEC 8859-11, Information technology - 8-bit single byte coded graphic character sets - Part 11 : Latin/Thai alphabet + 8859part11 + + + ISO/IEC 8859-11, alphabet latin/Thaï + 8859part11 + + + + + + + + + ISO/IEC 8859-13, Information technology - 8-bit single byte coded graphic character sets - Part 13 : Latin alphabet No.7 + 8859part13 + + + ISO/IEC 8859-13, alphabet latin 7 + 8859part13 + + + + + + + + ISO/IEC 8859-14, Information technology - 8-bit single byte coded graphic character sets - Part 14 : Latin alphabet No.8 (Celtic) + 8859part14 + + + ISO/IEC 8859-14, alphabet latin 8 (celtique) + 8859part14 + + + + + + + + ISO/IEC 8859-15, Information technology - 8-bit single byte coded graphic character sets - Part 15 : Latin alphabet No.9 + 8859part15 + + + ISO/IEC 8859-15, alphabet latin 9 + 8859part15 + + + + + + + + ISO/IEC 8859-16, Information technology - 8-bit single byte coded graphic character sets - Part 16 : Latin alphabet No.10 + 8859part16 + + + ISO/IEC 8859-16, alphabet latin 10 + 8859part16 + + + + + + + + japanese code set used for electronic transmission + jis + + + Japonais + jis + + + + + + + + japanese code set used on MS-DOS machines + shiftJIS + + + Japonais pour MS-DOS + shiftJIS + + + + + + + + japanese code set used on UNIX based machines + eucJP + + + Japonais pour UNIX + eucJP + + + + + + + + United States ASCII code set (ISO 646 US) + usAscii + + + ISO 646 US + usAscii + + + + + + + + IBM mainframe code set + ebcdic + + + IBM + ebcdic + + + + + + + + Korean code set + eucKR + + + Koréen + eucKR + + + + + + + + traditional Chinese code set used in Taiwan, Hong Kong of China and other areas + big5 + + + Chinois traditionel (Taiwan, Hong Kong, Chine) + big5 + + + + + + + + simplified Chinese code set + GB2312 + + + Chinois simplifié + GB2312 + + + + + + + + Jeu de caractères + MD_CharacterSetCode + + + + + + + + + class of information to which the referencing entity applies + MD_ScopeCode + + + Information applies to the attribute class + attribute + Attribute + + + Information qui s’applique à une classe d’attributs + attribute + Attribut + + + + + + + + Information applies to the characteristic of a feature + attributeType + Attribute type + + + Information qui s’applique à la caractéristique d’une entité géographique + attributeType + Type d’attribut + + + + + + + + Information applies to the dataset + dataset + Dataset + + + Information qui s’applique au jeu de données + dataset + Jeu de données + + + + + + Information applies to the dataset + dataset + 005 + + + + + + + Information applies to the series + series + Series + + + Information qui s’applique à une série + series + Série + + + + + + + + Information applies to non-geographic data + nonGeographicDataset + Non geographic dataset + + + Information qui s’applique à des données non-géographiques + nonGeographicDataset + Jeu de données non géographiques + + + + + + + + Information applies to a feature + feature + Feature + + + Information qui s’applique à un élément (entité géographique) + feature + Elément + + + + + + + + Information applies to a feature type + featureType + Feature type + + + Information qui s’applique à un type d’élément + featureType + Type d’élément + + + + + + + + Information applies to a property type + propertyType + Property type + + + Information qui s’applique à un type de propriété + propertyType + Type de propriété + + + + + + + + Information applies to a tile, a spatial subset of geographic data + tile + Tile + + + Information qui s’applique à une tuile, un sous-ensemble spatial de données géographiques + tile + Tuile + + + + + + + + information sur l'entité sur laquelle les métadonnées s'appliquent + MD_ScopeCode + + + + + + + + + + Language : ISO 639-2 (3 characters) + LanguageCode + + + English + eng + English + + + Anglais + eng + Anglais + + + + + + + + French + fra + French + + + Français + fra + Français + + + + + + + + Langue : ISO 639-2 (3 caractères) + LanguageCode + + + + + + + + + Country : ISO 3166-2 (2 characters) + Country + + + United Kingdom + UK + United Kingdom + + + Royaume-Uni + UK + Royaume-Uni + + + + + + + + France + FR + France + + + France + FR + France + + + + + + + + Pays : ISO 3166-2 (2 caractères) + Country + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/gmxCodelists.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/gmxCodelists.xml new file mode 100644 index 0000000000..9214ce8808 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/gmxCodelists.xml @@ -0,0 +1,1898 @@ + + + + + + + gmxCodelists + + + Codelists for description of metadata datasets compliant with ISO/TC 211 19115:2003 and 19139 + + + GMX (and imported) namespace + + + 0.0 + + + 2005-03-18 + + + + + + + + identification of when a given event occurred + CI_DateTypeCode + + + date identifies when the resource was brought into existence + creation + + + + + date identifies when the resource was issued + publication + + + + + date identifies when the resource was examined or re-examined and imporved or amended + revision + + + + + + + + function performed by the resource + CI_OnLineFunctionCode + + + online instructions for transferring data from one storage device or system to another + download + + + + + online information about the resource + information + + + + + online instructions for requesting the resource from the provider + offlineAccess + + + + + online order process for obtening the resource + order + + + + + online search interface for seeking out information about the resource + search + + + + + + + + mode in which the data is represented + CI_PresentationFormCode + + + digital representation of a primarily textual item (can contain illustrations also) + documentDigital + + + + + representation of a primarily textual item (can contain illustrations also) on paper, photograhic material, or other media + imageDigital + + + + + likeness of natural or man-made features, objects, and activities acquired through the sensing of visual or any other segment of the electromagnetic spectrum by sensors, such as thermal infrared, and high resolution radar and stored in digital format + documentHardcopy + + + + + likeness of natural or man-made features, objects, and activities acquired through the sensing of visual or any other segment of the electromagnetic spectrum by sensors, such as thermal infrared, and high resolution radar and reproduced on paper, photographic material, or other media for use directly by the human user + imageHardcopy + + + + + map represented in raster or vector form + mapDigital + + + + + map printed on paper, photographic material, or other media for use directly by the human user + mapHardcopy + + + + + multi-dimensional digital representation of a feature, process, etc. + modelDigital + + + + + 3-dimensional, physical model + modelHardcopy + + + + + vertical cross-section in digital form + profileDigital + + + + + vertical cross-section printed on paper, etc. + profileHardcopy + + + + + digital representation of facts or figures systematically displayed, especially in columns + tableDigital + + + + + representation of facts or figures systematically displayed, especially in columns, printed onpapers, photographic material, or other media + tableHardcopy + + + + + digital video recording + videoDigital + + + + + video recording on film + videoHardcopy + + + + + + + + function performed by the responsible party + CI_RoleCode + + + party that supplies the resource + resourceProvider + + + + + party that accepts accountability and responsability for the data and ensures appropriate care and maintenance of the resource + custodian + + + + + party that owns the resource + owner + + + + + party who uses the resource + user + + + + + party who distributes the resource + distributor + + + + + party who created the resource + originator + + + + + party who can be contacted for acquiring knowledge about or acquisition of the resource + pointOfContact + + + + + key party responsible for gathering information and conducting research + principalInvestigator + + + + + party wha has processed the data in a manner such that the resource has been modified + processor + + + + + party who published the resource + publisher + + + + + party who authored the resource + author + + + + + + + + type or method for evaluating an identified data quality measure + DQ_EvaluationMethodTypeCode + + + method of evaluating the quality of a dataset based on inspection of items within the dataset, where all data required is internal to the dataset being evaluated + directInternal + + + + + method of evaluating the quality of a dataset based on inspection of items within the dataset, where reference data external to the dataset being evaluated is required + directExternal + + + + + method of evaluating the quality of a dataset based on external knowledge + indirect + + + + + + + + justification for the correlation of two datasets + DS_AssociationTypeCode + + + reference from one dataset to another + crossReference + + + + + reference to a master dataset of which this one is a part + largerWorkCitation + + + + + part of the same structured set of data held in a computer + partOfSeamlessDatabase + + + + + mapping and charting information from which the dataset content originates + source + + + + + part of a set of imagery that when used together, provides three-dimensional images + stereoMate + + + + + + + + type of aggregation activity in which datasets are related + DS_InitiativeTypeCode + + + series of organized planned actions + campaign + + + + + accumulation of datasets assembled for a specific purpose + collection + + + + + specific performance of a function or group of functions + exercise + + + + + process designed to find if something is effective or valid + experiment + + + + + search or systematic inquiry + investigation + + + + + specific operation of a data collection system + mission + + + + + device or piece of equipment which detects or records + sensor + + + + + action that is part of a series of actions + operation + + + + + vehicle or other support base that holds a sensor + platform + + + + + method of doing something involving a number of steps + process + + + + + specific planned activity + program + + + + + organized undertaking, research, or development + project + + + + + examination or investigation + study + + + + + piece of work + task + + + + + process of testing to discover or demonstrate something + trial + + + + + + + + code indicating whether grid data is point or area + MD_CellGeometryCode + + + each cell represents a point + point + + + + + each cell represents an area + area + + + + + + + + name of the character coding standard used in the resource + MD_CharacterSetCode + + + 16-bit fixed size Universal Character Set, based on ISO/IEC 10646 + ucs2 + + + + + 32-bit fixed size Universal Character Set, based on ISO/IEC 10646 + ucs4 + + + + + 7-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf7 + + + + + 8-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf8 + + + + + 16-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf16 + + + + + ISO/IEC 8859-1, Information technology - 8-bit single byte coded graphic character sets - Part 1 : Latin alphabet No.1 + 8859part1 + + + + + ISO/IEC 8859-2, Information technology - 8-bit single byte coded graphic character sets - Part 2 : Latin alphabet No.2 + 8859part2 + + + + + ISO/IEC 8859-3, Information technology - 8-bit single byte coded graphic character sets - Part 3 : Latin alphabet No.3 + 8859part3 + + + + + ISO/IEC 8859-4, Information technology - 8-bit single byte coded graphic character sets - Part 4 : Latin alphabet No.4 + 8859part4 + + + + + ISO/IEC 8859-5, Information technology - 8-bit single byte coded graphic character sets - Part 5 : Latin/Cyrillic alphabet + 8859part5 + + + + + ISO/IEC 8859-6, Information technology - 8-bit single byte coded graphic character sets - Part 6 : Latin/Arabic alphabet + 8859part6 + + + + + ISO/IEC 8859-7, Information technology - 8-bit single byte coded graphic character sets - Part 7 : Latin/Greek alphabet + 8859part7 + + + + + ISO/IEC 8859-8, Information technology - 8-bit single byte coded graphic character sets - Part 8 : Latin/Hebrew alphabet + 8859part8 + + + + + ISO/IEC 8859-9, Information technology - 8-bit single byte coded graphic character sets - Part 9 : Latin alphabet No.5 + 8859part9 + + + + + ISO/IEC 8859-10, Information technology - 8-bit single byte coded graphic character sets - Part 10 : Latin alphabet No.6 + 8859part10 + + + + + ISO/IEC 8859-11, Information technology - 8-bit single byte coded graphic character sets - Part 11 : Latin/Thai alphabet + 8859part11 + + + + + + ISO/IEC 8859-13, Information technology - 8-bit single byte coded graphic character sets - Part 13 : Latin alphabet No.7 + 8859part13 + + + + + ISO/IEC 8859-14, Information technology - 8-bit single byte coded graphic character sets - Part 14 : Latin alphabet No.8 (Celtic) + 8859part14 + + + + + ISO/IEC 8859-15, Information technology - 8-bit single byte coded graphic character sets - Part 15 : Latin alphabet No.9 + 8859part15 + + + + + ISO/IEC 8859-16, Information technology - 8-bit single byte coded graphic character sets - Part 16 : Latin alphabet No.10 + 8859part16 + + + + + japanese code set used for electronic transmission + jis + + + + + japanese code set used on MS-DOS machines + shiftJIS + + + + + japanese code set used on UNIX based machines + eucJP + + + + + United States ASCII code set (ISO 646 US) + usAscii + + + + + IBM mainframe code set + ebcdic + + + + + Korean code set + eucKR + + + + + traditional Chinese code set used in Taiwan, Hong Kong of China and other areas + big5 + + + + + simplified Chinese code set + GB2312 + + + + + + + + name of the handling restrictions on the dataset + MD_ClassificationCode + + + available for general disclosure + unclassified + + + + + not for general disclosure + restricted + + + + + available for someone who can be entrusted with information + confidential + + + + + kept or meant to be kept private, unknown, or hidden from all but a select group of people + secret + + + + + of the highest secrecy + topSecret + + + + + + + + specific type of information represented in the cell + MD_CoverageContentTypeCode + + + meaningful numerical representation of a physical parameter that is not the actual value of the physical parameter + image + + + + + code value with no quantitative meaning, used to represent a physical quantity + thematicClassification + + + + + value in physical units of the quantity being measured + physicalMeasurement + + + + + + + + datatype of element or entity + MD_DatatypeCode + + + descriptor of a set of objects that share the same attributes, operations, methods, relationships, and behavior + class + + + + + + flexible enumeration useful for expressing a long list of values, can be extended + codelist + + + + + data type whose instances form a list of named literal values, not extendable + enumeration + + + + + permissible value for a codelist or enumeration + codelistElement + + + + + class that cannot be directly instantiated + abstractClass + + + + + class that is composed of classes it is connected to by an aggregate relationship + aggregateClass + + + + + subclass that may be substituted for its superclass + specifiedClass + + + + + class with few or no operations whose primary purpose is to hold the abstract state of another class for transmittal, storage, encoding or persistent storage + datatypeClass + + + + + named set of operations that characterize the behavior of an element + interfaceClass + + + + + class describing a selection of one of the specified types + unionClass + + + + + class whose instances are classes + metaClass + + + + + class used for specification of a domain of instances (objects), together with the operations applicable to the objects. A type may have attributes and associations + typeClass + + + + + free text field + characterString + + + + + numerical field + integer + + + + + semantic relationship between two classes that involves connections among their instances + association + + + + + + + + name of the dimension + MD_DimensionNameTypeCode + + + ordinate (y) axis + row + + + + + abscissa (x) axis + column + + + + + vertical (z) axis + vertical + + + + + along the direction of motion of the scan point + track + + + + + perpendicular to the direction of motion of the scan point + crossTrack + + + + + scan line of a sensor + line + + + + + element along a scan line + sample + + + + + duration + time + + + + + + + + name of point or vector objects used to locate zero-, one-, two-, or three-dimensional spatial locations in the dataset + MD_GeometricObjectTypeCode + + + set of geometric primitives such that their boundaries can be represented as a union of other primitives + complex + + + + + connected set of curves, solids or surfaces + composite + + + + + bounded, 1-dimensional geometric primitive, representing the continuous image of a line + curve + + + + + zero-dimensional geometric primitive, representing a position but not having an extent + point + + + + + bounded, connected 3-dimensional geometric primitive, representing the continuous image of a region of space + solid + + + + + bounded, connected 2-dimensional geometric primitive, representing the continuous image of a region of a plane + surface + + + + + + + + code which indicates conditions which may affect the image + MD_ImagingConditionCode + + + portion of the image is blurred + blurredImage + + + + + portion of the image is partially obscured by cloud cover + cloud + + + + + acute angle between the plane of the ecliptic (the plane of the Earth s orbit) and the plane of the celestial equator + degradingObliquity + + + + + portion of the image is partially obscured by fog + fog + + + + + portion of the image is partially obscured by heavy smoke or dust + heavySmokeOrDust + + + + + image was taken at night + night + + + + + image was taken during rainfall + rain + + + + + image was taken during semi-dark conditions -- twilight conditions + semiDarkness + + + + + portion of the image is obscured by shadow + shadow + + + + + portion of the image is obscured by snow + snow + + + + + the absence of collection data of a given point or area caused by the relative location of topographic features which obstruct the collection path between the collector(s) and the subject(s) of interest + terrainMasking + + + + + + + + methods used to group similar keywords + MD_KeywordTypeCode + + + keyword identifies a branch of instruction or specialized learning + discipline + + + + + keyword identifies a location + place + + + + + keyword identifies the layer(s) of any deposited substance + stratum + + + + + keyword identifies a time period related to the dataset + temporal + + + + + keyword identifies a particular subject or topic + theme + + + + + + + + frequency with which modifications and deletions are made to the data after it is first produced + MD_MaintenanceFrequencyCode + + + data is repeatedly and frequently updated + continual + + + + + data is updated each day + daily + + + + + data is updated on a weekly basis + weekly + + + + + data is updated every two weeks + fortnightly + + + + + data is updated each month + monthly + + + + + + + data is updated every three months + + quarterly + + + + + + data is updated twice each year + biannually + + + + + data is updated every year + annually + + + + + data is updated as deemed necessary + asNeeded + + + + + data is updated in intervals that are uneven in duration + irregular + + + + + there are no plans to update the data + notPlanned + + + + + frequency of maintenance for the data is not known + + unknown + + + + + + + + + method used to write to the medium + MD_MediumFormatCode + + + CoPy In / Out (UNIX file format and command) + cpio + + + + + Tape ARchive + tar + + + + + high sierra file system + highSierra + + + + + information processing volume and file structure of CD-ROM + iso9660 + + + + + rock ridge interchange protocol (UNIX) + iso9660RockRidge + + + + + hierarchical file system (Macintosh) + iso9660AppleHFS + + + + + + + + name of the medium + MD_MediumNameCode + + + read-only optical disk + cdRom + + + + + digital versatile disk + dvd + + + + + digital versatile disk, read only + dvdRom + + + + + 3,5 inch magnetic disk + 3halfInchFloppy + + + + + 5,25 inch magnetic disk + 5quarterInchFloppy + + + + + 7 track magnetic tape + 7trackTape + + + + + 9 track magnetic tape + 9trackType + + + + + 3480 cartridge tape drive + 3480Cartridge + + + + + 3490 cartridge tape drive + 3490Cartridge + + + + + 3580 cartridge tape drive + 3580Cartridge + + + + + 4 millimetre magnetic tape + 4mmCartridgeTape + + + + + 8 millimetre magnetic tape + 8mmCartridgeTape + + + + + 0,25 inch magnetic tape + 1quarterInchCartridgeTape + + + + + half inch cartridge streaming tape drive + digitalLinearTape + + + + + direct computer linkage + onLine + + + + + linkage through a satellite communication system + satellite + + + + + communication through a telephone network + telephoneLink + + + + + pamphlet or leaflet giving descriptive information + hardcopy + + + + + + + + obligation of the element or entity + MD_ObligationCode + + + element is always required + mandatory + + + + + element is not required + optional + + + + + element is required when a specific condition is met + conditional + + + + + + + + point in a pixel corresponding to the Earth location of the pixel + MD_PixelOrientationCode + + + point halfway between the lower left and the upper right of the pixel + center + + + + + the corner in the pixel closest to the origin of the SRS; if two are at the same distance from the origin, the one with the smallest x-value + lowerLeft + + + + + next corner counterclockwise from the lower left + lowerRight + + + + + next corner counterclockwise from the lower right + upperRight + + + + + next corner counterclockwise from the upper right + upperLeft + + + + + + + + status of the dataset or progress of a review + MD_ProgressCode + + + production of the data has been completed + completed + + + + + data has been stored in an offline storage facility + historicalArchive + + + + + data is no longer relevant + obsolete + + + + + data is continually being updated + onGoing + + + + + fixed date has been established upon or by which the data will be created or updated + planned + + + + + data needs to be generated or updated + required + + + + + data is currently in the process of being created + underDevelopment + + + + + + + + limitation(s) placed upon the access or use of the data + MD_RestrictionCode + + + exclusive right to the publication, production, or sale of the rights to a literary, dramatic, musical, or artistic work, or to the use of a commercial print or label, granted by law for a specified period of time to an author, composer, artist, distributor + copyright + + + + + government has granted exclusive right to make, sell, use or license an invention or discovery + patent + + + + + produced or sold information awaiting a patent + patentPending + + + + + a name, symbol, or other device identifying a product, officially registered and legally restricted to the use of the owner or manufacturer + trademark + + + + + formal permission to do something + license + + + + + rights to financial benefit from and control of distribution of non-tangible property that is a result of creativity + intellectualPropertyRights + + + + + withheld from general circulation or disclosure + restricted + + + + + limitation not listed + otherRestrictions + + + + + + + + class of information to which the referencing entity applies + MD_ScopeCode + + + information applies to the attribute class + attribute + + + + + information applies to the characteristic of a feature + attributeType + + + + + information applies to the collection hardware class + collectionHardware + + + + + information applies to the collection session + collectionSession + + + + + information applies to the dataset + dataset + + + + + information applies to the series + series + + + + + information applies to non-geographic data + nonGeographicDataset + + + + + information applies to a dimension group + dimensionGroup + + + + + information applies to a feature + feature + + + + + information applies to a feature type + featureType + + + + + information applies to a property type + propertyType + + + + + information applies to a field session + fieldSession + + + + + information applies to a computer program or routine + software + + + + + information applies to a capability which a service provider entity makes available to a service user entity through a set of interfaces that define a behaviour, such as a use case + service + + + + + information applies to a copy or imitation of an existing or hypothetical object + model + + + + + information applies to a tile, a spatial subset of geographic data + tile + + + + + + + + method used to represent geographic information in the dataset + MD_SpatialRepresentationTypeCode + + + vector data is used to represent geographic data + vector + + + + + grid data is used to represent geographic data + grid + + + + + textual or tabular data is used to represent geographic data + textTable + + + + + triangulated irregular network + tin + + + + + three-dimensional view formed by the intersecting homologous rays of an overlapping pair of images + stereoModel + + + + + scene from a video recording + video + + + + + + + + high-level geographic data thematic classification to assist in the grouping and search of available geographic data sets. Can be used to group keywords as well. Listed examples are not exhaustive. + MD_TopicCategoryCode + + + rearing of animals and/or cultivation of plants. Examples: agriculture, irrigation, aquaculture, plantations, herding, pests and diseases affecting crops and livestock + farming + + + + + flora and/or fauna in natural environment. Examples: wildlife, vegetation, biological sciences, ecology, wilderness, sealife, wetlands, habitat + biota + + + + + legal land descriptions. Examples: political and administrative boundaries + boundaries + + + + + processes and phenomena of the atmosphere. Examples: cloud cover, weather, climate, atmospheric conditions, climate change, precipitation + climatologyMeteorologyAtmosphere + + + + + economic activities, conditions and employment. Examples: production, labour, revenue, commerce, industry, tourism and ecotourism, forestry, fisheries, commercial or subsistence hunting, exploration and exploitation of resources such as minerals, oil and gas + economy + + + + + height above or below sea level. Examples: altitude, bathymetry, digital elevation models, slope, derived products + elevation + + + + + environmental resources, protection and conservation. Examples: environmental pollution, waste storage and treatment, environmental impact assessment, monitoring environmental risk, nature reserves, landscape + environment + + + + + information pertaining to earth sciences. Examples: geophysical features and processes, geology, minerals, sciences dealing with the composition, structure and origin of the earth s rocks, risks of earthquakes, volcanic activity, landslides, gravity information, soils, permafrost, hydrogeology, erosion + geoscientificInformation + + + + + health, health services, human ecology, and safety. Examples: disease and illness, factors affecting health, hygiene, substance abuse, mental and physical health, health services + health + + + + + base maps. Examples: land cover, topographic maps, imagery, unclassified images, annotations + imageryBaseMapsEarthCover + + + + + military bases, structures, activities. Examples: barracks, training grounds, military transportation, information collection + intelligenceMilitary + + + + + inland water features, drainage systems and their characteristics. Examples: rivers and glaciers, salt lakes, water utilization plans, dams, currents, floods, water quality, hydrographic charts + inlandWaters + + + + + positional information and services. Examples: addresses, geodetic networks, control points, postal zones and services, place names + location + + + + + features and characteristics of salt water bodies (excluding inland waters). Examples: tides, tidal waves, coastal information, reefs + oceans + + + + + information used for appropriate actions for future use of the land. Examples: land use maps, zoning maps, cadastral surveys, land ownership + planningCadastre + + + + + characteristics of society and cultures. Examples: settlements, anthropology, archaeology, education, traditional beliefs, manners and customs, demographic data, recreational areas and activities, social impact assessments, crime and justice, census information + society + + + + + man-made construction. Examples: buildings, museums, churches, factories, housing, monuments, shops, towers + structure + + + + + means and aids for conveying persons and/or goods. Examples: roads, airports/airstrips, shipping routes, tunnels, nautical charts, vehicle or vessel location, aeronautical charts, railways + transportation + + + + + energy, water and waste systems and communications infrastructure and services. Examples: hydroelectricity, geothermal, solar and nuclear sources of energy, water purification and distribution, sewage collection and disposal, electricity and gas distribution, data communication, telecommunication, radio, communication networks + utilitiesCommunication + + + + + + + + degree of complexity of the spatial relationships + MD_TopologyLevelCode + + + geometry objects without any additional structure which describes topology + geometryOnly + + + + + 1-dimensional topological complex -- commonly called chain-node topology + topology1D + + + + + 1-dimensional topological complex that is planar. (A planar graph is a graph that can be drawn in a plane in such a way that no two edges intersect except at a vertex.) + planarGraph + + + + + 2-dimensional topological complex that is planar. (A 2-dimensional topological complex is commonly called full topology in a cartographic 2D environment.) + fullPlanarGraph + + + + + 1-dimensional topological complex that is isomorphic to a subset of a surface. (A geometric complex is isomorphic to a topological complex if their elements are in a one-to-one, dimensional-and boundry-preserving correspondence to one another.) + surfaceGraph + + + + + 2-dimensional topological complex that is isomorphic to a subset of a surface + fullSurfaceGraph + + + + + 3-dimensional topological complex. (A topological complex is a collection of topological primitives that are closed under the boundary operations.) + topology3D + + + + + complete coverage of a 3D Euclidean coordinate space + fullTopology3D + + + + + topological complex without any specified geometric realisation + abstract + + + + + + + + Extension of MD_ScopeCode for the needs of GMX application schemas and in the context of a transfer + MX_ScopeCode + + + + information applies to the attribute class + attribute + + + + + information applies to the characteristic of a feature + attributeType + + + + + information applies to the collection hardware class + collectionHardware + + + + + information applies to the collection session + collectionSession + + + + + information applies to the dataset + dataset + + + + + information applies to the series + series + + + + + information applies to non-geographic data + nonGeographicDataset + + + + + information applies to a dimension group + dimensionGroup + + + + + information applies to a feature + feature + + + + + information applies to a feature type + featureType + + + + + information applies to a property type + propertyType + + + + + information applies to a field session + fieldSession + + + + + information applies to a computer program or routine + software + + + + + information applies to a capability which a service provider entity makes available to a service user entity through a set of interfaces that define a behaviour, such as a use case + service + + + + + information applies to a copy or imitation of an existing or hypothetical object + model + + + + + information applies to a tile, a spatial subset of geographic data + tile + + + + + + The referencing entity applies to a transfer aggregate which was originally identified as an initiative (DS_Initiative) + initiative + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a stereo mate (DS_StereoMate) + stereomate + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a sensor (DS_Sensor) + sensor + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a platform series (DS_PlatformSeries) + platformSeries + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a sensor series (DS_SensorSeries) + sensorSeries + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a production series (DS_ProductionSeries) + productionSeries + + + + + The referencing entity applies to a transfer aggregate which has no existence outside of the transfer context + transferAggregate + + + + + The referencing entity applies to a transfer aggregate which has an existence outside of the transfer context, but which does not pertains to a specific aggregate type. + otherAggregate + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/tcCodelists.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/tcCodelists.xml new file mode 100644 index 0000000000..89dfd67c0a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/codelist/tcCodelists.xml @@ -0,0 +1,63 @@ + + + + + + tcCodelists + + + Codelists used in the type catalogue schema + + + Type catalogues + + + 0.1 + + + 2007-06-14 + + + + + + + specifies aggregation semantics: specifies whether the value of each property is a single value ("noAggregation") which is the default case or if a single property instance has an aggregate value in which case the value specifies the aggregation type ("bag", "set", "sequence"). Note that this value is independent from the cardinality. + TC_AggregationType + + + single value - no aggregation (default) + noAggregation + + + + + aggregation semantics: bag + bag + + + + + aggregation semantics: set + set + + + + + aggregation semantics: sequence (ordered bag) + sequence + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/crs/ML_gmxCrs.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/crs/ML_gmxCrs.xml new file mode 100644 index 0000000000..485b6d5278 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/crs/ML_gmxCrs.xml @@ -0,0 +1,179 @@ + + + + + + + ML_gmxCrs + + + CRS catalogue for description of gmx metadata dataset + + + Catalogue des paramètres géodésiques pour la description de jeux de métadonnées conformes aux schémas gmx + + + + + GMX (and imported) namespace + + + 0.0 + + + 2005-03-29 + + + + + English + + + UTF 8 + + + + + + French + + + France + + + UTF 8 + + + + + + + + + + 4326 + WGS84G + World Geodetic System 1984 + + + + + + + + World + + + + + + + + not known + + + + + + 4326 + WGS84G + WGS 1984 + + + + + + + + Monde + + + + + + + + inconnu + + + + + + + + + + 6422 + ellipsoidal2Ddeg + + + + + + + + + 9901 + Geodetic latitude + Lat + North + + + + + + 9902 + Geodetic longitude + Lon + East + + + + + + + 6326 + World Geodetic System 1984 + not known + + + + + + + + + 7030 + WGS 84 + 6378137 + + + 298.2572 + + + + + + + + + 8901 + Greenwich + 0 + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/crs/gmxCrs.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/crs/gmxCrs.xml new file mode 100644 index 0000000000..2ab0e10c20 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/crs/gmxCrs.xml @@ -0,0 +1,287 @@ + + + + + + gmxCrs + + + CRS parameters dictionary + + + GMX (and imported) namespace + + + 0.0 + + + 2005-03-18 + + + + + + + + 4326 + WGS84G + World Geodetic System 1984 + + + + + + + + World: Afghanistan, Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antarctica, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, + Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belgium, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bosnia and Herzegowina, + Botswana, Bouvet Island, Brazil, British Indian Ocean Territory, British Virgin Islands, Brunei Darussalam, Bulgaria, Burkina Faso, Burundi, Cambodia, + Cameroon, Canada, Cape Verde, Cayman Islands, Central African Republic, Chad, Chile, China, Christmas Island, Cocos (Keeling) Islands, Comoros, + Congo, Cook Islands, Costa Rica, Côte d'Ivoire (Ivory Coast), Croatia, Cuba, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, + East Timor, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Falkland Islands (Malvinas), Faroe Islands, Fiji, Finland, France, + French Guiana, French Polynesia, French Southern Territories, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, + Guadeloupe, Guam, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Heard Island and McDonald Islands, Holy See (Vatican City State), Honduras, China + - Hong Kong, Hungary, Iceland, India, Indonesia, Islamic Republic of Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakstan, Kenya, Kiribati, + Democratic People's Republic of Korea (North Korea), Republic of Korea (South Korea), Kuwait, Kyrgyzstan, Lao People's Democratic Republic (Laos), + Latvia, Lebanon, Lesotho, Liberia, Libyan Arab Jamahiriya, Liechtenstein, Lithuania, Luxembourg, China - Macau, The Former Yugoslav Republic of + Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Marshall Islands, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Federated States + of Micronesia, Monaco, Mongolia, Montserrat, Morocco, Mozambique, Myanmar (Burma), Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New + Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Niue, Norfolk Island, Northern Mariana Islands, Norway, Oman, Pakistan, Palau, Panama, Papua New + Guinea (PNG), Paraguay, Peru, Philippines, Pitcairn, Poland, Portugal, Puerto Rico, Qatar, Reunion, Romania, Russian Federation, Rwanda, Saint Kitts and + Nevis, Saint Lucia, Saint Vincent and the Grenadines, Samoa, San Marino, Sao Tome and Principe, Saudi Arabia, Senegal, Seychelles, Sierra Leone, + Singapore, Slovakia (Slovak Republic), Slovenia, Solomon Islands, Somalia, South Africa, South Georgia and the South Sandwich Islands, Spain, Sri Lanka, + Saint Helena, Saint Pierre and Miquelon, Sudan, Suriname, Svalbard and Jan Mayen, Swaziland, Sweden, Switzerland, Syrian Arab Republic, Taiwan, + Tajikistan, United Republic of Tanzania, Thailand, The Democratic Republic of the Congo (Zaire), Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, + Turkey, Turkmenistan, Turks and Caicos Islands, Tuvalu, Uganda, Ukraine, United Arab Emirates (UAE), United Kingdom (UK), United States (USA), + United States Minor Outlying Islands, Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, US Virgin Islands, Wallis and Futuna, Western Sahara, Yemen, + Yugoslavia - Union of Serbia and Montenegro, Zambia, Zimbabwe. + + + + + + + + not known + + + + + + + + 32638 + UTM38W84 + WGS 84 / UTM zone 38N + + + + + + + + Between 42 and 48 deg East; northern hemisphere. Armenia. Azerbaijan. Djibouti. Eritrea. Ethiopia. Georgia. Islamic Republic of Iran. Iraq. Kazakstan. Kuwait. Russian Federation. Saudi Arabia. Somalia. Tukey. Yemen. + + + + + + + + not known + + + + + + + + + + + Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east. UoM: deg + 6422 + CS ellipsoidal2D + + + + + + + + Cartesian 2D CS. Axes: easting, northing (E,N). Orientations: east, north. UoM: m. + 4400 + Cs cartesian2D + + + + + + + + + 9901 + Geodetic latitude + Lat + North + + + + + + 9902 + Geodetic longitude + Lon + East + + + + + + 9907 + Northing + N + North + + + + + + 9906 + Easting + E + east + + + + + + + 6326 + World Geodetic System 1984 + not known + + + + + + + + + 7030 + WGS 84 + 6378137 + + + 298.2572 + + + + + + + + + 8901 + Greenwich + 0 + + + + + + 16038 + UTM Zone 38 N + not known + + + + 0 + + + + + + 45 + + + + + + 0.9996 + + + + + + 500000 + + + + + + 0 + + + + + + + + + 9807 + PRCM040 + Transverse Mercator + Transverse Mercator + 2 + 2 + + + + + + + + + + + 8801 + Latitude of natural origin + + + + + 8802 + Longitude of natural origin + + + + + 8805 + Scale factor at natural origin + + + + + 8806 + False Easting + + + + + 8807 + False Northing + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/example/fr-fr.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/example/fr-fr.xml new file mode 100644 index 0000000000..939b9722a0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/example/fr-fr.xml @@ -0,0 +1,83 @@ + + + + + + + France-France + + + + + + French + + + FR + + + UTF 8 + + + + + + + + 2005-03-18 + + + création + + + + + + + 2006-02-03 + + + révision + + + + + + + + french translation team + + + auteur + + + + + + + + + Résumé succint du contenu du jeu de données + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/uom/ML_gmxUom.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/uom/ML_gmxUom.xml new file mode 100644 index 0000000000..a29faa144c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/uom/ML_gmxUom.xml @@ -0,0 +1,125 @@ + + + + + + uom + + + units of measure dictionary compliant with SI definitions + + + dictionnaire d'unités de mesure conforme avec les définitions du Système International (SI) + + + + + GMX (and imported) namespace + + + 0.0 + + + 2005-06-18 + + + + + English + + + UTF 8 + + + + + + French + + + France + + + UTF 8 + + + + + + + + + + The metre is the length of the path travelled by ligth in vaccum during a time interval of 1/299 792 458 of a second + metre + length + m + + + + + unité de longueur de référence dans le système international, correspond à la distance parcourue par la lumière dans le vide pendant 1/299 792 458 seconde + metre + mètre + longueur + + + + + + + + + + Measure of angle equal to Pi/180 radians, widely used in geography + degree + angle + + 1.74532925199433E-02 + + + + + Unité d'angle de référence en géographie égale à Pi/180 radians. + degree + degré + angle + + + + + + + + + Radian is an unit of angle measure. It is defined as the ratio of arc length to the radius of the circle. + radian + plane angle + rad + + + + + + Le radian est une unité de mesaure angulaire définie comme le ratio entre le rayon et la longueur de l'arc. + radian + radian + angle planaire + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/uom/gmxUom.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/uom/gmxUom.xml new file mode 100644 index 0000000000..8e25cd4107 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/iso/19139/20070417/resources/uom/gmxUom.xml @@ -0,0 +1,66 @@ + + + + + + gmxUom + + + units of measure dictionary compliant with SI definitions + + + ISO/TC 211 GMX (and imported) namespace + + + 0.0 + + + 2005-03-18 + + + + + + + + The metre is the length of the path travelled by ligth in vaccum during a time interval of 1/299 792 458 of a second + metre + length + m + + + + + + + Measure of angle equal to Pi/180 radians, widely used in geography + degree + angle + + 1.74532925199433E-02 + + + + + + + Radian is an unit of angle measure. It is defined as the ratio of arc length to the radius of the circle. + radian + plane angle + rad + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gaz/1.0.0/gaz.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gaz/1.0.0/gaz.xsd new file mode 100644 index 0000000000..28e0a7327d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gaz/1.0.0/gaz.xsd @@ -0,0 +1,59 @@ + + + + + + + + + + + A location instance in a spatial reference system. A location instance specifies a location that is characterized by a location type. For example, a particular "county", "town", "property", or "river". + + + + + A location instance in a spatial reference system. + + + + + + + A URI for the location instance. + + + + + Optional date on which this version of the location instance was last changed. + + + + + + A value description where the main value is 'Historic'. + + + + + + Optional description of the history of this location instance. + + + + + + Optional description of this location instance. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gaz/1.0.0/gsipCodelistGeoIdentifierDesignationTypeCodeDictionary.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gaz/1.0.0/gsipCodelistGeoIdentifierDesignationTypeCodeDictionary.xml new file mode 100644 index 0000000000..8984c0b136 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gaz/1.0.0/gsipCodelistGeoIdentifierDesignationTypeCodeDictionary.xml @@ -0,0 +1,31 @@ + + + + + The type of a designation for a location instance in a gazetteer. + + GeoIdentifierDesignationTypeCode + DoD/IC Dictionary: GSIP Geographic Identifier Designation Type Code Dictionary + + + + Lands owned or administered by the U.S. Federal government, for example: national parks, national wildlife refuges, military reservations, Federal prisons, and public-domain land. + administeredFederal + Administered Federal + + + + + A geographic feature that once existed but has ceased to exist, is no longer discernable on the landscape or seascape, and/or no longer serves the original purpose. + historical + Historical + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/SchematronConstraints.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/SchematronConstraints.xml new file mode 100644 index 0000000000..6cfd40f197 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/SchematronConstraints.xml @@ -0,0 +1,71 @@ + + Schematron constraints for GML / ISO 19136 + + + + + + ValueArray may not carry both a reference to a codeSpace and a uom + + + + + All components shall be of the same type + All components shall be of the same type + + + + + The presence of a dimension attribute implies the presence of the srsName attribute. + The presence of an axisLabels attribute implies the presence of the srsName attribute. + The presence of an uomLabels attribute implies the presence of the srsName attribute. + The presence of an uomLabels attribute implies the presence of the axisLabels attribute and vice versa. + + + + + All patches shall be gml:PolygonPatch elements or an element in the substitution group of gml:PolygonPatch. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All patches shall be gml:Triangle elements or an element in the substitution group of gml:PolygonPatch. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + Property element may not carry both a reference to an object and contain an object. + Property element shall either carry a reference to an object or contain an object. + + + + + All values in the domain set shall be gml:MultiPoint elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:MultiCurve elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:MultiSurface elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:MultiSolid elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:Grid elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:RectifiedGrid elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/basicTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/basicTypes.xsd new file mode 100644 index 0000000000..d6ffd5f6a1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/basicTypes.xsd @@ -0,0 +1,268 @@ + + + + basicTypes.xsd + See ISO/DIS 19136 8.2. +W3C XML Schema provides a set of built-in "simple" types which define methods for representing values as literals without internal markup. These are described in W3C XML Schema Part 2:2001. Because GML is an XML encoding in which instances are described using XML Schema, these simple types shall be used as far as possible and practical for the representation of data types. W3C XML Schema also provides methods for defining +- new simple types by restriction and combination of the built-in types, and +- complex types, with simple content, but which also have XML attributes. +In many places where a suitable built-in simple type is not available, simple content types derived using the XML Schema mechanisms are used for the representation of data types in GML. +A set of these simple content types that are required by several GML components are defined in the basicTypes schema, as well as some elements based on them. These are primarily based around components needed to record amounts, counts, flags and terms, together with support for exceptions or null values. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + gml:NilReasonType defines a content model that allows recording of an explanation for a void value or other exception. +gml:NilReasonType is a union of the following enumerated values: +- inapplicable there is no value +- missing the correct value is not readily available to the sender of this data. Furthermore, a correct value may not exist +- template the value will be available later +- unknown the correct value is not known to, and not computable by, the sender of this data. However, a correct value probably exists +- withheld the value is not divulged +- other:text other brief explanation, where text is a string of two or more characters with no included spaces +and +- anyURI which should refer to a resource which describes the reason for the exception +A particular community may choose to assign more detailed semantics to the standard values provided. Alternatively, the URI method enables a specific or more complete explanation for the absence of a value to be provided elsewhere and indicated by-reference in an instance document. +gml:NilReasonType is used as a member of a union in a number of simple content types where it is necessary to permit a value from the NilReasonType union as an alternative to the primary type. + + + + + + + + + + + + + + + + + + + + + + + + gml:SignType is a convenience type with values "+" (plus) and "-" (minus). + + + + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + gml:CodeType is a generalized type to be used for a term, keyword or name. +It adds a XML attribute codeSpace to a term, where the value of the codeSpace attribute (if present) shall indicate a dictionary, thesaurus, classification scheme, authority, or pattern for the term. + + + + + + + + + + gml:CodeWithAuthorityType requires that the codeSpace attribute is provided in an instance. + + + + + + + + + + gml:MeasureType supports recording an amount encoded as a value of XML Schema double, together with a units of measure indicated by an attribute uom, short for "units Of measure". The value of the uom attribute identifies a reference system for the amount, usually a ratio or interval scale. + + + + + + + + + + The simple type gml:UomIdentifer defines the syntax and value space of the unit of measure identifier. + + + + + + This type specifies a character string of length at least one, and restricted such that it must not contain any of the following characters: ":" (colon), " " (space), (newline), (carriage return), (tab). This allows values corresponding to familiar abbreviations, such as "kg", "m/s", etc. +It is recommended that the symbol be an identifier for a unit of measure as specified in the "Unified Code of Units of Measure" (UCUM) (http://aurora.regenstrief.org/UCUM). This provides a set of symbols and a grammar for constructing identifiers for units of measure that are unique, and may be easily entered with a keyboard supporting the limited character set known as 7-bit ASCII. ISO 2955 formerly provided a specification with this scope, but was withdrawn in 2001. UCUM largely follows ISO 2955 with modifications to remove ambiguities and other problems. + + + + + + + + This type specifies a URI, restricted such that it must start with one of the following sequences: "#", "./", "../", or a string of characters followed by a ":". These patterns ensure that the most common URI forms are supported, including absolute and relative URIs and URIs that are simple fragment identifiers, but prohibits certain forms of relative URI that could be mistaken for unit of measure symbol . +NOTE It is possible to re-write such a relative URI to conform to the restriction (e.g. "./m/s"). +In an instance document, on elements of type gml:MeasureType the mandatory uom attribute shall carry a value corresponding to either +- a conventional unit of measure symbol, +- a link to a definition of a unit of measure that does not have a conventional symbol, or when it is desired to indicate a precise or variant definition. + + + + + + + + This type is deprecated for tuples with ordinate values that are numbers. +CoordinatesType is a text string, intended to be used to record an array of tuples or coordinates. +While it is not possible to enforce the internal structure of the string through schema validation, some optional attributes have been provided in previous versions of GML to support a description of the internal structure. These attributes are deprecated. The attributes were intended to be used as follows: +Decimal symbol used for a decimal point (default="." a stop or period) +cs symbol used to separate components within a tuple or coordinate string (default="," a comma) +ts symbol used to separate tuples or coordinate strings (default=" " a space) +Since it is based on the XML Schema string type, CoordinatesType may be used in the construction of tables of tuples or arrays of tuples, including ones that contain mixed text and numeric values. + + + + + + + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + gml:CodeListType provides for lists of terms. The values in an instance element shall all be valid according to the rules of the dictionary, classification scheme, or authority identified by the value of its codeSpace attribute. + + + + + + + + + + gml:CodeOrNilReasonListType provides for lists of terms. The values in an instance element shall all be valid according to the rules of the dictionary, classification scheme, or authority identified by the value of its codeSpace attribute. An instance element may also include embedded values from NilReasonType. It is intended to be used in situations where a term or classification is expected, but the value may be absent for some reason. + + + + + + + + + + gml:MeasureListType provides for a list of quantities. + + + + + + + + + + gml:MeasureOrNilReasonListType provides for a list of quantities. An instance element may also include embedded values from NilReasonType. It is intended to be used in situations where a value is expected, but the value may be absent for some reason. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateOperations.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateOperations.xsd new file mode 100644 index 0000000000..3ba39e2b3f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateOperations.xsd @@ -0,0 +1,525 @@ + + + + coordinateOperations.xsd + See ISO/DIS 19136 13.6. +The spatial or temporal coordinate operations schema components can be divided into five logical parts, which define elements and types for XML encoding of the definitions of: +- Multiple abstract coordinate operations +- Multiple concrete types of coordinate operations, including Transformations and Conversions +- Abstract and concrete parameter values and groups +- Operation methods +- Abstract and concrete operation parameters and groups +These schema component encodes the Coordinate Operation package of the UML Model for ISO 19111 Clause 11. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + gml:AbstractCoordinateOperation is a mathematical operation on coordinates that transforms or converts coordinates to another coordinate reference system. Many but not all coordinate operations (from CRS A to CRS B) also uniquely define the inverse operation (from CRS B to CRS A). In some cases, the operation method algorithm for the inverse operation is the same as for the forward algorithm, but the signs of some operation parameter values shall be reversed. In other cases, different algorithms are required for the forward and inverse operations, but the same operation parameter values are used. If (some) entirely different parameter values are needed, a different coordinate operation shall be defined. +The optional coordinateOperationAccuracy property elements provide estimates of the impact of this coordinate operation on point position accuracy. + + + + + + + + + + + + + + + + + + + gml:operationVersion is the version of the coordinate transformation (i.e., instantiation due to the stochastic nature of the parameters). Mandatory when describing a transformation, and should not be supplied for a conversion. + + + + + gml:coordinateOperationAccuracy is an association role to a DQ_PositionalAccuracy object as encoded in ISO/TS 19139, either referencing or containing the definition of that positional accuracy. That object contains an estimate of the impact of this coordinate operation on point accuracy. That is, it gives position error estimates for the target coordinates of this coordinate operation, assuming no errors in the source coordinates. + + + + + + + + + + + gml:sourceCRS is an association role to the source CRS (coordinate reference system) of this coordinate operation. + + + + + gml:targetCRS is an association role to the target CRS (coordinate reference system) of this coordinate operation. + + + + + gml:CoordinateOperationPropertyType is a property type for association roles to a coordinate operation, either referencing or containing the definition of that coordinate operation. + + + + + + + + + gml:AbstractSingleOperation is a single (not concatenated) coordinate operation. + + + + + gml:SingleOperationPropertyType is a property type for association roles to a single operation, either referencing or containing the definition of that single operation. + + + + + + + + + gm:AbstractGeneralConversion is an abstract operation on coordinates that does not include any change of datum. The best-known example of a coordinate conversion is a map projection. The parameters describing coordinate conversions are defined rather than empirically derived. Note that some conversions have no parameters. The operationVersion, sourceCRS, and targetCRS elements are omitted in a coordinate conversion. +This abstract complex type is expected to be extended for well-known operation methods with many Conversion instances, in GML Application Schemas that define operation-method-specialized element names and contents. This conversion uses an operation method, usually with associated parameter values. However, operation methods and parameter values are directly associated with concrete subtypes, not with this abstract type. All concrete types derived from this type shall extend this type to include a "usesMethod" element that references the "OperationMethod" element. Similarly, all concrete types derived from this type shall extend this type to include zero or more elements each named "uses...Value" that each use the type of an element substitutable for the "AbstractGeneralParameterValue" element. + + + + + + + + + + + + + + + + + + + + + + + gml:GeneralConversionPropertyType is a property type for association roles to a general conversion, either referencing or containing the definition of that conversion. + + + + + + + + + gml:AbstractGeneralTransformation is an abstract operation on coordinates that usually includes a change of Datum. The parameters of a coordinate transformation are empirically derived from data containing the coordinates of a series of points in both coordinate reference systems. This computational process is usually "over-determined", allowing derivation of error (or accuracy) estimates for the transformation. Also, the stochastic nature of the parameters may result in multiple (different) versions of the same coordinate transformation. The operationVersion, sourceCRS, and targetCRS proeprty elements are mandatory in a coordinate transformation. +This abstract complex type is expected to be extended for well-known operation methods with many Transformation instances, in Application Schemas that define operation-method-specialized value element names and contents. This transformation uses an operation method with associated parameter values. However, operation methods and parameter values are directly associated with concrete subtypes, not with this abstract type. All concrete types derived from this type shall extend this type to include a "usesMethod" element that references one "OperationMethod" element. Similarly, all concrete types derived from this type shall extend this type to include one or more elements each named "uses...Value" that each use the type of an element substitutable for the "AbstractGeneralParameterValue" element. + + + + + + + + + + + + + + + + + + + + + + + + + + gml:GeneralTransformationPropertyType is a property type for association roles to a general transformation, either referencing or containing the definition of that transformation. + + + + + + + + + + gml:ConcatenatedOperation is an ordered sequence of two or more coordinate operations. This sequence of operations is constrained by the requirement that the source coordinate reference system of step (n+1) must be the same as the target coordinate reference system of step (n). The source coordinate reference system of the first step and the target coordinate reference system of the last step are the source and target coordinate reference system associated with the concatenated operation. Instead of a forward operation, an inverse operation may be used for one or more of the operation steps mentioned above, if the inverse operation is uniquely defined by the forward operation. +The gml:coordOperation property elements are an ordered sequence of associations to the two or more operations used by this concatenated operation. The AggregationAttributeGroup should be used to specify that the coordOperation associations are ordered. + + + + + + + + + + + + + gml:coordOperation is an association role to a coordinate operation. + + + + + gml:ConcatenatedOperationPropertyType is a property type for association roles to a concatenated operation, either referencing or containing the definition of that concatenated operation. + + + + + + + + + gml:PassThroughOperation is a pass-through operation specifies that a subset of a coordinate tuple is subject to a specific coordinate operation. +The modifiedCoordinate property elements are an ordered sequence of positive integers defining the positions in a coordinate tuple of the coordinates affected by this pass-through operation. The AggregationAttributeGroup should be used to specify that the modifiedCoordinate elements are ordered. + + + + + + + + + + + + + + + + gml:modifiedCoordinate is a positive integer defining a position in a coordinate tuple. + + + + + gml:PassThroughOperationPropertyType is a property type for association roles to a pass through operation, either referencing or containing the definition of that pass through operation. + + + + + + + + + gml:Conversion is a concrete operation on coordinates that does not include any change of Datum. The best-known example of a coordinate conversion is a map projection. The parameters describing coordinate conversions are defined rather than empirically derived. Note that some conversions have no parameters. +This concrete complex type can be used without using a GML Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one Conversion instance. +The usesValue property elements are an unordered list of composition associations to the set of parameter values used by this conversion operation. + + + + + + + + + + + + + + + gml:method is an association role to the operation method used by a coordinate operation. + + + + + gml:parameterValue is a composition association to a parameter value or group of parameter values used by a coordinate operation. + + + + + gml:ConversionPropertyType is a property type for association roles to a concrete general-purpose conversion, either referencing or containing the definition of that conversion. + + + + + + + + + gml:Transformation is a concrete object element derived from gml:GeneralTransformation (13.6.2.13). +This concrete object can be used for all operation methods, without using a GML Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one Transformation instance. +The parameterValue elements are an unordered list of composition associations to the set of parameter values used by this conversion operation. + + + + + + + + + + + + + + + gml:TransformationPropertyType is a property type for association roles to a transformation, either referencing or containing the definition of that transformation. + + + + + + + + + gml:AbstractGeneralParameterValue is an abstract parameter value or group of parameter values. +This abstract complexType is expected to be extended and restricted for well-known operation methods with many instances, in Application Schemas that define operation-method-specialized element names and contents. Specific parameter value elements are directly contained in concrete subtypes, not in this abstract type. All concrete types derived from this type shall extend this type to include one "...Value" element with an appropriate type, which should be one of the element types allowed in the ParameterValueType. In addition, all derived concrete types shall extend this type to include a "operationParameter" property element that references one element substitutable for the "OperationParameter" object element. + + + + + + + + gml:AbstractGeneralParameterValuePropertyType is a property type for inline association roles to a parameter value or group of parameter values, always containing the values. + + + + + + + + gml:ParameterValue is a parameter value, an ordered sequence of values, or a reference to a file of parameter values. This concrete complex type may be used for operation methods without using an Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one instance. This complex type may be used, extended, or restricted for well-known operation methods, especially for methods with many instances. + + + + + + + + + + + + + + + + + + + + + + + + gml:value is a numeric value of an operation parameter, with its associated unit of measure. + + + + + gml:stringValue is a character string value of an operation parameter. A string value does not have an associated unit of measure. + + + + + gml:integerValue is a positive integer value of an operation parameter, usually used for a count. An integer value does not have an associated unit of measure. + + + + + gml:booleanValue is a boolean value of an operation parameter. A Boolean value does not have an associated unit of measure. + + + + + gml:valueList is an ordered sequence of two or more numeric values of an operation parameter list, where each value has the same associated unit of measure. An element of this type contains a space-separated sequence of double values. + + + + + gml:integerValueList is an ordered sequence of two or more integer values of an operation parameter list, usually used for counts. These integer values do not have an associated unit of measure. An element of this type contains a space-separated sequence of integer values. + + + + + gml:valueFile is a reference to a file or a part of a file containing one or more parameter values, each numeric value with its associated unit of measure. When referencing a part of a file, that file shall contain multiple identified parts, such as an XML encoded document. Furthermore, the referenced file or part of a file may reference another part of the same or different files, as allowed in XML documents. + + + + + gml:operationParameter is an association role to the operation parameter of which this is a value. + + + + + gml:ParameterValueGroup is a group of related parameter values. The same group can be repeated more than once in a Conversion, Transformation, or higher level ParameterValueGroup, if those instances contain different values of one or more parameterValues which suitably distinquish among those groups. This concrete complex type can be used for operation methods without using an Application Schema that defines operation-method-specialized element names and contents. This complex type may be used, extended, or restricted for well-known operation methods, especially for methods with only one instance. +The parameterValue elements are an unordered set of composition association roles to the parameter values and groups of values included in this group. + + + + + + + + + + + + + + + gml:group is an association role to the operation parameter group for which this element provides parameter values. + + + + + gml:OperationMethod is a method (algorithm or procedure) used to perform a coordinate operation. Most operation methods use a number of operation parameters, although some coordinate conversions use none. Each coordinate operation using the method assigns values to these parameters. +The parameter elements are an unordered list of associations to the set of operation parameters and parameter groups used by this operation method. + + + + + + + + + + + + + + + + + + + + gml:formulaCitation provides a reference to a publication giving the formula(s) or procedure used by an coordinate operation method. + + + + + + + + + + + gml:formula Formula(s) or procedure used by an operation method. The use of the codespace attribite has been deprecated. The property value shall be a character string. + + + + + gml:sourceDimensions is the number of dimensions in the source CRS of this operation method. + + + + + gml:targetDimensions is the number of dimensions in the target CRS of this operation method. + + + + + gml:parameter is an association to an operation parameter or parameter group. + + + + + gml:OperationMethodPropertyType is a property type for association roles to a concrete general-purpose operation method, either referencing or containing the definition of that method. + + + + + + + + + gml:GeneralOperationParameter is the abstract definition of a parameter or group of parameters used by an operation method. + + + + + + + + + + + + + + gml:minimumOccurs is the minimum number of times that values for this parameter group or parameter are required. If this attribute is omitted, the minimum number shall be one. + + + + + gml:AbstractGeneralOperationParameterPropertyType is a property type for association roles to an operation parameter or group, either referencing or containing the definition of that parameter or group. + + + + + + + + + gml:OperationParameter is the definition of a parameter used by an operation method. Most parameter values are numeric, but other types of parameter values are possible. This complex type is expected to be used or extended for all operation methods, without defining operation-method-specialized element names. + + + + + + + + + + + + gml:OperationParameterPropertyType is a property type for association roles to an operation parameter, either referencing or containing the definition of that parameter. + + + + + + + + + gml:OperationParameterGroup is the definition of a group of parameters used by an operation method. This complex type is expected to be used or extended for all applicable operation methods, without defining operation-method-specialized element names. +The generalOperationParameter elements are an unordered list of associations to the set of operation parameters that are members of this group. + + + + + + + + + + + + + + + gml:maximumOccurs is the maximum number of times that values for this parameter group may be included. If this attribute is omitted, the maximum number shall be one. + + + + + gml:OperationParameterPropertyType is a property type for association roles to an operation parameter group, either referencing or containing the definition of that parameter group. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateReferenceSystems.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateReferenceSystems.xsd new file mode 100644 index 0000000000..72a6ced2d5 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateReferenceSystems.xsd @@ -0,0 +1,373 @@ + + + + coordinateReferenceSystems.xsd + See ISO/DIS 19136 13.3. +The spatial-temporal coordinate reference systems schema components are divided into two logical parts. One part defines elements and types for XML encoding of abstract coordinate reference systems definitions. The larger part defines specialized constructs for XML encoding of definitions of the multiple concrete types of spatial-temporal coordinate reference systems. +These schema components encode the Coordinate Reference System packages of the UML Models of ISO 19111 Clause 8 and ISO/DIS 19136 D.3.10, with the exception of the abstract "SC_CRS" class. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + gml:AbstractSingleCRS implements a coordinate reference system consisting of one coordinate system and one datum (as opposed to a Compound CRS). + + + + + gml:SingleCRSPropertyType is a property type for association roles to a single coordinate reference system, either referencing or containing the definition of that coordinate reference system. + + + + + + + + + gml:AbstractGeneralDerivedCRS is a coordinate reference system that is defined by its coordinate conversion from another coordinate reference system. This abstract complex type shall not be used, extended, or restricted, in a GML Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. + + + + + + + + + + + + + + gml:conversion is an association role to the coordinate conversion used to define the derived CRS. + + + + + gml:CompundCRS is a coordinate reference system describing the position of points through two or more independent coordinate reference systems. It is associated with a non-repeating sequence of two or more instances of SingleCRS. + + + + + + + + + + + + + + + The gml:componentReferenceSystem elements are an ordered sequence of associations to all the component coordinate reference systems included in this compound coordinate reference system. The gml:AggregationAttributeGroup should be used to specify that the gml:componentReferenceSystem properties are ordered. + + + + + gml:CompoundCRSPropertyType is a property type for association roles to a compound coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + + gml:GeodeticCRS is a coordinate reference system based on a geodetic datum. + + + + + + + + + + + + + + + + + gml:ellipsoidalCS is an association role to the ellipsoidal coordinate system used by this CRS. + + + + + gml:cartesianCS is an association role to the Cartesian coordinate system used by this CRS. + + + + + gml:sphericalCS is an association role to the spherical coordinate system used by this CRS. + + + + + gml:geodeticDatum is an association role to the geodetic datum used by this CRS. + + + + + + gml:GeodeticCRSPropertyType is a property type for association roles to a geodetic coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:VerticalCRS is a 1D coordinate reference system used for recording heights or depths. Vertical CRSs make use of the direction of gravity to define the concept of height or depth, but the relationship with gravity may not be straightforward. By implication, ellipsoidal heights (h) cannot be captured in a vertical coordinate reference system. Ellipsoidal heights cannot exist independently, but only as an inseparable part of a 3D coordinate tuple defined in a geographic 3D coordinate reference system. + + + + + + + + + + + + + + + gml:verticalCS is an association role to the vertical coordinate system used by this CRS. + + + + + gml:verticalDatum is an association role to the vertical datum used by this CRS. + + + + + gml:VerticalCRSPropertyType is a property type for association roles to a vertical coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:ProjectedCRS is a 2D coordinate reference system used to approximate the shape of the earth on a planar surface, but in such a way that the distortion that is inherent to the approximation is carefully controlled and known. Distortion correction is commonly applied to calculated bearings and distances to produce values that are a close match to actual field values. + + + + + + + + + + + + + + + + + + gml:baseGeodeticCRS is an association role to the geodetic coordinate reference system used by this projected CRS. + + + + + gml:ProjectedCRSPropertyType is a property type for association roles to a projected coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:DerivedCRS is a single coordinate reference system that is defined by its coordinate conversion from another single coordinate reference system known as the base CRS. The base CRS can be a projected coordinate reference system, if this DerivedCRS is used for a georectified grid coverage as described in ISO 19123, Clause 8. + + + + + + + + + + + + + + + + gml:baseCRS is an association role to the coordinate reference system used by this derived CRS. + + + + + The gml:derivedCRSType property describes the type of a derived coordinate reference system. The required codeSpace attribute shall reference a source of information specifying the values and meanings of all the allowed string values for this property. + + + + + An association role to the coordinate system used by this CRS. + + + + + gml:DerivedCRSPropertyType is a property type for association roles to a non-projected derived coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:EngineeringCRS is a contextually local coordinate reference system which can be divided into two broad categories: +- earth-fixed systems applied to engineering activities on or near the surface of the earth; +- CRSs on moving platforms such as road vehicles, vessels, aircraft, or spacecraft, see ISO 19111 8.3. + + + + + + + + + + + + + + + + + deprecated + + + + + + + + + + + gml:cylindricalCS is an association role to the cylindrical coordinate system used by this CRS. + + + + + gml:linearCS is an association role to the linear coordinate system used by this CRS. + + + + + gml:polarCS is an association role to the polar coordinate system used by this CRS. + + + + + gml:userDefinedCS is an association role to the user defined coordinate system used by this CRS. + + + + + gml:engineeringDatum is an association role to the engineering datum used by this CRS. + + + + + gml:EngineeringCRSPropertyType is a property type for association roles to an engineering coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:ImageCRS is an engineering coordinate reference system applied to locations in images. Image coordinate reference systems are treated as a separate sub-type because the definition of the associated image datum contains two attributes not relevant to other engineering datums. + + + + + + + + + + + + + + + + + + + gml:affineCS is an association role to the affine coordinate system used by this CRS. + + + + + gml:imageDatum is an association role to the image datum used by this CRS. + + + + + gml:ImageCRSPropertyType is a property type for association roles to an image coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:TemporalCRS is a 1D coordinate reference system used for the recording of time. + + + + + + + + + + + + + + + + + + gml:timeCS is an association role to the time coordinate system used by this CRS. + + + + + gml:temporalDatum is an association role to the temporal datum used by this CRS. + + + + + gml:TemporalCRSPropertyType is a property type for association roles to a temporal coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateSystems.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateSystems.xsd new file mode 100644 index 0000000000..37627f20f7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coordinateSystems.xsd @@ -0,0 +1,297 @@ + + + + coordinateSystems.xsd + See ISO/DIS 19136 13.4. +The coordinate systems schema components can be divded into three logical parts, which define elements and types for XML encoding of the definitions of: +- Coordinate system axes +- Abstract coordinate system +- Multiple concrete types of spatial-temporal coordinate systems +These schema components encode the Coordinate System packages of the UML Models of ISO 19111 Clause 9 and ISO/DIS 19136 D.3.10. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + gml:CoordinateSystemAxis is a definition of a coordinate system axis. + + + + + + + + + + + + + + + The uom attribute provides an identifier of the unit of measure used for this coordinate system axis. The value of this coordinate in a coordinate tuple shall be recorded using this unit of measure, whenever those coordinates use a coordinate reference system that uses a coordinate system that uses this axis. + + + + + + + + gml:axisAbbrev is the abbreviation used for this coordinate system axis; this abbreviation is also used to identify the coordinates in the coordinate tuple. The codeSpace attribute may reference a source of more information on a set of standardized abbreviations, or on this abbreviation. + + + + + gml:axisDirection is the direction of this coordinate system axis (or in the case of Cartesian projected coordinates, the direction of this coordinate system axis at the origin). +Within any set of coordinate system axes, only one of each pair of terms may be used. For earth-fixed CRSs, this direction is often approximate and intended to provide a human interpretable meaning to the axis. When a geodetic datum is used, the precise directions of the axes may therefore vary slightly from this approximate direction. +The codeSpace attribute shall reference a source of information specifying the values and meanings of all the allowed string values for this property. + + + + + The gml:minimumValue and gml:maximumValue properties allow the specification of minimum and maximum value normally allowed for this axis, in the unit of measure for the axis. For a continuous angular axis such as longitude, the values wrap-around at this value. Also, values beyond this minimum/maximum can be used for specified purposes, such as in a bounding box. A value of minus infinity shall be allowed for the gml:minimumValue element, a value of plus infiniy for the gml:maximumValue element. If these elements are omitted, the value is unspecified. + + + + + The gml:minimumValue and gml:maximumValue properties allow the specification of minimum and maximum value normally allowed for this axis, in the unit of measure for the axis. For a continuous angular axis such as longitude, the values wrap-around at this value. Also, values beyond this minimum/maximum can be used for specified purposes, such as in a bounding box. A value of minus infinity shall be allowed for the gml:minimumValue element, a value of plus infiniy for the gml:maximumValue element. If these elements are omitted, the value is unspecified. + + + + + gml:rangeMeaning describes the meaning of axis value range specified by gml:minimumValue and gml:maximumValue. This element shall be omitted when both gml:minimumValue and gml:maximumValue are omitted. This element should be included when gml:minimumValue and/or gml:maximumValue are included. If this element is omitted when the gml:minimumValue and/or gml:maximumValue are included, the meaning is unspecified. The codeSpace attribute shall reference a source of information specifying the values and meanings of all the allowed string values for this property. + + + + + gml:CoordinateSystemAxisPropertyType is a property type for association roles to a coordinate system axis, either referencing or containing the definition of that axis. + + + + + + + + + gml:AbstractCoordinateSystem is a coordinate system (CS) is the non-repeating sequence of coordinate system axes that spans a given coordinate space. A CS is derived from a set of mathematical rules for specifying how coordinates in a given space are to be assigned to points. The coordinate values in a coordinate tuple shall be recorded in the order in which the coordinate system axes associations are recorded. This abstract complex type shall not be used, extended, or restricted, in an Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. + + + + + + + + + + + + + + + The gml:axis property is an association role (ordered sequence) to the coordinate system axes included in this coordinate system. The coordinate values in a coordinate tuple shall be recorded in the order in which the coordinate system axes associations are recorded, whenever those coordinates use a coordinate reference system that uses this coordinate system. The gml:AggregationAttributeGroup should be used to specify that the axis objects are ordered. + + + + + gml:CoordinateSystemPropertyType is a property type for association roles to a coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:EllipsoidalCS is a two- or three-dimensional coordinate system in which position is specified by geodetic latitude, geodetic longitude, and (in the three-dimensional case) ellipsoidal height. An EllipsoidalCS shall have two or three gml:axis property elements; the number of associations shall equal the dimension of the CS. + + + + + + + + + + gml:EllipsoidalCSPropertyType is a property type for association roles to an ellipsoidal coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:CartesianCS is a 1-, 2-, or 3-dimensional coordinate system. In the 1-dimensional case, it contains a single straight coordinate axis. In the 2- and 3-dimensional cases gives the position of points relative to orthogonal straight axes. In the multi-dimensional case, all axes shall have the same length unit of measure. A CartesianCS shall have one, two, or three gml:axis property elements. + + + + + + + + + + gml:CartesianCSPropertyType is a property type for association roles to a Cartesian coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:VerticalCS is a one-dimensional coordinate system used to record the heights or depths of points. Such a coordinate system is usually dependent on the Earth's gravity field, perhaps loosely as when atmospheric pressure is the basis for the vertical coordinate system axis. A VerticalCS shall have one gml:axis property element. + + + + + + + + + + gml:VerticalCSPropertyType is a property type for association roles to a vertical coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:TimeCS is a one-dimensional coordinate system containing a time axis, used to describe the temporal position of a point in the specified time units from a specified time origin. A TimeCS shall have one gml:axis property element. + + + + + + + + + + gml:TimeCSPropertyType is a property type for association roles to a time coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:LinearCS is a one-dimensional coordinate system that consists of the points that lie on the single axis described. The associated coordinate is the distance – with or without offset – from the specified datum to the point along the axis. A LinearCS shall have one gml:axis property element. + + + + + + + + + + gml:LinearCSPropertyType is a property type for association roles to a linear coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:UserDefinedCS is a two- or three-dimensional coordinate system that consists of any combination of coordinate axes not covered by any other coordinate system type. A UserDefinedCS shall have two or three gml:axis property elements; the number of property elements shall equal the dimension of the CS. + + + + + + + + + + gml:UserDefinedCSPropertyType is a property type for association roles to a user-defined coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:SphericalCS is a three-dimensional coordinate system with one distance measured from the origin and two angular coordinates. A SphericalCS shall have three gml:axis property elements. + + + + + + + + + + gml:SphericalCSPropertyType is property type for association roles to a spherical coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:PolarCS ia s two-dimensional coordinate system in which position is specified by the distance from the origin and the angle between the line from the origin to a point and a reference direction. A PolarCS shall have two gml:axis property elements. + + + + + + + + + + gml:PolarCSPropertyType is a property type for association roles to a polar coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:CylindricalCS is a three-dimensional coordinate system consisting of a polar coordinate system extended by a straight coordinate axis perpendicular to the plane spanned by the polar coordinate system. A CylindricalCS shall have three gml:axis property elements. + + + + + + + + + + gml:CylindricalCSPropertyType is a property type for association roles to a cylindrical coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:AffineCS is a two- or three-dimensional coordinate system with straight axes that are not necessarily orthogonal. An AffineCS shall have two or three gml:axis property elements; the number of property elements shall equal the dimension of the CS. + + + + + + + + + + gml:AffineCSPropertyType is a property type for association roles to an affine coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coverage.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coverage.xsd new file mode 100644 index 0000000000..a1bbfa4fa4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/coverage.xsd @@ -0,0 +1,292 @@ + + + + coverage.xsd + See ISO/DIS 19136 20.3. +A coverage incorporates a mapping from a spatiotemporal domain to a range set, the latter providing the set in which the attribute values live. The range set may be an arbitrary set including discrete lists, integer or floating point ranges, and multi-dimensional vector spaces. +A coverage can be viewed as the graph of the coverage function f:A à B, that is as the set of ordered pairs {(x, f(x)) | where x is in A}. This view is especially applicable to the GML encoding of a coverage. In the case of a discrete coverage, the domain set A is partitioned into a collection of subsets (typically a disjoint collection) A = UAi and the function f is constant on each Ai. For a spatial domain, the Ai are geometry elements, hence the coverage can be viewed as a collection of (geometry,value) pairs, where the value is an element of the range set. If the spatial domain A is a topological space then the coverage can be viewed as a collection of (topology,value) pairs, where the topology element in the pair is a topological n-chain (in GML terms this is a gml:TopoPoint, gml:TopoCurve, gml:TopoSurface or gml:TopoSolid). +A coverage is implemented as a GML feature. We can thus speak of a "temperature distribution feature", or a "remotely sensed image feature", or a "soil distribution feature". +As is the case for any GML object, a coverage object may also be the value of a property of a feature. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + The base type for coverages is gml:AbstractCoverageType. The basic elements of a coverage can be seen in this content model: the coverage contains gml:domainSet and gml:rangeSet properties. The gml:domainSet property describes the domain of the coverage and the gml:rangeSet property describes the range of the coverage. + + + + + + + + + + + + + This element serves as the head of a substitution group which may contain any coverage whose type is derived from gml:AbstractCoverageType. It may act as a variable in the definition of content models where it is required to permit any coverage to be valid. + + + + + + + + + + + + + + A discrete coverage consists of a domain set, range set and optionally a coverage function. The domain set consists of either spatial or temporal geometry objects, finite in number. The range set is comprised of a finite number of attribute values each of which is associated to every direct position within any single spatiotemporal object in the domain. In other words, the range values are constant on each spatiotemporal object in the domain. This coverage function maps each element from the coverage domain to an element in its range. The coverageFunction element describes the mapping function. +This element serves as the head of a substitution group which may contain any discrete coverage whose type is derived from gml:DiscreteCoverageType. + + + + + + + + + + + + + + A continuous coverage as defined in ISO 19123 is a coverage that can return different values for the same feature attribute at different direct positions within a single spatiotemporal object in its spatiotemporal domain. The base type for continuous coverages is AbstractContinuousCoverageType. +The coverageFunction element describes the mapping function. +The abstract element gml:AbstractContinuousCoverage serves as the head of a substitution group which may contain any continuous coverage whose type is derived from gml:AbstractContinuousCoverageType. + + + + + The gml:domainSet property element describes the spatio-temporal region of interest, within which the coverage is defined. Its content model is given by gml:DomainSetType. +The value of the domain is thus a choice between a gml:AbstractGeometry and a gml:AbstractTimeObject. In the instance these abstract elements will normally be substituted by a geometry complex or temporal complex, to represent spatial coverages and time-series, respectively. +The presence of the gml:AssociationAttributeGroup means that domainSet follows the usual GML property model and may use the xlink:href attribute to point to the domain, as an alternative to describing the domain inline. Ownership semantics may be provided using the gml:OwnershipAttributeGroup. + + + + + + + + + + + + + + + + The gml:rangeSet property element contains the values of the coverage (sometimes called the attribute values). Its content model is given by gml:RangeSetType. +This content model supports a structural description of the range. The semantic information describing the range set is embedded using a uniform method, as part of the explicit values, or as a template value accompanying the representation using gml:DataBlock and gml:File. +The values from each component (or "band") in the range may be encoded within a gml:ValueArray element or a concrete member of the gml:AbstractScalarValueList substitution group . Use of these elements satisfies the value-type homogeneity requirement. + + + + + + + + + + + + + gml:DataBlock describes the Range as a block of text encoded values similar to a Common Separated Value (CSV) representation. +The range set parameterization is described by the property gml:rangeParameters. + + + + + + + + + + + + + + + gml:CoordinatesType consists of a list of coordinate tuples, with each coordinate tuple separated by the ts or tuple separator (whitespace), and each coordinate in the tuple by the cs or coordinate separator (comma). +The gml:tupleList encoding is effectively "band-interleaved". + + + + + gml:doubleOrNilReasonList consists of a list of gml:doubleOrNilReason values, each separated by a whitespace. The gml:doubleOrNilReason values are grouped into tuples where the dimension of each tuple in the list is equal to the number of range parameters. + + + + + for efficiency reasons, GML also provides a means of encoding the range set in an arbitrary external encoding, such as a binary file. This encoding may be "well-known" but this is not required. This mode uses the gml:File element. +The values of the coverage (attribute values in the range set) are transmitted in a external file that is referenced from the XML structure described by gml:FileType. The external file is referenced by the gml:fileReference property that is an anyURI (the gml:fileName property has been deprecated). This means that the external file may be located remotely from the referencing GML instance. +The gml:compression property points to a definition of a compression algorithm through an anyURI. This may be a retrievable, computable definition or simply a reference to an unambiguous name for the compression method. +The gml:mimeType property points to a definition of the file mime type. +The gml:fileStructure property is defined by a codelist. Note further that all values shall be enclosed in a single file. Multi-file structures for values are not supported in GML. +The semantics of the range set is described as above using the gml:rangeParameters property. +Note that if any compression algorithm is applied, the structure above applies only to the pre-compression or post-decompression structure of the file. +Note that the fields within a record match the gml:valueComponents of the gml:CompositeValue in document order. + + + + + + + + + deprecated + + + + + + + + + + + + The gml:coverageFunction property describes the mapping function from the domain to the range of the coverage. +The value of the CoverageFunction is one of gml:CoverageMappingRule and gml:GridFunction. +If the gml:coverageFunction property is omitted for a gridded coverage (including rectified gridded coverages) the gml:startPoint is assumed to be the value of the gml:low property in the gml:Grid geometry, and the gml:sequenceRule is assumed to be linear and the gml:axisOrder property is assumed to be "+1 +2". + + + + + + + + + + + + gml:CoverageMappingRule provides a formal or informal description of the coverage function. +The mapping rule may be defined as an in-line string (gml:ruleDefinition) or via a remote reference through xlink:href (gml:ruleReference). +If no rule name is specified, the default is 'Linear' with respect to members of the domain in document order. + + + + + + + + + + + gml:GridFunction provides an explicit mapping rule for grid geometries, i.e. the domain shall be a geometry of type grid. It describes the mapping of grid posts (discrete point grid coverage) or grid cells (discrete surface coverage) to the values in the range set. +The gml:startPoint is the index position of a point in the grid that is mapped to the first point in the range set (this is also the index position of the first grid post). If the gml:startPoint property is omitted the gml:startPoint is assumed to be equal to the value of gml:low in the gml:Grid geometry. Subsequent points in the mapping are determined by the value of the gml:sequenceRule. + + + + + + + + + + + The gml:SequenceRuleType is derived from the gml:SequenceRuleEnumeration through the addition of an axisOrder attribute. The gml:SequenceRuleEnumeration is an enumerated type. The rule names are defined in ISO 19123. If no rule name is specified the default is "Linear". + + + + + + deprecated + + + + + + + + + + + + + + + + + + + The different values in a gml:AxisDirectionList indicate the incrementation order to be used on all axes of the grid. Each axis shall be mentioned once and only once. + + + + + + The value of a gml:AxisDirection indicates the incrementation order to be used on an axis of the grid. + + + + + + + + In a gml:MultiPointCoverage the domain set is a gml:MultiPoint, that is a collection of arbitrarily distributed geometric points. +The content model is identical with gml:DiscreteCoverageType, but that gml:domainSet shall have values gml:MultiPoint. +In a gml:MultiPointCoverage the mapping from the domain to the range is straightforward. +- For gml:DataBlock encodings the points of the gml:MultiPoint are mapped in document order to the tuples of the data block. +- For gml:CompositeValue encodings the points of the gml:MultiPoint are mapped to the members of the composite value in document order. +- For gml:File encodings the points of the gml:MultiPoint are mapped to the records of the file in sequential order. + + + + + + In a gml:MultiCurveCoverage the domain is partioned into a collection of curves comprising a gml:MultiCurve. The coverage function then maps each curve in the collection to a value in the range set. +The content model is identical with gml:DiscreteCoverageType, but that gml:domainSet shall have values gml:MultiCurve. +In a gml:MultiCurveCoverage the mapping from the domain to the range is straightforward. +- For gml:DataBlock encodings the curves of the gml:MultiCurve are mapped in document order to the tuples of the data block. +- For gml:CompositeValue encodings the curves of the gml:MultiCurve are mapped to the members of the composite value in document order. +- For gml:File encodings the curves of the gml:MultiCurve are mapped to the records of the file in sequential order. + + + + + + In a gml:MultiSurfaceCoverage the domain is partioned into a collection of surfaces comprising a gml:MultiSurface. The coverage function than maps each surface in the collection to a value in the range set. +The content model is identical with gml:DiscreteCoverageType, but that gml:domainSet shall have values gml:MultiSurface. +In a gml:MultiSurfaceCoverage the mapping from the domain to the range is straightforward. +- For gml:DataBlock encodings the surfaces of the gml:MultiSurface are mapped in document order to the tuples of the data block. +- For gml:CompositeValue encodings the surfaces of the gml:MultiSurface are mapped to the members of the composite value in document order. +- For gml:File encodings the surfaces of the gml:MultiSurface are mapped to the records of the file in sequential order. + + + + + + In a gml:MultiSolidCoverage the domain is partioned into a collection of solids comprising a gml:MultiSolid. The coverage function than maps each solid in the collection to a value in the range set. +The content model is identical with gml:DiscreteCoverageType, but that gml:domainSet shall have values gml:MultiSolid. +In a gml:MultiSolidCoverage the mapping from the domain to the range is straightforward. +- For gml:DataBlock encodings the solids of the gml:MultiSolid are mapped in document order to the tuples of the data block. +- For gml:CompositeValue encodings the solids of the gml:MultiSolid are mapped to the members of the composite value in document order. +- For gml:File encodings the solids of the gml:MultiSolid are mapped to the records of the file in sequential order. + + + + + + A gml:GriddedCoverage is a discrete point coverage in which the domain set is a geometric grid of points. +Note that this is the same as the gml:MultiPointCoverage except that we have a gml:Grid to describe the domain. +The simple gridded coverage is not geometrically referenced and hence no geometric positions are assignable to the points in the grid. Such geometric positioning is introduced in the gml:RectifiedGridCoverage. + + + + + The gml:RectifiedGridCoverage is a discrete point coverage based on a rectified grid. It is similar to the grid coverage except that the points of the grid are geometrically referenced. The rectified grid coverage has a domain that is a gml:RectifiedGrid geometry. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/datums.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/datums.xsd new file mode 100644 index 0000000000..a62b866f0c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/datums.xsd @@ -0,0 +1,287 @@ + + + + + datums.xsd + See ISO/DIS 19136 13.5 +The datums schema components can be divided into three logical parts, which define elements and types for XML encoding of the definitions of: +- Abstract datum +- Geodetic datums, including ellipsoid and prime meridian +- Multiple other concrete types of spatial or temporal datums +These schema components encode the Datum packages of the UML Models of ISO 19111 Clause 10 and ISO/DIS 19136 D.3.10. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + A gml:AbstractDatum specifies the relationship of a coordinate system to the earth, thus creating a coordinate reference system. A datum uses a parameter or set of parameters that determine the location of the origin of the coordinate reference system. Each datum subtype may be associated with only specific types of coordinate systems. This abstract complex type shall not be used, extended, or restricted, in a GML Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. + + + + + + + + + + + + + + + + + gml:anchorDefinition is a description, possibly including coordinates, of the definition used to anchor the datum to the Earth. Also known as the "origin", especially for engineering and image datums. The codeSpace attribute may be used to reference a source of more detailed on this point or surface, or on a set of such descriptions. +- For a geodetic datum, this point is also known as the fundamental point, which is traditionally the point where the relationship between geoid and ellipsoid is defined. In some cases, the "fundamental point" may consist of a number of points. In those cases, the parameters defining the geoid/ellipsoid relationship have been averaged for these points, and the averages adopted as the datum definition. +- For an engineering datum, the anchor definition may be a physical point, or it may be a point with defined coordinates in another CRS.may +- For an image datum, the anchor definition is usually either the centre of the image or the corner of the image. +- For a temporal datum, this attribute is not defined. Instead of the anchor definition, a temporal datum carries a separate time origin of type DateTime. + + + + + gml:realizationEpoch is the time after which this datum definition is valid. See ISO 19111 Table 32 for details. + + + + + gml:DatumPropertyType is a property type for association roles to a datum, either referencing or containing the definition of that datum. + + + + + + + + + gml:GeodeticDatum is a geodetic datum defines the precise location and orientation in 3-dimensional space of a defined ellipsoid (or sphere), or of a Cartesian coordinate system centered in this ellipsoid (or sphere). + + + + + + + + + + + + + + + gml:primeMeridian is an association role to the prime meridian used by this geodetic datum. + + + + + gml:ellipsoid is an association role to the ellipsoid used by this geodetic datum. + + + + + gml:GeodeticDatumPropertyType is a property type for association roles to a geodetic datum, either referencing or containing the definition of that datum. + + + + + + + + + A gml:Ellipsoid is a geometric figure that may be used to describe the approximate shape of the earth. In mathematical terms, it is a surface formed by the rotation of an ellipse about its minor axis. + + + + + + + + + + + + + + + gml:semiMajorAxis specifies the length of the semi-major axis of the ellipsoid, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a length, such as metres or feet. + + + + + gml:secondDefiningParameter is a property containing the definition of the second parameter that defines the shape of an ellipsoid. An ellipsoid requires two defining parameters: semi-major axis and inverse flattening or semi-major axis and semi-minor axis. When the reference body is a sphere rather than an ellipsoid, only a single defining parameter is required, namely the radius of the sphere; in that case, the semi-major axis "degenerates" into the radius of the sphere. +The inverseFlattening element contains the inverse flattening value of the ellipsoid. This value is a scale factor (or ratio). It uses gml:LengthType with the restriction that the unit of measure referenced by the uom attribute must be suitable for a scale factor, such as percent, permil, or parts-per-million. +The semiMinorAxis element contains the length of the semi-minor axis of the ellipsoid. When the isSphere element is included, the ellipsoid is degenerate and is actually a sphere. The sphere is completely defined by the semi-major axis, which is the radius of the sphere. + + + + + + + + + + + + + + + + + + + gml:EllipsoidPropertyType is a property type for association roles to an ellipsoid, either referencing or containing the definition of that ellipsoid. + + + + + + + + + A gml:PrimeMeridian defines the origin from which longitude values are determined. The default value for the prime meridian gml:identifier value is "Greenwich". + + + + + + + + + + + + + + gml:greenwichLongitude is the longitude of the prime meridian measured from the Greenwich meridian, positive eastward. If the value of the prime meridian "name" is "Greenwich" then the value of greenwichLongitude shall be 0 degrees. + + + + + gml:PrimeMeridianPropertyType is a property type for association roles to a prime meridian, either referencing or containing the definition of that meridian. + + + + + + + + + gml:EngineeringDatum defines the origin of an engineering coordinate reference system, and is used in a region around that origin. This origin may be fixed with respect to the earth (such as a defined point at a construction site), or be a defined point on a moving vehicle (such as on a ship or satellite). + + + + + + + + + + gml:EngineeringDatumPropertyType is a property type for association roles to an engineering datum, either referencing or containing the definition of that datum. + + + + + + + + + gml:ImageDatum defines the origin of an image coordinate reference system, and is used in a local context only. For an image datum, the anchor definition is usually either the centre of the image or the corner of the image. For more information, see ISO 19111 B.3.5. + + + + + + + + + + + + + + gml:pixelInCell is a specification of the way an image grid is associated with the image data attributes. The required codeSpace attribute shall reference a source of information specifying the values and meanings of all the allowed string values for this property. + + + + + gml:ImageDatumPropertyType is a property type for association roles to an image datum, either referencing or containing the definition of that datum. + + + + + + + + + gml:VerticalDatum is a textual description and/or a set of parameters identifying a particular reference level surface used as a zero-height surface, including its position with respect to the Earth for any of the height types recognized by this International Standard. + + + + + + + + + + gml:VerticalDatumPropertyType is property type for association roles to a vertical datum, either referencing or containing the definition of that datum. + + + + + + + + + A gml:TemporalDatum defines the origin of a Temporal Reference System. This type omits the "anchorDefinition" and "realizationEpoch" elements and adds the "origin" element with the dateTime type. + + + + + + + + + + + + + + The TemporalDatumBaseType partially defines the origin of a temporal coordinate reference system. This type restricts the AbstractDatumType to remove the "anchorDefinition" and "realizationEpoch" elements. + + + + + + + + + + + + + + + + + + + + gml:origin is the date and time origin of this temporal datum. + + + + + gml:TemporalDatumPropertyType is a property type for association roles to a temporal datum, either referencing or containing the definition of that datum. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/defaultStyle.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/defaultStyle.xsd new file mode 100644 index 0000000000..ce8c9975a7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/defaultStyle.xsd @@ -0,0 +1,454 @@ + + + + defaultStyle.xsd + + GML is an OGC Standard. + Copyright (c) 2007,2010 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + Top-level property. Used in application schemas to "attach" the styling information to GML data. The link between the data and the style should be established through this property only. + + + + + + [complexType of] Top-level property. Used in application schemas to "attach" the styling information to GML data. The link between the data and the style should be established through this property only. + + + + + + + + + + + The value of the top-level property. It is an abstract element. Used as the head element of the substitution group for extensibility purposes. + + + + + + [complexType of] The value of the top-level property. It is an abstract element. Used as the head element of the substitution group for extensibility purposes. + + + + + + + + + Predefined concrete value of the top-level property. Encapsulates all other styling information. + + + + + + [complexType of] Predefined concrete value of the top-level property. Encapsulates all other styling information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for features. + + + + + + [complexType of] The style descriptor for features. + + + + + + + + + + + + + + + + + + + Used to specify the grammar of the feature query mechanism. + + + + + + + + + + + Base complex type for geometry, topology, label and graph styles. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for geometries of a feature. + + + + + + [complexType of] The style descriptor for geometries of a feature. + + + + + + + + + deprecated + Deprecated in GML version 3.1.0. Use symbol with inline content instead. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for topologies of a feature. Describes individual topology elements styles. + + + + + + [complexType of] The style descriptor for topologies of a feature. Describes individual topology elements styles. + + + + + + + + + deprecated + Deprecated in GML version 3.1.0. Use symbol with inline content instead. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for labels of a feature, geometry or topology. + + + + + + [complexType of] The style descriptor for labels of a feature, geometry or topology. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for a graph consisting of a number of features. Describes graph-specific style attributes. + + + + + + [complexType of] The style descriptor for a graph consisting of a number of features. Describes graph-specific style attributes. + + + + + + + + + + + + + + + + + + + + + The symbol property. Extends the gml:AssociationType to allow for remote referencing of symbols. + + + + + + [complexType of] The symbol property. Allows for remote referencing of symbols. + + + + + + + + + + + + + Used to specify the type of the symbol used. + + + + + + + + + + + Label is mixed -- composed of text and XPath expressions used to extract the useful information from the feature. + + + + + + + + + + Defines the geometric transformation of entities. There is no particular grammar defined for this value. + + + + + + Used to vary individual graphic parameters and attributes of the style, symbol or text. + + + + + + + + + + + + Graph-specific styling property. + + + + + + + + + + Graph-specific styling property. + + + + + + + + + + Graph-specific styling property. + + + + + + + + + + Graph-specific styling property. + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/deprecatedTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/deprecatedTypes.xsd new file mode 100644 index 0000000000..7dbd79b201 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/deprecatedTypes.xsd @@ -0,0 +1,1133 @@ + + + + deprecatedTypes.xsd + All global schema components that are part of the GML schema, but were deprecated. See Annex I. + + GML is an OGC Standard. + Copyright (c) 2007,2010 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + + + + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + deprecated + + + + + + + + + + deprecated + + + + + deprecated + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + deprecated + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/dictionary.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/dictionary.xsd new file mode 100644 index 0000000000..8d6f94ab62 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/dictionary.xsd @@ -0,0 +1,90 @@ + + + + dictionary.xsd + See ISO/DIS 19136 Clause 16. +Many applications require definitions of terms which are used within instance documents as the values of certain properties or as reference information to tie properties to standard information values in some way. Units of measure and descriptions of measurable phenomena are two particular examples. +It will often be convenient to use definitions provided by external authorities. These may already be packaged for delivery in various ways, both online and offline. In order that they may be referred to from GML documents it is generally necessary that a URI be available for each definition. Where this is the case then it is usually preferable to refer to these directly. +Alternatively, it may be convenient or necessary to capture definitions in XML, either embedded within an instance document containing features or as a separate document. The definitions may be transcriptions from an external source, or may be new definitions for a local purpose. In order to support this case, some simple components are provided in GML in the form of +- a generic gml:Definition, which may serve as the basis for more specialized definitions +- a generic gml:Dictionary, which allows a set of definitions or references to definitions to be collected +These components may be used directly, but also serve as the basis for more specialised definition elements in GML, in particular: coordinate operations, coordinate reference systems, datums, temporal reference systems, and units of measure. +Note that the GML definition and dictionary components implement a simple nested hierarchy of definitions with identifiers. The latter provide handles which may be used in the description of more complex relationships between terms. However, the GML dictionary components are not intended to provide direct support for complex taxonomies, ontologies or thesauri. Specialised XML tools are available to satisfy the more sophisticated requirements. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The basic gml:Definition element specifies a definition, which can be included in or referenced by a dictionary. +The content model for a generic definition is a derivation from gml:AbstractGMLType. +The gml:description property element shall hold the definition if this can be captured in a simple text string, or the gml:descriptionReference property element may carry a link to a description elsewhere. +The gml:identifier element shall provide one identifier identifying this definition. The identifier shall be unique within the dictionaries using this definition. +The gml:name elements shall provide zero or more terms and synonyms for which this is the definition. +The gml:remarks element shall be used to hold additional textual information that is not conceptually part of the definition but is useful in understanding the definition. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets of definitions may be collected into dictionaries or collections. +A gml:Dictionary is a non-abstract collection of definitions. +The gml:Dictionary content model adds a list of gml:dictionaryEntry properties that contain or reference gml:Definition objects. A database handle (gml:id attribute) is required, in order that this collection may be referred to. The standard gml:identifier, gml:description, gml:descriptionReference and gml:name properties are available to reference or contain more information about this dictionary. The gml:description and gml:descriptionReference property elements may be used for a description of this dictionary. The derived gml:name element may be used for the name(s) of this dictionary. for remote definiton references gml:dictionaryEntry shall be used. If a Definition object contained within a Dictionary uses the descriptionReference property to refer to a remote definition, then this enables the inclusion of a remote definition in a local dictionary, giving a handle and identifier in the context of the local dictionary. + + + + + + + + + + + + + + + + This property element contains or refers to the definitions which are members of a dictionary. +The content model follows the standard GML property pattern, so a gml:dictionaryEntry may either contain or refer to a single gml:Definition. Since gml:Dictionary is substitutable for gml:Definition, the content of an entry may itself be a lower level dictionary. +Note that if the value is provided by reference, this definition does not carry a handle (gml:id) in this context, so does not allow external references to this specific definition in this context. When used in this way the referenced definition will usually be in a dictionary in the same XML document. + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/direction.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/direction.xsd new file mode 100644 index 0000000000..8b0f7f55cf --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/direction.xsd @@ -0,0 +1,84 @@ + + + + direction.xsd + See ISO/DIS 19136 Clause 18. +The direction schema components provide the GML Application Schema developer with a standard property element to describe direction, and associated objects that may be used to express orientation, direction, heading, bearing or other directional aspects of geographic features. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The property gml:direction is intended as a pre-defined property expressing a direction to be assigned to features defined in a GML application schema. + + + + + + + + + + + + + + + + Direction vectors are specified by providing components of a vector. + + + + + + deprecated + + + + + + + + + direction descriptions are specified by a compass point code, a keyword, a textual description or a reference to a description. +A gml:compassPoint is specified by a simple enumeration. +In addition, thre elements to contain text-based descriptions of direction are provided. +If the direction is specified using a term from a list, gml:keyword should be used, and the list indicated using the value of the codeSpace attribute. +if the direction is decribed in prose, gml:direction or gml:reference should be used, allowing the value to be included inline or by reference. + + + + + + + + + + + These directions are necessarily approximate, giving direction with a precision of 22.5°. It is thus generally unnecessary to specify the reference frame, though this may be detailed in the definition of a GML application language. + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/dynamicFeature.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/dynamicFeature.xsd new file mode 100644 index 0000000000..d755067cf1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/dynamicFeature.xsd @@ -0,0 +1,109 @@ + + + + dynamicFeature.xsd + See ISO/DIS 19136 15.6. +A number of types and relationships are defined to represent the time-varying properties of geographic features. +In a comprehensive treatment of spatiotemporal modeling, Langran (see Bibliography) distinguished three principal temporal entities: states, events, and evidence; the schema specified in the following Subclauses incorporates elements for each. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + Evidence is represented by a simple gml:dataSource or gml:dataSourceReference property that indicates the source of the temporal data. The remote link attributes of the gml:dataSource element have been deprecated along with its current type. + + + + + Evidence is represented by a simple gml:dataSource or gml:dataSourceReference property that indicates the source of the temporal data. + + + + + A convenience group. This allows an application schema developer to include dynamic properties in a content model in a standard fashion. + + + + + + + + + + + States are captured by time-stamped instances of a feature. The content model extends the standard gml:AbstractFeatureType with the gml:dynamicProperties model group. +Each time-stamped instance represents a 'snapshot' of a feature. The dynamic feature classes will normally be extended to suit particular applications. A dynamic feature bears either a time stamp or a history. + + + + + + + + + + + + A gml:DynamicFeatureCollection is a feature collection that has a gml:validTime property (i.e. is a snapshot of the feature collection) or which has a gml:history property that contains one or more gml:AbstractTimeSlices each of which contain values of the time varying properties of the feature collection. Note that the gml:DynamicFeatureCollection may be one of the following: +1. A feature collection which consists of static feature members (members do not change in time) but which has properties of the collection object as a whole that do change in time . +2. A feature collection which consists of dynamic feature members (the members are gml:DynamicFeatures) but which also has properties of the collection as a whole that vary in time. + + + + + + + + + + + + + + + + + + + + + + + + + To describe an event — an action that occurs at an instant or over an interval of time — GML provides the gml:AbtractTimeSlice element. A timeslice encapsulates the time-varying properties of a dynamic feature -- it shall be extended to represent a time stamped projection of a specific feature. The gml:dataSource property describes how the temporal data was acquired. +A gml:AbstractTimeSlice instance is a GML object that encapsulates updates of the dynamic—or volatile—properties that reflect some change event; it thus includes only those feature properties that have actually changed due to some process. +gml:AbstractTimeSlice basically provides a facility for attribute-level time stamping, in contrast to the object-level time stamping of dynamic feature instances. +The time slice can thus be viewed as event or process-oriented, whereas a snapshot is more state or structure-oriented. A timeslice has richer causality, whereas a snapshot merely portrays the status of the whole. + + + + + + + + + + + + + + + + A generic sequence of events constitute a gml:history of an object. +The gml:history element contains a set of elements in the substitution group headed by the abstract element gml:AbstractTimeSlice, representing the time-varying properties of interest. The history property of a dynamic feature associates a feature instance with a sequence of time slices (i.e. change events) that encapsulate the evolution of the feature. + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/feature.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/feature.xsd new file mode 100644 index 0000000000..1892ef6f8f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/feature.xsd @@ -0,0 +1,94 @@ + + + + feature.xsd + See ISO/DIS 19136 Clause 9. +A GML feature is a (representation of a) identifiable real-world object in a selected domain of discourse. The feature schema provides a framework for the creation of GML features and feature collections. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + The basic feature model is given by the gml:AbstractFeatureType. +The content model for gml:AbstractFeatureType adds two specific properties suitable for geographic features to the content model defined in gml:AbstractGMLType. +The value of the gml:boundedBy property describes an envelope that encloses the entire feature instance, and is primarily useful for supporting rapid searching for features that occur in a particular location. +The value of the gml:location property describes the extent, position or relative location of the feature. + + + + + + + + + + + + + This abstract element serves as the head of a substitution group which may contain any elements whose content model is derived from gml:AbstractFeatureType. This may be used as a variable in the construction of content models. +gml:AbstractFeature may be thought of as "anything that is a GML feature" and may be used to define variables or templates in which the value of a GML property is "any feature". This occurs in particular in a GML feature collection where the feature member properties contain one or multiple copies of gml:AbstractFeature respectively. + + + + + + + + + + + + This property describes the minimum bounding box or rectangle that encloses the entire feature. + + + + + + + + + + + + + + gml:EnvelopeWithTimePeriod is provided for envelopes that include a temporal extent. It adds two time position properties, gml:beginPosition and gml:endPosition, which describe the extent of a time-envelope. +Since gml:EnvelopeWithTimePeriod is assigned to the substitution group headed by gml:Envelope, it may be used whenever gml:Envelope is valid. + + + + + + + + + + + + + + + + The gml:locationName property element is a convenience property where the text value describes the location of the feature. If the location names are selected from a controlled list, then the list shall be identified in the codeSpace attribute. + + + + + The gml:locationReference property element is a convenience property where the text value referenced by the xlink:href attribute describes the location of the feature. + + + + + To create a collection of GML features, a property type shall be derived by extension from gml:AbstractFeatureMemberType. +By default, this abstract property type does not imply any ownership of the features in the collection. The owns attribute of gml:OwnershipAttributeGroup may be used on a property element instance to assert ownership of a feature in the collection. A collection shall not own a feature already owned by another object. + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryAggregates.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryAggregates.xsd new file mode 100644 index 0000000000..9ffbdc0531 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryAggregates.xsd @@ -0,0 +1,197 @@ + + + + geometryAggregates.xsd + See ISO/DIS 19136 12.3. +Geometric aggregates (i.e. instances of a subtype of gml:AbstractGeometricAggregateType) are arbitrary aggregations of geometry elements. They are not assumed to have any additional internal structure and are used to "collect" pieces of geometry of a specified type. Application schemas may use aggregates for features that use multiple geometric objects in their representations. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + gml:AbstractGeometricAggregate is the abstract head of the substitution group for all geometric aggregates. + + + + + + + + + + + + + + + gml:MultiGeometry is a collection of one or more GML geometry objects of arbitrary type. +The members of the geometric aggregate may be specified either using the "standard" property (gml:geometryMember) or the array property (gml:geometryMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element either references a geometry element via the XLink-attributes or contains the geometry element. + + + + + This property element contains a list of geometry elements. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a geometric aggregate as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + A gml:MultiPoint consists of one or more gml:Points. +The members of the geometric aggregate may be specified either using the "standard" property (gml:pointMember) or the array property (gml:pointMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element either references a Point via the XLink-attributes or contains the Point element. + + + + + This property element contains a list of points. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a collection of points as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + A gml:MultiCurve is defined by one or more gml:AbstractCurves. +The members of the geometric aggregate may be specified either using the "standard" property (gml:curveMember) or the array property (gml:curveMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element contains a list of curves. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a collection of curves as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + A gml:MultiSurface is defined by one or more gml:AbstractSurfaces. +The members of the geometric aggregate may be specified either using the "standard" property (gml:surfaceMember) or the array property (gml:surfaceMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element contains a list of surfaces. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a collection of surfaces as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + A gml:MultiSolid is defined by one or more gml:AbstractSolids. +The members of the geometric aggregate may be specified either using the "standard" property (gml:solidMember) or the array property (gml:solidMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element either references a solid via the XLink-attributes or contains the solid element. A solid element is any element, which is substitutable for gml:AbstractSolid. + + + + + This property element contains a list of solids. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a collection of solids as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryBasic0d1d.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryBasic0d1d.xsd new file mode 100644 index 0000000000..2ac83e315b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryBasic0d1d.xsd @@ -0,0 +1,277 @@ + + + + geometryBasic0d1d.xsd + See ISO/DIS 19136 Clause 10. +Any geometry element that inherits the semantics of AbstractGeometryType may be viewed as a set of direct positions. +All of the classes derived from AbstractGeometryType inherit an optional association to a coordinate reference system. All direct positions shall directly or indirectly be associated with a coordinate reference system. When geometry elements are aggregated in another geometry element (such as a MultiGeometry or GeometricComplex), which already has a coordinate reference system specified, then these elements are assumed to be in that same coordinate reference system unless otherwise specified. +The geometry model distinguishes geometric primitives, aggregates and complexes. +Geometric primitives, i.e. instances of a subtype of AbstractGeometricPrimitiveType, will be open, that is, they will not contain their boundary points; curves will not contain their end points, surfaces will not contain their boundary curves, and solids will not contain their bounding surfaces. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + All geometry elements are derived directly or indirectly from this abstract supertype. A geometry element may have an identifying attribute (gml:id), one or more names (elements identifier and name) and a description (elements description and descriptionReference) . It may be associated with a spatial reference system (attribute group gml:SRSReferenceGroup). +The following rules shall be adhered to: +- Every geometry type shall derive from this abstract type. +- Every geometry element (i.e. an element of a geometry type) shall be directly or indirectly in the substitution group of AbstractGeometry. + + + + + + + + + + The attribute group SRSReferenceGroup is an optional reference to the CRS used by this geometry, with optional additional information to simplify the processing of the coordinates when a more complete definition of the CRS is not needed. +In general the attribute srsName points to a CRS instance of gml:AbstractCoordinateReferenceSystem. For well-known references it is not required that the CRS description exists at the location the URI points to. +If no srsName attribute is given, the CRS shall be specified as part of the larger context this geometry element is part of. + + + + + + + + The attributes uomLabels and axisLabels, defined in the SRSInformationGroup attribute group, are optional additional and redundant information for a CRS to simplify the processing of the coordinate values when a more complete definition of the CRS is not needed. This information shall be the same as included in the complete definition of the CRS, referenced by the srsName attribute. When the srsName attribute is included, either both or neither of the axisLabels and uomLabels attributes shall be included. When the srsName attribute is omitted, both of these attributes shall be omitted. +The attribute axisLabels is an ordered list of labels for all the axes of this CRS. The gml:axisAbbrev value should be used for these axis labels, after spaces and forbidden characters are removed. When the srsName attribute is included, this attribute is optional. When the srsName attribute is omitted, this attribute shall also be omitted. +The attribute uomLabels is an ordered list of unit of measure (uom) labels for all the axes of this CRS. The value of the string in the gml:catalogSymbol should be used for this uom labels, after spaces and forbidden characters are removed. When the axisLabels attribute is included, this attribute shall also be included. When the axisLabels attribute is omitted, this attribute shall also be omitted. + + + + + + + The AbstractGeometry element is the abstract head of the substitution group for all geometry elements of GML. This includes pre-defined and user-defined geometry elements. Any geometry element shall be a direct or indirect extension/restriction of AbstractGeometryType and shall be directly or indirectly in the substitution group of AbstractGeometry. + + + + + A geometric property may either be any geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same or another document). Note that either the reference or the contained element shall be given, but not both or none. +If a feature has a property that takes a geometry element as its value, this is called a geometry property. A generic type for such a geometry property is GeometryPropertyType. + + + + + + + + + + If a feature has a property which takes an array of geometry elements as its value, this is called a geometry array property. A generic type for such a geometry property is GeometryArrayPropertyType. +The elements are always contained inline in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported. + + + + + + + + + Direct position instances hold the coordinates for a position within some coordinate reference system (CRS). Since direct positions, as data types, will often be included in larger objects (such as geometry elements) that have references to CRS, the srsName attribute will in general be missing, if this particular direct position is included in a larger element with such a reference to a CRS. In this case, the CRS is implicitly assumed to take on the value of the containing object's CRS. +if no srsName attribute is given, the CRS shall be specified as part of the larger context this geometry element is part of, typically a geometric object like a point, curve, etc. + + + + + + + + + + + posList instances (and other instances with the content model specified by DirectPositionListType) hold the coordinates for a sequence of direct positions within the same coordinate reference system (CRS). +if no srsName attribute is given, the CRS shall be specified as part of the larger context this geometry element is part of, typically a geometric object like a point, curve, etc. +The optional attribute count specifies the number of direct positions in the list. If the attribute count is present then the attribute srsDimension shall be present, too. +The number of entries in the list is equal to the product of the dimensionality of the coordinate reference system (i.e. it is a derived value of the coordinate reference system definition) and the number of direct positions. + + + + + + + + + + + + GML supports two different ways to specify a geometric position: either by a direct position (a data type) or a point (a geometric object). +pos elements are positions that are "owned" by the geometric primitive encapsulating this geometric position. +pointProperty elements contain a point that may be referenced from other geometry elements or reference another point defined elsewhere (reuse of existing points). + + + + + + + + + GML supports two different ways to specify a list of geometric positions: either by a sequence of geometric positions (by reusing the group definition) or a sequence of direct positions (element posList). +The posList element allows for a compact way to specify the coordinates of the positions, if all positions are represented in the same coordinate reference system. + + + + + + + + + For some applications the components of the position may be adjusted to yield a unit vector. + + + + + + + + + + + + + + + deprecated + + + + + + + + + Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope). +The use of the properties "coordinates" and "pos" has been deprecated. The explicitly named properties "lowerCorner" and "upperCorner" shall be used instead. + + + + + gml:AbstractGeometricPrimitiveType is the abstract root type of the geometric primitives. A geometric primitive is a geometric object that is not decomposed further into other primitives in the system. All primitives are oriented in the direction implied by the sequence of their coordinate tuples. + + + + + + + + The AbstractGeometricPrimitive element is the abstract head of the substitution group for all (pre- and user-defined) geometric primitives. + + + + + A property that has a geometric primitive as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + + + A Point is defined by a single coordinate tuple. The direct position of a point is specified by the pos element which is of type DirectPositionType. + + + + + A property that has a point as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + This property element either references a point via the XLink-attributes or contains the point element. pointProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for Point. + + + + + gml:PointArrayPropertyType is a container for an array of points. The elements are always contained inline in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported. + + + + + + + + + gml:AbstractCurveType is an abstraction of a curve to support the different levels of complexity. The curve may always be viewed as a geometric primitive, i.e. is continuous. + + + + + + + + The AbstractCurve element is the abstract head of the substitution group for all (continuous) curve elements. + + + + + A property that has a curve as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + This property element either references a curve via the XLink-attributes or contains the curve element. curveProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractCurve. + + + + + A container for an array of curves. The elements are always contained in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported. + + + + + + + + + + + + + + + + + + + + + + + + + + A LineString is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate tuples, with linear interpolation between them. The number of direct positions in the list shall be at least two. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryBasic2d.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryBasic2d.xsd new file mode 100644 index 0000000000..5781df5c25 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryBasic2d.xsd @@ -0,0 +1,124 @@ + + + + geometryBasic2d.xsd + See ISO/DIS 19136 Clause 10. + + GML is an OGC Standard. + Copyright (c) 2007,2010 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + gml:AbstractSurfaceType is an abstraction of a surface to support the different levels of complexity. A surface is always a continuous region of a plane. + + + + + + + + The AbstractSurface element is the abstract head of the substitution group for all (continuous) surface elements. + + + + + A property that has a surface as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + This property element either references a surface via the XLink-attributes or contains the surface element. surfaceProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractSurface. + + + + + gml:SurfaceArrayPropertyType is a container for an array of surfaces. The elements are always contained in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported. + + + + + + + + + + + + + + + + + + + A Polygon is a special surface that is defined by a single surface patch (see D.3.6). The boundary of this patch is coplanar and the polygon uses planar interpolation in its interior. +The elements exterior and interior describe the surface boundary of the polygon. + + + + + A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty. + + + + + A boundary of a surface consists of a number of rings. The "interior" rings separate the surface / surface patch from the area enclosed by the rings. + + + + + + + + An abstraction of a ring to support surface boundaries of different complexity. +The AbstractRing element is the abstract head of the substituition group for all closed boundaries of a surface patch. + + + + + A property with the content model of gml:AbstractRingPropertyType encapsulates a ring to represent the surface boundary property of a surface. + + + + + + + + + + + + + + + + + + + + + + + + + A LinearRing is defined by four or more coordinate tuples, with linear interpolation between them; the first and last coordinates shall be coincident. The number of direct positions in the list shall be at least four. + + + + + A property with the content model of gml:LinearRingPropertyType encapsulates a linear ring to represent a component of a surface boundary. + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryComplexes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryComplexes.xsd new file mode 100644 index 0000000000..de4f9457d5 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryComplexes.xsd @@ -0,0 +1,95 @@ + + + + geometryComplexes.xsd + See ISO/DIS 19136 12.2. +Geometric complexes (i.e. instances of gml:GeometricComplexType) are closed collections of geometric primitives, i.e. they will contain their boundaries. +A geometric complex (gml:GeometricComplex) is defined by ISO 19107:2003, 6.6.1 as "a set of primitive geometric objects (in a common coordinate system) whose interiors are disjoint. Further, if a primitive is in a geometric complex, then there exists a set of primitives in that complex whose point-wise union is the boundary of this first primitive." +A geometric composite (gml:CompositeCurve, gml:CompositeSurface and gml:CompositeSolid) represents a geometric complex with an underlying core geometry that is isomorphic to a primitive, i.e. it can be viewed as a primitive and as a complex. See ISO 19107:2003, 6.1 and 6.6.3 for more details on the nature of composite geometries. +Geometric complexes and composites are intended to be used in application schemas where the sharing of geometry is important. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + + + A property that has a geometric complex as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + + + + + + A gml:CompositeCurve is represented by a sequence of (orientable) curves such that each curve in the sequence terminates at the start point of the subsequent curve in the list. +curveMember references or contains inline one curve in the composite curve. +The curves are contiguous, the collection of curves is ordered. Therefore, if provided, the aggregationType attribute shall have the value "sequence". + + + + + + + + + + + + + + + A gml:CompositeSurface is represented by a set of orientable surfaces. It is geometry type with all the geometric properties of a (primitive) surface. Essentially, a composite surface is a collection of surfaces that join in pairs on common boundary curves and which, when considered as a whole, form a single surface. +surfaceMember references or contains inline one surface in the composite surface. +The surfaces are contiguous. + + + + + + + + + + + + + + + gml:CompositeSolid implements ISO 19107 GM_CompositeSolid (see ISO 19107:2003, 6.6.7) as specified in D.2.3.6. +A gml:CompositeSolid is represented by a set of orientable surfaces. It is a geometry type with all the geometric properties of a (primitive) solid. Essentially, a composite solid is a collection of solids that join in pairs on common boundary surfaces and which, when considered as a whole, form a single solid. +solidMember references or contains one solid in the composite solid. The solids are contiguous. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryPrimitives.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryPrimitives.xsd new file mode 100644 index 0000000000..9cbd52cc60 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/geometryPrimitives.xsd @@ -0,0 +1,846 @@ + + + + geometryPrimitives.xsd + See ISO/DIS 19136 Clause 11. +Beside the "simple" geometric primitives specified in the previous Clause, this Clause specifies additional primitives to describe real world situations which require a more expressive geometry model. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + A curve is a 1-dimensional primitive. Curves are continuous, connected, and have a measurable length in terms of the coordinate system. +A curve is composed of one or more curve segments. Each curve segment within a curve may be defined using a different interpolation method. The curve segments are connected to one another, with the end point of each segment except the last being the start point of the next segment in the segment list. +The orientation of the curve is positive. +The element segments encapsulates the segments of the curve. + + + + + + + + + + + + + + + The property baseCurve references or contains the base curve, i.e. it either references the base curve via the XLink-attributes or contains the curve element. A curve element is any element which is substitutable for AbstractCurve. The base curve has positive orientation. + + + + + OrientableCurve consists of a curve and an orientation. If the orientation is "+", then the OrientableCurve is identical to the baseCurve. If the orientation is "-", then the OrientableCurve is related to another AbstractCurve with a parameterization that reverses the sense of the curve traversal. + + + + + + + + + + A curve segment defines a homogeneous segment of a curve. +The attributes numDerivativesAtStart, numDerivativesAtEnd and numDerivativesInterior specify the type of continuity as specified in ISO 19107:2003, 6.4.9.3. +The AbstractCurveSegment element is the abstract head of the substituition group for all curve segment elements, i.e. continuous segments of the same interpolation mechanism. +All curve segments shall have an attribute interpolation with type gml:CurveInterpolationType specifying the curve interpolation mechanism used for this segment. This mechanism uses the control points and control parameters to determine the position of this curve segment. + + + + + gml:CurveSegmentArrayPropertyType is a container for an array of curve segments. + + + + + + + + This property element contains a list of curve segments. The order of the elements is significant and shall be preserved when processing the array. + + + + + gml:CurveInterpolationType is a list of codes that may be used to identify the interpolation mechanisms specified by an application schema. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A LineStringSegment is a curve segment that is defined by two or more control points including the start and end point, with linear interpolation between them. +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + + An ArcString is a curve segment that uses three-point circular arc interpolation ("circularArc3Points"). The number of arcs in the arc string may be explicitly stated in the attribute numArc. The number of control points in the arc string shall be 2 * numArc + 1. +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + An Arc is an arc string with only one arc unit, i.e. three control points including the start and end point. As arc is an arc string consisting of a single arc, the attribute "numArc" is fixed to "1". + + + + + + + + + + A Circle is an arc whose ends coincide to form a simple closed loop. The three control points shall be distinct non-co-linear points for the circle to be unambiguously defined. The arc is simply extended past the third control point until the first control point is encountered. + + + + + + + + + + + + + + + + + + + + + + + + + + This variant of the arc computes the mid points of the arcs instead of storing the coordinates directly. The control point sequence consists of the start and end points of each arc plus the bulge (see ISO 19107:2003, 6.4.17.2). The normal is a vector normal (perpendicular) to the chord of the arc (see ISO 19107:2003, 6.4.17.4). +The interpolation is fixed as "circularArc2PointWithBulge". +The number of arcs in the arc string may be explicitly stated in the attribute numArc. The number of control points in the arc string shall be numArc + 1. +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + + + An ArcByBulge is an arc string with only one arc unit, i.e. two control points, one bulge and one normal vector. +As arc is an arc string consisting of a single arc, the attribute "numArc" is fixed to "1". + + + + + + + + + + + + + + + + + + + + + + + + + + + This variant of the arc requires that the points on the arc shall be computed instead of storing the coordinates directly. The single control point is the center point of the arc plus the radius and the bearing at start and end. This representation can be used only in 2D. +The element radius specifies the radius of the arc. +The element startAngle specifies the bearing of the arc at the start. +The element endAngle specifies the bearing of the arc at the end. +The interpolation is fixed as "circularArcCenterPointWithRadius". +Since this type describes always a single arc, the attribute "numArc" is fixed to "1". +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + A gml:CircleByCenterPoint is an gml:ArcByCenterPoint with identical start and end angle to form a full circle. Again, this representation can be used only in 2D. + + + + + + + + + + + + + + + + + + + + + + + + + + The number of control points shall be at least three. +vectorAtStart is the unit tangent vector at the start point of the spline. vectorAtEnd is the unit tangent vector at the end point of the spline. Only the direction of the vectors shall be used to determine the shape of the cubic spline, not their length. +interpolation is fixed as "cubicSpline". +degree shall be the degree of the polynomial used for the interpolation in this spline. Therefore the degree for a cubic spline is fixed to "3". +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + + + + + A B-Spline is a piecewise parametric polynomial or rational curve described in terms of control points and basis functions as specified in ISO 19107:2003, 6.4.30. Therefore, interpolation may be either "polynomialSpline" or "rationalSpline" depending on the interpolation type; default is "polynomialSpline". +degree shall be the degree of the polynomial used for interpolation in this spline. +knot shall be the sequence of distinct knots used to define the spline basis functions (see ISO 19107:2003, 6.4.26.2). +The attribute isPolynomial shall be set to "true" if this is a polynomial spline (see ISO 19107:2003, 6.4.30.5). +The attribute knotType shall provide the type of knot distribution used in defining this spline (see ISO 19107:2003, 6.4.30.4). +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + gml:KnotPropertyType encapsulates a knot to use it in a geometric type. + + + + + A knot is a breakpoint on a piecewise spline curve. +value is the value of the parameter at the knot of the spline (see ISO 19107:2003, 6.4.24.2). +multiplicity is the multiplicity of this knot used in the definition of the spline (with the same weight). +weight is the value of the averaging weight used for this knot of the spline. + + + + + + + This enumeration type specifies values for the knots' type (see ISO 19107:2003, 6.4.25). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bezier curves are polynomial splines that use Bezier or Bernstein polynomials for interpolation purposes. It is a special case of the B-Spline curve with two knots. +degree shall be the degree of the polynomial used for interpolation in this spline. +knot shall be the sequence of distinct knots used to define the spline basis functions. +interpolation is fixed as "polynomialSpline". +isPolynomial is fixed as "true". +knotType is not relevant for Bezier curve segments. + + + + + + + + + + + + + + + + + An offset curve is a curve at a constant distance from the basis curve. offsetBase is the base curve from which this curve is defined as an offset. distance and refDirection have the same meaning as specified in ISO 19107:2003, 6.4.23. +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + location, refDirection, inDimension and outDimension have the same meaning as specified in ISO 19107:2003, 6.4.21. + + + + + + + + + + + + + + + + + + + + + + + + A clothoid, or Cornu's spiral, is plane curve whose curvature is a fixed function of its length. +refLocation, startParameter, endParameter and scaleFactor have the same meaning as specified in ISO 19107:2003, 6.4.22. +interpolation is fixed as "clothoid". +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + A sequence of geodesic segments. +The number of control points shall be at least two. +interpolation is fixed as "geodesic". +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + A Surface is a 2-dimensional primitive and is composed of one or more surface patches as specified in ISO 19107:2003, 6.3.17.1. The surface patches are connected to one another. +patches encapsulates the patches of the surface. + + + + + + + + + + + + + + + The property baseSurface references or contains the base surface. The property baseSurface either references the base surface via the XLink-attributes or contains the surface element. A surface element is any element which is substitutable for gml:AbstractSurface. The base surface has positive orientation. + + + + + OrientableSurface consists of a surface and an orientation. If the orientation is "+", then the OrientableSurface is identical to the baseSurface. If the orientation is "-", then the OrientableSurface is a reference to a gml:AbstractSurface with an up-normal that reverses the direction for this OrientableSurface, the sense of "the top of the surface". + + + + + + A surface patch defines a homogenuous portion of a surface. +The AbstractSurfacePatch element is the abstract head of the substituition group for all surface patch elements describing a continuous portion of a surface. +All surface patches shall have an attribute interpolation (declared in the types derived from gml:AbstractSurfacePatchType) specifying the interpolation mechanism used for the patch using gml:SurfaceInterpolationType. + + + + + gml:SurfacePatchArrayPropertyType is a container for a sequence of surface patches. + + + + + + + + The patches property element contains the sequence of surface patches. The order of the elements is significant and shall be preserved when processing the array. + + + + + gml:SurfaceInterpolationType is a list of codes that may be used to identify the interpolation mechanisms specified by an application schema. + + + + + + + + + + + + + + + + + + + + + + + + + + + + A gml:PolygonPatch is a surface patch that is defined by a set of boundary curves and an underlying surface to which these curves adhere. The curves shall be coplanar and the polygon uses planar interpolation in its interior. +interpolation is fixed to "planar", i.e. an interpolation shall return points on a single plane. The boundary of the patch shall be contained within that plane. + + + + + + + + + + + + + + + gml:Triangle represents a triangle as a surface patch with an outer boundary consisting of a linear ring. Note that this is a polygon (subtype) with no inner boundaries. The number of points in the linear ring shall be four. +The ring (element exterior) shall be a gml:LinearRing and shall form a triangle, the first and the last position shall be coincident. +interpolation is fixed to "planar", i.e. an interpolation shall return points on a single plane. The boundary of the patch shall be contained within that plane. + + + + + + + + + + + + + + + gml:Rectangle represents a rectangle as a surface patch with an outer boundary consisting of a linear ring. Note that this is a polygon (subtype) with no inner boundaries. The number of points in the linear ring shall be five. +The ring (element exterior) shall be a gml:LinearRing and shall form a rectangle; the first and the last position shall be coincident. +interpolation is fixed to "planar", i.e. an interpolation shall return points on a single plane. The boundary of the patch shall be contained within that plane. + + + + + + + + + + + + + + + A ring is used to represent a single connected component of a surface boundary as specified in ISO 19107:2003, 6.3.6. +Every gml:curveMember references or contains one curve, i.e. any element which is substitutable for gml:AbstractCurve. In the context of a ring, the curves describe the boundary of the surface. The sequence of curves shall be contiguous and connected in a cycle. +If provided, the aggregationType attribute shall have the value "sequence". + + + + + + A property with the content model of gml:RingPropertyType encapsulates a ring to represent a component of a surface boundary. + + + + + + + + A gml:PointGrid group contains or references points or positions which are organised into sequences or grids. All rows shall have the same number of positions (columns). + + + + + + + + + + + + + + + + + + + + + + + + + The element provides a substitution group head for the surface patches based on parametric curves. All properties are specified in the derived subtypes. All derived subtypes shall conform to the constraints specified in ISO 19107:2003, 6.4.40. +If provided, the aggregationType attribute shall have the value "set". + + + + + + + + + + + + + + + + if provided, rows gives the number of rows, columns the number of columns in the parameter grid. The parameter grid is represented by an instance of the gml:PointGrid group. +The element provides a substitution group head for the surface patches based on a grid. All derived subtypes shall conform to the constraints specified in ISO 19107:2003, 6.4.41. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A polyhedral surface is a surface composed of polygon patches connected along their common boundary curves. This differs from the surface type only in the restriction on the types of surface patches acceptable. +polygonPatches encapsulates the polygon patches of the polyhedral surface. + + + + + A triangulated surface is a polyhedral surface that is composed only of triangles. There is no restriction on how the triangulation is derived. +trianglePatches encapsulates the triangles of the triangulated surface. + + + + + + + + + + + + + + + + + + + + + + + + A tin is a triangulated surface that uses the Delauny algorithm or a similar algorithm complemented with consideration of stoplines (stopLines), breaklines (breakLines), and maximum length of triangle sides (maxLength). controlPoint shall contain a set of the positions (three or more) used as posts for this TIN (corners of the triangles in the TIN). See ISO 19107:2003, 6.4.39 for details. + + + + + gml:LineStringSegmentArrayPropertyType provides a container for line strings. + + + + + + + + gml:AbstractSolidType is an abstraction of a solid to support the different levels of complexity. The solid may always be viewed as a geometric primitive, i.e. is contiguous. + + + + + + + + The AbstractSolid element is the abstract head of the substituition group for all (continuous) solid elements. + + + + + A property that has a solid as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + This property element either references a solid via the XLink-attributes or contains the solid element. solidProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractSolid. + + + + + gml:SolidArrayPropertyType is a container for an array of solids. The elements are always contained in the array property, referencing geometry elements or arrays of geometry elements is not supported. + + + + + + + + + + + + + + + + + + + A solid is the basis for 3-dimensional geometry. The extent of a solid is defined by the boundary surfaces as specified in ISO 19107:2003, 6.3.18. exterior specifies the outer boundary, interior the inner boundary of the solid. + + + + + + + + + + + A shell is used to represent a single connected component of a solid boundary as specified in ISO 19107:2003, 6.3.8. +Every gml:surfaceMember references or contains one surface, i.e. any element which is substitutable for gml:AbstractSurface. In the context of a shell, the surfaces describe the boundary of the solid. +If provided, the aggregationType attribute shall have the value "set". + + + + + + This property element either references a surface via the XLink-attributes or contains the surface element. A surface element is any element, which is substitutable for gml:AbstractSurface. + + + + + A property with the content model of gml:ShellPropertyType encapsulates a shell to represent a component of a solid boundary. + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml.xsd new file mode 100644 index 0000000000..b319a195a2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml.xsd @@ -0,0 +1,20 @@ + + + + gml.xsd + + GML is an OGC Standard. + Copyright (c) 2007,2010 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gmlBase.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gmlBase.xsd new file mode 100644 index 0000000000..a5c772a5b6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gmlBase.xsd @@ -0,0 +1,185 @@ + + + + gmlBase.xsd + See ISO/DIS 19136 7.2. +The gmlBase schema components establish the GML model and syntax, in particular +- a root XML type from which XML types for all GML objects should be derived, +- a pattern and components for GML properties, +- patterns for collections and arrays, and components for generic collections and arrays, +- components for associating metadata with GML objects, +- components for constructing definitions and dictionaries. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + This element has no type defined, and is therefore implicitly (according to the rules of W3C XML Schema) an XML Schema anyType. It is used as the head of an XML Schema substitution group which unifies complex content and certain simple content elements used for datatypes in GML, including the gml:AbstractGML substitution group. + + + + + The abstract element gml:AbstractGML is "any GML object having identity". It acts as the head of an XML Schema substitution group, which may include any element which is a GML feature, or other object, with identity. This is used as a variable in content models in GML core and application schemas. It is effectively an abstract superclass for all GML objects. + + + + + + + + + + + + + + + + + + + + XLink components are the standard method to support hypertext referencing in XML. An XML Schema attribute group, gml:AssociationAttributeGroup, is provided to support the use of Xlinks as the method for indicating the value of a property by reference in a uniform manner in GML. + + + + + + deprecated + + + + + + Applying this pattern shall restrict the multiplicity of objects in a property element using this content model to exactly one. An instance of this type shall contain an element representing an object, or serve as a pointer to a remote object. +Applying the pattern to define an application schema specific property type allows to restrict +- the inline object to specified object types, +- the encoding to "by-reference only" (see 7.2.3.7), +- the encoding to "inline only" (see 7.2.3.8). + + + + + + + + + + + + Encoding a GML property inline vs. by-reference shall not imply anything about the "ownership" of the contained or referenced GML Object, i.e. the encoding style shall not imply any "deep-copy" or "deep-delete" semantics. To express ownership over the contained or referenced GML Object, the gml:OwnershipAttributeGroup attribute group may be added to object-valued property elements. If the attribute group is not part of the content model of such a property element, then the value may not be "owned". +When the value of the owns attribute is "true", the existence of inline or referenced object(s) depends upon the existence of the parent object. + + + + + + This element shows how an element + declaration may include a Schematron constraint to limit the property to act + in either inline or by-reference mode, but not both. + + + + + gml:abstractReference may be used as the head of a subtitution group of more specific elements providing a value by-reference. + + + + + gml:ReferenceType is intended to be used in application schemas directly, if a property element shall use a "by-reference only" encoding. + + + + + + + + gml:abstractInlineProperty may be used as the head of a subtitution group of more specific elements providing a value inline. + + + + + + + + + + + If the value of an object property is another object and that object contains also a property for the association between the two objects, then this name of the reverse property may be encoded in a gml:reversePropertyName element in an appinfo annotation of the property element to document the constraint between the two properties. The value of the element shall contain the qualified name of the property element. + + + + + The value of this property is a text description of the object. gml:description uses gml:StringOrRefType as its content model, so it may contain a simple text string content, or carry a reference to an external description. The use of gml:description to reference an external description has been deprecated and replaced by the gml:descriptionReference property. + + + + + The value of this property is a remote text description of the object. The xlink:href attribute of the gml:descriptionReference property references the external description. + + + + + The gml:name property provides a label or identifier for the object, commonly a descriptive name. An object may have several names, typically assigned by different authorities. gml:name uses the gml:CodeType content model. The authority for a name is indicated by the value of its (optional) codeSpace attribute. The name may or may not be unique, as determined by the rules of the organization responsible for the codeSpace. In common usage there will be one name per authority, so a processing application may select the name from its preferred codeSpace. + + + + + Often, a special identifier is assigned to an object by the maintaining authority with the intention that it is used in references to the object For such cases, the codeSpace shall be provided. That identifier is usually unique either globally or within an application domain. gml:identifier is a pre-defined property for such identifiers. + + + + + The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs. + + + + + To create a collection of GML Objects that are not all features, a property type shall be derived by extension from gml:AbstractMemberType. +This abstract property type is intended to be used only in object types where software shall be able to identify that an instance of such an object type is to be interpreted as a collection of objects. +By default, this abstract property type does not imply any ownership of the objects in the collection. The owns attribute of gml:OwnershipAttributeGroup may be used on a property element instance to assert ownership of an object in the collection. A collection shall not own an object already owned by another object. + + + + + + + + A GML Object Collection is any GML Object with a property element in its content model whose content model is derived by extension from gml:AbstractMemberType. +In addition, the complex type describing the content model of the GML Object Collection may also include a reference to the attribute group gml:AggregationAttributeGroup to provide additional information about the semantics of the object collection. This information may be used by applications to group GML objects, and optionally to order and index them. +The allowed values for the aggregationType attribute are defined by gml:AggregationType. See 8.4 of ISO/IEC 11404:1996 for the meaning of the values in the enumeration. + + + + + + + + + + + + + + + + To associate metadata described by any XML Schema with a GML object, a property element shall be defined whose content model is derived by extension from gml:AbstractMetadataPropertyType. +The value of such a property shall be metadata. The content model of such a property type, i.e. the metadata application schema shall be specified by the GML Application Schema. +By default, this abstract property type does not imply any ownership of the metadata. The owns attribute of gml:OwnershipAttributeGroup may be used on a metadata property element instance to assert ownership of the metadata. +If metadata following the conceptual model of ISO 19115 is to be encoded in a GML document, the corresponding Implementation Specification specified in ISO/TS 19139 shall be used to encode the metadata information. + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml_32_geometries.rdf b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml_32_geometries.rdf new file mode 100644 index 0000000000..f0fdc65c63 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml_32_geometries.rdf @@ -0,0 +1,368 @@ + + + + + + + + + + + + Point + + + + + + + Abstract Gridded Surface + + + + + + + Polyhedral Surface + + + + + + + Arc + + + + + + + Polynomial Spline + + + + + + + Multi-Curve + + + + + + + + + + Composite Surface + + + + + + + Arc String + + + + + Cylinder + + + + + Shell + + + + + + + Polygon + + + + + + + Triangulated Irregular Network + + + + + + + Multi-Geometry + + + + + + + Bezler + + + + + + + + + + Curve + + + + + + + BSpline + + + + + + + Line String Segment + + + + + + + Geodesic + + + + + + + + + Abstract Surface Patch + + + + + + + Geometric Complex + + + + + + + Arc by Bulge + + + + + + + CircleByCenterPoint + + + + + Multi-Point + + + + + + + Arc by Center Point + + + + + + + Offset Curve + + + + + + + Spline Curve + + + + + Composite + + + + + Line String + + + + + Circle + + + + + + + Orientable Curve + + + + + + + Orientable Surface + + + + + + + Clothoid + + + + + + + Arc String by Bulge + + + + + Triangulated Surface + + + + + + + Triangle + + + + + Cubic Spline + + + + + Abstract Geometry + + + + + Cone + + + + + + + + Composite Solid + + + + + Abstract Geometric Primitive + + + + + + + Linear Ring + + + + + Abstract Parametric Curve Surface + + + + + + + Geodesic String + + + + + Multi-Solid + + + + + Solid + + + + + + Composite Curve + + + + + + + Rectangle + + + + + Sphere + + + + + Ring + + + + + Polygon Patch + + + + + Multi-Surface + + + + + Abstract Curve Segment + + + + + + Surface + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml_3_2_1-ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml_3_2_1-ReadMe.txt new file mode 100644 index 0000000000..a0a6eb2ef7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/gml_3_2_1-ReadMe.txt @@ -0,0 +1,58 @@ +OpenGIS(r) GML schema version 3.2.1 / ISO 19136 - ReadMe.txt + +The schema has been validated with Xerces-J, Xerces C++ and XSV. + +------------------------------------------------------------------- + +2012-07-21 Kevin Stegemoller + + * v2.0.0 - v3.2.1 WARNING XLink change is NOT BACKWARD COMPATIBLE. + * changed OGC XLink (xlink:simpleLink) to W3C XLink (xlink:simpleAttrs) + per an approved TC and PC motion during the Dec. 2011 Brussels meeting. + see http://www.opengeospatial.org/blog/1597 + * implement 11-025: retroactively require/add all leaf documents of an + XML namespace shall explicitly the all-components schema + * v3.2.1: updated xsd:schema:@version to 3.2.1.2 (06-135r7 s#13.4) + +2007-09-06 Kevin Stegemoller + + GML 3.2.1 (ISO 19136) + * Published GML 3.2.1 schemas from OGC 07-036 + * validated with oXygen 8.2 (xerces-J 2.9.0) - Kevin Stegemoller + * validated with Xerces-J, Xerces-C++ and XSV - Clemens Portele + +2007-08-17 Kevin Stegemoller + + Changes made to these GML 3.2.1 / ISO 19136 schemas: + * added ReadMe.txt + * changed gmd.xsd references to "../../iso/19139/20070417/gmd/gmd.xsd" + * changed xlink references to be relative to /xlink/1.0.0/xlinks.xsd + available from schemas.opengis.net/xlink/1.0.0/xlinks.xsd (REMOVED 2012-07-21). + * removed xlinks schema and directory + + Changes made to these ISO 19139 schemas by OGC: + * added ReadMe.txt + * changed ISO_19136 path to /gml/3.2.1/ + * changed xlink references to be relative to /xlink/1.0.0/xlinks.xsd + available from schemas.opengis.net/xlink/1.0.0/xlinks.xsd (REMOVED 2012-07-21). + * removed xlinks schema and directory + +OGC GML 3.2.1 / ISO 19136 schemas files will be published at: +- http://schemas.opengis.net/gml/3.2.1/ +- http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19136_Schemas/ + +Files in the folder "ISO/19139/20070417" are also published at +- http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------- + +The Open Geospatial Consortium, Inc. official schema repository is at + http://schemas.opengis.net/ . +Policies, Procedures, Terms, and Conditions of OGC(r) are available + http://www.opengeospatial.org/ogc/policies/ . +Additional rights of use are described at + http://www.opengeospatial.org/legal/ . + +Copyright (c) 2007 Open Geospatial Consortium. + +------------------------------------------------------------------- diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/grids.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/grids.xsd new file mode 100644 index 0000000000..7592e0ec64 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/grids.xsd @@ -0,0 +1,64 @@ + + + + grids.xsd + See ISO/DIS 19136 20.2. +An implicit description of geometry is one in which the items of the geometry do not explicitly appear in the encoding. Instead, a compact notation records a set of parameters, and a set of objects may be generated using a rule with these parameters. This Clause provides grid geometries that are used in the description of gridded coverages and other applications. +In GML two grid structures are defined, namely gml:Grid and gml:RectifiedGrid. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The gml:Grid implicitly defines an unrectified grid, which is a network composed of two or more sets of curves in which the members of each set intersect the members of the other sets in an algorithmic way. The region of interest within the grid is given in terms of its gml:limits, being the grid coordinates of diagonally opposed corners of a rectangular region. gml:axisLabels is provided with a list of labels of the axes of the grid (gml:axisName has been deprecated). gml:dimension specifies the dimension of the grid. +The gml:limits element contains a single gml:GridEnvelope. The gml:low and gml:high property elements of the envelope are each integerLists, which are coordinate tuples, the coordinates being measured as offsets from the origin of the grid along each axis, of the diagonally opposing corners of a "rectangular" region of interest. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A rectified grid is a grid for which there is an affine transformation between the grid coordinates and the coordinates of an external coordinate reference system. It is defined by specifying the position (in some geometric space) of the grid "origin" and of the vectors that specify the post locations. +Note that the grid limits (post indexes) and axis name properties are inherited from gml:GridType and that gml:RectifiedGrid adds a gml:origin property (contains or references a gml:Point) and a set of gml:offsetVector properties. + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/measures.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/measures.xsd new file mode 100644 index 0000000000..c3a91fb3cf --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/measures.xsd @@ -0,0 +1,68 @@ + + + + measures.xsd + See ISO/DIS 19136 17.3. +gml:MeasureType is defined in the basicTypes schema. The measure types defined here correspond with a set of convenience measure types described in ISO/TS 19103. The XML implementation is based on the XML Schema simple type "double" which supports both decimal and scientific notation, and includes an XML attribute "uom" which refers to the units of measure for the value. Note that, there is no requirement to store values using any particular format, and applications receiving elements of this type may choose to coerce the data to any other type as convenient. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The value of a physical quantity, together with its unit. + + + + + This is a prototypical definition for a specific measure type defined as a vacuous extension (i.e. aliases) of gml:MeasureType. In this case, the content model supports the description of a length (or distance) quantity, with its units. The unit of measure referenced by uom shall be suitable for a length, such as metres or feet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The gml:angle property element is used to record the value of an angle quantity as a single number, with its units. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/observation.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/observation.xsd new file mode 100644 index 0000000000..944c9898ab --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/observation.xsd @@ -0,0 +1,95 @@ + + + + observation.xsd + See ISO/DIS 19136 Clause 19. +A GML observation models the act of observing, often with a camera, a person or some form of instrument. An observation feature describes the "metadata" associated with an information capture event, together with a value for the result of the observation. This covers a broad range of cases, from a tourist photo (not the photo but the act of taking the photo), to images acquired by space borne sensors or the measurement of a temperature 5 meters below the surfaces of a lake. +The basic structures introduced in this schema are intended to serve as the foundation for more comprehensive schemas for scientific, technical and engineering measurement schemas. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + The content model is a straightforward extension of gml:AbstractFeatureType; it automatically has the gml:identifier, gml:description, gml:descriptionReference, gml:name, and gml:boundedBy properties. +The gml:validTime element describes the time of the observation. Note that this may be a time instant or a time period. +The gml:using property contains or references a description of a sensor, instrument or procedure used for the observation. +The gml:target property contains or references the specimen, region or station which is the object of the observation. This property is particularly useful for remote observations, such as photographs, where a generic location property might apply to the location of the camera or the location of the field of view, and thus may be ambiguous. +The gml:subject element is provided as a convenient synonym for gml:target. This is the term commonly used in phtotography. +The gml:resultOf property indicates the result of the observation. The value may be inline, or a reference to a value elsewhere. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A gml:DirectedObservation is the same as an observation except that it adds an additional gml:direction property. This is the direction in which the observation was acquired. Clearly this applies only to certain types of observations such as visual observations by people, or observations obtained from terrestrial cameras. + + + + + + + + + + + + + + gml:DirectedObservationAtDistance adds an additional distance property. This is the distance from the observer to the subject of the observation. Clearly this applies only to certain types of observations such as visual observations by people, or observations obtained from terrestrial cameras. + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/referenceSystems.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/referenceSystems.xsd new file mode 100644 index 0000000000..19170340db --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/referenceSystems.xsd @@ -0,0 +1,70 @@ + + + + referenceSystems.xsd + See ISO/DIS 19136 13.2. +The reference systems schema components have two logical parts, which define elements and types for XML encoding of the definitions of: +- Identified Object, inherited by the ten types of GML objects used for coordinate reference systems and coordinate operations +- High-level part of the definitions of coordinate reference systems +This schema encodes the Identified Object and Reference System packages of the UML Model for ISO 19111. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + gml:IdentifiedObjectType provides identification properties of a CRS-related object. In gml:DefinitionType, the gml:identifier element shall be the primary name by which this object is identified, encoding the "name" attribute in the UML model. +Zero or more of the gml:name elements can be an unordered set of "identifiers", encoding the "identifier" attribute in the UML model. Each of these gml:name elements can reference elsewhere the object's defining information or be an identifier by which this object can be referenced. +Zero or more other gml:name elements can be an unordered set of "alias" alternative names by which this CRS related object is identified, encoding the "alias" attributes in the UML model. An object may have several aliases, typically used in different contexts. The context for an alias is indicated by the value of its (optional) codeSpace attribute. +Any needed version information shall be included in the codeSpace attribute of a gml:identifier and gml:name elements. In this use, the gml:remarks element in the gml:DefinitionType shall contain comments on or information about this object, including data source information. + + + + + + + + gml:AbstractCRS specifies a coordinate reference system which is usually single but may be compound. This abstract complex type shall not be used, extended, or restricted, in a GML Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. + + + + + + + + + + + + + + + The gml:domainOfValidity property implements an association role to an EX_Extent object as encoded in ISO/TS 19139, either referencing or containing the definition of that extent. + + + + + + + + + + + The gml:scope property provides a description of the usage, or limitations of usage, for which this CRS-related object is valid. If unknown, enter "not known". + + + + + gml:CRSPropertyType is a property type for association roles to a CRS abstract coordinate reference system, either referencing or containing the definition of that CRS. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporal.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporal.xsd new file mode 100644 index 0000000000..11c4ae3b3b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporal.xsd @@ -0,0 +1,269 @@ + + + + temporal.xsd + See ISO/DIS 19136 15.2. +The GML temporal schemas include components for describing temporal geometry and topology, temporal reference systems, and the temporal characteristics of geographic data. The model underlying the representation constitutes a profile of the conceptual schema described in ISO 19108. The underlying spatiotemporal model strives to accommodate both feature-level and attribute-level time stamping; basic support for tracking moving objects is also included. +Time is measured on two types of scales: interval and ordinal. An interval scale offers a basis for measuring duration, an ordinal scale provides information only about relative position in time. +Two other ISO standards are relevant to describing temporal objects: ISO 8601 describes encodings for time instants and time periods, as text strings with particular structure and punctuation; ISO 11404 provides a detailed description of time intervals as part of a general discussion of language independent datatypes. +The temporal schemas cover two interrelated topics and provide basic schema components for representing temporal instants and periods, temporal topology, and reference systems; more specialized schema components defines components used for dynamic features. Instances of temporal geometric types are used as values for the temporal properties of geographic features. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + gml:AbstractTimeObject acts as the head of a substitution group for all temporal primitives and complexes. + + + + + + + + + + gml:AbstractTimePrimitive acts as the head of a substitution group for geometric and topological temporal primitives. + + + + + + + + + + + + + + gml:TimePrimitivePropertyType provides a standard content model for associations between an arbitrary member of the substitution group whose head is gml:AbstractTimePrimitive and another object. + + + + + + + + + + gml:validTime is a convenience property element. + + + + + gml:RelatedTimeType provides a content model for indicating the relative position of an arbitrary member of the substitution group whose head is gml:AbstractTimePrimitive. It extends the generic gml:TimePrimitivePropertyType with an XML attribute relativePosition, whose value is selected from the set of 13 temporal relationships identified by Allen (1983) + + + + + + + + + + + + + + + + + + + + + + + + + + + + gml:AbstractTimeComplex is an aggregation of temporal primitives and acts as the head of a substitution group for temporal complexes. + + + + + + + + + + gml:TimeGeometricPrimitive acts as the head of a substitution group for geometric temporal primitives. +A temporal geometry shall be associated with a temporal reference system through the frame attribute that provides a URI reference that identifies a description of the reference system. Following ISO 19108, the Gregorian calendar with UTC is the default reference system, but others may also be used. The GPS calendar is an alternative reference systems in common use. +The two geometric primitives in the temporal dimension are the instant and the period. GML components are defined to support these as follows. + + + + + + + + + + + + gml:TimeInstant acts as a zero-dimensional geometric primitive that represents an identifiable position in time. + + + + + + + + + + + + + + gml:TimeInstantPropertyType provides for associating a gml:TimeInstant with an object. + + + + + + + + + + gml:TimePeriod acts as a one-dimensional geometric primitive that represents an identifiable extent in time. +The location in of a gml:TimePeriod is described by the temporal positions of the instants at which it begins and ends. The length of the period is equal to the temporal distance between the two bounding temporal positions. +Both beginning and end may be described in terms of their direct position using gml:TimePositionType which is an XML Schema simple content type, or by reference to an indentifiable time instant using gml:TimeInstantPropertyType. +Alternatively a limit of a gml:TimePeriod may use the conventional GML property model to make a reference to a time instant described elsewhere, or a limit may be indicated as a direct position. + + + + + + + + + + + + + + + + + + + + + + gml:TimePeriodPropertyType provides for associating a gml:TimePeriod with an object. + + + + + + + + + + The method for identifying a temporal position is specific to each temporal reference system. gml:TimePositionType supports the description of temporal position according to the subtypes described in ISO 19108. +Values based on calendars and clocks use lexical formats that are based on ISO 8601, as described in XML Schema Part 2:2001. A decimal value may be used with coordinate systems such as GPS time or UNIX time. A URI may be used to provide a reference to some era in an ordinal reference system . +In common with many of the components modelled as data types in the ISO 19100 series of International Standards, the corresponding GML component has simple content. However, the content model gml:TimePositionType is defined in several steps. +Three XML attributes appear on gml:TimePositionType: +A time value shall be associated with a temporal reference system through the frame attribute that provides a URI reference that identifies a description of the reference system. Following ISO 19108, the Gregorian calendar with UTC is the default reference system, but others may also be used. Components for describing temporal reference systems are described in 14.4, but it is not required that the reference system be described in this, as the reference may refer to anything that may be indentified with a URI. +For time values using a calendar containing more than one era, the (optional) calendarEraName attribute provides the name of the calendar era. +Inexact temporal positions may be expressed using the optional indeterminatePosition attribute. This takes a value from an enumeration. + + + + + + + + + + + + These values are interpreted as follows: +- "unknown" indicates that no specific value for temporal position is provided. +- "now" indicates that the specified value shall be replaced with the current temporal position whenever the value is accessed. +- "before" indicates that the actual temporal position is unknown, but it is known to be before the specified value. +- "after" indicates that the actual temporal position is unknown, but it is known to be after the specified value. +A value for indeterminatePosition may +- be used either alone, or +- qualify a specific value for temporal position. + + + + + + + + + + + The simple type gml:TimePositionUnion is a union of XML Schema simple types which instantiate the subtypes for temporal position described in ISO 19108. + An ordinal era may be referenced via URI. A decimal value may be used to indicate the distance from the scale origin . time is used for a position that recurs daily (see ISO 19108:2002 5.4.4.2). + Finally, calendar and clock forms that support the representation of time in systems based on years, months, days, hours, minutes and seconds, in a notation following ISO 8601, are assembled by gml:CalDate + + + + + + + + + This element is used directly as a property of gml:TimeInstant (see 15.2.2.3), and may also be used in application schemas. + + + + + The length of a time period. + + + + + + + + + gml:duration conforms to the ISO 8601 syntax for temporal length as implemented by the XML Schema duration type. + + + + + gml:timeInterval conforms to ISO 11404 which is based on floating point values for temporal length. +ISO 11404 syntax specifies the use of a positiveInteger together with appropriate values for radix and factor. The resolution of the time interval is to one radix ^(-factor) of the specified time unit. +The value of the unit is either selected from the units for time intervals from ISO 31-1:1992, or is another suitable unit. The encoding is defined for GML in gml:TimeUnitType. The second component of this union type provides a method for indicating time units other than the six standard units given in the enumeration. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporalReferenceSystems.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporalReferenceSystems.xsd new file mode 100644 index 0000000000..88f610b54a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporalReferenceSystems.xsd @@ -0,0 +1,189 @@ + + + + temporalReferenceSystems.xsd + See ISO/DIS 19136 15.5. +A value in the time domain is measured relative to a temporal reference system. Common types of reference systems include calendars, ordinal temporal reference systems, and temporal coordinate systems (time elapsed since some epoch). The primary temporal reference system for use with geographic information is the Gregorian Calendar and 24 hour local or Coordinated Universal Time (UTC), but special applications may entail the use of alternative reference systems. The Julian day numbering system is a temporal coordinate system that has an origin earlier than any known calendar, at noon on 1 January 4713 BC in the Julian proleptic calendar, and is useful in transformations between dates in different calendars. +In GML seven concrete elements are used to describe temporal reference systems: gml:TimeReferenceSystem, gml:TimeCoordinateSystem, gml:TimeCalendar, gml:TimeCalendarEra, gml:TimeClock, gml:TimeOrdinalReferenceSystem, and gml:TimeOrdinalEra. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + A reference system is characterized in terms of its domain of validity: the spatial and temporal extent over which it is applicable. The basic GML element for temporal reference systems is gml:TimeReferenceSystem. Its content model extends gml:DefinitionType with one additional property, gml:domainOfValidity. + + + + + + + + + + + + + + A temporal coordinate system shall be based on a continuous interval scale defined in terms of a single time interval. +The differences to ISO 19108 TM_CoordinateSystem are: +- the origin is specified either using the property gml:originPosition whose value is a direct time position, or using the property gml:origin whose model is gml:TimeInstantPropertyType; this permits more flexibility in representation and also supports referring to a value fixed elsewhere; +- the interval uses gml:TimeIntervalLengthType. + + + + + + + + + + + + + + + + + + + A calendar is a discrete temporal reference system that provides a basis for defining temporal position to a resolution of one day. +gml:TimeCalendar adds one property to those inherited from gml:TimeReferenceSystem. A gml:referenceFrame provides a link to a gml:TimeCalendarEra that it uses. A gml:TimeCalendar may reference more than one calendar era. +The referenceFrame element follows the standard GML property model, allowing the association to be instantiated either using an inline description using the gml:TimeCalendarEra element, or a link to a gml:TimeCalendarEra which is explicit elsewhere. + + + + + + + + + + + + + + gml:TimeCalendarEra inherits basic properties from gml:DefinitionType and has the following additional properties: +- gml:referenceEvent is the name or description of a mythical or historic event which fixes the position of the base scale of the calendar era. This is given as text or using a link to description held elsewhere. +- gml:referenceDate specifies the date of the referenceEvent expressed as a date in the given calendar. In most calendars, this date is the origin (i.e., the first day) of the scale, but this is not always true. +- gml:julianReference specifies the Julian date that corresponds to the reference date. The Julian day number is an integer value; the Julian date is a decimal value that allows greater resolution. Transforming calendar dates to and from Julian dates provides a relatively simple basis for transforming dates from one calendar to another. +- gml:epochOfUse is the period for which the calendar era was used as a basis for dating. + + + + + + + + + + + + + + + + + gml:TimeCalendarPropertyType provides for associating a gml:TimeCalendar with an object. + + + + + + + + + + gml:TimeCalendarEraPropertyType provides for associating a gml:TimeCalendarEra with an object. + + + + + + + + + + A clock provides a basis for defining temporal position within a day. A clock shall be used with a calendar in order to provide a complete description of a temporal position within a specific day. +gml:TimeClock adds the following properties to those inherited from gml:TimeReferenceSystemType: +- gml:referenceEvent is the name or description of an event, such as solar noon or sunrise, which fixes the position of the base scale of the clock. +- gml:referenceTime specifies the time of day associated with the reference event expressed as a time of day in the given clock. The reference time is usually the origin of the clock scale. +- gml:utcReference specifies the 24 hour local or UTC time that corresponds to the reference time. +- gml:dateBasis contains or references the calendars that use this clock. + + + + + + + + + + + + + + + + + gml:TimeClockPropertyType provides for associating a gml:TimeClock with an object. + + + + + + + + + + In some applications of geographic information — such as geology and archaeology — relative position in time is known more precisely than absolute time or duration. The order of events in time can be well established, but the magnitude of the intervals between them cannot be accurately determined; in such cases, the use of an ordinal temporal reference system is appropriate. An ordinal temporal reference system is composed of a sequence of named coterminous eras, which may in turn be composed of sequences of member eras at a finer scale, giving the whole a hierarchical structure of eras of verying resolution. +An ordinal temporal reference system whose component eras are not further subdivided is effectively a temporal topological complex constrained to be a linear graph. An ordinal temporal reference system some or all of whose component eras are subdivided is effectively a temporal topological complex with the constraint that parallel branches may only be constructed in pairs where one is a single temporal ordinal era and the other is a sequence of temporal ordinal eras that are called "members" of the "group". This constraint means that within a single temporal ordinal reference system, the relative position of all temporal ordinal eras is unambiguous. +The positions of the beginning and end of a given era may calibrate the relative time scale. +gml:TimeOrdinalReferenceSystem adds one or more gml:component properties to the generic temporal reference system model. + + + + + + + + + + + + + + Its content model follows the pattern of gml:TimeEdge, inheriting standard properties from gml:DefinitionType, and adding gml:start, gml:end and gml:extent properties, a set of gml:member properties which indicate ordered gml:TimeOrdinalEra elements, and a gml:group property which points to the parent era. +The recursive inclusion of gml:TimeOrdinalEra elements allow the construction of an arbitrary depth hierarchical ordinal reference schema, such that an ordinal era at a given level of the hierarchy includes a sequence of shorter, coterminous ordinal eras. + + + + + + + + + + + + + + + + + + + gml:TimeOrdinalEraPropertyType provides for associating a gml:TimeOrdinalEra with an object. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporalTopology.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporalTopology.xsd new file mode 100644 index 0000000000..b38392c44d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/temporalTopology.xsd @@ -0,0 +1,119 @@ + + + + temporalTopology.xsd + See ISO/DIS 19136 15.3. +Temporal topology is described in terms of time complexes, nodes, and edges, and the connectivity between these. Temporal topology does not directly provide information about temporal position. It is used in the case of describing a lineage or a history (e.g. a family tree expressing evolution of species, an ecological cycle, a lineage of lands or buildings, or a history of separation and merger of administrative boundaries). The following Subclauses specifies the temporal topology as temporal characteristics of features in compliance with ISO 19108. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + gml:TimeTopologyPrimitive acts as the head of a substitution group for topological temporal primitives. +Temporal topology primitives shall imply the ordering information between features or feature properties. The temporal connection of features can be examined if they have temporal topology primitives as values of their properties. Usually, an instantaneous feature associates with a time node, and a static feature associates with a time edge. A feature with both modes associates with the temporal topology primitive: a supertype of time nodes and time edges. +A topological primitive is always connected to one or more other topological primitives, and is, therefore, always a member of a topological complex. In a GML instance, this will often be indicated by the primitives being described by elements that are descendents of an element describing a complex. However, in order to support the case where a temporal topological primitive is described in another context, the optional complex property is provided, which carries a reference to the parent temporal topological complex. + + + + + + + + + + + + + + gml:TimeTopologyPrimitivePropertyType provides for associating a gml:AbstractTimeTopologyPrimitive with an object. + + + + + + + + + + A temporal topology complex shall be the connected acyclic directed graph composed of temporal topological primitives, i.e. time nodes and time edges. Because a time edge may not exist without two time nodes on its boundaries, static features have time edges from a temporal topology complex as the values of their temporal properties, regardless of explicit declarations. +A temporal topology complex expresses a linear or a non-linear graph. A temporal linear graph, composed of a sequence of time edges, provides a lineage described only by "substitution" of feature instances or feature element values. A time node as the start or the end of the graph connects with at least one time edge. A time node other than the start and the end shall connect to at least two time edges: one of starting from the node, and another ending at the node. +A temporal topological complex is a set of connected temporal topological primitives. The member primtives are indicated, either by reference or by value, using the primitive property. + + + + + + + + + + + + + + gml:TimeTopologyComplexPropertyType provides for associating a gml:TimeTopologyComplex with an object. + + + + + + + + + + A time node is a zero-dimensional topological primitive that represents an identifiable node in time (it is equivalent to a point in space). A node may act as the termination or initiation of any number of time edges. A time node may be realised as a geometry, its position, whose value is a time instant. + + + + + + + + + + + + + + + + gml:TimeNodePropertyType provides for associating a gml:TimeNode with an object + + + + + + + + + + A time edge is a one-dimensional topological primitive. It is an open interval that starts and ends at a node. The edge may be realised as a geometry whose value is a time period. + + + + + + + + + + + + + + + + gml:TimeEdgePropertyType provides for associating a gml:TimeEdge with an object. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/topology.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/topology.xsd new file mode 100644 index 0000000000..c528e6cfea --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/topology.xsd @@ -0,0 +1,386 @@ + + + + topology.xsd + See ISO/DIS 19136 Clause 14. +Topology is the branch of mathematics describing the properties of objects which are invariant under continuous deformation. For example, a circle is topologically equivalent to an ellipse because one can be transformed into the other by stretching. In geographic modelling, the foremost use of topology is in accelerating computational geometry. The constructs of topology allow characterisation of the spatial relationships between objects using simple combinatorial or algebraic algorithms. Topology, realised by the appropriate geometry, also allows a compact and unambiguous mechanism for expressing shared geometry among geographic features. +There are four instantiable classes of primitive topology objects, one for each dimension up to 3D. In addition, topological complexes are supported, too. +There is strong symmetry in the (topological boundary and coboundary) relationships between topology primitives of adjacent dimensions. Topology primitives are bounded by directed primitives of one lower dimension. The coboundary of each topology primitive is formed from directed topology primitives of one higher dimension. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + This abstract type supplies the root or base type for all topological elements including primitives and complexes. It inherits AbstractGMLType and hence can be identified using the gml:id attribute. + + + + + + + + + + + + + + gml:AbstractTopoPrimitive acts as the base type for all topological primitives. Topology primitives are the atomic (smallest possible) units of a topology complex. +Each topology primitive may contain references to other topology primitives of codimension 2 or more (gml:isolated). Conversely, nodes may have faces as containers and nodes and edges may have solids as containers (gml:container). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In the case of planar topology, a gml:Node must have a clockwise sequence of gml:directedEdge properties, to ensure a lossless topology representation as defined by Kuijpers, et. al. (see OGC 05-102 Topology IPR). + + + + + + + + + + + gml:Node represents the 0-dimensional primitive. +The optional coboundary of a node (gml:directedEdge) is a sequence of directed edges which are incident on this node. Edges emanating from this node appear in the node coboundary with a negative orientation. +If provided, the aggregationType attribute shall have the value "sequence". +A node may optionally be realised by a 0-dimensional geometric primitive (gml:pointProperty). + + + + + A gml:directedNode property element describes the boundary of topology edges and is used in the support of topological point features via the gml:TopoPoint expression, see below. The orientation attribute of type gml:SignType expresses the sense in which the included node is used: start ("-") or end ("+") node. + + + + + + + + + + + + + + + + + + + + + + + + + + gml:Edge represents the 1-dimensional primitive. +The topological boundary of an Edge (gml:directedNode) consists of a negatively directed start Node and a positively directed end Node. +The optional coboundary of an edge (gml:directedFace) is a circular sequence of directed faces which are incident on this edge in document order. In the 2D case, the orientation of the face on the left of the edge is "+"; the orientation of the face on the right on its right is "-". +If provided, the aggregationType attribute shall have the value "sequence". +An edge may optionally be realised by a 1-dimensional geometric primitive (gml:curveProperty). + + + + + A gml:directedEdge property element describes the boundary of topology faces, the coBoundary of topology nodes and is used in the support of topological line features via the gml:TopoCurve expression, see below. The orientation attribute of type gml:SignType expresses the sense in which the included edge is used, i.e. forward or reverse. + + + + + + + + + + + + + + + + + + + + + + + If the topological representation exists an unbounded manifold (e.g. Euclidean plane), a gml:Face must indicate whether it is a universal face or not, to ensure a lossless topology representation as defined by Kuijpers, et. al. (see OGC 05-102 Topology IPR). The optional universal attribute of type boolean is used to indicate this. NOTE The universal face is normally not part of any feature, and is used to represent the unbounded portion of the data set. Its interior boundary (it has no exterior boundary) would normally be considered the exterior boundary of the map represented by the data set. + + + + + + + + gml:Face represents the 2-dimensional topology primitive. +The topological boundary of a face (gml:directedEdge) consists of a sequence of directed edges. If provided, the aggregationType attribute shall have the value "sequence". +The optional coboundary of a face (gml:directedTopoSolid) is a pair of directed solids which are bounded by this face. A positively directed solid corresponds to a solid which lies in the direction of the negatively directed normal to the face in any geometric realisation. +A face may optionally be realised by a 2-dimensional geometric primitive (gml:surfaceProperty). + + + + + The gml:directedFace property element describes the boundary of topology solids, in the coBoundary of topology edges and is used in the support of surface features via the gml:TopoSurface expression, see below. The orientation attribute of type gml:SignType expresses the sense in which the included face is used i.e. inward or outward with respect to the surface normal in any geometric realisation. + + + + + + + + + + + + + + + + + + + + + + A gml:TopoSolid must indicate whether it is a universal topo-solid or not, to ensure a lossless topology representation as defined by Kuijpers, et. al. (see OGC 05-102 Topology IPR). The optional universal attribute of type boolean is used to indicate this and the default is fault. NOTE The universal topo-solid is normally not part of any feature, and is used to represent the unbounded portion of the data set. Its interior boundary (it has no exterior boundary) would normally be considered the exterior boundary of the data set. + + + + + + + + gml:TopoSolid represents the 3-dimensional topology primitive. +The topological boundary of a solid (gml:directedFace) consists of a set of directed faces. +A solid may optionally be realised by a 3-dimensional geometric primitive (gml:solidProperty). + + + + + The gml:directedSolid property element describes the coBoundary of topology faces and is used in the support of volume features via the gml:TopoVolume expression, see below. The orientation attribute of type gml:SignType expresses the sense in which the included solid appears in the face coboundary. In the context of a gml:TopoVolume the orientation attribute has no meaning. + + + + + + + + + + + + + + + + + + + + + + The intended use of gml:TopoPoint is to appear within a point feature to express the structural and possibly geometric relationships of this feature to other features via shared node definitions. + + + + + + + + + + + The gml:topoPointProperty property element may be used in features to express their relationship to the referenced topology node. + + + + + + + + + + + + + + + gml:TopoCurve represents a homogeneous topological expression, a sequence of directed edges, which if realised are isomorphic to a geometric curve primitive. The intended use of gml:TopoCurve is to appear within a line feature to express the structural and geometric relationships of this feature to other features via the shared edge definitions. +If provided, the aggregationType attribute shall have the value "sequence". + + + + + + + + + + + The gml:topoCurveProperty property element may be used in features to express their relationship to the referenced topology edges. + + + + + + + + + + + + + + + gml:TopoSurface represents a homogeneous topological expression, a set of directed faces, which if realised are isomorphic to a geometric surface primitive. The intended use of gml:TopoSurface is to appear within a surface feature to express the structural and possibly geometric relationships of this surface feature to other features via the shared face definitions. + + + + + + + + + + + The gml:topoSurfaceProperty property element may be used in features to express their relationship to the referenced topology faces. + + + + + + + + + + + + + + + gml:TopoVolume represents a homogeneous topological expression, a set of directed topologic solids, which if realised are isomorphic to a geometric solid primitive. The intended use of gml:TopoVolume is to appear within a solid feature to express the structural and geometric relationships of this solid feature to other features via the shared solid definitions. + + + + + + + + + + + The gml:topoVolumeProperty element may be used in features to express their relationship to the referenced topology volume. + + + + + + + + + + + + + + + + + + + + gml:TopoComplex is a collection of topological primitives. +Each complex holds a reference to its maximal complex (gml:maximalComplex) and optionally to sub- or super-complexes (gml:subComplex, gml:superComplex). +A topology complex contains its primitive and sub-complex members. + + + + + + The property elements gml:subComplex, gml:superComplex and gml:maximalComplex provide an encoding for relationships between topology complexes as described for gml:TopoComplex above. + + + + + The property elements gml:subComplex, gml:superComplex and gml:maximalComplex provide an encoding for relationships between topology complexes as described for gml:TopoComplex above. + + + + + The property elements gml:subComplex, gml:superComplex and gml:maximalComplex provide an encoding for relationships between topology complexes as described for gml:TopoComplex above. + + + + + The gml:topoPrimitiveMember property element encodes for the relationship between a topology complex and a single topology primitive. + + + + + + + + + + + + The gml:topoPrimitiveMembers property element encodes the relationship between a topology complex and an arbitrary number of topology primitives. + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/units.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/units.xsd new file mode 100644 index 0000000000..84eca23a04 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/units.xsd @@ -0,0 +1,162 @@ + + + + units.xsd + See ISO/DIS 17.2. +Several GML Schema components concern or require a reference scale or units of measure. Units are required for quantities that may occur as values of properties of feature types, as the results of observations, in the range parameters of a coverage, and for measures used in Coordinate Reference System definitions. +The basic unit definition is an extension of the general gml:Definition element defined in 16.2.1. Three specialized elements for unit definition are further derived from this. +This model is based on the SI system of units [ISO 1000], which distinguishes between Base Units and Derived Units. +- Base Units are the preferred units for a set of orthogonal fundamental quantities which define the particular system of units, which may not be derived by combination of other base units. +- Derived Units are the preferred units for other quantities in the system, which may be defined by algebraic combination of the base units. +In some application areas Conventional units are used, which may be converted to the preferred units using a scaling factor or a formula which defines a re-scaling and offset. The set of preferred units for all physical quantity types in a particular system of units is composed of the union of its base units and derived units. +Unit definitions are substitutable for the gml:Definition element declared as part of the dictionary model. A dictionary that contains only unit definitions and references to unit definitions is a units dictionary. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The element gml:unitOfMeasure is a property element to refer to a unit of measure. This is an empty element which carries a reference to a unit of measure definition. + + + + + + + + + A gml:UnitDefinition is a general definition of a unit of measure. This generic element is used only for units for which no relationship with other units or units systems is known. +The content model of gml:UnitDefinition adds three additional properties to gml:Definition, gml:quantityType, gml:quantityTypeReference and gml:catalogSymbol. +The gml:catalogSymbol property optionally gives the short symbol used for this unit. This element is usually used when the relationship of this unit to other units or units systems is unknown. + + + + + + + + + + + + + + + + The gml:quantityType property indicates the phenomenon to which the units apply. This element contains an informal description of the phenomenon or type of physical quantity that is measured or observed. When the physical quantity is the result of an observation or measurement, this term is known as observable type or measurand. +The use of gml:quantityType for references to remote values is deprecated. + + + + + The gml:quantityTypeReference property indicates the phenomenon to which the units apply. The content is a reference to a remote value. + + + + + The catalogSymbol is the preferred lexical symbol used for this unit of measure. +The codeSpace attribute in gml:CodeType identifies a namespace for the catalog symbol value, and might reference the external catalog. The string value in gml:CodeType contains the value of a symbol that should be unique within this catalog namespace. This symbol often appears explicitly in the catalog, but it could be a combination of symbols using a specified algebra of units. + + + + + A base unit is a unit of measure that cannot be derived by combination of other base units within a particular system of units. For example, in the SI system of units, the base units are metre, kilogram, second, Ampere, Kelvin, mole, and candela, for the physical quantity types length, mass, time interval, electric current, thermodynamic temperature, amount of substance and luminous intensity, respectively. +gml:BaseUnit extends generic gml:UnitDefinition with the property gml:unitsSystem, which carries a reference to the units system to which this base unit is asserted to belong. + + + + + + + + + + + + + + Derived units are defined by combination of other units. Derived units are used for quantities other than those corresponding to the base units, such as hertz (s-1) for frequency, Newton (kg.m/s2) for force. Derived units based directly on base units are usually preferred for quantities other than the fundamental quantities within a system. If a derived unit is not the preferred unit, the gml:ConventionalUnit element should be used instead. +The gml:DerivedUnit extends gml:UnitDefinition with the property gml:derivationUnitTerms. + + + + + + + + + + + + + + A set of gml:derivationUnitTerm elements describes a derived unit of measure. Each element carries an integer exponent. The terms are combined by raising each referenced unit to the power of its exponent and forming the product. +This unit term references another unit of measure (uom) and provides an integer exponent applied to that unit in defining the compound unit. The exponent may be positive or negative, but not zero. + + + + + + + + + + + + Conventional units that are neither base units nor defined by direct combination of base units are used in many application domains. For example electronVolt for energy, feet and nautical miles for length. In most cases there is a known, usually linear, conversion to a preferred unit which is either a base unit or derived by direct combination of base units. +The gml:ConventionalUnit extends gml:UnitDefinition with a property that describes a conversion to a preferred unit for this physical quantity. When the conversion is exact, the element gml:conversionToPreferredUnit should be used, or when the conversion is not exact the element gml:roughConversionToPreferredUnit is available. Both of these elements have the same content model. The gml:derivationUnitTerm property defined above is included to allow a user to optionally record how this unit may be derived from other ("more primitive") units. + + + + + + + + + + + + + + + + + + The elements gml:conversionToPreferredUnit and gml:roughConversionToPreferredUnit represent parameters used to convert conventional units to preferred units for this physical quantity type. A preferred unit is either a Base Unit or a Derived Unit that is selected for all values of one physical quantity type. + + + + + The elements gml:conversionToPreferredUnit and gml:roughConversionToPreferredUnit represent parameters used to convert conventional units to preferred units for this physical quantity type. A preferred unit is either a Base Unit or a Derived Unit that is selected for all values of one physical quantity type. + + + + + The inherited attribute uom references the preferred unit that this conversion applies to. The conversion of a unit to the preferred unit for this physical quantity type is specified by an arithmetic conversion (scaling and/or offset). The content model extends gml:UnitOfMeasureType, which has a mandatory attribute uom which identifies the preferred unit for the physical quantity type that this conversion applies to. The conversion is specified by a choice of +- gml:factor, which defines the scale factor, or +- gml:formula, which defines a formula +by which a value using the conventional unit of measure can be converted to obtain the corresponding value using the preferred unit of measure. +The formula defines the parameters of a simple formula by which a value using the conventional unit of measure can be converted to the corresponding value using the preferred unit of measure. The formula element contains elements a, b, c and d, whose values use the XML Schema type double. These values are used in the formula y = (a + bx) / (c + dx), where x is a value using this unit, and y is the corresponding value using the base unit. The elements a and d are optional, and if values are not provided, those parameters are considered to be zero. If values are not provided for both a and d, the formula is equivalent to a fraction with numerator and denominator parameters. + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/valueObjects.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/valueObjects.xsd new file mode 100644 index 0000000000..204bdfdc8b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.2.1/valueObjects.xsd @@ -0,0 +1,205 @@ + + + + valueObjects.xsd + See ISO/DIS 19136 17.5. +The elements declared in this Clause build on other GML schema components, in particular gml:AbstractTimeObject, gml:AbstractGeometry, and the following types: gml:MeasureType, gml:MeasureListType, gml:CodeType, gml:CodeOrNilReasonListType, gml:BooleanOrNilReasonListType, gml:IntegerOrNilReasonList. +Of particular interest are elements that are the heads of substitution groups, and one named choice group. These are the primary reasons for the value objects schema, since they may act as variables in the definition of content models, such as Observations, when it is desired to permit alternative value types to occur some of which may have complex content such as arrays, geometry and time objects, and where it is useful not to prescribe the actual value type in advance. The members of the groups include quantities, category classifications, boolean, count, temporal and spatial values, and aggregates of these. +The value objects are defined in a hierarchy. The following relationships are defined: +- Concrete elements gml:Quantity, gml:Category, gml:Count and gml:Boolean are substitutable for the abstract element gml:AbstractScalarValue. +- Concrete elements gml:QuantityList, gml:CategoryList, gml:CountList and gml:BooleanList are substitutable for the abstract element gml:AbstractScalarValueList. +- Concrete element gml:ValueArray is substitutable for the concrete element gml:CompositeValue. +- Abstract elements gml:AbstractScalarValue and gml:AbstractScalarValueList, and concrete elements gml:CompositeValue, gml:ValueExtent, gml:CategoryExtent, gml:CountExtent and gml:QuantityExtent are substitutable for abstract element gml:AbstractValue. +- Abstract elements gml:AbstractValue, gml:AbstractTimeObject and gml:AbstractGeometry are all in a choice group named gml:Value, which is used for compositing in gml:CompositeValue and gml:ValueExtent. +- Schemas which need values may use the abstract element gml:AbstractValue in a content model in order to permit any of the gml:AbstractScalarValues, gml:AbstractScalarValueLists, gml:CompositeValue or gml:ValueExtent to occur in an instance, or the named group gml:Value to also permit gml:AbstractTimeObjects, gml:AbstractGeometrys. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + + + A gml:Category has an optional XML attribute codeSpace, whose value is a URI which identifies a dictionary, codelist or authority for the term. + + + + + + + + + + + + + + + + + + + + + + + An XML attribute uom ("unit of measure") is required, whose value is a URI which identifies the definition of a ratio scale or units by which the numeric value shall be multiplied, or an interval or position scale on which the value occurs. + + + + + + + + + + + + + gml:AbstractValue is an abstract element which acts as the head of a substitution group which contains gml:AbstractScalarValue, gml:AbstractScalarValueList, gml:CompositeValue and gml:ValueExtent, and (transitively) the elements in their substitution groups. +These elements may be used in an application schema as variables, so that in an XML instance document any member of its substitution group may occur. + + + + + gml:AbstractScalarValue is an abstract element which acts as the head of a substitution group which contains gml:Boolean, gml:Category, gml:Count and gml:Quantity, and (transitively) the elements in their substitution groups. + + + + + gml:AbstractScalarValueList is an abstract element which acts as the head of a substitution group which contains gml:BooleanList, gml:CategoryList, gml:CountList and gml:QuantityList, and (transitively) the elements in their substitution groups. + + + + + This is a convenience choice group which unifies generic values defined in this Clause with spatial and temporal objects and the measures described above, so that any of these may be used within aggregate values. + + + + + + + + + + + Property that refers to, or contains, a Value. Convenience element for general use. + + + + + Property that refers to, or contains, a Value. + + + + + + + + + + + + Property that contains Values. + + + + + + + + + + + gml:CompositeValue is an aggregate value built from other values . It contains zero or an arbitrary number of gml:valueComponent elements, and zero or one gml:valueComponents property elements. It may be used for strongly coupled aggregates (vectors, tensors) or for arbitrary collections of values. + + + + + + + + + + + + + + + + A Value Array is used for homogeneous arrays of primitive and aggregate values. +The member values may be scalars, composites, arrays or lists. +ValueArray has the same content model as CompositeValue, but the member values shall be homogeneous. The element declaration contains a Schematron constraint which expresses this restriction precisely. Since the members are homogeneous, the gml:referenceSystem (uom, codeSpace) may be specified on the gml:ValueArray itself and inherited by all the members if desired. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/extdBaseTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/extdBaseTypes.xsd new file mode 100644 index 0000000000..db854e7ed9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/extdBaseTypes.xsd @@ -0,0 +1,68 @@ + + + + extdBasicTypes.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + gmlxbt:LanguageStringType adds an optional xml:lang attribute to xs:string for the use within the GML schema and in GML application schemas. + + + + + + + + + + gmlxbt:CodeType is a generalized type to be used for a term, keyword or name. It adds a XML attribute codeSpace to a term, where the value of the codeSpace attribute (if present) shall indicate a dictionary, thesaurus, classification scheme, authority, or pattern for the term. + + + + + + + + + + gmlxbt:CodeWithAuthorityType requires that the codeSpace attribute is provided in an instance. + + + + + + + + + + + + + + + + + The value of this property is a text description of the object with optional xml:lang attribute. + + + + + The value of this property is a text description of the object with optional xml:lang attribute. + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/extdEncRule.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/extdEncRule.xsd new file mode 100644 index 0000000000..3218bed717 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/extdEncRule.xsd @@ -0,0 +1,6 @@ + + + extdEncRule.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/geometryCompact.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/geometryCompact.xsd new file mode 100644 index 0000000000..fe80726084 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/geometryCompact.xsd @@ -0,0 +1,218 @@ + + + geometryCompact.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + A SimplePolygon is a specialized polygon that has a simplified encoding of the logically equivalent GML 3.2 Surface with a single GML 3.2 PolygonPatch as its surface patch consisting of a single LinearRing as its exterior boundary and does not have any interior boundary. Thus the usage of the term 'simple' here refers to a specialized polygon with a _simplified_ encoding, which is _simply_ connected (no interior rings) and uses a _simple_ closed curve (no self-crossings) to represent its single boundary ring. + + + + + Abstract element representative of a substitution affiliation + + + + + + + + + + + + + + + + + + + + A SimpleRectangle is the special case of a simple polygon, which has exactly 4 control points in its boundary encoding representing the 4 corners of the rectangle. + + + + + + + + + + + + + + + + + + + + A SimpleTriangle is the special case of a simple polygon, which has exactly 3 control points in its boundary encoding representing the 3 corners of the triangle. + + + + + + + + + + + + + + + + + + + + A SimpleArcString is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one or more GML 3.2 Arc segments + + + + + Abstract element representative of a substitution affiliation + + + + + + + + + + + + + + + + + + + + + + A SimpleArc is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 ArcString segment . + + + + + + + + + + + + + + + + + + + + + + A SimpleArcByCenterPoint is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 SimpleArcByCenterPoint segment. + + + + + + + + + + + + + + + + + + + + + + + + + + A SimpleArcStringByBulge is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one or more GML 3.2 ArcByBulge segments. + + + + + + + + + + + + + + + + + + + + + + + + A SimpleArcStringByBulge is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one GML 3.2 ArcByBulge segment. + + + + + + + + + + + + + + + + + + + + + + + + A SimpleCircle is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 Circle segment. + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/iso8601.sch b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/iso8601.sch new file mode 100644 index 0000000000..ef133f89d0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/iso8601.sch @@ -0,0 +1,19 @@ + + + + + + + + + + + Year 0000 is not a valid year. + + + Calendar day 000 is not a valid value, the first day of the year is 001. + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRef.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRef.xsd new file mode 100644 index 0000000000..d9bf5d6165 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRef.xsd @@ -0,0 +1,215 @@ + + + linearRef.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gmllr:LinearReferencingMethod + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Informative values from ISO 19148 Annex C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Normative values from ISO 19148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefOffset.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefOffset.xsd new file mode 100644 index 0000000000..a6c6020628 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefOffset.xsd @@ -0,0 +1,96 @@ + + + linearRefOffset.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gmllr:AbstractGeometry + + + + + + + + + + + + + + The featureGeometry attribute value should reference a Geometry object + + gmllr:AbstractGeometry + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefOffsetVector.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefOffsetVector.xsd new file mode 100644 index 0000000000..50c0415626 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefOffsetVector.xsd @@ -0,0 +1,48 @@ + + + linearRefOffsetVector.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefTowardsReferent.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefTowardsReferent.xsd new file mode 100644 index 0000000000..14f94445d1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/linearRefTowardsReferent.xsd @@ -0,0 +1,23 @@ + + + linearRefTowardsReferent.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/referenceableGrid.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/referenceableGrid.xsd new file mode 100644 index 0000000000..086c1e2fa9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/referenceableGrid.xsd @@ -0,0 +1,79 @@ + + + referenceableGrid.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/tin.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/tin.xsd new file mode 100644 index 0000000000..f8fd7479ed --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/ogc/gml/3.3/tin.xsd @@ -0,0 +1,78 @@ + + + tin.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi-core.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi-core.xsd new file mode 100644 index 0000000000..b868551873 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi-core.xsd @@ -0,0 +1,2940 @@ + + + + + + + + + + + + Core XML type components that shall always be used as specified without further restriction unless documented by, and accomplished using, Schematron assertions. + + + + + An XML model group consisting of all TSPI resolution elements. + + + + + Horizontal Resolution Category: The horizontal resolution of the coordinate tuple of the accompanying point, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous. + + + + + Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying point, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous. + + + + + + + + An XML model group consisting of all TSPI presentation elements. + + + + + + Horizontal Presentation: A presentation of a point horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + Vertical Presentation: A presentation of a point vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + + + Point Type: A point type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + + + + + + + + Line String Type: A line string type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A line string is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate tuples, with linear interpolation between them. + + + + + + + + + + + + + + Circle Type: A circle type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include assessments of the accuracy and/or resolution of the center point coordinate tuple as well as optional specification of one or more character-oriented presentations of the center point coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle by center point is an arc by center point with identical start and end angle to form a full circle. This representation can be used only in 2D. + + + + + + + + + + + + + + Ellipse Type: An ellipse as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of an ellipse and then extended to include both assessments of the accuracy and/or resolution of the center point coordinate tuple as well as optional specification of one or more character-oriented presentations of the center point coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D. + + + + + + + The position of the center point of the ellipse. + + + + + + + Semi-major Axis Length: One-half of the length of the major axis of the ellipse. The major axis is the longest axis of an ellipse; it passes through the two foci. + + + + + Semi-minor Axis Length: One-half of the length of the minor axis of the ellipse. The minor axis is the shortest axis of an ellipse; it is perpendicular to the major axis. + + + + + Orientation: The direction of the major axis of the ellipse; its value is the counter-clockwise angle from the first axis of the Coordinate Reference System. + + + + + + + + + + + + Polygon Type: A polygon type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + + + + + + + + Simple Polygon Type: A simple polygon type as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A SimplePolygon is a specialized polygon that has a simplified encoding of the logically equivalent GML 3.2 Surface with a single GML 3.2 PolygonPatch as its surface patch consisting of a single LinearRing as its exterior boundary and does not have any interior boundary. Thus the usage of the term 'simple' here refers to a specialized polygon with a _simplified_ encoding, which is _simply_ connected (no interior rings) and uses a _simple_ closed curve (no self-crossings) to represent its single boundary ring. The last coordinate does _not_ have to repeat the first coordinate in this simplified encoding, so only three control points are required to specify a simple polygon. + + + + + + + + + + + + + + Simple Rectangle Type: A simple rectangle type as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A simple rectangle is the special case of a simple polygon, which has exactly 4 control points in its boundary encoding representing the 4 corners of the rectangle. + + + + + + + + + + + + + + Envelope Type: An envelope type, as developed based on ISO 19136:2007 (GML) Envelope for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the pair of coordinate tuples as well as optional specification of one or more character-oriented presentations of the pair of coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope). + + + + + + + Lower Corner Position: A coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope. + + + + + + + + + + + Upper Corner Position: A coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope. + + + + + + + + + + + + + Horizontal Presentation: A presentation of an envelope point horizontal locations that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + Lower Corner Horizontal Presentation: A presentation of an envelope lower corner point horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + Upper Corner Horizontal Presentation: A presentation of an envelope upper corner horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + + + + Vertical Presentation: A presentation of an envelope point vertical locations that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + Lower Corner Vertical Presentation: A presentation of an envelope lower corner point vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + Upper Corner Vertical Presentation: A presentation of an envelope upper corner vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + + + + + + + + Circular Surface Type: A circular surface type, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a circle and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle is an arc that is specified by a center point, a radius, and which has identical start and end angles. This representation can be used only in 2D. + + + + + + + The position of the center point of the circle. + + + + + + + Radius: The distance from the center to the circumference of the circle. + + + + + + + + + + + + Elliptical Surface Type: An elliptical surface type, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a circle and then extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D. + + + + + + + The position of the center point of the ellipse. + + + + + + + Semi-major Axis Length: One-half of the length of the major axis of the ellipse. The major axis is the longest axis of an ellipse; it passes through the two foci. + + + + + Semi-minor Axis Length: One-half of the length of the minor axis of the ellipse. The minor axis is the shortest axis of an ellipse; it is perpendicular to the major axis. + + + + + Orientation: The direction of the major axis of the ellipse; its value is the counter-clockwise angle from the first axis of the Coordinate Reference System. + + + + + + + + + + + + Horizontal Presentation Type: A type consisting of one or more occurances of one of a set of alternative presentations of a point horizontal location that are generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + Sexagesimal Location: A sexagesimal position presentation based on 60 arc seconds comprising an arc minute and 60 arc minutes comprising an arc degree that is widely employed as a basis for position reporting. [desc] The presentation consists of two component strings, one each for the geodetic latitude and longitude coordinates, which are identical excepting differences in the maximum value of latitude (90 arc degrees) and longitude (180 arc degrees) and the allowed value of hemisphere (North and South, versus East and West). + + + + + Grid-Metre Location: A grid-metre position presentation based on the requirements of the Military Grid Reference System (MGRS) position reporting system. [desc] Grid squares are used as a means of identifying 100,000-metre x 100,000-metre spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from the southwest corner. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values. + + + + + Zone-Metre Location: A zone-metre position presentation based on the requirements of the universal grid position reporting systems based on Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS) map projections. [desc] Zones and hemispheres are used as a means of identifying spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from a reference location. The reference location is assigned a positive offset-value to ensure that all legal offset values in a zone are positive. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values. + + + + + Quadrangle Location: A datatype representing a quadrangle position presentation based on the requirements of the GEOREF area-designation system. [desc] Quadrangles are used as a means of identifying 1 arc degree x 1 arc degree spatial regions which are then subdivided in accordance with sexagesimal notation based on 60 arc minutes comprising an arc degree. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values. + + + + + Numeric-Bit Location: A numeric-bit position presentation based on the requirements of the Variable Message Format (VMF). [desc] VMF encodes values of geodetic latitude and longitude as multi-bit fields whose bit configurations represent actual numeric values. The least significant bit value and range are described in the applicable message description. A negative number is coded and transmitted with twos complement coding and identified by the number one in the most significant bit of the data field. + + + + + + Spatial Reference System Name: A unique identifier of a spatial reference system, usually a Coordinate Reference System (CRS). [desc] Specified as a Uniform Resource Identifier (URI). + + + + + + + Vertical Presentation Type: A type consisting of one or more occurances of one of a set of alternative presentations of a point vertical location that are generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + Height: The distance above a reference surface determined along the direction of the reference surface normal with positive values being above the reference surface. [desc] Conventionally measured from an ellipsoid as "Height Above Ellipsoid" (HAE). + + + + + Altitude: The distance above a reference surface determined along the direction of gravity with positive values being above the reference surface. [desc] Conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)). + + + + + Depth: The distance below a reference surface determined along the direction of gravity with positive values being below the reference surface. [desc] Conventionally measured from Mean Sea level (MSL); may also be measured from a Todal Datum or River Datum. + + + + + + Spatial Reference System Name: A unique identifier of a spatial reference system, usually a Coordinate Reference System (CRS). [desc] Specified as a Uniform Resource Identifier (URI). + + + + + + + Sexagesimal Presentation Type: A datatype representing a sexagesimal position presentation based on 60 arc seconds comprising an arc minute and 60 arc minutes comprising an arc degree that is widely employed as a basis for position reporting. [desc] The presentation consists of two component strings, one each for the geodetic latitude and longitude coordinates, which are identical excepting differences in the maximum value of latitude (90 arc degrees) and longitude (180 arc degrees) and the allowed value of hemisphere (North and South, versus East and West). + + + + + + Geodetic Degree: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Degree: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc degrees. + + + + + Geodetic Longitude Degree: The presentation value of a spatial position expressed as an angle of geodetic longitude in unsigned decimal arc degrees. + + + + + + + + + Geodetic Degree Fraction: The presentation value of a spatial position expressed as remaining fractional arc degree angle components of geodetic latitude and longitude. + + + + + + Geodetic Decidegree: The presentation value of a spatial position expressed as remaining fractional arc decidegree (tenths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Decidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decidegrees (tenths of an arc degree). + + + + + Geodetic Longitude Decidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decidegrees (tenths of an arc degree). + + + + + + + + Geodetic Centidegree: The presentation value of a spatial position expressed as remaining fractional arc centidegree (hundredths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Centidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centidegrees (hundredths of an arc degree). + + + + + Geodetic Longitude Centidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centidegrees (hundredths of an arc degree). + + + + + + + + Geodetic Millidegree: The presentation value of a spatial position expressed as remaining fractional arc millidegree (thousandths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Millidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc millidegrees (thousandths of an arc degree). + + + + + Geodetic Longitude Millidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc millidegrees (thousandths of an arc degree). + + + + + + + + Geodetic Decimillidegree: The presentation value of a spatial position expressed as remaining fractional arc decimillidegree (ten-thousandths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Decimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decimillidegrees (ten-thousandths of an arc degree). + + + + + Geodetic Longitude Decimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decimillidegrees (ten-thousandths of an arc degree). + + + + + + + + Geodetic Centimillidegree: The presentation value of a spatial position expressed as remaining fractional arc centimillidegree (hundred-thousandths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Centimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centimillidegrees (hundred-thousandths of an arc degree). + + + + + Geodetic Longitude Centimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centimillidegrees (hundred-thousandths of an arc degree). + + + + + + + + Geodetic Microdegree: The presentation value of a spatial position expressed as remaining fractional arc microdegree (millionths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Microdegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc microdegrees (millionths of an arc degree). + + + + + Geodetic Longitude Microdegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc microdegrees (millionth of an arc degree). + + + + + + + + + + + + Geodetic Minute: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc degrees have been specified. + + + + + + Geodetic Latitude Minute: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc minutes. + + + + + Geodetic Longitude Minute: The presentation value of a spatial position expressed as a component of an angle of geodetic longitude in unsigned decimal arc minutes. + + + + + + + + + Geodetic Minute Fraction: The presentation value of a spatial position expressed as remaining fractional arc minute angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc minutes have been specified. + + + + + + Geodetic Deciminute: The presentation value of a spatial position expressed as remaining fractional arc deciminute (tenths of an arc minute) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Deciminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc deciminutes (tenth of an arc minute). + + + + + Geodetic Longitude Deciminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc deciminutes (tenth of an arc minute). + + + + + + + + Geodetic Centiminute: The presentation value of a spatial position expressed as remaining fractional arc centiminute (hundredths of an arc minute) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Centiminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centiminutes (hundredth of an arc minute). + + + + + Geodetic Longitude Centiminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centiminutes (hundredth of an arc minute). + + + + + + + + Geodetic Milliminute: The presentation value of a spatial position expressed as remaining fractional arc milliiminute (thousandths of an arc minute) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Milliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc milliminutes (thousandth of an arc minute). + + + + + Geodetic Longitude Milliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc milliminutes (thousandth of an arc minute). + + + + + + + + Geodetic Decimilliminute: The presentation value of a spatial position expressed as remaining fractional arc decimilliminute (ten-thousandths of an arc minute) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Decimilliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decimilliminutes (ten-thousandth of an arc minute). + + + + + Geodetic Longitude Decimilliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decimilliminutes (ten-thousandth of an arc minute). + + + + + + + + + + + + Geodetic Second: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc degrees and arc minutes have been specified. + + + + + + Geodetic Latitude Seconds: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc seconds. + + + + + Geodetic Longitude Seconds: The presentation value of a spatial position expressed as a component of an angle of geodetic longitude in unsigned decimal arc seconds. + + + + + + + + + Geodetic Second Fraction: The presentation value of a spatial position expressed as remaining fractional arc second angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc seconds have been specified. + + + + + + Geodetic Decisecond: The presentation value of a spatial position expressed as remaining fractional arc decisecond (tenths of an arc second) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Deciseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc deciseconds (tenth of an arc second). + + + + + Geodetic Longitude Deciseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc deciseconds (tenth of an arc second). + + + + + + + + Geodetic Centisecond: The presentation value of a spatial position expressed as remaining fractional arc centisecond (hundredths of an arc second) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Centiseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centiseconds (hundredth of an arc second). + + + + + Geodetic Longitude Centiseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centiseconds (hundredth of an arc second). + + + + + + + + Geodetic Millisecond: The presentation value of a spatial position expressed as remaining fractional arc millisecond (thousandths of an arc second) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Milliseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc milliseconds (thousandth of an arc second). + + + + + Geodetic Longitude Milliseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc milliseconds (thousandth of an arc second). + + + + + + + + + + + + Geodetic Latitude Hemisphere: The hemispheric location of a spatial position expressed as a geodetic latitude, as a category. [desc] One of: north or south. + + + + + Geodetic Longitude Hemisphere: The hemispheric location of a spatial position expressed as a geodetic longitude, as a category. [desc] One of: east or west. + + + + + + Radix Point Mark: The symbol used in numerical representations to separate the integral part of the number (to the left of the radix) from its fractional part (to the right of the radix). [desc] The radix point mark is usually a small dot, either placed on the baseline or halfway between the baseline and the top of the numerals. In base-10, the radix point is more commonly called the decimal point; radix point, however, is the more general term used for other bases. In many non-English speaking countries, a comma ',' is used instead of a period '.' as the radix point mark. + + + + + + + + Geodetic Latitude Type: A datatype consisting of up to two digits in the range from "0" to "90" that may be used to represent an unsigned decimal value of geodetic latitude. Leading zeros may be suppressed as it is not of fixed-length. + + + + + + + + + Geodetic Longitude Type: A datatype consisting of up to three digits in the range from "0" to "180" that may be used to represent an unsigned decimal value of geodetic longitude. Leading zeros may be suppressed as it is not of fixed-length. + + + + + + + + + Latitude Hemisphere Type: A coded domain value denoting the hemispheric location of a spatial position expressed as a geodetic latitude. [desc] One of: north or south. + + + + + Northern Hemisphere: The half of the surface of the Earth lying to the side of the Equator in the direction of the star Polaris. [desc] It generally contains the North American and Eurasian landmasses. + + + + + Southern Hemisphere: The half of the surface of the Earth lying to the side of the Equator in the opposite direction of the star Polaris. [desc] It generally contains the South American, African, Australian, and Antarctic landmasses. + + + + + + + Longitude Hemisphere Type: A coded domain value denoting the hemispheric location of a spatial position expressed as a geodetic longitude. [desc] One of: east or west. + + + + + Eastern Hemisphere: The half of the surface of the Earth lying to the side of the 0 arc degree meridian in which direction the Earth rotates and ending at the 180 arc degree meridian. [desc] It generally contains the Eurasian, African and Australian landmasses. + + + + + Western Hemisphere: The half of the surface of the Earth lying to the side of the 0 arc degree meridian opposite to the direction in which the Earth rotates and ending at the 180 arc degree meridian. [desc] It generally contains the North American and South American landmasses. + + + + + + + + Sexagesimal Type: A datatype consisting of up to two digits in the range from "0" to "59" that may be used to represent an unsigned decimal value. Leading zeros may be suppressed as it is not of fixed-length. + + + + + + + + + + Deca Type: A datatype consisting of a single digit in the range from "0" to "9" that may be used to represent an unsigned decimal value. + + + + + + + + + + Hecto Type: A datatype consisting of two digits in the range from "00" to "99" that may be used to represent an unsigned decimal value. + + + + + + + + + + Kilo Type: A datatype consisting of three digits in the range from "000" to "999" that may be used to represent an unsigned decimal value. + + + + + + + + + + Decakilo Type: A datatype consisting of four digits in the range from "0000" to "9999" that may be used to represent an unsigned decimal value. + + + + + + + + + + Hectokilo Type: A datatype consisting of five digits in the range from "00000" to "99999" that may be used to represent an unsigned decimal value. + + + + + + + + + + Mega Type: A datatype consisting of six digits in the range from "000000" to "999999" that may be used to represent an unsigned decimal value. + + + + + + + + + + + Radix Point Mark Type: A datatype representing the symbol used in numerical representations to separate the integral part of the number (to the left of the radix) from its fractional part (to the right of the radix). [desc] The radix point mark is usually a small dot, either placed on the baseline or halfway between the baseline and the top of the numerals. In base-10, the radix point is more commonly called the decimal point; radix point, however, is the more general term used for other bases. In many non-English speaking countries, a comma ',' is used instead of a period '.' as the radix point mark. + + + + + + + + + + Grid-Metre Presentation Type: A datatype representing a grid-metre position presentation based on the requirements of the Military Grid Reference System (MGRS) position reporting system. [desc] Grid squares are used as a means of identifying 100,000-metre x 100,000-metre spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from the southwest corner. The presentation consists of a single component string integrating all coordinate tuple values. + + + + + + Grid Zone Column: An identification of a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '01' to '60'. + + + + + Grid Zone Row: An identification of a 8 arc degree tall spatial region on the surface of the Earth. [desc] There are 19 bands of latitude each of 8 arc degrees in height, extending northward from the 80 arc degree parallel in the Southern Hemisphere; these bands are lettered northwards from A to W inclusive (omitting 'I' and 'O'). There is a final 20th band of 12 arc degrees in latitude extending from 72 to 84 arc degrees North that is lettered as 'X'. + + + + + + Grid Square Column: An identification of a 100,000 metre wide spatial region on the surface of the Earth with respect to an encompassing grid zone. [desc] There are up to eight such grid square columns in a grid zone. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3. + + + + + Grid Square Row: An identification of a 100,000 metre tall spatial region on the surface of the Earth with respect to an encompassing grid row. [desc] There are up to nine such grid square rows in a grid row. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3. + + + + + + Relative Location: The relative position of a square subregion with respect to an encompassing grid square. + + + + + + Decakilometre Offset: The relative position of a 10,000 by 10,000 metre subregion with respect to an encompassing grid square. + + + + + + Decakilometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in decakilometres (ten thousand metres) eastwards of the western boundary of an encompassing grid square column. + + + + + Decakilometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in decakilometres (ten thousand metres) northwards of the southern boundary of an encompassing grid square row. + + + + + + + + Kilometre Offset: The relative position of a 1,000 by 1,000 metre subregion with respect to an encompassing grid square. + + + + + + Kilometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in kilometres eastwards of the western boundary of an encompassing grid square column. + + + + + Kilometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in kilometres northwards of the southern boundary of an encompassing grid square row. + + + + + + + + Hectometre Offset: The relative position of a 100 by 100 metre subregion with respect to an encompassing grid square. + + + + + + Hectometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in hectometres (hundred metres) eastwards of the western boundary of an encompassing grid square column. + + + + + Hectometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in hectometres (hundred metres) northwards of the southern boundary of an encompassing grid square row. + + + + + + + + Decametre Offset: The relative position of a 10 by 10 metre subregion with respect to an encompassing grid square. + + + + + + Decametre Easting: The presentation value of a spatial position expressed as an integer-valued offset in decametres (ten metres) eastwards of the western boundary of an encompassing grid square column. + + + + + Decametre Northing: The presentation value of a spatial position expressed as an integer-valued offset in decametres (ten metres) northwards of the southern boundary of an encompassing grid square row. + + + + + + + + Metre Offset: The relative position of a 1 by 1 metre subregion with respect to an encompassing grid square. + + + + + + Metre Easting: The presentation value of a spatial position expressed as an integer-valued offset in metres eastwards of the western boundary of an encompassing grid square column. + + + + + Metre Northing: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid square row. + + + + + + + + + + + + + + Grid Square Column Type: A two-digit datatype identifying a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '01' to '60'. + + + + + + + + + + Grid Zone Row Type: A one-character datatype identifying a 8 arc degree tall spatial region on the surface of the Earth. [desc] There are 19 bands of latitude each of 8 arc degrees in height, extending northward from the 80 arc degree parallel in the Southern Hemisphere; these bands are lettered northwards from A to W inclusive (omitting 'I' and 'O'). There is a final 20th band of 12 arc degrees in latitude extending from 72 to 84 arc degrees North that is lettered as 'X'. + + + + + + + + + Grid Square Column Type: A one-character datatype identifying a 100,000 kilometre wide spatial region on the surface of the Earth with respect to an encompassing grid zone. [desc] There are up to eight such grid square columns in a grid zone. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3. + + + + + + + + + Grid Square Row Type: A one-character datatype identifying a 100,000 kilometre tall spatial region on the surface of the Earth with respect to an encompassing grid row. [desc] There are up to nine such grid square rows in a grid row. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3. + + + + + + + + + + Zone-Metre Presentation Type: A datatype representing a zone-metre position presentation based on the requirements of the universal grid position reporting systems based on Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS) map projections. [desc] Zones and hemispheres are used as a means of identifying spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from a reference location. The reference location is assigned a positive offset-value to ensure that all legal offset values in a zone are positive. The presentation consists of a single component string integrating all coordinate tuple values. + + + + + + Grid Zone Column: An identification of a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '00' to '60'. + + + + + Geodetic Latitude Hemisphere: The hemispheric location of a spatial position, as a category. [desc] One of: north or south. + + + + + + Metre Easting: The presentation value of a spatial position expressed as an integer-valued offset in metres eastwards of the western boundary of an encompassing grid zone. + + + + + + + + + Metre Northing: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid zone hemisphere. [desc] The northing value is based on a "false northing" concept where value in the Northern Hemisphere start with zero located at the Equator and rise towards the North Pole, whereas values in the Southern hemisphere start at 10,000,000 at the Equator and fall towards the South Pole. + + + + + Metre Northing Extended: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid zone hemisphere. [desc] The northing value is based on a "false northing" concept where values in the Northern Hemisphere start with zero located at the Equator and rise towards the North Pole, whereas values in the Southern hemisphere start at 10,000,000 at the Equator and fall towards the South Pole. The extension allows for the representation of values in the Northern Hemisphere (up to 1,000,000 metres) with respect to the Southern Hemisphere. + + + + + + + + + + + Decamega Type: A datatype consisting of seven digits in the range from "0000000" to "9999999" that may be used to represent an unsigned decimal value. + + + + + + + + + + Hecto-mega ExtendedType: A datatype consisting of eight digits in the range from "00000000" to "11000000" that may be used to represent an unsigned decimal value. + + + + + + + + + + + Quadrangle Presentation Type: A datatype representing a quadrangle position presentation based on the requirements of the GEOREF area-designation system. [desc] Quadrangles are used as a means of identifying 1 arc degree x 1 arc degree spatial regions which are then subdivided in accordance with sexagesimal notation based on 60 arc minutes comprising an arc degree. The presentation consists of a single component string integrating all coordinate tuple values. + + + + + + Geographic Quadrangle: An identification of a 15 arc degree by 15 arc degree spatial region on the surface of the Earth. [desc] There are 24 longitudinal zones each of 15 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are lettered eastwards from A to Z inclusive (omitting the letters "I" and "O"). There are 12 bands of latitude each of 15 arc degrees in height, extending northward from the South Pole; these bands are lettered northwards from A to M inclusive (omitting I). Each member of the resulting set of 288 15 arc minute quadrangles is identified by two letters. The first letter is that of the 15 arc degree longitude zone and the second letter that of the 15 arc degree latitude band; for example: “MK”. + + + + + Geographic Zone: An identification of a 1 arc degree by 1 arc degree spatial region on the surface of the Earth with respect to an encompassing 15 arc degree by 15 arc degree geographic quadrangle. [desc] Each geographic quadrangle is sub-divided into 15 one arc degree zones of longitude, lettered eastward from the western meridian of the quadrangle; these 1 arc degree zones are lettered from A to Q inclusive (omitting the letters “I” and “O”). Each geographic quadrangle is also subdivided into 15 one arc degree bands of latitude northward from the southern parallel of the quadrangle; these 1 arc degree bands are lettered northwards from A to Q inclusive (omitting the letters “I” and “O”). A nested 1 arc degree by 1 arc degree quadrangle may thus be identified by four letters; the third letter is that of the 1 arc degree longitude zone and the fourth letter that of the 1 arc degree latitude band; for example: “MKPG”. + + + + + + Subzone Minute: The geodetic position of a 1 arc minute by 1 arc minute subzone region with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth. + + + + + + Easting Minute: A two-digit identification of a 1 arc minute zone of longitude with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59". + + + + + Northing Minute: A two-digit identification of a 1 arc minute band of latitude with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth. [desc] Bands are numbered northwards from the southern parallel of the encompassing region, starting with "00" and ending with "59". + + + + + + + + + Subzone Fraction: An identification of a higher resolution tenth or hundredth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth. + + + + + + Deciminute: A pair of one-digit identifiers of a higher resolution tenth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth. + + + + + + Easting Deciminute: A one-digit identification of a higher resolution tenth of an arc minute zone of longitude with respect to an associated specified arc minute zone. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "0" to "9". + + + + + Northing Deciminute: A one-digit identification of a higher resolution tenth of an arc minute band of latitude with respect to an associated specified arc minute band. [desc] Bands are numbered northward from the southern parallel of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "0" to "9". + + + + + + + + Centiminute: A pair of two-digit identifiers of a higher resolution hundredth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth. + + + + + + Easting Centiminute: A two-digit identification of a higher resolution hundredth of an arc minute zone of longitude with respect to an associated specified arc minute zone. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "00" to "99". + + + + + Northing Centiminute: A two-digit identification of a higher resolution hundredth of an arc minute band of latitude with respect to an associated specified arc minute band. [desc] Bands are numbered northward from the southern parallel of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "00" to "99". + + + + + + + + + + + + + + Geographic Quadrangle Type: An identification of one of 288 15 arc degree by 15 arc degree spatial regions on the surface of the Earth as a two-character value; the first character is that of the 15 arc degree longitude zone and the second character that of the 15 arc degree latitude band (for example: “MK”). [desc] There are 24 longitudinal zones each of 15 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are lettered eastwards from A to Z inclusive (omitting the letters "I" and "O"). There are 12 bands of latitude each of 15 arc degrees in height, extending northward from the South Pole; these bands are lettered northwards from A to M inclusive (omitting I). + + + + + + + + + Geographic Zone Type: An identification of one of 255 1 arc degree by 1 arc degree spatial regions on the surface of the Earth with respect to an encompassing 15 arc degree by 15 arc degree geographic quadrangle, as a two-character value (for example: “PG”). [desc] Each geographic quadrangle is sub-divided into 15 one arc degree zones of longitude, lettered eastward from the western meridian of the quadrangle; these 1 arc degree zones are lettered from A to Q inclusive (omitting the letters “I” and “O”). Each geographic quadrangle is also subdivided into 15 one arc degree bands of latitude northward from the southern parallel of the quadrangle; these 1 arc degree bands are lettered northwards from A to Q inclusive (omitting the letters “I” and “O”). A nested 1 arc degree by 1 arc degree quadrangle may thus be identified by four letters; the third letter is that of the 1 arc degree longitude zone and the fourth letter that of the 1 arc degree latitude band; for example: “MKPG”. + + + + + + + + + + Numeric Bit Presentation Type: A datatype representing a numeric-bit position presentation based on the requirements of the Variable Message Format (VMF). [desc] VMF encodes values of geodetic latitude and longitude as multi-bit fields whose bit configurations represent actual numeric values. The least significant bit value and range are described in the applicable message description. A negative number is coded and transmitted with twos complement coding and identified by the number one in the most significant bit of the data field. + + + + + + Encoded 20-bit: A geodetic position based on 20 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/524,287 arc degrees. + + + + + + + + + + + Encoded 21-bit: A geodetic position based on 21 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/1,048,575 arc degrees. + + + + + + + + + + + Encoded 23-bit: A geodetic position based on 23 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/4,194,303 arc degrees. + + + + + + + + + + + Encoded 25-bit: A geodetic position based on 25 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/16,777,215 arc degrees. + + + + + + + + + + + Encoded 31-bit: A geodetic position based on 31 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/1,073,741,823 arc degrees. + + + + + + + + + + + + + + + Latitude 20-bit Type: A numeric datatype consisting of 20 bits in the range from 0 to 1,048,575 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/524,287 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 524,288. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/524,287 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/524,287 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Latitude 21-bit Type: A numeric datatype consisting of 21 bits in the range from 0 to 2,097,151 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/1,048,575 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,048,576. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/1,048,575 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/1,048,575 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Latitude 23-bit Type: A numeric datatype consisting of 23 bits in the range from 0 to 8,388,607 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/4,194,303 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 4,194,304. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/4,194,303 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/4,194,303 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Latitude 25-bit Type: A numeric datatype consisting of 25 bits in the range from 0 to 33,554,431 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/16,777,215 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 16,777,216. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/16,777,215 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/16,777,215 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Latitude 31-bit Type: A numeric datatype consisting of 31 bits in the range from 0 to 2,147,483,647 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/1,073,741,823 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,073,741,824. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/1,073,741,823 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/1,073,741,823 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Longitude 21-bit Type: A numeric datatype consisting of 21 bits in the range from 0 to 2,097,151 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/1,048,575 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,048,576. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/1,048,575 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/1,048,575 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Longitude 22-bit Type: A numeric datatype consisting of 22 bits in the range from 0 to 4,194,303 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/2,097,151 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 2,097,152. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/2,097,151 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/2,097,151 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Longitude 24-bit Type: A numeric datatype consisting of 24 bits in the range from 0 to 16,777,215 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/8,388,607 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 8,388,608. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/8,388,607 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/8,388,607 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Longitude 26-bit Type: A numeric datatype consisting of 26 bits in the range from 0 to 67,108,863 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/33,554,431 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 33,554,432. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/33,554,431 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/33,554,431 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Longitude 32-bit Type: A numeric datatype consisting of 32 bits in the range from 0 to 4,294,967,295 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/2,147,483,647 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 2,147,483,648. Note that this datatype is encoded as an long rather than an int. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/2,147,483,647 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/2,147,483,647 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Horizontal Resolution Enumeration Type: A coded domain value denoting a horizontal resolution category. [desc] The horizontal resolution of a spatial position in its Coordinate Reference System (CRS), as a category. + + + + + Geodetic Arc Degree: The spatial position is horizontally resolved to the nearest arc degree. [desc] An arc degree is a maximum of 111,694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Decidegree: The spatial position is horizontally resolved to the nearest tenth of an arc degree. [desc] A tenth of an arc degree is a maximum of 11,169.4 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Centidegree: The spatial position is horizontally resolved to the nearest hundredth of an arc degree. [desc] A hundredth of an arc degree is a maximum of 1,116.94 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Millidegree: The spatial position is horizontally resolved to the nearest thousandth of an arc degree. [desc] A thousandth of an arc degree is a maximum of 111.694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Decimillidegree: The spatial position is horizontally resolved to the nearest ten-thousandth of an arc degree. [desc] A ten-thousandth of an arc degree is a maximum of 11.1694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Centimillidegree: The spatial position is horizontally resolved to the nearest hundred-thousandth of an arc degree. [desc] A hundred-thousandth of an arc degree is a maximum of 1.11694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Microdegree: The spatial position is horizontally resolved to the nearest millionth of an arc degree. [desc] A millionth of an arc degree is a maximum of 0.111694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Minute: The spatial position is horizontally resolved to the nearest arc minute. [desc] An arc minute is a maximum of 1,855.3 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Deciminute: The spatial position is horizontally resolved to the nearest tenth of an arc minute. [desc] A tenth of an arc minute is a maximum of 185.53 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Centiminute: The spatial position is horizontally resolved to the nearest hundredth of an arc minute. [desc] A hundredth of an arc minute is a maximum of 18.553 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Milliminute: The spatial position is horizontally resolved to the nearest thousandth of an arc minute. [desc] A thousandth of an arc minute is a maximum of 1.8553 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Decimilliminute: The spatial position is horizontally resolved to the nearest ten-thousandth of an arc minute. [desc] A ten-thousandth of an arc minute is a maximum of 0.18553 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Second: The spatial position is horizontally resolved to the nearest arc second. [desc] An arc second is a maximum of 30.92 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Decisecond: The spatial position is horizontally resolved to the nearest tenth of an arc second. [desc] A tenth of an arc second is a maximum of 3.092 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Centisecond: The spatial position is horizontally resolved to the nearest hundredth of an arc second. [desc] A hundredth of an arc second is a maximum of 0.3092 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Millisecond: The spatial position is horizontally resolved to the nearest thousandth of an arc second. [desc] A thousandth of an arc second is a maximum of 0.03092 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 20-bit: The spatial position is horizontally resolved to the nearest 90/524,287 arc degree (approximately 0.618 arc seconds). [desc] This corresponds to a maximum of 19.1 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 21-bit: The spatial position is horizontally resolved to the nearest 90/1,048,575 arc degree (approximately 0.309 arc seconds). [desc] This corresponds to a maximum of 9.55 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 23-bit: The spatial position is horizontally resolved to the nearest 90/4,194,303 arc degree (approximately 0.0772 arc seconds). [desc] This corresponds to a maximum of 2.39 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 25-bit: The spatial position is horizontally resolved to the nearest 90/16,777,215 arc degree (approximately 0.0193 arc seconds). [desc] This corresponds to a maximum of 0.597 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 31-bit: The spatial position is horizontally resolved to the nearest 90/1,073,741,823 arc degree (approximately 0.000302 arc seconds). [desc] This corresponds to a maximum of 0.00933 metres in length on the WGS84 ellipsoid. + + + + + Hectokilometre: The spatial position is horizontally resolved to the nearest hundred kilometres. + + + + + Decakilometre: The spatial position is horizontally resolved to the nearest ten kilometres. + + + + + Kilometre: The spatial position is horizontally resolved to the nearest kilometre. + + + + + Hectometre: The spatial position is horizontally resolved to the nearest hundred metres. + + + + + Decametre: The spatial position is horizontally resolved to the nearest ten metres. + + + + + Metre: The spatial position is horizontally resolved to the nearest metre. + + + + + + + Horizontal Resolution Type: A flexible coded domain value denoting a horizontal resolution category. + + + + + + Horizontal Resolution Enumeration Code List: A remote resource that is specified by a URI and in which the Horizontal Resolution Enumeration code list domain is defined. + + + + + Horizontal Resolution Enumeration Code List Value: A coded Horizontal Resolution Enumeration value that is specified by a URI fragment, that encodes the concept intended (denoted) in the XML instance document, and which is a member of Horizontal Resolution Enumeration (remote resource code list) domain. + + + + + + + + Vertical Resolution Enumeration Type: A coded domain value denoting a vertical resolution category. [desc] The vertical resolution of a spatial position in its Coordinate Reference System (CRS), as a category. + + + + + Kilometre: The spatial position is vertically resolved to the nearest kilometre. + + + + + Hectometre: The spatial position is vertically resolved to the nearest hundred metres. + + + + + Decametre: The spatial position is vertically resolved to the nearest ten metres. + + + + + Metre: The spatial position is vertically resolved to the nearest metre. + + + + + Metre: The spatial position is vertically resolved to the nearest tenth of a metre. + + + + + Metre: The spatial position is vertically resolved to the nearest hundredth of a metre. + + + + + Metre: The spatial position is vertically resolved to the nearest thousandth of a metre. + + + + + Nautical Mile: The spatial position is vertically resolved to the nearest nautical mile. [desc] A nautical mile is exactly 1852 metres in length. + + + + + Statute Mile: The spatial position is vertically resolved to the nearest statute mile. [desc] A statute mile is exactly 1609.344 metres in length. + + + + + Kiloyard: The spatial position is vertically resolved to the nearest kiloyard. [desc] A kiloyard is exactly 914.4 metres in length. + + + + + Kilofoot: The spatial position is vertically resolved to the nearest kilofoot. [desc] A kilofoot is exactly 304.8 metres in length. + + + + + Hectofoot: The spatial position is vertically resolved to the nearest hectofoot. [desc] A hectofoot is exactly 30.48 metres in length. + + + + + Quarter Hectofoot: The spatial position is vertically resolved to the nearest 25 feet (quarter hectofeet). [desc] A hectofoot is exactly 7.62 metres in length. + + + + + Decafoot: The spatial position is vertically resolved to the nearest decafoot. [desc] A decafoot is exactly 3.048 metres in length. + + + + + Yard: The spatial position is vertically resolved to the nearest yard. [desc] A yard is exactly 0.9144 metres in length. + + + + + Foot: The spatial position is vertically resolved to the nearest foot. [desc] A foot is exactly 0.3048 metres in length. + + + + + Decifoot: The spatial position is vertically resolved to the nearest decifoot. [desc] A decifoot is exactly 0.03048 metres in length. + + + + + Inch: The spatial position is vertically resolved to the nearest inch. [desc] An inch is exactly 0.0254 metres in length. + + + + + Metre 22-bit: The spatial position is vertically resolved to the nearest 10,000/1,280,000 (0.0078125) metres. + + + + + Flight Level: The spatial position is vertically resolved to the nearest Flight Level (FL). [desc] A Flight Level is a surface of constant atmospheric pressure that is related to a specific world-wide fixed pressure datum (1013.25 hectoPascal) and is separated from other such surfaces by specific pressure intervals. It is conventionally given a numerical value to the nearest 1000 feet in units of 100 feet in accordance with the structure of the International Civil Aviation Organization (ICAO) Standard Atmosphere. For example, the 500-hPa level is written as “FL 180” where the corresponding ICAO standard height is 18,289 feet (600.0328 metres). A Flight Level is nominally equivalent to a hectofoot (which is exactly 30.48 metres in length). + + + + + + + + Vertical Resolution Type: A flexible coded domain value denoting a vertical resolution category. + + + + + Vertical Resolution Enumeration Code List: A remote resource that is specified by a URI and in which the Vertical Resolution Enumeration code list domain is defined. + + + + + Vertical Resolution Enumeration Code List Value: A coded Vertical Resolution Enumeration value that is specified by a URI fragment, that encodes the concept intended (denoted) in the XML instance document, and which is a member of Vertical Resolution Enumeration (remote resource code list) domain. + + + + + + + + + Altitude Measure Type: A datatype representing the distance of a point from a chosen reference surface measured upward either along the direction of gravity or along a line perpendicular to that reference surface with positive values being above the reference surface. [desc] When understood as an "altitude", conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)) along the direction of gravity. When understood as a "height", conventionally measured from an ellipsoid as "Height Above Ellipsoid" (HAE) along a line prependicular to the reference surface. + + + + + + Vertical Datum: A reference surface with respect to which altitudes are specified. [desc] The value of altitude (or sometimes equivalently, height) is determined either along the direction of gravity or along a line perpendicular to the reference surface with positive values being above the reference surface. + + + + + Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying vertical measure, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous. + + + + + + + + + Depth Measure Type: A datatype representing the distance of a point from a chosen reference surface measured downward along the direction of gravity with positive values being below the reference surface. [desc] Conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)); may also be measured from a Todal Datum or River Datum. + + + + + + Vertical Datum: A reference surface with respect to which depths are specified. [desc] The value of depth is determined downward along the direction of gravity with positive values being below the reference surface. + + + + + Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying vertical measure, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous. + + + + + + + + + + Vertical DatumType: A coded domain value denoting a vertical datum. [desc] A reference surface with respect to which altitudes and/or depths are specified. The value of altitude (or sometimes equivalently, height) and depth is determined along the direction of the reference surface normal. + + + + + WGS 84 EGM96 Geoid: The geopotential surface defined by the World Geodetic System (WGS) 1984 EGM96 Earth Gravity Model that is closely associated with the mean ocean surface. + + + + + WGS 84 EGM08 Geoid: The geopotential surface defined by the World Geodetic System (WGS) 1984 EGM08 Earth Gravity Model that is closely associated with the mean ocean surface. + + + + + Mean Sea Level (MSL): A continuous surface over the oceans (or its hypothetical extension under the land masses) defined by the mean of sea level surfaces approximated and observed over 19 years. + + + + + North American Vertical Datum (NAVD) 1988: A fixed reference for elevations derived from a general adjustment of the first-order terrestrial levelling nets of the United States, Canada, and Mexico. [desc] In the adjustment, only the height of the primary tidal bench mark, referenced to the International Great Lakes Datum of 1985 local mean sea level height value, at Pointe-au-Pere, Quebec, on the Gulf of St. Lawrence was held fixed, thus providing minimum constraint. + + + + + National Geodetic Vertical Datum (NGVD) 1929: A fixed reference for elevations derived from a general adjustment in 1929 of the first-order leveling nets of both the United States and Canada. [desc] In the adjustment, mean sea level was held fixed as observed at 21 tide stations in the United States and 5 in Canada. + + + + + Ground Level: A continuous surface over dry land and non-tidal waters (for example: lakes). [desc] In the case of non-tidal waters it is necessary to specify hydrologic conditions in order to ensure a precise reference surface specification. Over extensive areas it is often defined by a digital elevation model (for example: a matrix of elevation values or a Triangulated Irregular Network (TIN)). Over tidal waters (for example: oceans) it is usually considered to be extended to cover the remainder of the world based on a Mean Sea Level (MSL) surface. + + + + + Water Level: A locally observed level of the water surface. [desc] In the case of non-tidal waters (for example: lakes or rivers) it is necessary to specify hydrologic conditions in order to ensure a precise reference surface specification. Over tidal waters (for example: oceans) it is necessary to specify tidal conditions in order to ensure a precise reference surface specification. + + + + + Approximate Lowest Astronomical Tide: An approximate level, usually within 0.3 metres from that of lowest astronomical tide. + + + + + Approximate Mean Low Water: An approximate level, usually within 0.3 metres from that of mean low water. + + + + + Approximate Mean Low Water Springs: An approximate level, usually within 0.3 metres from that of mean low water springs. + + + + + Approximate Mean Lower Low Water: An approximate level, usually within 0.3 metres from that of mean lower low water. + + + + + Approximate Mean Sea Level: An approximate level, usually within 0.3 metres from that of mean sea level. + + + + + Equinoctial Spring Low Water: The level of low water springs near the time of an equinox. + + + + + High Water: The highest level reached at a location by the water surface in one tidal cycle. [desc] When used on inland waters it is generally defined as a level that the daily mean water level exceeds less than 5 percent of the time. + + + + + High Water Springs: An arbitrary level, approximating that of mean high water springs. + + + + + Higher High Water: The highest of the high waters (or single high water) of any specified tidal day due to the declination A1 effects of the moon and sun. + + + + + Higher High Water Large Tide: The average of the highest high waters, one from each of 19 years of observations. + + + + + Highest Astronomical Tide: The highest tidal level, which can be predicted to occur under average meteorological conditions and under any combination of astronomical conditions. + + + + + Highest High Water: The highest water level observed at a location. + + + + + International Great Lakes Datum 1985: A vertical reference system with its zero based on the mean water level at Rimouski/Pointe-au-Père, Quebec, over the period 1970 to 1988. + + + + + Indian Spring High Water: A tidal surface datum approximating the level of the mean of the higher high water at spring tides. [desc] This tidal datum approximates the highest water level observed at a location and is usually above that of the higher high water at spring tides. + + + + + Indian Spring Low Water: A tidal surface datum approximating the level of the mean of the lower low water at spring tides. [desc] This tidal datum approximates the lowest water level observed at a location and is usually below that of the lower low water at spring tides. + + + + + Low Water: An approximation of mean low water adopted as the reference level for a limited region, irrespective of better determinations later. [desc] Used mostly in harbour and river engineering. Used in inland waters. It is generally defined as a level which the daily mean water level would fall below less than 5 percent of the time and by no more than 0.2 metres during the navigation season. A single level surface is usually chosen as the low water datum for a whole lake. On a river, low water datum is a sloping surface, which approximates the surface of the river at a low state. + + + + + Low Water Springs: A level approximating that of mean low water springs. + + + + + Lower Low Water: The lowest of the low waters (or single low water) of any specified tidal day due to the declination A1 effects of the moon and sun. + + + + + Lower Low Water Large Tide: The average of the lowest low waters, one from each of 19 years of observations. + + + + + Lowest Astronomical Tide: The lowest tide level that can be predicted to occur under average meteorological conditions and under any combination of astronomical conditions. + + + + + Lowest Low Water: An arbitrary level conforming to the lowest tide observed at a location, or somewhat lower. + + + + + Lowest Low Water Springs: An arbitrary level conforming to the lowest water level observed at a location at spring tides during a period shorter than 19 years. + + + + + Mean High Water: The average height of all high waters at a location over a 19-year period. + + + + + Mean High Water Neaps: The average height of the high waters of the neap tide. + + + + + Mean High Water Springs: The average height of the high waters of spring tides. + + + + + Mean Higher High Water: The average height of higher high waters at a location over a 19-year period. + + + + + Mean Higher High Water Springs: The average height of higher high water at spring tides at a location. + + + + + Mean Low Water: The average height of all low waters at a location over a 19-year period. + + + + + Mean Low Water Neaps: The average height of the low waters of the neap tide. + + + + + Mean Low Water Springs: The average height of the low waters of spring tides. + + + + + Mean Lower Low Water: The average height of the lower low waters at a location over a 19-year period. + + + + + Mean Lower Low Water Springs: The average height of lower low water at spring tides at a location. + + + + + Mean Tide Level: The arithmetic mean of mean high water and mean low water. + + + + + Mean Water Level: The average of all hourly water levels over the available period of record. + + + + + Neap Tide: A tide of decreased range (or tidal currents of decreased speed) occurring semi-monthly as the result of the moon being in quadrature. [desc] The neap range of the tide is the average range occurring at the time of neap tides and is most conveniently computed from the harmonic constants. It is smaller than the mean range where the type of tide is either semi-diurnal or mixed and is of no practical significance where the type of tide is predominantly diurnal. + + + + + Nearly Highest High Water: An arbitrary level approximating the highest water level observed at a location, usually equivalent to the high water springs. + + + + + Nearly Lowest Low Water: A level approximating the lowest water level observed at a location, usually equivalent to Indian spring low water. + + + + + Spring Tide: A tide of increased range (or tidal water currents of increased speed) occurring semi-monthly as the result of the moon being new or full. [desc] The spring range of tide is the average range occurring at the time of spring tides and is most conveniently computed from the harmonic constants. It is larger than the mean range where the type of tide is either semi-diurnal or mixed, and is of no practical significance where the type of tide is predominantly diurnal. + + + + + WGS 84 Ellipsoid: The oblate ellipsoidal figure of the Earth defined by the World Geodetic System (WGS) 1984. + + + + + + + + Direction Measure Type: A datatype representing the angular distance of a direction from a chosen reference direction. [desc] The measured and reference directions are located in the horizontal plane, and the value of the angle is positive in a clockwise direction as viewed from “above” the horizontal plane. + + + + + + + + + + Direction Datum Type: The type of reference direction as determined by the means by which it is established (e.g., by the direction of a geographic or magnetic pole of the Earth). + + + + + Geodetic: Referenced to the direction of the geographic North Pole. + + + + + Magnetic: Referenced to the direction of the magnetic North Pole. + + + + + Military Grid: Referenced to the direction of "north" in a military grid established by a suitable map-projection, for example Universal Transverse Mercator (UTM). + + + + + Relative; Referenced to a direction established by the context of use (for example: the heading of a vessel). + + + + + + + + Cardinal Direction Type: A datatype representing the angular direction with respect to a chosen reference direction establishing 16 generalized directions (for example: southeast) based on the compass rose. [desc] The angular and reference directions are located in the horizontal plane, and the interpretation of the direction is as viewed from "above" the horizontal plane. + + + + + + + + + + + Compass Direction Type: The 16 generalized directions (for example: southeast) based on the compass rose. + + + + + North: The geographic half-octant centered on the direction of north [desc] The half-octant extends from 348.75 (-11.25) arc degrees to 11.25 arc degrees. + + + + + North-northeast: The geographic half-octant centered on the direction of north-northeast. [desc] The half-octant extends from 11.25 arc degrees to 33.75 arc degrees. + + + + + Northeast: The geographic half-octant centered on the direction of northeast. [desc] The half-octant extends from 33.75 arc degrees to 56.25 arc degrees. + + + + + East-northeast: The geographic half-octant centered on the direction of east-northeast. [desc] The half-octant extends from 56.25 arc degrees to 78.75 arc degrees. + + + + + East: The geographic half-octant centered on direction of east. [desc] The half-octant extends from 78.75 arc degrees to 101.25 arc degrees. + + + + + East-southeast: The geographic half-octant centered on the direction of east-southeast. [desc] The half-octant extends from 101.25 arc degrees to 123.75 arc degrees. + + + + + Southeast: The geographic half-octant centered on the direction of southeast. [desc] The half-octant extends from 123.75 arc degrees to 146.25 arc degrees. + + + + + South-southeast: The geographic half-octant centered on the direction of south-southeast. [desc] The half-octant extends from 146.25 arc degrees to 168.75 arc degrees. + + + + + South: The geographic half-octant centered on the direction of south. [desc] The half-octant extends from 168.75 arc degrees to 191.25 arc degrees. + + + + + South-southwest: The geographic half-octant centered on the direction of south-southwest [desc] The half-octant extends from 191.25 arc degrees to 213.75 arc degrees. + + + + + Southwest: The geographic half-octant centered on the direction of southwest [desc] The half-octant extends from 213.75 arc degrees to 236.25 arc degrees. + + + + + West-southwest: The geographic half-octant centered on the direction of west-southwest [desc] The half-octant extends from 236.25 arc degrees to 258.75 arc degrees. + + + + + West: The geographic half-octant centered on the direction of west. [desc] The half-octant extends from 258.75 arc degrees to 281.25 arc degrees. + + + + + West-northwest: The geographic half-octant centered on the direction of west-northwest. [desc] The half-octant extends from 281.25 arc degrees to 303.75 arc degrees. + + + + + Northwest: The geographic half-octant centered on the direction of northwest. [desc] The half-octant extends from 303.75 arc degrees to 326.25 arc degrees. + + + + + North-northwest: The geographic half-octant centered on the direction of north-northwest. [desc] The half-octant extends from 326.25 arc degrees to 348.75 arc degrees. + + + + + No Information: There is no information specified regarding the attribute value. [desc] Depending on the nature and quality of available information, the state of the data collection/update process, and other conditions, it may not be possible to populate a value due to lack of knowledge. + + + + + + + + + + Acceleration Type: A limited extension of the GML MeasureType that is restricted to the "acceleration" category of mutually comparable physical quantities. + + + + + + + + + + Amount of Substance Type: A limited extension of the GML MeasureType that is restricted to the "amount of substance" category of mutually comparable physical quantities. + + + + + + + + + + Area Type: A limited extension of the GML MeasureType that is restricted to the "area" category of mutually comparable physical quantities. + + + + + + + + + + Capacitance Type: A limited extension of the GML MeasureType that is restricted to the "capacitance" category of mutually comparable physical quantities. + + + + + + + + + + Electric Charge Type: A limited extension of the GML MeasureType that is restricted to the "electric charge" category of mutually comparable physical quantities. + + + + + + + + + + Electric Conductance Type: A limited extension of the GML MeasureType that is restricted to the "electric conductance" category of mutually comparable physical quantities. + + + + + + + + + + Electric Current Type: A limited extension of the GML MeasureType that is restricted to the "electric current" category of mutually comparable physical quantities. + + + + + + + + + + Electric Resistance Type: A limited extension of the GML MeasureType that is restricted to the "electric resistance" category of mutually comparable physical quantities. + + + + + + + + + + Electromotive Force Type: A limited extension of the GML MeasureType that is restricted to the "electromotive force" category of mutually comparable physical quantities. + + + + + + + + + + Energy Type: A limited extension of the GML MeasureType that is restricted to the "energy" category of mutually comparable physical quantities. + + + + + + + + + + Force Type: A limited extension of the GML MeasureType that is restricted to the "force" category of mutually comparable physical quantities. + + + + + + + + + + Frequency Type: A limited extension of the GML MeasureType that is restricted to the "frequency" category of mutually comparable physical quantities. + + + + + + + + + + Geopotential Energy Length Type: A limited extension of the GML MeasureType that is restricted to the "geopotential energy length" category of mutually comparable physical quantities. + + + + + + + + + + Illuminance Type: A limited extension of the GML MeasureType that is restricted to the "illuminance" category of mutually comparable physical quantities. + + + + + + + + + + Inductance Type: A limited extension of the GML MeasureType that is restricted to the "inductance" category of mutually comparable physical quantities. + + + + + + + + + + Irradiance Type: A limited extension of the GML MeasureType that is restricted to the "irradiance" category of mutually comparable physical quantities. + + + + + + + + + + Length Type: A limited extension of the GML MeasureType that is restricted to the "length" category of mutually comparable physical quantities. + + + + + + + + + + Linear Density Type: A limited extension of the GML MeasureType that is restricted to the "linear density" category of mutually comparable physical quantities. + + + + + + + + + + Linear Energy Transfer Type: A limited extension of the GML MeasureType that is restricted to the "linear energy transfer" category of mutually comparable physical quantities. + + + + + + + + + + Luminous Flux Type: A limited extension of the GML MeasureType that is restricted to the "luminous flux" category of mutually comparable physical quantities. + + + + + + + + + + Luminous Intensity Type: A limited extension of the GML MeasureType that is restricted to the "luminous intensity" category of mutually comparable physical quantities. + + + + + + + + + + Magnetic Flux Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux" category of mutually comparable physical quantities. + + + + + + + + + + Magnetic Flux Density Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux density" category of mutually comparable physical quantities. + + + + + + + + + + Magnetic Flux Density Gradient Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux density gradient" category of mutually comparable physical quantities. + + + + + + + + + + Mass Type: A limited extension of the GML MeasureType that is restricted to the "mass" category of mutually comparable physical quantities. + + + + + + + + + + Mass Density Type: A limited extension of the GML MeasureType that is restricted to the "mass density" category of mutually comparable physical quantities. + + + + + + + + + + Mass Fraction Type: A limited extension of the GML MeasureType that is restricted to the "mass fraction" category of mutually comparable physical quantities. + + + + + + + + + + Mass Rate Type: A limited extension of the GML MeasureType that is restricted to the "mass rate" category of mutually comparable physical quantities. + + + + + + + + + + Noncomparable Unit Type: A limited extension of the GML MeasureType that is restricted to the "noncomparable" category of physical quantities. + + + + + + + + + + Plane Angle Type: A limited extension of the GML MeasureType that is restricted to the "plane angle" category of mutually comparable physical quantities. + + + + + + + + + + Power Type: A limited extension of the GML MeasureType that is restricted to the "power" category of mutually comparable physical quantities. + + + + + + + + + + Power Level Difference Type: A limited extension of the GML MeasureType that is restricted to the "power level difference" category of mutually comparable physical quantities. + + + + + + + + + + Power Level Difference Length Gradient Type: A limited extension of the GML MeasureType that is restricted to the "power level difference length" category of mutually comparable physical quantities. + + + + + + + + + + Pressure Type: A limited extension of the GML MeasureType that is restricted to the "pressure" category of mutually comparable physical quantities. + + + + + + + + + + Pure Number Type: A limited extension of the GML MeasureType that is restricted to the "pure number" category of mutually comparable physical quantities. + + + + + + + + + + Radiation Absorbed Dose Type: A limited extension of the GML MeasureType that is restricted to the "radiation absorbed dose" category of mutually comparable physical quantities. + + + + + + + + + + Radiation Dose Equivalent Type: A limited extension of the GML MeasureType that is restricted to the "radiation dose equivalent" category of mutually comparable physical quantities. + + + + + + + + + + Radionuclide Activity Type: A limited extension of the GML MeasureType that is restricted to the "radionuclide activity" category of mutually comparable physical quantities. + + + + + + + + + + Rate Type: A limited extension of the GML MeasureType that is restricted to the "rate" category of mutually comparable physical quantities. + + + + + + + + + + Reciprocal Area Type: A limited extension of the GML MeasureType that is restricted to the "reciprocal area" category of mutually comparable physical quantities. + + + + + + + + + + Reciprocal Time Type: A limited extension of the GML MeasureType that is restricted to the "reciprocal time" category of mutually comparable physical quantities. + + + + + + + + + + Solid Angle Type: A limited extension of the GML MeasureType that is restricted to the "solid angle" category of mutually comparable physical quantities. + + + + + + + + + + Sound Speed Ratio Type: A limited extension of the GML MeasureType that is restricted to the "sound speed ratio" category of mutually comparable physical quantities. + + + + + + + + + + + Speed Type: A limited extension of the GML MeasureType that is restricted to the "speed" category of mutually comparable physical quantities. + + + + + + + + + + Surface Mass Density Rate Type: A limited extension of the GML MeasureType that is restricted to the "surface mass density" category of mutually comparable physical quantities. + + + + + + + + + + Thermodynamic Temperature Type: A limited extension of the GML MeasureType that is restricted to the "thermodynamic temperature" category of mutually comparable physical quantities. + + + + + + + + + + Time Type: A limited extension of the GML MeasureType that is restricted to the "time" category of mutually comparable physical quantities. + + + + + + + + + + Volume Type: A limited extension of the GML MeasureType that is restricted to the "volume" category of mutually comparable physical quantities. + + + + + + + + + + Volume Flow Rate Type: A limited extension of the GML MeasureType that is restricted to the "volume flow rate" category of mutually comparable physical quantities. + + + + + + + + + + Volume Fraction Type: A limited extension of the GML MeasureType that is restricted to the "volume fraction" category of mutually comparable physical quantities. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi-ext.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi-ext.xsd new file mode 100644 index 0000000000..cc7d4541c9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi-ext.xsd @@ -0,0 +1,134 @@ + + + + + + + + + + + + TSPI-conformant registered extensions that specify additional representations for spatial position, geographic location, and/or physical address. It is populated with initial high-value extensions, but is dynamically maintained on the MDR. Its use is conditional on the requirements of a given system/application and its accompanying business requirements. + + + + + + + + Point: A point as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but limited to the WGS84E_3D coordinate reference system and then extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + + + + + + Point Type: A restricted point type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but limited to the WGS84E_3D coordinate reference system and then extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + .... + + + + + + + A property of the location instance. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi.xsd new file mode 100644 index 0000000000..f15a1e1d93 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/CVE/Schema/tspi/2.0.0/tspi.xsd @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + XML elements and non-core types with less strict reuse rules than ‘tspi-core’; it imports the schemas of the ‘tspi-core’and ‘tspi-ext’ namespaces. + + + + + + A place ("an identifiable part of any space") that is identified using geographic identifiers (e.g., a name). A spatial reference system using geographic identifiers is established that relates locations to positions. Gazetteers are then used to establish directories of (geographically) identified locations along with their corresponding positions. + + + + + A place ("an identifiable part of any space") that is identified using (physical) addresses (e.g., postal address). A systematic mapping may be established based on the structure of the addressing scheme that allows for geocoding, the process of converting addresses (e.g., "1600 Amphitheatre Parkway, Mountain View, CA") into positions (e.g., {37.423021, -122.083739}, a geodetic latitude/longitude coordinate-pair). "Virtual" addresses (e.g., in cyberspace), or virtual world identifiers, might be specified using Uniform Resource Identifiers (URI), however they are outside of the scope of this TSPI schema. + + + + + + + + + Point: A point as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + Line String: A line string as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A line string is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate tuples, with linear interpolation between them. + + + + + + + Circle: A circle as profiled from GML 3.3 (OGC 10-129r1) SimpleCircleByCenterPoint for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the center point coordinate tuple as well as optional specification of one or more character-oriented presentations of the center point coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle is an arc by center point with identical start and end angles to form a full circle. This representation can be used only in 2D. + + + + + + + Elliptical Surface: A surface that is bounded by an ellipse, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of an ellipse and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D. + + + + + + + Polygon: A polygon as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + Simple Polygon: A simple polygon as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A simple polygon is a specialized polygon that has a simplified encoding of the logically equivalent GML 3.2 Surface with a single GML 3.2 PolygonPatch as its surface patch consisting of a single LinearRing as its exterior boundary and does not have any interior boundary. Thus the usage of the term 'simple' here refers to a specialized polygon with a _simplified_ encoding, which is _simply_ connected (no interior rings) and uses a _simple_ closed curve (no self-crossings) to represent its single boundary ring. The last coordinate does _not_ have to repeat the first coordinate in this simplified encoding, so only three control points are required to specify a simple polygon. + + + + + + + Simple Rectangle: A simple rectangle as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A simple rectangle is the special case of a simple polygon, which has exactly 4 control points in its boundary encoding representing the 4 corners of the rectangle. + + + + + + + Envelope: An envelope as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a GML Envelope and extended to include both assessments of the accuracy and/or resolution of the pair of coordinate tuples as well as optional specification of one or more character-oriented presentations of the pair of coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope). + + + + + + + Circular Surface: A surface that is bounded by a circle, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a circle and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle is an arc that is specified by a center point, a radius, and which has identical start and end angles. This representation can be used only in 2D. + + + + + + + Elliptical Surface: A surface that is bounded by an ellipse, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of an ellipse and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D. + + + + + + + + + A physical address that: (1) includes a Complete Address Number and a Complete Street Name; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) contains a Complete Street Name _without_ a Complete Address Number preceding it; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) contains two or more Complete Street Names, each separated by a Separator Element; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) contains two Complete Address Numbers separated by a hyphen, where the first Complete Address Number must be less than or equal to the second and the pair are followed by a Complete Street Name; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + + A physical address that: (1) includes a Complete Landmark Name _without_ a Complete Address Number preceding it and _without_ a Complete Street Name following it; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) includes a USPS Box in the required format _without_ a USPS Route; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) includes a USPS Address in the specified rural route (RR) or highway contract (HC) or overseas military delivery format; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) includes a USPS General Delivery Point in the specified format; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) includes a Delivery Address that is unparsed; (2) includes a Place Name and a State Name; and (3) a Zip Code is recommended but not mandatory. This class may include addresses that do not conform to any of the thoroughfare, landmark, or postal class formats, including non-U.S. addresses that do not fit into one those class formats. + + + + + + + + + + Acceleration: A physical measure that is restricted to the "acceleration" category of mutually comparable physical quantities. + + + + + + Amount of Substance: A physical measure that is restricted to the "amount of substance" category of mutually comparable physical quantities. + + + + + + Area: A physical measure that is restricted to the "area" category of mutually comparable physical quantities. + + + + + + Capacitance: A physical measure that is restricted to the "capacitance" category of mutually comparable physical quantities. + + + + + + Electric Charge: A physical measure that is restricted to the "electric charge" category of mutually comparable physical quantities. + + + + + + Electric Conductance: A physical measure that is restricted to the "electric conductance" category of mutually comparable physical quantities. + + + + + + Electric Current: A physical measure that is restricted to the "electric current" category of mutually comparable physical quantities. + + + + + + Electric Resistance: A physical measure that is restricted to the "electric resistance" category of mutually comparable physical quantities. + + + + + + Electromotive Force: A physical measure that is restricted to the "electromotive force" category of mutually comparable physical quantities. + + + + + + Energy: A physical measure that is restricted to the "energy" category of mutually comparable physical quantities. + + + + + + Force: A physical measure that is restricted to the "force" category of mutually comparable physical quantities. + + + + + + Frequency: A physical measure that is restricted to the "frequency" category of mutually comparable physical quantities. + + + + + + Geopotential Energy Length: A physical measure that is restricted to the "geopotential energy length" category of mutually comparable physical quantities. + + + + + + Illuminance: A physical measure that is restricted to the "illuminance" category of mutually comparable physical quantities. + + + + + + Inductance: A physical measure that is restricted to the "inductance" category of mutually comparable physical quantities. + + + + + + Irradiance: A physical measure that is restricted to the "irradiance" category of mutually comparable physical quantities. + + + + + + Length: A physical measure that is restricted to the "length" category of mutually comparable physical quantities. + + + + + + Linear Density: A physical measure that is restricted to the "linear density" category of mutually comparable physical quantities. + + + + + + Linear Energy Transfer: A physical measure that is restricted to the "linear energy transfer" category of mutually comparable physical quantities. + + + + + + Luminous Flux: A physical measure that is restricted to the "luminous flux" category of mutually comparable physical quantities. + + + + + + Luminous Intensity: A physical measure that is restricted to the "luminous intensity" category of mutually comparable physical quantities. + + + + + + Magnetic Flux: A physical measure that is restricted to the "magnetic flux" category of mutually comparable physical quantities. + + + + + + Magnetic Flux Density: A physical measure that is restricted to the "magnetic flux density" category of mutually comparable physical quantities. + + + + + + Magnetic Flux Density Gradient: A physical measure that is restricted to the "magnetic flux density gradient" category of mutually comparable physical quantities. + + + + + + Mass: A physical measure that is restricted to the "mass" category of mutually comparable physical quantities. + + + + + + Mass Density: A physical measure that is restricted to the "mass density" category of mutually comparable physical quantities. + + + + + + Mass Fraction: A physical measure that is restricted to the "mass fraction" category of mutually comparable physical quantities. + + + + + + Mass Rate: A physical measure that is restricted to the "mass rate" category of mutually comparable physical quantities. + + + + + + Noncomparable Unit: A physical measure that is restricted to the "noncomparable" category of physical quantities. + + + + + + Plane Angle: A physical measure that is restricted to the "plane angle" category of mutually comparable physical quantities. + + + + + + Power: A physical measure that is restricted to the "power" category of mutually comparable physical quantities. + + + + + + Power Level Difference: A physical measure that is restricted to the "power level difference" category of mutually comparable physical quantities. + + + + + + Power Level Difference Length Gradient: A physical measure that is restricted to the "power level difference length" category of mutually comparable physical quantities. + + + + + + Pressure: A physical measure that is restricted to the "pressure" category of mutually comparable physical quantities. + + + + + + Pure Number: A physical measure that is restricted to the "pure number" category of mutually comparable physical quantities. + + + + + + Radiation Absorbed Dose: A physical measure that is restricted to the "radiation absorbed dose" category of mutually comparable physical quantities. + + + + + + Radiation Dose Equivalent: A physical measure that is restricted to the "radiation dose equivalent" category of mutually comparable physical quantities. + + + + + + Radionuclide Activity: A physical measure that is restricted to the "radionuclide activity" category of mutually comparable physical quantities. + + + + + + Rate: A physical measure that is restricted to the "rate" category of mutually comparable physical quantities. + + + + + + Reciprocal Area: A physical measure that is restricted to the "reciprocal area" category of mutually comparable physical quantities. + + + + + + Reciprocal Time: A physical measure that is restricted to the "reciprocal time" category of mutually comparable physical quantities. + + + + + + Solid Angle: A physical measure that is restricted to the "solid angle" category of mutually comparable physical quantities. + + + + + + Sound Speed Ratio: A physical measure that is restricted to the "sound speed ratio" category of mutually comparable physical quantities. + + + + + + Speed: A physical measure that is restricted to the "speed" category of mutually comparable physical quantities. + + + + + + Surface Mass Density Rate: A physical measure that is restricted to the "surface mass density" category of mutually comparable physical quantities. + + + + + + Thermodynamic Temperature: A physical measure that is restricted to the "thermodynamic temperature" category of mutually comparable physical quantities. + + + + + + Time: A physical measure that is restricted to the "time" category of mutually comparable physical quantities. + + + + + + Volume: A physical measure that is restricted to the "volume" category of mutually comparable physical quantities. + + + + + + Volume Flow Rate: A physical measure that is restricted to the "volume flow rate" category of mutually comparable physical quantities. + + + + + + Volume Fraction: A physical measure that is restricted to the "volume fraction" category of mutually comparable physical quantities. + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/CVEXml.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/CVEXml.xsd new file mode 100644 index 0000000000..3fe144a3ba --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/CVEXml.xsd @@ -0,0 +1,149 @@ + + + + This schema describes a structure for simple XML files (CVE files) + which list the valid values for elements and attributes defined in an + IC Data Encoding Specification. The primary purpose of the CVE files is to + document the valid values in a structured manner. + + + + + + + + + + + + + + + An attribute used to declare the namespace/codespace of the term value. + + + + + + The root node of a CVEXXX.xml document. This node + carries the overall classification of the entire enumeration + and resource metadata through ISM attributes. + + + + + + + + + + The version number of the CVE. + + + + + + + + + + + Information resource metadata for this CVE. + + + + + + + + + + + + + + + + + + + + + + + + A container for all of the values represented by this CVE. + + + + + + + + + Boolean defining if the validation should allow only 1 occurrence or multiple occurrences of values + from this CVE in an instance document true allows multiples. + + + + + + + + + + + + + + A single entry in the CVE. Contains the actual + value being specified by the DES and a description to facilitate human + understanding of the value. Note, the description is purely informative. + + + + + + + If a CVE is being created at a classification level + at which a particular "Value" is allowed, but the usual description of + that "Value" is at a higher classification level, the description should + be rewritten to the desired level. + + + + + + + A date indicating when this term is no longer allowed. Presence of + this date indicated the value is currently deprecated and processing systems should produce a warning + or error for any occurrences of this term's value or take other action as appropriate. + + + + + + + + + A valid value specified in the CVE. + + + + + + + A boolean indicator that this term is defined via a Regular Express. + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-GeospatialCoverage.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-GeospatialCoverage.xsd new file mode 100644 index 0000000000..c5a13a3b3b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-GeospatialCoverage.xsd @@ -0,0 +1,179 @@ + + + + + This XML Schema implements elements and attribute groups of the Department of Defense Discovery Metadata Specification (DDMS Spec), with a version number the same as that in the above 'version' attribute of the 'xs:schema' element. Unless otherwise stated, all references to the DDMS Spec refer to that version of the document. + + + Change Log: + + 6/05/2007 (J. Pantella) -- Created pursuant to approved CR 2007-1. See also http://metadata.dod.mil/irs/DDMS/cm/CR/2007/DDMS-CR-2007-1. + 1/3/2007 (J. Pantella) -- Modified version attribute to reflect that this is version 1.4.2. + 6/30/2008 (D. Barclay) -- Made attribute osuffix optional (for CR 2008-5). + 7/1/2008 (D. Barclay) -- Corrected "minVerticalExent" to "minVerticalExtent" + 7/15/2008 (J. Pantella) -- Modified namespace to reflect DDMS 2.0. + 1/4/2010 (P. Lunceford) -- Created DDMS 3.0. Implemented CR 2009-12 to add Security markings to GeospatialCoverageType and CR 2009-14 to make the value and qualifier of CompoundCountryCodeIdentifierType to be required. + 6/05/2011 (E. Hughes) -- Created DDMS 3.1. Implemented CR 2011-1 to create DDMS-Includes.xsd wherein all IC-ISM references are consolidated. + 12/12/2012 (E. Carswell) -- Created DDMS 5.0. Implemented CR 2012-07 to replace the existing use of GML with TSPI version 2. + + + + + + + + A geographic indication of one or more places or facilities that relate to the resource. See DDMS Spec Category: Geospatial Coverage. + + + + + + + + + + + + Priority claimed or received as a result of preeminence. When used on the element CountryCode, this attribute is used to distinguish the primary focus when an intelligence product covers two or more countries. Permissible values are Primary, Secondary. + + + + + Specifies a user-defined order of an element within the given document. All elements in the document which specify the order attribute should be interpreted as entries in a single, ordered list even though they may appear on different elements.Values must be sequential, starting at 1, and may not contain duplicates. + + + + + + + + Models a GML compliant geographic identifier. See ISO 19115 EX_GeographicDescription. + + + + + + + + + + A standards-based abbreviation of an administrative subdivision of a country. The code elements may consist of a controlled vocabulary value such as the ones defined in ISO 3166-2. + + + + + + + + + + + The codespace attribute holds the codespace identifying the standard being used. The code attribute holds the two-alpha, three-alpha, or numeric code identifying the country. + + + + + + + + + + + (GMI:BE_NUMBER, 1.0) Uniquely identifies the installation of the facility. The BE_NUMBER is generated based on the value input for the COORD to determine the appropriate World Area Code (WAC), the system assigned record originator and a one-up-number. Pos. 1-4, World Area Code (WAC). Pos. 5, A hyphen, '-', or an 'E', in the fifth position indicates that position-6 will contain values 0-9. Alternately, the fifth position may contain the first of a two-character system assigned record originator code, position-6 will then contain the second character of the system assigned record originator code. Pos. 6, May contain the second character of the system assigned record originator code, the one-up-number series will then begin in position seven, and range from 0001-9909. If the one-up-number series begins in postion 6, this position will contain the first of a five-position one-up-number, i.e., 00001-99999.Pos. 7-10, A one-up-number series. Depending on the content of position 5, the series may have begun in position 6 and have a range of 00001-99999. Or, have begun in position 7 and have a range from 0001-9999. + + + + + + (GMI:OSUFFIX, 1.0) Uniquely identifies a facility or demographic area in conjunction with a BE_NUMBER. Pos. 1-2. SYSTEM ASSIGNED RECORD_ORIGINATOR. The organization creating the facility or demographic area. DIA installation records created prior to IDB generation of OSUFFIX contain DD.Pos. 3-5 A one-up number. + + + + + + + + Models a TSPI compliant bounding geometry. See TSPI 2.0 Polygon. +Developer's Note: It is recommended that the srsName attribute be populated on a gml:Point or gml:Polygon element within the DDMS. Recommended values for the attribute are: + + 1) "http://metadata.dod.mil/mdr/ns/GSIP/crs/WGS84C_3D" -- representing World Geodetic System 1984 - Earth Centered, Earth Fixed (ECEF), where the X axis is mass center - equator/prime meridian, and the units are meters; the Y axis is mass center - equator/90° E, and the units are meters; and the Z axis is mass center - North Pole, and the units are meters. + OR + 2) "http://metadata.dod.mil/mdr/ns/GSIP/crs/WGS84E_2D" -- representing World Geodetic System 1984 - Geographic, 2-Dimensional, where latitude is north positive, measured in degrees; and latitude is east positive, measured in degrees. + OR + 3) "http://metadata.dod.mil/mdr/ns/GSIP/crs/WGS84E_3D" -- representing World Geodetic System 1984 - Geographic, 3-Dimensional, where latitude is north positive, measured in degrees; and latitude is east positive, measured in degrees; and height is height above ellipsoid, measured in meters. + See also: http://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350_2.html. + + For gml:pos elements populating the gml:Polygon/gml:exterior/gml:LinearRing/gml:pos element the following guidance should be followed: + 1. Latitude shall be in decimal degrees in the range -90° less than or equal to latitude greater than or equal to +90°. + 2. North latitudes shall be positive, south latitudes shall be negative. + 3. Longitude shall be in decimal degrees in the range -180° less than or equal to longitude greater than or equal to +180°; note that there are two equally acceptable values of longitude for the meridian opposite the prime meridian. + 4. East longitudes shall be positive, west longitudes shall be negative. + 5. Only the element gml:pos shall be used to encode a geographic point location as either: + a. two decimal values in the order of latitude then longitude (no commas) when WGS84E_2D, or + b. three decimal values in the order latitude, longitude and finally height above ellipsoid (no commas) when using the WGS84E_3D CRS. + +Developer's Note: The srsName attribute is required on the Polygon element. The Polygon/@srsName is the identifier for the CRS which is controlling for the child gml:pos elements. It is important to note that the srsName attribute may also appear on the gml:pos elements, however given the current allowable CRSs above there is no need to repeat the information on the gml:pos elements thus the srsName attribute is optional and not required. If the srsName does appear on the gml:pos elements then it must be the same as the value of the srsName attribute on the Polygon element. + + + + + + Type that defines a GML compliant bounding geometry. See ISO 19115 EX_BoundingPolygon. +Developer's Note: It is required that the srsName attribute be populated on a gml:Point or gml:Polygon element within the DDMS. Recommended values for the attribute are: + + + 1) "http://metadata.ces.mil/dse/ns/GSIP/crs/WGS84C_3D" -- representing World Geodetic System 1984 - Earth Centered, Earth Fixed (ECEF), where the X axis is mass center - equator/prime meridian, and the units are meters; the Y axis is mass center - equator/90° E, and the units are meters; and the Z axis is mass center - North Pole, and the units are meters. + OR + 2) "http://metadata.ces.mil/mdr/ns/GSIP/crs/WGS84E_2D" -- representing World Geodetic System 1984 - Geographic, 2-Dimensional, where latitude is north positive, measured in degrees; and latitude is east positive, measured in degrees. + OR + 3) "http://metadata.ces.mil/dse/ns/GSIP/crs/WGS84E_3D" -- representing World Geodetic System 1984 - Geographic, 3-Dimensional, where latitude is north positive, measured in degrees; and latitude is east positive, measured in degrees; and height is height above ellipsoid, measured in meters. + See also: http://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350_2.html. + + For gml:pos elements populating the gml:Polygon/gml:exterior/gml:LinearRing/gml:pos element the following guidance should be followed: + 1. Latitude shall be in decimal degrees in the range -90° less than or equal to latitude greater than or equal to +90°. + 2. North latitudes shall be positive, south latitudes shall be negative. + 3. Longitude shall be in decimal degrees in the range -180° less than or equal to longitude greater than or equal to +180°; note that there are two equally acceptable values of longitude for the meridian opposite the prime meridian. + 4. East longitudes shall be positive, west longitudes shall be negative. + 5. Only the element gml:pos shall be used to encode a geographic point location as either: + a. two decimal values in the order of latitude then longitude (no commas) when WGS84E_2D, or + b. three decimal values in the order latitude, longitude and finally height above ellipsoid (no commas) when using the WGS84E_3D CRS. + + 6. The outside edge of a linearRing is defined by four or more coordinate tuples, in counter- clockwise order, with linear interpolation between them; the first and last coordinates must be identical. + +Developer's Note: The srsName attribute is required on the Polygon element. The Polygon/@srsName is the identifier for the CRS which is controlling for the child gml:pos elements. It is important to note that the srsName attribute may also appear on the gml:pos elements, however given the current allowable CRSs above there is no need to repeat the information on the gml:pos elements thus the srsName attribute is optional and not required. If the srsName does appear on the gml:pos elements then it must be the same as the value of the srsName attribute on the Polygon element. + + + + + + + + + + + + + + Models a standalone postal address. + + + + + + + + + Group of entities used in the ddms:postalAddress element. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-Globals.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-Globals.xsd new file mode 100644 index 0000000000..b0cf3e1bb9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-Globals.xsd @@ -0,0 +1,1017 @@ + + + + + This XML Schema implements elements and attribute groups of the Department of Defense Discovery Metadata Specification (DDMS Spec), with a version number the same as that in the above 'version' attribute of the 'xs:schema' element. Unless otherwise stated, all references to the DDMS Spec refer to that version of the document. + + + Change Log: + 6/05/2007 (J. Pantella) -- Created pursuant to approved CR 2007-1. See also http://metadata.dod.mil/irs/DDMS/cm/CR/2007/DDMS_CR_2007-1. + 1/3/2007 (J. Pantella) -- Modified version attribute to reflect that this is version 1.4.2. + 7/1/2008 (D. Barclay) -- Made elements "extent" and "medium" optional in type MediaType (per DDMS-CR-2008-6). + 7/15/2008 (J. Pantella) -- Modified security attributes on creator, publisher, and contributor to be optional, added optional security attributes to pointOfContact for consistency across the elements. + 7/15/2008 (J. Pantella) -- Modified version to reflect that this is version 2.0. + 1/5/2010 (P. Lunceford) -- Created DDMS 3.0. Implemented CRs 2009-04 (replaced creatorType/publisherType/contributorType/pointOfContactType with contactInfoType), 2009-07 (set minOccurs on RelatedResourceType to 1), 2009-09 (added Unknown entity to accompany Person, Organization, and Service for a choice for Creator, Publisher, Contributor, and PointOfContact), 2009-10 (added extensions to CompoundKeywordIdentifierType and CompoundCategoryIdentifierType), and 2009-12 (added Security Markings to SubjectCoverageType, CompoundSouceIdentifierType, TemporalCoverageType, and VirtualCoverageType). + 6/05/2011 (E. Hughes) -- Created DDMS 3.1. Implemented CR 2011-1 to create DDMS-Includes.xsd wherein all IC-ISM references are consolidated. + 6/05/2011 (E. Hughes) -- Added approvedOn attribute pursuant to CR 2011-5. + 11/11/2011 (E. Hughes) -- Implemented CR 2011-17 to use IC-ISM POCType. + 05/25/2012 (E. Hughes and P. Attas) - Implemented CR_2011-18, CR_2012-01, CR_2012-02, and CR2012-03. + + + + + + + + + Information about the metadata card. + + + + + An unambiguous reference to a resource within a given context. {An attribute stores the source of the tag's value} +{sources: DCMI: identifier, v. 004; IC MSP v. 1.0a: IdentifierList} An identifier may be an internal, external, and/or universal identification label for representing a resource by means of a string or number conforming to a formal identification system. An example of an identifier would be an International Standard Serial Number (ISSN), or a Uniform Resource Locator (URL). Any type of identifier can be accommodated, so long as the identifier qualifier is specified with the identifier value. See also, DDMS Spec Category: Identifier. + + + + + + A name, or names, given to the resource {from DCMI: title, v. 004}. The title category must contain at least one title, and may contain subtitles, or supplementary, explanatory titles for use on cover pages and for cataloging and searching. See also, DDMS Spec Category: Title. + + + + + + A subtitle may be any form of the title used as a substitute, or it may be an alternative to the formal title of the resource. See also, DDMS Spec Category: Title. + + + + + + Information about the entity responsible for generating the resource {Source: DCMI: creator, v. 004; IC MSP v. 1.0a: AuthorInfo, POCInfo} When a creator is a service or an organization, and not an individual, it is expected that the contact authority (person or organization) for the resource will be listed. The relations provided in this schema are Organization, Person, Service, Unknown. See also, DDMS Spec Category: Creator. + + + + + + This category is used to tag the identification of the entity responsible for releasing the data asset--the entity primarily responsible for the intellectual content of the product. It is intended that this category apply whenever applicable to an organization, as opposed to a person. Typically, the name of a Publisher should be used to indicate the organization, agency, or domain responsible for the resource. See also, DDMS Spec Category: Publisher. + + + + + + Information about an organization, person, or entity, that contributed intellectual content to a resource, other than the publishing organization {DCMI: contributor, v. 004; IC MSP v. 1.0a: Contributor} When a creator is a service or an organization, and not an individual, it is expected that the contact authority (person or organization) for the resource will be listed. The relations provided in this schema are Organization, Person, Service, Unknown. See also, DDMS Spec Category: Contributor. + + + + + + The point of contact, usually a Person, is the entity primarily responsible for accepting inquiries regarding the resource. + + + + + + Type used to model the ddms:creator, ddms:publisher, ddms:contributor, and ddms:pointOfContact elements. + + + + + + + + + + + + + References to assets or resources from which the tagged data asset is derived. {Source: DCMI: type, v. 004} +Sources may be derived partially or wholly, and it is recommended that an identifier (such as a string or number from a formal identification system) be used as a reference. See also, DDMS Spec Category: Source. + + + + + + The primary language of the intellectual content of the resource. {Source: DCMI: language, v. 004IC MSP v. 1.0a: Language} The most specific in-scope language present (if any) should be specified in this category. See DDMS Spec Category: Language. + + + + + + + An account of the content of the resource. {Source: DCMI: description, v. 004IC MSP v. 1.0a: Description} Description may include but is not limited to: an abstract, reference to a graphical representation of content or a free-text account of the content. See DDMS Spec Category: Description. + + + + + + + The date related properties of this resource. See DDMS Spec Category: Date. + + + + + + + Information about rights held in and over the resource. Typically, a rights element will contain a rights management statement for the resource, or reference a service providing such information. Rights information often encompasses Intellectual Property Rights (IPR), Copyright, and various Property Rights. If the rights element is absent, no assumptions can be made about the status of these and other rights with respect to the resource. See DDMS Spec Category: Rights. + + + + + + + The nature or genre of the content of the resource. See, DCMI Type Vocabulary [DCMITYPE], which includes, Collection, Dataset, Event Image, InteractiveResource, Service, Software, Sound, Text, PhysicalObject, StillImage, MovingImage. See DDMS Spec Category: Type. + + + + + + + The physical or digital manifestation of the resource. Used to define the medium, extent or duration, and MIME type of the resource. See DDMS Spec Category: Format. + + + + + + + The physical medium or instantiation of the resource. See also DDMS Spec Category: Format. + + + + + + + The Internet Media Type [MIME] of the Resource. See DDMS Spec Category: Format. + + + + + + + A related data size, compression rate, or pixel size (etc.) of the resource. See also, DDMS Spec Category: Format. + + + + + + + Container for the categorical subject and natural language subject classifications. It is assumed that all content under subjectCoverage is related to the same subject. See also SubjectType. NOTE: At least one of either Keyword or Category must appear, after one instance of either appears, additional categories must appear before additional keywords. See DDMS Spec Category: Subject. + + + + + + + Specification of the subject matter by a qualified entry from a controlled vocabulary. See DDMS Spec Category: Subject. + + + + + + + A natural language indication of the resource's subject matter. See DDMS Spec Category: Subject. + + + + + + A categorization scheme whose values and use are defined by DDNI-A. + + + + + Non-state actors that are within the scope of coverage for the described item. + + + + + + The subject-matter coverage in terms of one or more periods of time. That is, an indication of the time period for which the subject of the resource applies. (E.g. The 50's, or a span of time indicated by a start and end time.) See DDMS Spec Category: Temporal Coverage. + + + + + + + + A named organization responsible as indicated by its encompasing element, i.e. as a creator, contributor, or publisher. See also, DDMS Spec Categories: Contributor, Creator, Publisher. + + + + + + + A person responsible as indicated by its encompasing element, i.e. as a creator, contributor, or publisher. See also, DDMS Spec Categories: Contributor, Creator, Publisher. + + + + + + + A named service responsible as indicated by its encompasing element, i.e. as a creator, contributor, or publisher. See also, DDMS Spec Categories: Contributor, Creator, Publisher. + + + + + + + Identification that the type of entity of the encompassing element i.e. as a creator, contributor, or publisher, is unknown. See also, DDMS Spec Categories: Contributor, Creator, Publisher. + + + + + + + Each relatedResources element represents a single type of relationship between the resource described in the enclosing ddms:Resource and other identified resources. + + + + + + + Information about when and/or how a product was transformed post-publication, including adding metadata to a published product. + + + + + A container for information about the format of the publication file and the authoring software used to produce the publication. + + + + + The memorandum titled Intelligence Community Standards and Procedures for Revised or Recalled Intelligence Products signed by DNI Negroponte on 5 August 2005 specified how to indicate, in a textual form, the revision or recall of a previously released document. This element specifies methods for conveying revision and recall indicators and additional data in XML. + + + + + + The identification of an organization or agency with which an individual, service, or unknown producer has an affiliation. + + + + + + + + + + + + + + + + + + + + + + + + + + Used to represent a Resource Identifier. + + + + + + + + + Common type for the title element. + + + + + + + + + + + + Common type for the subtitle element. + + + + + + + + + + + + Type used to model the rights element. + + + + + + (TBD:PrivacyActIndicator, 1.0) An indicator that this product is categorized as containing personal information subject to protection by the Privacy Act. This element has no data content. Attribute "indicator", a yes/no toggle, is used to specify applicability of the Privacy Act. The default is "no". {False = No} + + + + + + + An indicator identifying products under protection against reproduction and distribution without the express written permission of the intellectual property rights owner. A yes/no value used to specify applicability of the rights. The default is "no". {False = No} + + + + + + + An indicator identifying products under protection against reproduction and distribution without the express written permission of the copyright owner. A yes/no value used to specify applicability of the rights. The default is "no". {False = No} (TBD:CopyrightIndicator, 1.0) An indicator identifying documents under protection against reproduction and distribution without the express written permission of the copyright owner This prohibition is binding on individuals and corporations, as well as the US Government. Examples of applicability: books (yes), newspaper photos (yes), US Federal Publications (no), magazine articles (yes), vendor technical information (yes). + + + + + + + + The foundation of the ProducerType complexType. + + + + + + + + The type used to model the ddms:producer element. + + + + + + + + + + A telephone number. Optional. This value must include country code and area code, when applicable. + + + + + + + An address for electronic mail. + + + + + + + + + + + + The type used to model the ddms:Person element. + + + + + + + + A name shared in common to identify members of a family; also called "last name". + + + + + + + A telephone number. Optional. This value must include country code and area code, when applicable. + + + + + + + An address for electronic mail. + + + + + + + Unique identifier applied by an agency to an author, coauthor, POC, tasking requester or addressee. + + + + + + + + + + The type used to model the ddms:Organization element. + + + + + + + + A telephone number. Optional. This value must include country code and area code, when applicable. + + + + + + + An address for electronic mail. + + + + + + + + + + + + + + + + + + + The type used to model the ddms:Service element. + + + + + + + + + + The type used to model the ddms:Unknown element. + + + + + + + + + + Type used for the dates element. + + + + + + + Date of acquisition of the information + + + + + + + + Date of creation of the resource + + + + + + + The date a product is posted to a shared network or system. + + + + + + + The date that a product should be removed from a registry, index, or catalog. + + + + + + + The cutoff date of information in a product. This is commonly referred to as Information Cutoff Date (ICOD). It is the date of last input. + + + + + + + The date on which the resource was approved for publishing or posting. + + + + + + + The date on which the resource was received for publishing or posting. + + + + + + + + The type used to support the range of date representations. + Recommended practice is that date be specified in one of the following formats: + YYYY + YYYY-MM + YYYY-MM-DD + YYYY-MM-DDThh:mmTZD + YYYY-MM-DDThh:mm.ssTZD + YYYY-MM-DDThh:mm:ss.sTZD + Where:YYYY 0000 through current year + MM 01 through 12 (month) + DD 01 through 31 (day) + hh 00 through 24 (hour) + mm 00 through 59 (minute) + ss 00 through 60 (second) + .s .0 through 999 (fractional second) + TZD = time zone designator (Z or +hh:mm or -hh:mm) +This profile suggests two ways of handling time zone offsets: 1. Times are expressed in UTC (Coordinated Universal Time), with a special UTC designator ("Z"). 2. Times are expressed in local time, together with a time zone offset in hours and minutes. A time zone offset of "+hh:mm" indicates that the date/time uses a local time zone which is "hh" hours and "mm" minutes ahead of UTC. A time zone offset of "-hh:mm" indicates that the date/time uses a local time zone which is "hh" hours and "mm" minutes behind UTC. + + + + + + + + + + + + + Type used to model the ddms:dates element. + + + + + + + + Type used to modify the type modeling date to allow "Not Applicable" and "Unknown". + + + + + + + + + + + Type used to model dates that are approximate, and may not be processable by search engines. + Use of the searchableDate is intended to inform search engines when this record should be returned; without it, query matching is system-dependent. + This date can be obfuscated for security or other reasons. + Example: The information was received on 2010-06-14 but to reduce the risk of compromising the source it is shown in a document as + searchableDate start="2010-05-01T00:00:00Z" end="2010-07-01T00:00:00Z" + + + + + + + A string describing a date, such as "Ramadan 2010". This string is descriptive, but not necessarily processable by search engines. + + + + + + + An ISO 8601 date with an approximation attribute to add values such as + "early". ISO 8601 allows for dates such as 2010-06; search engines have different + interpretations about when to return records marked as such. + + + + + + + + + + + + + + A range of dates covering the time period of the approximable date. A search engine should be able to return DDMS records for queries in which the searched time period intersects this date range. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Type used to model the ddms:source element. + + + + + + + + + + + + + The value that specifies the originating agency or discipline of the language vocabulary. Specifies the domain vocabulary of which the Language Value is a member. ISO 639-1 and ISO 639-2, Codes for the representation of names of languages, reference 2 and 3 digit language codes. + + + + + + + The primary language of the intellectual content of the resource. {Source: DCMI: language, v. 004IC MSP v. 1.0a: Language} The most specific in-scope language present (if any) should be specified in this category. + + + + + + + + Type used to model the description element. + + + + + + + + + + + + Types used to model the type element. + + + + + + + + + + + + + + + Type used to model the ddms:format element. + + + + + + + + + + + + + Type used to model the attributes of the ddms:extent element. + + + + + + A vocabulary that specifies the type of format extent that will be supplied. The qualifier attribute indicates the type of extent value listed. In the case of data bytes, it may indicate "byte size". In the case of a document length, it may indicate "page count". In the case of streaming content, it may indicate "bits per second" or "frames per second". + + + + + + + A related data size, compression rate, or pixel size (etc.) of the resource. + + + + + + + + Type used to model the medium attribute of the ddms:medium element. + + + + + + + + Type used to model the mimeType element. + + + + + + + + The type used to model the subjectCoverage element. + + + + + + + + + + + + + + Type used to model the ddms:keyword element. + Allowed extension for allowing automated populators to give extra values for confidence and relativity. + + + + + + + + + + Type used to model the attributes of the ddms:category element. The UCore taxonomy is a specific use of category that is permitted. + Allowed attriubute extension for allowing automated populators to give extra values for confidence and relativity. + + + + + + + + + + + + Type used to model the TimePeriod sub-element of the ddms:temporalCoverage element. + + + + + + + + + + + + + + + + + + + + The type entity used by the ddms:relationship element. Each ddms:relatedResource element designates the relationship and the directionality of the relationship between the resource described by the parent ddms:Resource and any ddms:RelatedResource elements. + + + + + + + + + + + + + + Represents a relationship of some relationship type between the resource described by the parent ddms:Resource element and another resource or resources. + + + + + + + + + + Used to indicate that the relationship direction is from the related resource to the resource described in the instance DDMS record. + + + + + + + Used to indicate that the relationship direction is from the resource described in the instance DDMS record to the related resource identified. + + + + + + + Used to indicate that the relationship is bidirectional between the resource described in the instance DDMS record and the related resource identified. + + + + + + + + + + + + + + + + + + Information about who requested resource be produced. + + + + + + + + + + The memorandum titled Intelligence Community Standards + and Procedures for Revised or Recalled Intelligence Products signed by DNI + Negroponte on 5 August 2005 specified how to indicate, in a textual form, the + revision or recall of a previously released document. This element specifies methods + for conveying revision and recall indicators and additional data in XML. + + + + + + + + + + + + + + + + + + + + + + + A sequential integer for the revision. + Higher numbers take precedence over lower numbers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The administrative entity, unit, office, responsible for the custody and ongoing management of the records during their active business use. + + + + + + A unique identifier for the Record Keeper + + + + + + + + + The name or description of the software application(s) used to create the object or product to which this metadata applies. The application should be described in sufficient detail to ensure readability, retrieval, and preservation. As a minimum, specify the application name and version, and the operating system. + + + + + + + + + + + + + + An indication that a publication is categorized a vital record by the originating agency. A vital record is a resource that is needed: (a) to restore an enterprise to full operation following a catastrophe, or (b) as a record that is essential to protect the legal and financial rights of the government or the individual directly affected by its activities. + + + + + + + + + + + + + + + + + + + + + + + + + + + A tracking identification number associated with the tasking that resulted in development of this resource. The format of element "TaskID" content is agency-specific, and is not prescribed by this documentation. + + + + + + + + + + + + + + + + + + + Specifies a user-defined order of an element within the given document. All elements in the document which specify the order attribute should be interpreted as entries in a single, ordered list even though they may appear on different elements. Values must be sequential, starting at 1, and may not contain duplicates. + + + + + + + + + + + A method of categorizing the subject of a document in a fashion understandable by DDNI-A + + + + + A method of categorizing the coverage of a document in a fashion understandable by DDNI-A + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-Includes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-Includes.xsd new file mode 100644 index 0000000000..83cc2ee744 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-Includes.xsd @@ -0,0 +1,62 @@ + + + + +This schema file is intended to simplify importation of IC-ISM Schema files. The supported version of ISM is version 7 public. + + + Change Log: + 6/05/2011 (E. Hughes) -- Created DDMS 3.1. Implemented CR 2011-1 to create DDMS-Includes.xsd wherein all IC-ISM references are consolidated. + 8/05/2011 (E. Hughes) -- Implemented CR 2011-15 to update DDMS 4 to ISM 7. Updated documentation. + 11/11/2011 (E. Hughes) -- Implemented CR 2011-17 to use IC-ISM POCType. + 6/12/2012 (E. Hughes) -- Removed commented sections for support of ISM versions prior to 7 due to fundamental incompatibility issues. + + + + + + + + + + + Indicates that the element specifies a point-of-contact (POC) and the methods with which to contact them. + + + + + + + + + + + + + + + + + + + + + + + + + type created to ensure an element / attribute is comprised of more than whitespace, tab, newline, etc. + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-v5.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-v5.xsd new file mode 100644 index 0000000000..4e7fb5e31d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/DDMS/DDMS-v5.xsd @@ -0,0 +1,120 @@ + + + + + +This XML Schema is an implementation of the Department of Defense Discovery Metadata Specification (DDMS Spec) version 5. Unless otherwise stated, all references to the DDMS Spec refer to version 5 of that document. + +Version 1.0 was created by the DDMS Focus Group: + Robert Allegar - Booz Allen Hamilton + Arsic Antoinette - Mitre Corp. + Wil Bailey - DLA + Daniel Barclay - FGM, Inc. + Brian Brotsos - SAIC + Clive Carpi - SAIC + Mike Daconta - McDonald Bradley + Stan Davis - DISA + Michael Fontaine - OSD/NII + Glenda Hayes - Mitre Corp. + Kirk Maskalenko - FGM, Inc. + Mary Ann Melosh - SAIC + Eric Peterson - McDonald Bradley + Jim Pipher - DISA + Joseph J. Pantella, FGM, Inc. + Glenn Pruitt - FGM, Inc. + Tony Reggio - Pennsylvania State University + Kyle Rice - McDonald Bradley + Clay Robinson - OSD/NII + Rebecca Smith - DIA + Brian Sullivan - NGA (NIMA) + Eric Yuan - Booz Allen Hamilton +JJP + + + Change Log: + + 07/13/2004 (J. Pantella) -- Added a global classification attribute per CR #1 of July 1, 2004 DDMS modification. + 07/13/2004 (J. Pantella) -- Modified title and subtitle elements to use the classification attribute per CR #1 of July 1, 2004 DDMS modification. + 07/13/2004 (J. Pantella) -- Modified SubjectType category and keywords per CR #2 of July 1, 2004 DDMS modification. NOTE: At least one of either Keyword or Category must appear, after one instance of either appears, additional categories must appear before additional keywords. + 07/13/2004 (J. Pantella) -- Modified CompoundSourceIdentifierType to support the schema qualifier and schema HREF attributes on the source element per CR#4 of July 1, 2004 DDMS modification. + 07/14/2004 (J. Pantella) -- Fixed bug that prevented street address information from being included in the Place and Facility elements. + 07/26/2004 (J. Pantella) -- Modified the qualifier attribute of the CompoundCategoryIdentifierType used in the category element to be of type xs:anyURI. + 08/04/2004 (J. Pantella) -- Modified Place and Facility to support the state element. + 08/04/2004 (J. Pantella) -- Removed AddressType because it was not used. + 08/06/2004 (J. Pantella) -- Required xs:any element to have a minoccurs of 0. + 08/11/2004 (J. Pantella) -- Modified contributor, producer, creator and pointOfContact to be of respective types. Eliminated the substitution group solution previously employed. + 08/16/2004 (J. Pantella) -- Modified CompoundResourceIdentifierType and QualifiedExtentValueType qualifier attributes to be of xs:anyURI per Tiger Team. + 08/17/2004 (J. Pantella) -- Modified the target namespace to reflect the needs identified in the Registry meetings (G. Hayes in attendance). + 08/23/2004 (J. Pantella) -- Added comments to annotate changes made by the Tiger Team. + 11/23/2004 (J. Pantella) -- Modified title, subtitle, description, publisher, contributor, creator and security elements to reuse the ICISM:SecurityAttributesGroup. + 11/23/2004 (J. Pantella) -- Removed prior implementation of security and classification attributes. + 11/23/2004 (J. Pantella) -- Modified the temporalCoverage sub-elements to provide mechanism to specify Unknown or Not Applicable value defaulting to Unknown persuant to the approval of CR#11. + 12/12/2004 (J. Pantella) -- Modified subjectType to eliminate redundancy causing tool issues. + 12/16/2004 (J. Pantella) -- Commented out all residual elements and types related to the previous, substitution group based, modeling of the creator, publisher, and contributor. + 1/2/2005 (J. Pantella) -- Modified namespace and comments to remove anticipated name change. + 1/19/2005 (J. Pantella) -- Modified title and subtitle to support mulitple appearances. + 6/22/2005 (J.Pantella) -- Modified geospatialCoverage element to support a richer geospatial description compliant with ISO 19115, pursuant to the approval of CR #13, the geospatialCoverage elment within a Resource is not strictly mandatory per the specification. + 7/20/2005 (J.Pantella) -- Changed geospatialCoverage/Place to geospatialCoverage/GeospatialExtent per comments from NGA et al. at IC MWG meeting of July 8, 2005. + 6/05/2007 (J. Pantella) -- Modified the SubjectType to comply with the approved resolution of CR 2006-1. See also http://metadata.dod.mil/mdr/irs/DDMS/cm/CR/2006/DDMS-CR-2006-1. + 6/05/2007 (J. Pantella) -- Modified the DDMS XML Schema file structure to reflect the approved changes per CR 2007-1. See also http://metadata.dod.mil/mdr/irs/DDMS/cm/CR/2007/DDMS-CR-2007-1. + 1/3/2007 (J. Pantella) -- Modified version attribute to reflect that this is version 1.4.2. + 1/3/2007 (J. Pantella) -- Corrected spelling error in the top level documentation element of the XML Schema. + 7/15/2008 (J. Pantella) -- Modified creator, publisher, contributor, and pointOfContact to fall under a mandatory choice. The desired effect is that one or more creator, publisher, contributor, or pointOfContact elements may appear in a DDMS instance, but there must be at least one. Change is pursuant to CR 2008-3. See also http://metadata.dod.mil/mdr/irs/DDMS/cm/CR/2008/DDMS-CR-2008-3. + 7/15/2008 (J. Pantella) -- Modified ddms:Resource to support a relatedResources element allowing a DDMS instance document to assert relationships between the described resource and other related resources. + 1/4/2010 (P. Lunceford) -- Created DDMS 3.0. Implemented CR 2009-08 (make maxOccurs on any to be unbounded), and CR 2009-12 (adding Security markings to the header and requiring a ddmsRecordDate). + 6/05/2011 (E. Hughes) -- Created DDMS 3.1. Implemented CR 2011-1 to create DDMS-Includes.xsd wherein all IC-ISM references are consolidated. + 6/05/2011 (E. Hughes) -- Added approvedOn attribute pursuant to CR 2011-5. + 8/22/2011 (P. Attas) -- Added implementations of DDMS_CR_2011-4, and 6-15. The DDMS namespace was changed from a URL to a URN. In this file this added a mandatory metacardInfo element and an optional resourceManagment element. Also corrected an error in the resourceType definition that couldhave permitted an instance with no creater, publisher, contributor, or point of contact to validate, when at least one of those elements is required to be present and populated with data. + 1/11/2013 (E. Carswell) -- Added implementations of DDMS CRs 2012-07, 2012-10, and 2012-11. Added simpleTokenType to enforce content in strings. Replaced DDMS GML Profile with TSPI GML Profile. Using GENC as the standard for country codes. Replaced DDMS Virtual Coverage with VIRT.xsd from the IC. Removed attributes under resource and Metacard Info that belong under a TDO/TDC. Also removed the extension capability under Resource to comply with the format of TDO/TDC. + + DDMS XML Schema file describing the root element for a record compliant with the DDMS Spec of the same version as that specified in the above 'version' attribute on the 'xs:schema' element. + This XML Schema defines only the root Resource element of the DDMS, for the definitions of other global DDMS elements see the DDMS Globals and DDMS geospatialCoverage XML Schemas. + + + + + + The Resource element is the root element for a DDMS record. + + + + + + + + The type definition for the ddms:Resource element. + Defines the structure of a DDMS record. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/IC-COMMON/IC-Common.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/IC-COMMON/IC-Common.xsd new file mode 100644 index 0000000000..d061f6a756 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/IC-COMMON/IC-Common.xsd @@ -0,0 +1,198 @@ + + + + + Intelligence Community Technical Specification + Common XML Structures and Types + + + Introduction + This XML Schema file is one component of the XML Data Encoding + Specification (DES). It is envisioned that this schema or its components, as well as other + parts of the DES may be overridden for localized implementations. + Therefore, permission to use, copy, modify and distribute this XML + Schema and the other parts of the DES for any purpose is hereby + granted in perpetuity. + Please reference the preceding two paragraphs in all copies or + variations. The developers make no representation about the + suitability of the schema or DES for any purpose. It is provided + "as is" without expressed or implied warranty. + If you modify this XML Schema in any way label your schema + as a variant of IC-Common. + Please direct all questions, bug reports,or suggestions for changes + to the points of contact identified in the document referenced above. + + + + + + + + + + + + + + + + + + + + + + A universally unique identifier UUID. See http://tools.ietf.org/html/rfc4122 for more information. + + + + + + + + + + + + + + Description + Module for defining common types and groups that will be used + across multiple schema's in the IC. + This schema defines types and is intended to be called by other + schemas in the Intelligence Community. + This module contains declarations of Types and attribute + groups to be used in multiple schemas. + This module depends on ISM.xml and the IC-XLINK modules. + This module is not designed to be used by itself, it must be called + by another schema. + + + Implementation Notes + The IC Common schema is not a standalone construct; it is a shared resource that is + imported into parent IC XML schemas. + + + Creators + Office of the Director of National Intelligence + Intelligence Community Chief Information Officer + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + + 2013-01-06 + D'Ambra, ODNI/OCIO/ICEA + + + Removed the + following link attribute groups, as they are now in VIRT: + SimpleOrResourceLinkAttributesGroup, SimpleOrExtendedLinkAttributesGroup, + SimpleLinkAttributesGroup, RequiredSimpleLinkAttributesGroup + OptionalResourceLinkAttributesGroup, NetworkAttributesGroup + + + + + + 2011-12-27 + Stuart, ODNI/OCIO/ICEA + + + Added type for UUID + + + + + + 2011-07-25 + Colbert, ODNI/OCIO/ICEA + + + Combined attributes @network and @otherNetwork into a separate attribute + group, and made their form unqualified so that they can be used in other + specifications + Added reference to NetworkAttributesGroup to each ODNI XLink attribute group + in IC-Common + + + + + + 2011-05-05 + Colbert, ODNI/OCIO/ICEA + + + Added OptionalResourceLinkAttributesGroup for cases when @href is not + required + Made @type attributes optional instead of required + + + + + + 2011-05-04 + Gilsenan, ODNI/OCIO/ICEA + + + Replaced references in SimpleLinkAttributesGroup to the simpleAttrs attribute + group defined in XLink + + + + + + 2011-05-02 + + + Colbert, ODNI/OCIO/ICEA + Gilsenan, ODNI/OCIO/ICEA + + + + + Removed inline definitions of the @type attribute and replaced with + references to the XLink @type attribute + Added fixed values, where applicable, for @type to minimize the number of + Schematron rules required + + + + + + 2011-04-26 + Colbert, ODNI/OCIO/ICEA + + + Moved ODNI-specific attribute groups RequiredSimpleLinkAttributesGroup, + SimpleOrResourceAttributesGroup, and SimpleOrExtendedLinkAttributesGroup + from IC-XLink to IC-Common + Renamed SimpleOrResourceAttributesGroup to + SimpleOrResourceLinkAttributesGroup + Moved String types from IC-Common to IC-ISM and updated namespaces accordingly + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd new file mode 100644 index 0000000000..021d72aa64 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd @@ -0,0 +1,208 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISM25X Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISM25X.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized authority block declass date/event exemptions. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISM25X.xml + + + + + + + + When using a source document that contains portions of Restricted Data (RD) + or Formerly Restricted Data (FRD) where the RD/FRD source document(s) + do not have declassification instructions, the derivatively classified + document shall not contain a declassification date or event on the + Declassify On line. The following shall be annotated on the Declassify On + line: "Not Applicable or (N/A) to RD/FRD portions" and + "See source list for NSI portions" separated by a period. + The source list must include the declassification instruction + for each of the source documents classified under E.O. 13526 and + shall not appear in the classification authority block + + + + + + + Since NATO information is not to be declassified or downgraded without the prior consent + of NATO, the “Declassify on” line of documents that commingle information classified by + NATO and U.S. classified NSI, will read “N/A to NATO portions. + See source list for NSI portions.” + The NSI source list will appear beneath the classification authority block + in a manner that clearly identifies it as separate and distinct. + + + + + + + Handles special case of BOTH NATO and AEA as a single exemption. + + + + + + + Reveal the identity of a confidential + human source, a human intelligence source, + a relationship with an intelligence or security + service of a foreign government or + international organization, or a non-human + intelligence source; or impair the + effectiveness of an intelligence method + currently in use, available for use, or under + development. + + + + + + + "25X1, EO 12951" (prescribed by the DNI for use on information described in E.O. 12951, + Release of Imagery Acquired by Space-Based National Intelligence Reconnaissance Systems) + + + + + + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + + + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + + + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + + + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + + + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + + + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + + + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + + + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + + + + When the information clearly and + demonstrably could be expected to + reveal the identity of a confidential + human source or a human intelligence + source. + + + + + + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + + + + When the information clearly and + demonstrably could reveal key design + concepts of weapons of mass + destruction. + + + + + + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd new file mode 100644 index 0000000000..28a8bfab26 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd @@ -0,0 +1,85 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMatomicEnergyMarkings Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMatomicEnergyMarkings.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Atomic Energy information markings from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMatomicEnergyMarkings.xml + + + + + + + + + RD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + + + FRD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + + + + + + + RESTRICTED DATA + + + + + RD-CRITICAL NUCLEAR WEAPON DESIGN INFORMATION + + + + + FORMERLY RESTRICTED DATA + + + + + DoD CONTROLLED NUCLEAR INFORMATION + + + + + DoE CONTROLLED NUCLEAR INFORMATION + + + + + TRANSCLASSIFIED FOREIGN NUCLEAR INFORMATION + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMAttributes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMAttributes.xsd new file mode 100644 index 0000000000..126566b18e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMAttributes.xsd @@ -0,0 +1,209 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMAttributes Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMAttributes.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized ISM attribute names + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMAttributes.xml + + + + + + + compliesWith attribute + + + + + classification attribute + + + + + ownerProducer attribute + + + + + SCIcontrols attribute + + + + + SARIdentifier attribute + + + + + atomicEnergyMarkings attribute + + + + + disseminationControls attribute + + + + + FGIsourceOpen attribute + + + + + FGIsourceProtected attribute + + + + + releasableTo attribute + + + + + displayOnlyTo attribute + + + + + nonICmarkings attribute + + + + + classifiedBy attribute + + + + + derivativelyClassifiedBy attribute + + + + + classificationReason attribute + + + + + nonUSControls attribute + + + + + derivedFrom attribute + + + + + declassDate attribute + + + + + declassEvent attribute + + + + + declassException attribute + + + + + resourceElement attribute + + + + + excludeFromRollup attribute + + + + + createDate attribute + + + + + compilationReason attribute + + + + + noticeType attribute + + + + + externalNotice attribute + + + + + DESVersion attribute + + + + + ISMCATCESVersion attribute + + + + + notice date attribute + + + + + notice Reason attribute + + + + + exemptFrom attribute + + + + + unregisteredNoticeType attribute + + + + + Specifies a point-of contact for a security-related + requirement. + + + + + Indicator that multiple ownerProducers should be interpreted + as JOINT. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd new file mode 100644 index 0000000000..d0cc8aadfd --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd @@ -0,0 +1,54 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMClassificationAll Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMClassificationAll.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid classification marks + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMClassificationAll.xml + + + + + + + RESTRICTED + + + + + CONFIDENTIAL + + + + + SECRET + + + + + TOP SECRET + + + + + UNCLASSIFIED + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.xsd new file mode 100644 index 0000000000..7cbd1cdc6e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.xsd @@ -0,0 +1,49 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMClassificationUS Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMClassificationUS.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid US classification marks + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMClassificationUS.xml + + + + + + + TOP SECRET + + + + + SECRET + + + + + CONFIDENTIAL + + + + + UNCLASSIFIED + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd new file mode 100644 index 0000000000..750d1c5c96 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd @@ -0,0 +1,68 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCompliesWith Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCompliesWith.xml CVE it is based on, instead of here. + + + + + + + + (U) ISM rule sets documents may comply + with. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCompliesWith.xml + + + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Federal Government. This is the minimum set of rules + for US documents to adhere to, and all US documents should claim compliance with + USGov. For example, a US Intelligence Community document should claim + ism:compliesWith="USGov USIC". + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Intelligence Community. Documents that claim compliance + with USIC MUST also claim compliance with USGov. + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Department of Defense. Documents that claim compliance + with USDOD MUST also claim compliance with USGov. + + + + + Document claims compliance with an authority other than the + USGov, USIC, or USDOD. This token is not allowed if the ism:ownerProducer contains + USA. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd new file mode 100644 index 0000000000..590028da20 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd @@ -0,0 +1,102 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMDissem Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMDissem.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Dissemination controls from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMDissem.xml + + + + + + + RISK SENSITIVE + + + + + FOR OFFICIAL USE ONLY + + + + + ORIGINATOR CONTROLLED + + + + + ORIGINATOR CONTROLLED US GOVERNMENT + + + + + CONTROLLED IMAGERY + + + + + NOT RELEASABLE TO FOREIGN NATIONALS + + + + + CAUTION-PROPRIETARY INFORMATION INVOLVED + + + + + AUTHORIZED FOR RELEASE TO + + + + + RELEASABLE BY INFORMATION DISCLOSURE OFFICIAL + + + + + EYES ONLY + + + + + DEA SENSITIVE + + + + + FOREIGN INTELLIGENCE SURVEILLANCE ACT + + + + + AUTHORIZED FOR DISPLAY BUT NOT RELEASE TO + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd new file mode 100644 index 0000000000..c8fb5586a9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd @@ -0,0 +1,53 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMExemptFrom Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMExemptFrom.xml CVE it is based on, instead of here. + + + + + + + + (U) Current rule set names that documents may comply + with + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMExemptFrom.xml + + + + + + + Document claims exemption from ICD-710 rules mandating the + use of Foreign Disclosure and Release markings that have been encoded in ISM. + Currently, the requirement for FD&R is only mandatory for Disseminated Analytic + Product; however, it is strongly encouraged otherwise. + + + + + Document claims exemption from the rules in DoD5230.24 + requiring DoD Distribution Statements that have been encoded into + ISM. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd new file mode 100644 index 0000000000..ef11fc15e2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd @@ -0,0 +1,95 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNonIC Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNonIC.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Non-IC markings from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNonIC.xml + + + + + + + + + The name of the ALTERNATE COMPENSATORY CONTROL MEASURE, substituting "_" for a space. + + + + + NAVAL NUCLEAR PROPULSION INFORMATION + + + + + + + + + LIMITED DISTRIBUTION + + + + + EXCLUSIVE DISTRIBUTION + + + + + NO DISTRIBUTION + + + + + SENSITIVE BUT UNCLASSIFIED + + + + + SENSITIVE BUT UNCLASSIFIED NOFORN + + + + + LAW ENFORCEMENT SENSITIVE + + + + + LAW ENFORCEMENT SENSITIVE NOFORN + + + + + SENSITIVE SECURITY INFORMATION + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd new file mode 100644 index 0000000000..fcdbb00c5a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd @@ -0,0 +1,52 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNonUSControls Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNonUSControls.xml CVE it is based on, instead of here. + + + + + + + + (U) NonUS Control markings supported by ISM + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNonUSControls.xml + + + + + + + NATO Atomal mark + + + + + NATO Bohemia mark + + + + + NATO Balk mark + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd new file mode 100644 index 0000000000..52d6f74bfb --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd @@ -0,0 +1,137 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNotice Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNotice.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized Notice values + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNotice.xml + + + + + + + FISA Warning statement + + + + + IMCON Warning statement + + + + + Controled Nuclear Weapon Design Information Warning statement + + + + + RD Warning statement + + + + + FRD Warning statement + + + + + LIMDIS caveat + + + + + LES Notice + + + + + LES-NF Notice + + + + + DSEN Notice + + + + + DoD Distribution statement A from DoD Directive 5230.24 + + + + + DoD Distribution statement B from DoD Directive 5230.24 + + + + + DoD Distribution statement C from DoD Directive 5230.24 + + + + + DoD Distribution statement D from DoD Directive 5230.24 + + + + + DoD Distribution statement E from DoD Directive 5230.24 + + + + + DoD Distribution statement F from DoD Directive 5230.24 + + + + + DoD Distribution statement X from DoD Directive 5230.24 + + + + + US Person info Notice + + + + + Indicates that an instance document must abide by rules pertaining to ORIGINATOR CONTROLLED data issued prior to Executive Order 13526. + + + + + Indicates that the contents of this notice specify the contact information for a required point-of-contact. + + + + + COMSEC Notice + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd new file mode 100644 index 0000000000..c8886ca663 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd @@ -0,0 +1,72 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMPocType Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMPocType.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized types for ISM-related points-of-contact. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMPocType.xml + + + + + + + Point-of-contact for an ICD-710 notice. + + + + + DoD Distribution statement B from DoD Directive 5230.24 + + + + + DoD Distribution statement C from DoD Directive 5230.24 + + + + + DoD Distribution statement D from DoD Directive 5230.24 + + + + + DoD Distribution statement E from DoD Directive 5230.24 + + + + + DoD Distribution statement F from DoD Directive 5230.24 + + + + + DoD Distribution statement X from DoD Directive 5230.24 + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd new file mode 100644 index 0000000000..f7e730b8e6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd @@ -0,0 +1,57 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMSAR Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMSAR.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid SAR controls from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMSAR.xml + + + + + + + SPECIAL ACCESS REQUIRED-XXX,Within the nickname or name of a SAR all spaces must be replaced with a "_". The XSL will restore the spaces for rendering. + + + + + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + + + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + + + SPECIAL ACCESS REQUIRED-XXX, the Digraph or Trigraph of the SAR is represented by the XXX + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd new file mode 100644 index 0000000000..acf0caa818 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd @@ -0,0 +1,150 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMSCIControls Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMSCIControls.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid SCI controls from the published register + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMSCIControls.xml + + + + + + + + + KDK-BLFH-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub BLUEFISH compartment + + + + + KDK-IDIT-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub IDITAROD compartment + + + + + KDK-KAND-xxxxxx, xxxxxx represents up to 6 alphanumeric characters indicating a sub KANDIK compartment + + + + + RSV-XXX, XXX represents 3 alpha numeric characters to indicate sub Reserve compartments + + + + + G-AAAA, AAAA represents 4 alpha characters to indicate sub Gamma compartments + + + + + SPECIAL INTELLIGENCE compartment + + + + + SPECIAL INTELLIGENCE sub-compartment + + + + + + + + + ENDSEAL + + + + + ECRU + + + + + NONBOOK + + + + + HCS + + + + + HCS-O + + + + + HCS-P + + + + + KLONDIKE + + + + + KDK BLUEFISH + + + + + KDK IDITAROD + + + + + KDK KANDIK + + + + + RESERVE + + + + + SPECIAL INTELLIGENCE + + + + + SI-GAMMA + + + + + TALENT KEYHOLE + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/IC-ISM.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/IC-ISM.xsd new file mode 100644 index 0000000000..f3e6857bd2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISM/IC-ISM.xsd @@ -0,0 +1,1548 @@ + + + + + + Intelligence Community + Technical Specification XML Data Encoding Specification for Information Security + Marking Metadata (ISM.XML) + + + Notices + distEditionBlockReplace + + + + Description + W3C XML Schema for the XML Data + Encoding Specification Intelligence Community Metadata Standard for Information + Security Marking (ISM.XML). + + + Introduction + This XML Schema file is one + component of the XML Data Encoding Specification (DES). Please see the document + titled + XML Data Encoding Specification for + Information Security Marking Metadata + for a complete description of the encoding as well as list of all + components. + It is envisioned that this + schema or its components, as well as other parts of the DES may be overridden for + localized implementations. Therefore, permission to use, copy, modify and distribute + this XML Schema and the other parts of the DES for any purpose is hereby granted in + perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or DES for any purpose. It is provided "as is" + without expressed or implied warranty. + If you modify this XML Schema + in any way label your schema as a variant of ISM.XML. + Please direct all questions, + bug reports,or suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + + The IC ISM schema is not a + standalone construct; it should be imported into a parent XML schema. + Refer to the + XML Data Encoding Specification for + Information Security Marking Metadata + Data Encoding Specification (ISM.XML DES) for an explanation of the + relationships of the IC ISM attributes and the associated controlled + vocabularies. The CAPCO Register and CAPCO Implementation Manual provide + additional business rules (that may be classified) not provided in this schema + or the associated documentation. + The IC ISM attributes are + intended to support all CAPCO security markings. However, the attribute values + are NOT intended to be verbatim pieces of portionmarks and banners. Instead, the + values should be interpreted by XSLT stylesheets or other formatting speci- + fications to produce the required portionmarks and banners. + The controlled vocabularies + containing the required values for popu- lating the attributes are described in + the ISM.XML DES. + Attribute group + "SecurityAttributesGroup" should be referenced in the attribute definition list + of any element that REQUIRES security metadata. + Attribute group + "SecurityAttributesOptionGroup" may be referenced in the attribute definition + list of any element for which security metadata may be appropriate but is not + required (such as, an individual cell of a table). + Elements declared in this + specification are conveniences to developers of Schema. Their use is not + required but was determined to be helpful for many Schemas that would otherwise + have to declare these simple elements. Schema developers are free to implement + their own versions of these elements. + This file provides an + XML-based schema for specification of metadata for classification and controls + markings. The goal of the IC ISM XML Schema is to provide a common set of XML + attributes for implementing security-based metadata throughout the IC. The IC + ISM XML Schema provides markup for the tokens that are used to format the CAPCO + markings. + The IC ISM XML Schema may + be incorporated into organizational XML-based schemas by (a) declaring the IC + ISM namespace and (b) inserting an "import" statement: + <xsd:schema xmlns="...my namespace name..." targetNamespace="...my + namespace name..." xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:ism="urn:us:gov:ic:ism"> ... <xsd:import + namespace="urn:us:gov:ic:ism schemaLocation="IC-ISM.xsd" /> + + + + + Creators + Office of the Director of + National Intelligence Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying DoE + markings. It is manifested in portion marks and security banners. The + permissible values for this simple type are defined in the Controlled Value + Enumeration: CVEnumISMAtomicEnergyMarkings.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. A single indicator of the highest + level of classification applicable to an information resource or portion within + the domain of classified national security information. The Classification + element is always used in conjunction with the Owner Producer element. Taken + together, the two elements specify the classification category and the type of + classification (US, non-US, or Joint). It is manifested in portion marks and + security banners. PERMISSIBLE VALUES The permissible values for this simple type + are defined in the Controlled Value Enumeration: CVEnumISMClassificationAll.xml + + + + + + + + + This attribute is used + primarily at the resource level. One or more reason indicators or explanatory + text describing the basis for an original classification decision. It is + manifested only in the 'Reason' line of a resource's classification authority + block. + + + + + + + + + + + + + This attribute is used + primarily at the resource level. The identity, by name or personal identifier, + and position title of the original classification authority for a resource. It + is manifested only in the 'Classified By' line of a resource's classification + authority block. + + + + + + + + + + + + + A description of the + reasons that the classification of this element is more restrictive than a + simple roll-up of the sub elements would result in. This acts as an indicator to + rule engines that there is not accidental over classification going on and to + users that special care beyond what the portion marks reveal must be taken when + using this data. Use of this mark does not replace the need for the compilation + reason being defined in the prose in accordance with ISOO Directive 1. For + example this would document why 3 Unclassified bullet items form a Secret List. + Without this reason being noted the above described document would be considered + to be miss-marked and overclassified. + + + + + + + + + + + + + This attribute is used at + the resource level. An indicator of what optional ISM rule sets the documents + complies with. This allows systems to know that the document claims compliance + with these rule sets and they should be enforced. PERMISSIBLE VALUES The + permissible values for this simple type are defined in the Controlled Value + Enumeration: CVEnumISMCompliesWith.xml + + + + + + + + This attribute is used to designate what date the ISM was produced/updated on. This is the date that will be used by various constraint rules to determine if the ISM markings meet all the business rules. It must be on the element where resourceElement is true. + + + + + + + + + + + This attribute is used + primarily at the resource level. A specific year, month, and day upon which the + information shall be automatically declassified if not properly exempted from + automatic declassification. It is manifested in the 'Declassify On' line of a + resource's classification authority block. + + + + + + + + + + + This attribute is used + primarily at the resource level. A description of an event upon which the + information shall be automatically declassified if not properly exempted from + automatic declassification. It is manifested only in the 'Declassify On' line of + a resource's classification authority block. + + + + + + + + + + + + + This attribute is used + primarily at the resource level. A single indicator describing an exemption to + the nominal 25-year point for automatic declassification. This element is used + in conjunction with the Declassification Date or Declassification Event. It is + manifested in the 'Declassify On' line of a resource's classification authority + block. ISOO has stated it should be a SINGLE value giving the longest + protection. + + + PERMISSIBLE VALUE: The + permissible value for this attribute is defined in the Controlled Value + Enumeration: CVEnumISMN25X.xml + + + + + + + + This attribute is used + primarily at the resource level. The identity, by name or personal identifier, + of the derivative classification authority. It is manifested only in the + 'Classified By' line of a resource's classification authority block. + + + + + + + + + + + + + This attribute is used + primarily at the resource level. A citation of the authoritative source or + reference to multiple sources of the classification markings used in a + classified resource. It is manifested only in the 'Derived From' line of a + document's classification authority block. ISOO's guidance is: Source of + derivative classification. (1) The derivative classifier shall concisely + identify the source document or the classification guide on the ‘‘Derived From’’ + line, including the agency and, where available, the office of origin, and the + date of the source or guide. An example might appear as: Derived From: Memo, + ‘‘Funding Problems,’’ October 20, 2008, Office of Administration, Department of + Good Works or Derived From: CG No. 1, Department of Good Works, dated October + 20, 2008 (i) When a document is classified derivatively on the basis of more + than one source document or classification guide, the ‘‘Derived From’’ line + shall appear as: Derived From: Multiple Sources (ii) The derivative classifier + shall include a listing of the source materials on, or attached to, each + derivatively classified document. + + + + + + + + + + + + + The version number of the + DES. Should there be multiple specified in an instance document the first + one found is the one that will apply to the entire document. + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + country or countries and/or international organization(s) to which classified + information may be displayed but NOT released based on the determination of an + originator in accordance with established foreign disclosure procedures. This + element is used in conjunction with the DisplayOnly Dissemination Controls + value. It is manifested in portion marks and security banners. PERMISSIBLE + VALUES The permissible values for this attribute are defined in the Controlled + Value Enumeration: CVEnumISMRelTo.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + expansion or limitation on the distribution of information. It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMDissem.xml + + + + + + + + This attribute is used to + designate that an element's ISM attributes should not be used in a rollup. + Generally this is because the element is defining the security attributes of a + remote object NOT indicating security constraints for data in this document. + This allows an Unclassified document to assert that some document not included + has a Top Secret classification without the TS attribute value causing rollup to + make the document TS. + + + + + + + + + + + This attribute is used to declare + specific exemptions within a rule set - for example exemption from ICD 710 + FD&R requirements. This attribute is used on the resource node of a document + in conjunction with compliesWith. PERMISSIBLE VALUES The permissible values for + this simple type are defined in the Controlled Value Enumeration: + CVEnumISMExemptFrom.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying + information which qualifies as foreign government information for which the + source(s) of the information is not concealed. The attribute can indicate that + the source of information of foreign origin is unknown. It is manifested in + portion marks and security banners. PERMISSIBLE VALUES 1) The value "UNKNOWN" is + permitted under the circumstances described above. 2) The full set of values are + defined in the Controlled Value Enumeration: CVEnumISMFGIOpen.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. This attribute has unique specific + rules concerning its usage. A single indicator that information qualifies as + foreign government information for which the source(s) of the information must + be concealed. Within protected internal organizational spaces this element may + be used to maintain a record of the one or more indicators identifying + information which qualifies as foreign government information for which the + source(s) of the information must be concealed. Measures must be taken prior to + dissemination of the information to conceal the source(s) of the foreign + government information. An indication that information qualifies as foreign + government information according to CAPCO guidelines for which the source(s) of + the information must be concealed when the information is disseminated in shared + spaces This data element has a dual purpose. Within shared spaces, the data + element serves only to indicate the presence of information which is categorized + as foreign government information according to CAPCO guidelines for which the + source(s) of the information is concealed, in which case, this data element's + value will always be "FGI". The data element may also be employed in this manner + within protected internal organizational spaces. However, within protected + internal organizational spaces this data element may alternatively be used to + maintain a formal record of the foreign country or countries and/or registered + international organization(s) that are the non-disclosable owner(s) and/or + producer(s) of information which is categorized as foreign government + information according to CAPCO guidelines for which the source(s) of the + information must be concealed when the resource is disseminated to shared + spaces. If the data element is employed in this manner, then additional measures + must be taken prior to dissemination of the resource to shared spaces so that + any indications of the non-disclosable owner(s) and/or producer(s) of + information within the resource are eliminated. In all cases, the corresponding + portion marking or banner marking should be compliant with CAPCO guidelines for + FGI when the source must be concealed. In other words, even if the data element + is being employed within protected internal organizational spaces to maintain a + formal record of the non-disclosable owner(s) and/or producer(s) within an XML + resource, if the resource is rendered for display within the protected internal + organizational spaces in any format by a stylesheet or as a result of any other + transformation process, then the non-disclosable owner(s) and/or producer(s) + should not be included in the corresponding portion marking or banner marking. + PERMISSIBLE VALUES 1) The value "FGI" is permitted under the circumstances + described above. 2) The full set of values are defined in the Controlled Value + Enumeration: CVEnumISMFGIProtected.xml + + + + + + + + The version number of the + ISM CAT CVE Encoding Sepcification(CES). Should there be multiple specified in an instance document the first + one found is the one that will apply to the entire document. + + + + + + + + The group of Information + Security Marking attributes for use on a notice element without externalNotice + + + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element adding optional externalNotice + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element adding required externalNotice=true + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance + document. + + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance + document. + + + + + + + + + + + + An attribute group to be + used on the root node of a schema implementing ISM. ISM being entirely + attributes based groups such as this are the only way to specify required use. + + + + + + + + + + + An attribute group to be + used on the root node of a schema implementing ISM. ISM being entirely + attributes based groups such as this are the only way to specify required use. + This group has all the attributes as optional.This group could be used in a + schema where many element may be the root node. When the element is acting as + the root element it should have attributes used similar to + ISMRootNodeAttributeGroup. + + + + + + + + + + A long string, less than + 32000 characters. + + + + + + + + + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators of the + expansion or limitation on the distribution of an information resource or + portion within the domain of information originating from non-intelligence + components. It is manifested in portion marks and security banners. PERMISSIBLE + VALUES The permissible values for this attribute are defined in the Controlled + Value Enumeration: CVEnumISMNonIC.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators of the + expansion or limitation on the distribution of an information resource or + portion within the domain of information originating from non-US components. It + is manifested in portion marks and security banners. PERMISSIBLE VALUES The + permissible values for this attribute are defined in the Controlled Value + Enumeration: CVEnumISMNonUSControls.xml + + + + + + + + Base type for Notices. Does not include any attributes. + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText + + + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText for use when the notice refers to something external. + + + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText + + + + + + + + A single Notice that may + consist of 1 or more NoticeText for use when the notice refers to something external. + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + attributes 'classification' and 'ownerProducer' is required. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + Security on the notice is optional. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + attributes 'classification' and 'ownerProducer' is required and the notice is for something external to the object. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + Security on the notice is optional and the notice is for something external to the object. + + + + + + + + + + + A Date associated with a + notice such as the DoD Distribution notice date. + + + + + + + + + + + + + A list of Notices + + + + + + + + + + + + + + A list of Notices + + + + + + + + + + + + + A Reason (less than 2048 + chars) associated with a notice such as the DoD Distribution reason. + + + + + + + + + + + + + The actual text of a + notice. + + + + + + + + + + + + + + + This attribute is an + indicator that the element contains a security-related notice and is used to + categorize which of the required notices is specified in the element. These + categories include those described in the CAPCO Register, as well as additional + well-defined and formally recognized security notice types described in other + directives, such as US-Person and DoD Distribution. The element could contain + any structure that the implementing schema defines, and details of the rendering + would be relegated to the implementing schema. The permissible value for this + attribute are defined in the Controlled Value Enumeration: CVEnumISMNotice.xml + + + + + + + + + This attribute is an + indicator that the element contains a security-related notice NOT in this document. This flag allows + for a notice to exist in a document without the data that would normally require the notice. Example a + FISA notice when there is no FISA data present. + A common use case is source citations where the notice if for the sourced document and should + not impact the requirements for that type of data in this document. + + + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + national government or international organization that have purview over the + classification marking of an information resource or portion therein. This + element is always used in conjunction with the Classification element. Taken + together, the two elements specify the classification category and the type of + classification (US, non-US, or Joint). Within protected internal organizational + spaces this element may include one or more indicators identifying information + which qualifies as foreign government information for which the source(s) of the + information must be concealed. Measures must be taken prior to dissemination of + the information to conceal the source(s) of the foreign government information. + Specifically, under these specific circumstances, when data are moved to the + shared spaces, the non-disclosable owner(s) and/or producer(s) listed in this + data element's value should be removed and replaced with "FGI". The attribute + value may be manifested in portion marks or security banners. PERMISSIBLE VALUES + 1) The value "FGI" is permitted under the circumstances described above. 2) The + full set of values are defined in the Controlled Value Enumeration: + CVEnumISMOwnerProducer.xml + + + + + + + + + This attribute, when true, is used to signify that + multiple values in the ownerProducer attribute are + JOINT owners of the data. + + + + + + + + + An attribute group to be + used on the element that represents an entity that can be designated as a + point-of-contact. This node may be a single person or an organization. + + + + + + + + + + Indicates that the element + specifies a point-of-contact (POC) and the methods with which to contact that + individual. As certain POCs are required for different reasons (ICD-710 + compliance, DoD Distribution statements, etc), the values for this attribute + specify the reason(s) why the POC is provided. + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + country or countries and/or international organization(s) to which classified + information may be released based on the determination of an originator in + accordance with established foreign disclosure procedures. This element is used + in conjunction with the Dissemination Controls element. It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMRelTo.xml + + + + + + + + This attribute is used to + designate which element has the ISM attributes representing the classification + for the entire resource. Every document must have at least one element with this + indicator as true. It should be rare that a document has more than one. Mainly + this would occur in some sort of aggregator schema. In that unusual case the + first one encountered in XML document order is the one used for all constraint + rules. + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. Implementing Schemas might use this on the + Root node or any other node. + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. Implementing Schemas might use this on the + Root node or any other node. This group has all the attributes as optional. It + could be used in a schema where many nodes may be the resource element. When the + element is acting as the resource element it should have attributes used similar + to ResourceNodeAttributeGroup. + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + defense or intelligence programs for which special access is required. It is + manifested in portion marks and security banners. PERMISSIBLE VALUES The + permissible values for this attribute are defined in the Controlled Value + Enumeration: CVEnumISMSAR.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying + sensitive compartmented information control system(s). It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMSCIControls.xml + + + + + + + + The group of Information + Security Marking attributes in which the use of attributes 'classification' and + 'ownerProducer' is required. + + + This group is to be + contrasted with group 'SecurityAttributesOptionGroup' in which use of those + attributes is optional. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The group of Information + Security Marking attributes in which the use of attributes 'classification' and + 'ownerProducer' is optional. This group is to be contrasted with group + 'SecurityAttributesGroup' in which use of these attributes is required. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A short string, less than + 256 characters. + + + + + + + + + + + + + + + + + + + A notice that is of a + category that is not described in the CAPCO Register and/or is not sufficiently + defined to be represented in the Controlled Value Enumeration + CVEnumISMNotice.xml. This attribute can be used by specifications that import + ISM to represent a wider variety of security-related notices. + + + + + + + + + + + + + + Include all of the generated CVE + types applicable. + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 12 + 2013-05-20 + ODNI/OCIO/ME/D&I + + + Decoupled the + specification from the country code CVEs. Created a new ISMCAT specification + that can rev independently of ISM. + + + + + 11 + 2013-02-15 + ODNI/OCIO/ME/D&I + + + Added joint + attribute for signifying that multiple values in the ownerProducer + attribute are both producers of the portion/document. + Added + attribute for joint ownership. [artf13902]. + + + + + 9 + 2012-3-19 + ODNI/OCIO/ME/D&I + + + Changed + DESVersion attribute from xsd:int to ShortStringType. + Changed + declaration of NoticeText to be simple content. + [artf12153]. + + + + + 8 + 2011-12-22 + Sun, ODNI/OCIO/ICEA + + + Added + unique namespaces to generated CVE schema fragments. + Removed + CVEGenerated schema import from and moved schema fragment + imports directly to the base ISM schema. + + + + + 7 + 2011-08-10 + Colbert, ODNI/OCIO/ICEA + + + Added a + complex type for NoticeList + + + + + 7 + 2011-07-14 + + + Colbert, + ODNI/OCIO/ICEA + Gilsenan, + ODNI/OCIO/ICEA + + + + + Renamed + @ism:notice to @ism:noticeType + Removed + @ism:ORCONPOC and @ism:noticePOC. They're replaced with the new + @ism:pocType attribute which indicates that an element specifies + a point-of-contact's name and contact method. + + + + + 7 + 2011-07-07 + + + Colbert, + ODNI/OCIO/ICEA + Gilsenan, + ODNI/OCIO/ICEA + + + + + Added + version information to the header + Removed + ACCM attribute + + + + + 7 + 2011-06-10 + Hansen, ODNI/OCIO/ICEA + + + Removed + @fixed="true" from the resourceElement attribute definition in + the ISMResourceNodeAttributeGroup and + ISMResourceNodeAttributeOptionGroup + + + + + 7 + 2011-05-11 + Colbert, ODNI/OCIO/ICEA + + + Added + ORCONPOC attribute and POCAttributeGroup + + + + + 7 + 2011-04-26 + Colbert, ODNI/OCIO/ICEA + + + Added + String types LongStringType, ShortStringType, + LongStringWithSecurityType, and + ShortStringWithSecurityType + Added + attribute unregisteredNoticeType and included it in + ISMNoticeAttributeGroup + + + + + 7 + 2011-04-22 + Colbert, ODNI/OCIO/ICEA + + + Explicitly + declared minOccurs and maxOccurs where appropriate. + + + + + 7 + 2011-04-19 + Hodges, ODNI/OCIO/ICEA + + + (CR 2010-4) + Add ISMNoticeAttributeGroup to hold the Notice specific + attributes and changed the NoticeAttribute groups to reference + it. ISMResourceAttributeGroup also added and Resource specific + attributes have been removed from the ResourceAttribute groups + and the new group added. + + + + + 7 + 2011-04-15 + Colbert, ODNI/OCIO/ICEA + + + Add + elements NoticeList, Notice, and NoticeText + + + + + 6 + 2011-01-27 + ODNI/OCIO/ICEA + + + Add + ACCM + + + + + 5 + 2010-09-25 + ODNI/OCIO/ICEA + + + Add + atomicEnergyMarkings + Remove + typeOfExemptedSource and dateOfExemptedSource + Add + ResourceNodeAttributeOptionGroup + Add + ISMRootNodeAttributeOptionGroup + + + + + 4 + 2010-06-01 + ODNI OCIO ICIS + + + Add DoD + Distro statements + Add NATO + refactor + Add Use of + Generated CVE schema types + + + + + 3 + 2010-01-22 + ODNI OCIO ICIS + + + (CR + 2010-02) Add notice attribute, NoticeAttributesGroup and + NoticeAttributesOptionGroup + Final + review before signature 2010-06-06 + Remove comment about LES not being in the Register + since it is now in the register. + Correct NoticeAttributesOptionGroup to have + SecurityAttributesOptionGroup so that NoteInline in PUBS + works correctly. + + + + + + + 2 + 2009-12-01 + ODNI OCIO ICIS + + + (CR + 2009-09) Added "compilationReason" to allow capturing + information about the reason that the document or portion bears + a more restrictive classification than the data would appear to + support. + (CR + 2009-07) Point to CVE files for enumeration values. + (CR + 2009-22) Change declassException and typeOfExemptedSource to + NMTOKEN. + (CR + 2009-16) Add ability to specify DES Version. + (CR + 2009-05) Add createDate, excludeFromRollup, resourceElement to + allow ISM rules to be independent of implementing + schema. + (CR + 2009-05) Add ISMRootNodeAttributeGroup and + ResourceNodeAttributeGroup. + + + + + 2.1 + 2008-08-19 + ODNI OCIO ICIS + Updated to support IC Standard for Information Security Marking + Metadata (2007-500-2) + Added + "DerivativelyClassifiedBy" to allow capturing information about + a derivative classifier separate from an original + classifier + + + + + 2.0 + 2004-04-30 + IC MWG + Updated to support changes to the CAPCO Register and + Implementation Manual. + Added + "ownerProducer" as a required attribute for entity + "SecurityAttributes" and as an optional attribute for entity + "SecurityAttributesOption." Purpose is to provide a single + method for specification of US, non-US, and joint + classifications. + Changed the + enumerated list that is the declared value of attribute + "classification" in order to accommodate non-US + classifications. + Added + optional attribute "SARIdentifier" as a separate container for + DoD/DoE special-access-required nicknames, codewords, or + trigraph/ digraph to support elevation of SAR to the same level + as SCI controls. + Added + optional attributes "classifiedBy" and "classificationReason" to + support generation of EO 12958 classification/declassification + blocks. + Changed the + declared value of "derivedFrom" to CDATA to allow the titles and + dates of source documents or classification guides to be + specified. + Replaced + the single attribute "declassification" with distinct attri- + butes for date-determined and event-determined declassification + and for the 25X declassification exceptions. + Added + attributes "typeOfExemptedSource" and "dateOfExemptedSource" for + use in specifying that one or more sources was marked OADR, X1 + through X8, or X-Foreign Relations. + Added + attribute "declassManualReview" for use in forcing "MR" to + appear in header and footer banners (regardless of whether any + caveats in the portions would necessitate manual + review). + + + + + 1.0 + 2002-07-05 + IC MWG + Released as a registered, production XML entity set + + + + + + + + Formal CVE Change + List + + Change History + + + Version + Date + By + Description + + + + + 7 + 2011-07-18 + Colbert, ODNI/OCIO/ICEA + + + Added + pocType + + + + + 7 + 2011-01-27 + ODNI/OCIO/ICEA + + + Remove ACCM + as attribute and move its values to nonICmarkings + + + + + 6 + 2011-01-27 + ODNI/OCIO/ICEA + + + Add + ACCM + + + + + 5 + 2010-09-25 + ODNI/OCIO/ICEA + + + Add + atomicEnergyMarkings + Remove + typeOfExemptedSource + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd new file mode 100644 index 0000000000..8d3ae78582 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd @@ -0,0 +1,1568 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATFGIOpen Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATFGIOpen.xml CVE it is based on, instead of here. + + + + + + + + (U) + All currently valid GENC trigraphs except USA in alphabetical order by trigraph, + followed by all currently valid CAPCO Coalition tetragraphs in alphabetical order by tetragraph. UNKNOWN removed since GENC has it as AX1 + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATFGIOpen.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Unknown + + + + + Guantanamo Bay Naval Base + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People's Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People's Republic of China + + + + + Republic of Côte d'Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cape Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People's Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Department of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Department of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People's Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Department of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of the Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People's Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + Palestinian Territory + + + + + French Polynesia + + + + + State of Qatar + + + + + Department of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Somalia, Federal Republic of + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Tunisian Republic + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Etorofu, Habomai, Kunashiri, and Shikotan Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + No Man's Land + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Suppressed + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + FIVE EYES + + + + + Global Counter-Terrorism Forces + + + + + Global Maritime Interception Forces + + + + + International Security Assistance Force for Afghanistan + + + + + Stabilization Forces in Kosovo + + + + + Multi-Lateral Enduring Contingency + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO Convention Armed Forces in Europe + + + + + Open Skies Treaty + + + + + Suppressed + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd new file mode 100644 index 0000000000..9a02a98c09 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd @@ -0,0 +1,1568 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATFGIProtected Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATFGIProtected.xml CVE it is based on, instead of here. + + + + + + + + (U) + FGI, followed by all currently valid GENC trigraphs except USA in alphabetical order by trigraph, + followed by all currently valid CAPCO Coalition tetragraphs in alphabetical order by tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATFGIProtected.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Foreign Government Information + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People's Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People's Republic of China + + + + + Republic of Côte d'Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cape Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People's Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Department of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Department of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People's Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Department of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of the Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People's Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + Palestinian Territory + + + + + French Polynesia + + + + + State of Qatar + + + + + Department of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Somalia, Federal Republic of + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Tunisian Republic + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Etorofu, Habomai, Kunashiri, and Shikotan Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + No Man's Land + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Suppressed + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + FIVE EYES + + + + + Global Counter-Terrorism Forces + + + + + Global Maritime Interception Forces + + + + + International Security Assistance Force for Afghanistan + + + + + Stabilization Forces in Kosovo + + + + + Multi-Lateral Enduring Contingency + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO Convention Armed Forces in Europe + + + + + Open Skies Treaty + + + + + Suppressed + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd new file mode 100644 index 0000000000..19e51a74b9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd @@ -0,0 +1,1573 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATOwnerProducer Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATOwnerProducer.xml CVE it is based on, instead of here. + + + + + + + + (U) + FGI, followed by all currently valid GENC trigraphs in alphabetical order by trigraph, + followed by all currently valid CAPCO Coalition tetragraphs in alphabetical order by tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATOwnerProducer.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Foreign Government Information + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People's Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People's Republic of China + + + + + Republic of Côte d'Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cape Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People's Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Department of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Department of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People's Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Department of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of the Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People's Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + Palestinian Territory + + + + + French Polynesia + + + + + State of Qatar + + + + + Department of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Somalia, Federal Republic of + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Tunisian Republic + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + United States of America + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Etorofu, Habomai, Kunashiri, and Shikotan Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + No Man's Land + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Suppressed + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + FIVE EYES + + + + + Global Counter-Terrorism Forces + + + + + Global Maritime Interception Forces + + + + + International Security Assistance Force for Afghanistan + + + + + Stabilization Forces in Kosovo + + + + + Multi-Lateral Enduring Contingency + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO Convention Armed Forces in Europe + + + + + Open Skies Treaty + + + + + Suppressed + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd new file mode 100644 index 0000000000..f5bed770a9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd @@ -0,0 +1,1568 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATRelTo Version 2 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATRelTo.xml CVE it is based on, instead of here. + + + + + + + + (U) + USA, followed by all currently valid GENC trigraphs except USA in alphabetical order by trigraph, + followed by all currently valid CAPCO Coalition tetragraphs in alphabetical order by tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATRelTo.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + United States + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People's Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People's Republic of China + + + + + Republic of Côte d'Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cape Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People's Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Department of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Department of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People's Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Department of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of the Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People's Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + Palestinian Territory + + + + + French Polynesia + + + + + State of Qatar + + + + + Department of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Somalia, Federal Republic of + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Tunisian Republic + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Etorofu, Habomai, Kunashiri, and Shikotan Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + No Man's Land + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Suppressed + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + FIVE EYES + + + + + Global Counter-Terrorism Forces + + + + + Global Maritime Interception Forces + + + + + International Security Assistance Force for Afghanistan + + + + + Stabilization Forces in Kosovo + + + + + Multi-Lateral Enduring Contingency + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO Convention Armed Forces in Europe + + + + + Open Skies Treaty + + + + + Suppressed + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/SchemaGuideSchema.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/SchemaGuideSchema.xsd new file mode 100644 index 0000000000..1436fd199a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ISMCAT/SchemaGuideSchema.xsd @@ -0,0 +1,88 @@ + + + + + Intelligence Community + Technical Specification XML CVE Encoding Specification for ISM Country Codes and Tetragraphs (ISMCAT.XML) + SchemaGuide + + + + Notices + distEditionBlockReplace + + + + Description + W3C XML Schema used to + facilitate generation of the SchemaGuide for the XML Data Encoding Specification for + CVE Encoding Specification for ISM Country Codes and Tetragraphs (ISMCAT.XML). + + + Introduction + This XML Schema file is only + used to produce the schemaGuide for the XML Data Encoding Specification (DES). + Please see the document titled + XML Data Encoding Specification for + CVE Encoding Specification for ISM Country Codes and Tetragraphs + for a complete description of the encoding as well as list of all + components. + It is envisioned that this + schema or its components, as well as other parts of the DES may be overridden for + localized implementations. Therefore, permission to use, copy, modify and distribute + this XML Schema and the other parts of the DES for any purpose is hereby granted in + perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or DES for any purpose. It is provided "as is" + without expressed or implied warranty. + If you modify this XML Schema + in any way label your schema as a variant of ISMCAT.XML. + Please direct all questions, + bug reports,or suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + ISMCAT.XML is a collection of 4 CVEs + + CVEnumISMCATFGIOpen + + CVEnumISMCATFGIProtected + + CVEnumISMCATOwnerProducer + + + CVEnumISMCATRelTo + + + + + Creators + Office of the Director of + National Intelligence Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/NTK/IC-NTK.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/NTK/IC-NTK.xsd new file mode 100644 index 0000000000..53e6a0457e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/NTK/IC-NTK.xsd @@ -0,0 +1,527 @@ + + + + Intelligence Community Technical Specification XML Data Encoding Specification for + Need-To-Know Metadata (NTK.XML) + + + + Notices + + distEditionBlockReplace + + + + + Description + W3C XML Schema for the XML Data Encoding Specification for intelligence Need-To-Know + metadata (NTK.XML). + + + Introduction + This XML Schema file is one component of the XML Data Encoding Specification (DES). + Please see the document titled + XML Data + Encoding Specification For Need-To-Know Metadata + for a complete + description of the encoding as well as list of all components. + It is envisioned that this schema or its components, as well as other parts of the + DES may be overridden for localized implementations. Therefore, permission to use, + copy, modify and distribute this XML Schema and the other parts of the DES for any + purpose is hereby granted in perpetuity. + Please reference the preceding two paragraphs in all copies or variations. The + developers make no representation about the suitability of the schema or DES for any + purpose. It is provided "as is" without expressed or implied warranty. + If you modify this XML Schema in any way label your schema as a variant of NTK.XML. + Please direct all questions, bug reports,or suggestions for changes to the points of + contact identified in the document referenced above. + + + Implementation Notes + The document element for NTK is ntk:Access. However, the NTK schema is not a standalone construct; it + should be imported into a parent XML schema. + + + Creators + Office of the Director of National Intelligence Intelligence Community Chief + Information Officer + + + + + + + + + + + + + + + + + A way of describing a formalized Need to Know required for a + document. NTK requires being inside a schema that implements ISM therefore some + element in the implementing schema MUST have ism:ISMRootNodeAttributeGroup and + ism:ResourceNodeAttributeGroup since both of those are required for a valid ISM + implementation. In addition the root node of the implementing schema must have + ntk:NTKRootNodeAttributeGroup specified. + + + + + + + + + A way of describing a formalized Need to Know required for an EXTERNAL + document. NTK requires being inside a schema that implements ISM therefore some + element in the implementing schema MUST have ism:ISMRootNodeAttributeGroup and + ism:ResourceNodeAttributeGroup since both of those are required for a valid ISM + implementation. In addition the root node of the implementing schema must have + ntk:NTKRootNodeAttributeGroup specified. + + + + + + + + + + + + + + + + + + An access policy name followed by 1 or more group values representing the + groups that a user wanting access to the document must be a member of. Logic for the + group list being boolean AND vs OR is Access Policy defined. + + + + + + + + + + + + + + + + + + + + + + + + + A string representing a group, the string must be portion marked. + + + + + + + + + An access policy name followed by 1 or more Individual values representing + the people that a user wanting access to the document must be a member of. + + + + + + + + + + + + + + + + + + + + + + + + + + A string representing a person, the string must be portion marked. + + + + + + + + + + An access policy name followed by 1 or more values representing a profile + that a user wanting access to the document must meet. Logic for the profile list + being boolean AND vs OR is Access Policy defined. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A list of words, codes and/or phrases: a + lexicon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + The version number of the DES + + + + + + + + A unique XML identifier used to assign an XML + unique identifier to an element, such as a paragraph, note or table. + + + + + + + + + A cross-reference to a unique identifier used to + point from one element to one or more other elements. The value of the attribute + must be one or more XML unique identifiers that are the value(s) of id + attribute(s) elsewhere in the document. + + + + + + + + + + + + + + + + + + The value of this element references the + NTK profile. This value should be represented by an IC-ID, however, is not currently restrict to + an IC-ID type so that legacy systems do not break during the transition to a complete restriction + to IC-ID. + + + + + + + + + + + A user-defined property within an element for + general purpose processing used with block objects to provide supplemental + information over and above that conveyed by the element name. This attribute is + analogous to HTML's "class" attribute. + + + + + + + + A logical grouping indicating + that all included access policies are required. + + + + + + + + + + + + + + + + + + A logical grouping indicating + that one of the included access policies is required. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Used for portion marking + access requirements. The format consists of a series of namespace-prefixed + key-value pair sets. The '#' character is used to delimit between a series of + access requirements which are all required and a series of requirements in which + only one is required. The format of an access requirement consists of a + namespace-prefix followed by sets of key-value pairs. The '|' character is used + to separate the key-value pairs and the '^' character is used to join keys with + their values. The characters '^', '|', and '#' are not allowed in + namespace-prefixes, keys, and values. Multiple namespace-prefixed sets can be + used. + + For example: + + ntk:access="namespace1|key1^value1|key2^value1|key2^value2 # + namespace2|key1^value1 namespace3|key1^value1" + ntk:access="# namespace1|key1^value1 + namespace2|key1^value1|key2^value2" + ntk:access="namespace1|key1^value1|key2^val2 namespace1|key1^value3 + #" + + + + + + + + + + + + + + + + + + + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 10 + 2013-7-25 + ODNI/OCIO/ME/D&I + + + Added a Profile element. + + + + + 9 + 2012-2-4 + ODNI/OCIO/ME/D&I + + + Added "AND" logic to NTK Access element and access attribute. + + + + + 7 + 2012-5-28 + ODNI/OCIO/ME/D&I + + + Updated NTK attribute to use a schema restriction regex instead of schematron rule NTK-ID-00005 [artf12287]. + + + + + 7 + 2012-4-06 + ODNI/OCIO/ME/D&I + + + Add NTK attribute for use on portions [artf12287]. + + + + + 7 + 2012-3-19 + ODNI/OCIO/ME/D&I + + + Changed DESVersion + attribute from xsd:int to ism:ShortStringType. + Changed declaration of AccessProfileValueType to be simple content. [artf12153]. + + + + + 6 + 2011-12-13 + Hodges, ODNI/OCIO/ICEA + + + Extracting out attributes and elements to move towards NIEM + compliance + + + + + 5 + 2011-07-07 + Colbert, ODNI/OCIO/ICEA + + + Added version information to header + + + + + 4 + 2011-04-22 + Colbert, ODNI/OCIO/ICEA + + + Explicitly declared minOccurs and maxOccurs where + appropriate. + + + + + 3 + 2011-01-31 + Sun, ODNI/OCIO/ICEA + + + (CR 2011-01) Remove unused ddms namespace declaration + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/VIRT/CVEGenerated/CVEnumVIRTNetworkName.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/VIRT/CVEGenerated/CVEnumVIRTNetworkName.xsd new file mode 100644 index 0000000000..0ce309a9d9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/VIRT/CVEGenerated/CVEnumVIRTNetworkName.xsd @@ -0,0 +1,89 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumVIRTNetworkName Version 1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumVIRTNetworkName.xml CVE it is based on, instead of here. + + + + + + + + (U) All valid network names + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumVIRTNetworkName.xml + + + + + + + + + Other Network + + + + + + + + + + DISA Non-classified IP Router Network + + + + + + DoD and DoS Secret Internet Protocol Router Network + + + + + + Joint Worldwide Intelligence Communications System + (JWICS) highside network. + + + + + + ADSN Network + + + + + + DIA Top Secret Sensitive + Compartmented Information Network + + + + + + Linked Operations-Intelligence Centers Europe + (LOCE) Network is a USEUCOM system supoorting joint forces with communications + + + + + + Crisis Response Operations in NATO Operating Systems + (CRONOS) is a system of interconnected computer networks used by NATO to transmit classified information + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/VIRT/VIRT.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/VIRT/VIRT.xsd new file mode 100644 index 0000000000..525d452958 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/VIRT/VIRT.xsd @@ -0,0 +1,256 @@ + + + + + + Intelligence Community Technical Specification + XML Encoding Specification for Virtual Coverage + + + Notices + + distEditionBlockReplace + + + + Description + + W3C XML Schema for the XML Encoding Specification defining Virtual Coverage. + + + + Introduction + + This XML Schema file is one component of the XML + Encoding Specification. Please see the document titled + + XML Encoding Specification for Virtual Coverage + + for a complete description of the encoding as well as list + of all components. + + + If you modify this XML Schema in any way label your schema + as a variant of VIRT.XML. + + + Please direct all questions, bug reports,or suggestions for changes + to the points of contact identified in the document referenced above. + + + + Creators + Office of the Director of National Intelligence + Intelligence Community Chief Information Officer + + + + + + + + + + Import IC Information Security Marking (ISM) attributes + + + + + + + Import IC Need To Know (NTK) + + + + + + + + + + + + + + + + + + The subject-matter coverage of a publication in terms of one or more virtual addresses. May identify the protocol being used and the virtual address of the resource. + + + + + + + + + The version number of the DES + + + + + + + + + Type used to model the virtualCoverage element. + + + + + + + + + + + + + + + + + + An Internet-Protocol-based computer network. Use this attribute to make explicit the + network where the address resides. + Specify "other:name" if none of the primary choices applies. + + + + + + + + + + + + + + + + + + + + A Schematron rule enforces that for each of the groups below, + either @xlink:type or @xlink:href must be specified if any + xlink attributes are specified + + + + + + + + + + + + + + + + + Basic Type for a required link + + + + + + + + + + + + + Basic Type for a required link with ISM security on the link + + + + + + + + + + + + + + + + + + + An additional restriction on xlink:type to be "simple" or "extended" should be enforced with Schematron rules + in the specifications using this attribute group + + + + + + + + + + + + + + + + + + An additional restriction on xlink:type to be "simple" or "extended" should be enforced with Schematron rules + in the specifications using this attribute group + + + + + + + + + + + + + + + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 1 + 2012-09-30 + ODNI/OCIO/ICEA + Initial release + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/fgdc/schema/address/addr.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/fgdc/schema/address/addr.xsd new file mode 100644 index 0000000000..60c0ac7d72 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/fgdc/schema/address/addr.xsd @@ -0,0 +1,255 @@ + + + + + + Base types form the AddressStandard + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a Complete Address Number and a Complete Street Name. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + + Defining Characteristics: +1. An address of this class must include two or more Complete Street Names, each separated by a Separator Element. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + + Defining Characteristics +1. Addresses of this class must include two Complete Address Numbers separated by a hyphen. The first Complete Address Number must be less than or equal to the second. +2. The two Complete Address Numbers must be followed by a Complete Street Name. +3. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include four Complete Address Numbers, representing respectively the left low, left high, right low, and right high four Complete Address Numbers for the block or transportation segment(s), followed by a Complete Street Name. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. +3. The Four Number Address Range syntax follows the structure established by the U.S. Census Bureau for TIGER/Line file street segment address ranges (see http://www.census.gov/geo/www/tiger/tgrshp2008/TGRSHP08.pdf ("All Lines Shapefile" attribute table layout)). + + + + + + + + + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must contain a Complete Street Name with no Complete Address Number preceding it. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a Complete Landmark Name, with no Complete Address Number preceding it and no Complete Street Name following it. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a Complete Address Number followed by a Complete Landmark Name or a Complete Place Name, and they must not include a Complete Street Name. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a USPS Box in the required format, and must not include a USPS Route. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a USPS Address in the specified RR or HC or overseas military delivery format. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + Defining Characteristics: +1. Addresses of this class must include a USPSGeneral Delivery Point in the specified format. +2. In addition, all thoroughfare, landmark, and postal addresses must include a Place Name and a State Name. A Zip Code is recommended but not mandatory. + + + + + + + + + + + + Defining Characteristic: +In addresses of this class the Delivery Address must be unparsed (except that in Types 2 and 3 the Complete Subaddress may be separated from the rest of the Delivery Address) and may contain thoroughfare, landmark, or postal syntaxes. This class may also include addresses that do not conform to any of the thoroughfare, landmark, or postal classes, including non-U.S. addresses. + + + + + + + + + + + + + + + The Single Choice Union of all Address Types + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/fgdc/schema/address/addr_type.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/fgdc/schema/address/addr_type.xsd new file mode 100644 index 0000000000..d4276c2425 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/fgdc/schema/address/addr_type.xsd @@ -0,0 +1,2224 @@ + + + + + + GML 3.2.1 from OpenGeospatial Consortium + + + + + The ID for this version of the Address Standard. + + + + + + + + +A word, phrase, or symbol used as a separator between components of a complex element or class. The Separator Element is required for +Intersection Addresses and for Two Number Address Ranges, and it may be used in constructing a Complete Street Name. + + + + + + + + + A directional word describing a corner formed by the +intersection of two thoroughfares. + + + + + + The order in which the elements of a Complete Subaddress, +Complete Landmark Name, or Complete Place Name should be written. + + + + + + +"A permanent, unique number assigned to a geographic feature for the +sole purpose of uniquely identifying that feature as a record in any +information system database, dataset, file, or document and for +distinguishing it from all other feature records so identified. The +number is assigned sequentially (highest existing number plus one) +to new records as they are created in the Geographic Names Information System." +Definition Source Geographic Names Project, USGS, 523 National Center, +Reston, VA 20192-0523, as posted August 25, 2009 at: +http://geonames.usgs.gov/domestic/metadata.htm "Feature Identifier" + + + + + + + The portion of the Complete +Address Number which precedes the Address Number itself. + + + + + + + + + + + The numeric identifier for a +land parcel, house, building or other location along a thoroughfare or +within a community. +1. The Address Number is defined as an integer to support address +sorting, parity (even/odd) definition, and in/out of address range +tests. +2. The Address Number must be converted to a characterString when it is +combined with the prefix and suffix into a Complete Address Number. +3. Some addresses may contain letters, fractions, hyphens, decimals and +other non-integer content within the Complete Address Number. Those +non-integer elements should be placed in the Address Number Prefix if +they appear before the Address Number, or in the Address Number Suffix +if they follow the Address Number. For example, if the New York City +hyphenated address 194-03 ½ 50th Avenue, New York, NY 11365 were to be +parsed rather than represented as a Complete Address Number: +---the Address Number Prefix would be "194-" (including the hyphen), +---the Address Number would be 3 (converted to "03" (text) in +constructing the Complete Address Number), +---and the Address Number Suffix would be "1/2". +4. Special care should be taken with records where the Address Number +is 0 (zero). Occasionally zero is issued as a valid address number +(e.g. Zero Prince Street, Alexandria, VA 22314) or it can be imputed +(1/2 Fifth Avenue, New York, NY 10003 (for which the Address Number +would be 0 and the Address Number Suffix would be "1/2")). More often, +though, zero is shown because the Address Number is either missing or +non-existent, and null value has been converted to zero. +5. Address Numbers vs. Address "Letters". In rare instances, +thoroughfare addresses may be identified by letters instead of numbers +(for example, "A" Main Street, "B" Main Street, "C" Main Street, "AA" +Main Street, "AB" Main Street, etc.) A few thousand such cases have +been verified in Puerto Rico, and others may be found elsewhere. In +such cases, the letter(s) cannot be treated as an Address Number, +because an Address Number must be an integer. The letter(s) also cannot +be an Address Number Prefix or Address Number Suffix, because neither +of those can be created except in conjunction with an Address Number. +Instead, the letter(s) should be treated a Subaddress Identifier in an +Unnumbered Thoroughfare Address. (For example: Complete Street Name = +"Calle Sanchez", Complete Subaddress Identifier = "AB", Complete Place +Name = "Mayaguez" State Name = "PR"). As an alternative, the address +may be classified in the General Address Class and treated accordingly. + + + + + + + + + The portion of the Complete +Address Number which follows the Address Number itself. +1. This element is not found in most Complete Address Numbers. When +found, it should be separated from the Address Number so that the +Address Number can be maintained as an integer for sorting and quality +control tests. +2. Informally an Address Number and Address Number Suffix may be +written with or without a space between them. Within this standard, the +default assumption is that an empty space separates elements unless +stated otherwise. The Attached Element can be used to indicate where +the assumed space between the Address Number and Address Number Suffix +has been omitted within an address file (see Attached Element for +additional notes). +3. If a hyphen appears between the Address Number and the Address +Number Suffix, the hyphen is included in the Address Number Suffix. +4. When milepost Complete Address Numbers include decimal fractions, +the integer portion of the milepost number is treated as the Address +Number, and the fraction (including the decimal point) is treated as an +Address Number Suffix. (See Complete Address Number for additional +notes on milepost address numbers.) + + + + + + + + + + + A word or phrase in a +Complete Street Name that +1. Precedes and modifies the Street Name, but is separated from it by a +Street Name Pre Type or a Street Name Pre Directional or both, or +2. Is placed outside the Street Name so that the Street Name can be +used in creating a sorted (alphabetical or alphanumeric) list of street +names. + + + + + + + + + + A word preceding the Street +Name that indicates the direction or position of the thoroughfare +relative to an arbitrary starting point or line, or the sector where it +is located. + + + + + + + + + + A word or phrase that +precedes the Street Name and identifies a type of thoroughfare in a +Complete Street Name. + + + + + + + + + + +Official name of a street as assigned by a local +governing authority, or an alternate (alias) name that +is used and recognized, excluding street types, +directionals, and modifiers. +1. Each jurisdiction should establish its own list of +street names and use it as a domain of values to +validate addresses. Alternate and Official names are +distinguished by the address attribute "Alias Status +Attribute" +2. Local addressing authorities are urged to follow +consistent internal street naming practices, and to +resolve internal street name inconsistencies, especially +for numbered streets ("Twentieth" or "20th" ?), internal +capitalization ("McIntyre" or "Mcintyre" ?), hyphens, +and apostrophes. +3. If alternate or abbreviated versions of street names +are needed for a specialized purpose such as mailing or +emergency +dispatch, they can be created in views or +export routines. + + + + + + + + + A word or phrase in a +Complete Street Name that follows and modifies the Street Name, but is +separated from it by a Street Name Post Type or a Street Name Post +Directional or both. + + + + + + + + + + A word preceding the Street +Name that indicates the direction or position of the thoroughfare +relative to an arbitrary starting point or line, or the sector where it +is located. + + + + + + + + + + A word or phrase that follows +the Street Name and identifies a type of thoroughfare in a Complete +Street Name. + + + + + + + + + + + + +The order in which SubaddressType and +SubaddressIdentifier appear within an +SubaddressElement when expressed as text. "Apartment 7" + + + + + + SubaddressType first, then SubaddressIdentifier +(or: SubaddressElement does not include an SubaddressType). +Example: "Floor 7" + + + + + SubaddressIdentifier first, then SubaddressType. +Example: "Empire Room" + + + + + Order is not known or unstated. + + + + + + + + +This is a modifier to the SubaddressIdentifier element and this +cannot exist without it. The type of structure (when +several structures are found at the same address), e.g., +Apartment, Tower, Block. Used with Building Identifier +to designate one of several structures at a given site. +Fits within the general USPS definition of a "secondary +address designator" and EPA definitions of "secondary +address identifier" + + + + + + + +The letters, numbers, words or combination thereof used +to distinguish one structure from another when several +occur at the same address. Used with +SubaddressType to designate one of several +structures at a given site. Fits within the USPS +definition of a "secondary address designator" and the +general EPA definition of "secondary address +identifier" + + + + + + + +A single combination of SubaddressType and +SubaddressIdentifier (or, in some cases, a +SubaddressIdentifier alone), which, alone or in +combination with other SubaddressElements, distinguishes +one subaddress within or between structures from another +when several occur within the same feature. See +CompleteSubaddress for a definition of "subaddress." + + + + + + + + + + + + + + + +The name by which a prominent feature is publicly known. +Landmarks usually have a street address. A landmark name +does not imply official historic landmark status, but +simply a commonly used name that substitutes for an +address number and street name in identifying the +location of a specific building or feature. Generally +the use of a landmark's street address is preferable +because it is unambiguous. All landmark names should be +cross-referenced to a street address or other coordinate +location. + + + + + + + + + + + + + +A named area, sector, or development that is not an +incorporated municipality or other governmental unit, +such as a neighborhood in a city, or a rural settlement +in unincorporated area. Often called "urbanization" in +Puerto Rican addressing usage. +1. "Urbanizacion", commonly used in urban areas of +Puerto Rico, is an important part of the address. Street +names and address ranges are often repeated in a city, +especially where a city has annexed older towns; they are +distinguished by their urbanizacion or community name. +2. Certain other words can be used in place of +"urbanizacion": extenciones, mansiones, reparto, villa, +parque, jardine, altura, alturas, colinas, estancias, +extension, quintas, sector, terraza, villa, villas. +3. For more information on Puerto Rican addressing +conventions, see USPS Publication 28 Section 29, and +USPS "Addressing Standards for Puerto Rico and the +Virgin Islands". + + + + + + + + + + + + +The name given by the U.S. Postal Service to the +post office from which mail is delivered to the +address. In many places this will be different from the name +of the municipality in which the address is physically located. +The name given by the U.S. Postal Service to the +post office from which mail is delivered to the +address. In many places this will be different +from the name of the incorporated municipality +in which the address is physically located. + + + + + + +The name of the municipality (city, township, or +other non-county local government) in which the +address is physically located. In many places +this will be different than the city name used +by the U.S. Postal Service. +Required by most local governments for tax and services +determinations. This will be null for addresses in unincorporated +portions of counties. + + + + + + +The primary administrative subdivision of a state in the United States. + + + + + + + + +The primary legal subdivision of the United States, +represented by its two letter USPS abbreviation. +This is the only element stored in abbreviated form. + + + + + + + + + + +A five-digit code that identifies a specific pseudo +geographic delivery area. ZIP Codes can represent an +area within a state, an area that crosses state +boundaries (unusual condition) or a single building or +company that has a very high mail volume. "ZIP" is an +acronym for Zone Improvement Plan. Zero pad from the +left to fill the range as in 01776. + + + + + + + + + +A four-digit extension of the five-digit Zip Code that +identifies a portion of a carrier route for USPS mail +delivery. Zero pad from the left to fill the range as in +0030. + + + + + + + + + +The name of the country in which the address is located. +1.Although the scope of this standard is restricted to US addresses, this item is +included for two reasons: to facilitate reconciliation with address standards of +other nations, and to accommodate files which mix +addresses from the US and other countries. +2. ISO 3166-1 official short English names are +specified because they are familiar and concise, and +because ISO 3166-1 is specified in the UPU address standard. +3. The names can be found at: +http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html + + + + + + + +A box used for receipt of USPS mail. The box may be +located in the post office lobby (e.g. PO Box), on the +customer's premises or other USPS authorized place (e.g. +rural route box). + + + + + + + + + +The numbers or letters distinguishing one box from +another within a post office. May include slash, hyphen +or period. + + + + + + + + + A container for the receipt of USPS mail uniquely +identified by the combination of a USPS Box Type and a USPS Box ID. + + + + + + + + + + +A collection of postal boxes served from a single distribution point. +This group includes rural routes, highway contract routes, postal service centers, +overseas military common mail rooms and military unit numbers. + + + + + + + + + +The numbers or letters distinguishing one group of boxes +from another within a distribution point. May include +hyphen, slash or period. + + + + + + + + + + + + + + + + + + + + + +A central point where mail may be picked up by the +addressee. Two values are permitted: "General Delivery" +(for post offices), and ship's names (for overseas military addresses). + + + + + + + + + +A Concatenation of codes found in FIPS 5-2, 6-4, and +55-3 data guides, with a locally defined code that MUST +be defined in the metadata. The general format is +(expressed as regular expressions) +[0-9]{2}[0-9]{3}[0-9]{5}[0-9]{4}. + + + + + + + + + + The X coordinate of the +address location. + + + + + + The Y coordinate of the +address location. + + + + + + +The longitude coordinate of the address location, noted in decimal degrees. For +point and polygon features, coordinate pairs typically locate the point of +assignment: a centroid point, a point locating the entry to a +property, etc. + + + + + + + +The latitude coordinate of the address location, noted +in decimal degrees. For point and polygon features, +coordinate pairs typically locate the point of +assignment: a centroid point, a point locating the entry +to a property, etc. + + + + + + + +The USNG or US National Grid is an alphanumeric +reference system that overlays the Universal Transverse +Mercator (UTM) numerical coordinate system. A USNG +coordinate consists of three parts, the: +1. Grid Zone Designation (GZD) for worldwide unique +geoaddresses (two digits plus one letter, developed from +the UTM system). +2. 100,000-meter Square Identification for regional +areas (two letters). +3. Grid Coordinates for local areas (always an even +number of digits between 2 and 10 depending upon +precision necessary to uniquely identify the location). +Look to www.fgdc.gov/standards/status/usng.html for a +normative definition. +Adapted from US National Grid, FDGC-STD-011-2001, Section 3.3 + + + + + + + + + Distance of the address +in specified units above or below a vertical datum, as defined by a +specified coordinate reference system. + + + + + + +Floor or level of the structure. The lowest level of a building is 1, and +ascending numbers are assigned in order to each higher level. + + + + + + + + + A name or number which, +along with the Address Coordinate Reference System Authority, +identifies the coordinate reference system to which Address X +Coordinate and Address Y Coordinate. Address Latitude and Address +Longitude, US National Grid Coordinate, or Address Elevation values +are referenced. + + + + + + The Authority that +assigns the unique Address Coordinate Reference System ID (number or +name) to the Address Coordinate Reference System to which the +Address X Coordinate and Address Y Coordinate, Address Latitude and +Address Longitude, US National Grid Coordinate, or Address Elevation +are referenced. + + + + + + + + + + + + + The unique +identification number assigned to an address by the addressing +authority. The ID number must be unique for each address assigned. + + + + + + + + + A unique identifier of +the Address Reference System for a specified area (Address Reference +System Extent). + + + + + + The name of the address +system used in a specified area (Address Reference System Extent). + + + + + + + The Authority that +assigns the unique Address Coordinate Reference System ID (number or +name) to the Address Coordinate Reference System to which the +Address X Coordinate and Address Y +Coordinate, Address Latitude and Address Longitude, US +National Grid Coordinate, or Address Elevation are referenced. + + + + + + + Boundary of the area(s) +within which an Address Reference System is used. + + + + + + + + + +The category of address reference system in use. The +type of reference system determines and guides the +assignment of numbers within the Address Reference +System Extent. + + + + + + + + + + + + + + +The rules by which address numbers, street names and +other components of a thoroughfare address are determined. + + + + + + + + + + + + + + This element defines a +block in an Address Reference System, and sets forth the rules for +block ranges and block breaks. + + + + + + The rules for numbering +along a thoroughfare, including parity (odd/even side definition), +and numbering increment distance and value. + + + + + + The rules for the +selection and use of street names within an Address Reference System + + + + + + + Rules pertaining to the +use of street types (suffix and prefix), directionals (prefix and +suffix), and modifiers (prefix and suffix) of street names. + + + + + + + This element contains +rules for the use of place names, state names, country names, and +ZIP Codes within the jurisdiction of an Address Authority. + + + + + + + The rules that are +applied to the addressing of areas within structures as subaddresses +(units, suites, apartments, spaces, etc.) within a given Address +Reference System + + + + + + The line that defines the +points of origin for address numbering along thoroughfares that +intersect it, or which are numbered in parallel to streets that +intersect it. It may be a road, another geographic feature, or an +imaginary line. + + + + + + + + Coordinate location of the +beginning point of address numbering along an Address Reference System +Axis. + + + + + + + + The degree to which a +specific, named address grid is tilted off a north/south or east/west +orientation. + + + + + + + + + A street, geometric +line, or other line used to measure address number assignment +intervals and ranges within an Address Reference System. The Address +Reference System Reference Polyline may consist of a beginning +point, one or more segments of a street centerline, geographically +identified line, such as a line of latitude or longitude, a +land-division based line, such as a township, range, or section +line, or an imaginary line constructed for the purpose of allocating +address ranges and address numbers. + + + + + + + + A point along a street +or other thoroughfare within an Address Reference System where an +address range beginning and/or endpoint is located. + + + + + + + + + A line connecting the +Address Reference System Range Breakpoints with the same value +within an Address Reference System + + + + + + + + A line connecting the +Address Reference System Range Breakpoints with the same value +within an Address Reference System + + + + + + + + A bibliographic +reference to an ordinance, map, manual, or other document in which +the rules governing an Address Reference System are written. + + + + + + + An Address Reference System is a set of rules and +geometries that define how addresses are assigned along thoroughfares and/or within a given area +(Address Reference System Extent). At minimum, an Address Reference System must specify where +Complete Address Number sequences begin and how Complete Address Numbers are assigned along +the length of thoroughfares governed by the Address Reference System within the Address Reference +System Extent. Address Reference Systems typically provide rules governing left-right parity of +Complete Address Numbers, assignment of Street Names and street types, use of directionals and quadrants, and +other aspects of address assignment. An Address Reference System that is based on axis lines, an Address +Reference System Axis defined for each axis used to define address assignment. Each Address Reference System +Axis must have an identified Address Reference System Axis Point Of Beginning. An Address Reference System +is known by it’s Address Reference System Name (required). Additional business rules for an Address +Reference System are described in the Address Reference System Rules. + + + + + + + + + + + + + + + + + + + +The identifier of an address that is related to the identifier of another address. + + + + + + + + + + + The manner in which an +address identified by a RelatedAddressID is related to an address +identified by an AddressID. + + + + + + + + + The unique identifier +assigned (within the reference transportation base model) to a +transportation feature to which an address is related. see U.S. +Federal Geographic Data Committee, "Framework Data Content +Standard Part 7: Transportation base." +"Framework Data Content Standard Part 7c: Roads." + + + + + + + + + The unique identifier +assigned to the particular feature that represents an address within +a transportation base model. see U.S. Federal Geographic Data +Committee, "Framework Data Content Standard Part 7: Transportation +base." "Framework Data Content Standard Part 7c: Roads." + + + + + + + + + The type of +transportation feature (TranFeature) used to represent an address. +For transportation features generally: U.S. Federal Geographic Data +Committee, "Framework Data Content Standard Part 7: Transportation +base." For roads features only: U.S. Federal Geographic Data +Committee, "Framework Data Content Standard Part 7: Transportation +base," as extended by "Framework Data Content Standard Part 7c: Roads." + + + + + + + + + The authority that +maintains the transportation base model specified by the Address +Transportation System Name, and assigns Address Transportation +Feature I Ds to the features it represents. + + + + + + + + + The name of the +transportation base model to which the address is related. + + + + + + + + + The primary permanent +identifier, as defined by the Address Parcel Identifier Source, for +a parcel that includes the land or feature identified by an address. +A parcel is a single cadastral unit, which is the spatial +extent of the past, present, and future rights and interests in real +property. Definition source for parcel identifier: Adapted from FGDC, +May 2008. Geographic Information Framework Data Content Standard +Part 1: Cadastral. Section 4.2. Definition source for parcel: FGDC, May 2008. Cadastral +Data Content Standard for the National Spatial Data Infrastructure. +Version 1.4 – Fourth Revision. p. 45. (Part 3.2 Parcel) + + + + + + + + + The permanent +identifier for the agency, organization, or jurisdiction that +assigns and maintains the Address Parcel Identifier. +Definition source: FGDC, May 2008. Geographic Information +Framework Data Content Standard Part 1: Cadastral. Section 4.7. + + + + + + + + + +The unique identification number assigned to an address +by the addressing authority. The ID number must be +unique for each address assigned by an addressing +authority. This, combined with the FIPS number of the +addressing authority, can provide a unique ID for every +address in the US. + + + + + + + + + +The unique identification number of and address related to this one. + + + + + + + + + +Identifies whether an addresses receives USPS mail +delivery (that is, the address is occupiable, and the +USPS provides on-premises USPS mail delivery to it). + + + + + + + The USPS delivers mail to this address. + + + + + + The USPS does not deliver mail to this address. + + + + + + It is unknown whether the USPS delivers mail to +this address. + + + + + + + +The side of the transportation segment (right , left, +both, none, unknown) on which the address is located. +U.S. Federal Geographic Data Committee, "Framework Data +Content Standard Part 7: Transportation base," sections +7.3.2 and B.3.6 + + + + + + + The address is related to the right side of the street. + + + + + + The address is related to the left side of the street. + + + + + + The address pertains to both sides of the street. + + + + + + The address is not on either or both sides of +the street or the concept of side of street does not apply to the address. +For instance an intersection address would have a AddressSideOfStreet of none. + + + + + + + + + +The side of the transportation segment (right , left, +both, none, unknown) on which the address range applies. + + + + + + + The address is related to the right side of the street. + + + + + + The address is related to the left side of the street. + + + + + + The address pertains to both sides of the street. + + + + + + The address is not on either or both sides of +the street or the concept of side of street does not apply to the address. +For instance an intersection address would have a AddressSideOfStreet of none. + + + + + + + + + +The set of Address Number Parity values specified in the Address Reference +System Numbering Rules for the Address Numbers in an address range. + + + + + + + All Address Numbers in the range have an Address Number Parity of "even". + + + + + + All Address Numbers in the range have an Address Number Parity of "odd". + + + + + + Both even and odd Address Numbers are found in the range. + + + + + + No Address Number is found within the range. + + + + + + The parity of the Address Numbers in the range +in not known. + + + + + + + +Whether the address, street name, landmark name, or +place name is as given by the official addressing +authority (official), or an alternate or alias (official +or unofficial), or a verified error. + + + + + + + +The address or name as designated by the Address Authority. + + + + + + +An alternate or alias to the official address or +name that is also in official or popular use. +The Related Address ID can be used to link an +alternate or alias to the Address ID of the +official address. There are two types of +alternate or alias names, official and +unofficial, each of which has subtypes. + + + + + + +These are alternate names designated by an official Address Authority. + + + + + + An Address Authority may replace one +address or name with another, e.g. by renaming or renumbering. +The prior, older address should be retained as an alias, to +provide for conversion to the new address. + + + + + An Address Authority may establish a name or +number to be used in addition to the official address or name. For +example, a state highway designation (State Highway 7) may be +given to a locally-named road, or a memorial name may be applied +to an existing street by posting an additional sign, while the +local or original name and addresses continue to be recognized as +official. + + + + + +These are addresses or names that are used by the public or by an individual, but are not +recognized as official by the Address Authority. + + + + + + An address or name that is in popular use but is +not the official name or an official alternate or alias. + + + + + + In data processing, entry errors +occur. Such errors if frequently encountered may be corrected by +a direct match of the error and a substitution of a correct name. + + + + + + For data processing efficiency, +entities often create alternate names or abbreviations for internal +use. These must be changed to the official form for public use and +transmittal to external users. + + + + + An address that is posted, but is not +recognized by the Address Authority (e.g. a vanity address on a building); + + + + + + +An address that has been verified as being invalid, but which keeps appearing in address +lists. Different from Unofficial Alternate Names in that these addresses are known not to +exist. + + + + + + + +The earliest date on which the address is known to exist. + + + + + + + +The earliest date on which the address is known to no longer be valid. + + + + + + + +The locally defined ID for the DataSet. + + + + + + + +The type or classification of the address according to the classification standard. + + + + + + + + + + + + + + + + + + + +The type of feature identified by the address +Initial list of feature types: Building Utility Cabinet, +Telephone Pole, Building, Street block, street block +face, intersection, parcel, building, entrance, unit. +The list might be expanded indefinitely to include +infrastructure and other features. + + + + + + + + + +The Lifecycle status of the address. + + + + + + + + + + + + +The life cycle status of the address. + + + + + + +Address falls within a theoretical range, but has never been used. + + + + + + +Application pending for use of this address +(e.g., address tentatively issued for +subdivision plat that is not yet fully approved). + + + + + + +Address has been issued and is in use. + + + + + + +Address was issued, but is now obsolete (e.g. +street name has been changed), building was +demolished, etc. + + + + + + + + +Whether the address is as given by the official +addressing authority (official), or an unofficial +variant or equivalent of it (alias). + + + + + + + +The address or name as designated by the addressing authority. + + + + + + +In any of the address classes described in 2.2, the collective name element may have another +acceptable form. Some alternate names may be conditional, on attempt, i.e. if the alias +resolves the address no further alternate names should be considered. Other alternate names are +always applied, such as official renamings. All alternate names carry a limit of applicability +and a timeframe of applicability. The limit of applicability may be a limit to a single zipcode, +a naming authorities boundary, such as city or county limits, or a range of address numbers +with such a boundary. + + + + + + +Upon official renaming of an address, or renumbering of an address, or a series of +addresses, the prior, older address will occur in address lists for a period of time and +a conversion to current names or current addresses will need to be +provided. Such an entity may match a single address or a range of addresses. + + + + + + +The alternate name is established by a separate, or the same, naming authority. Such names may +apply to any address class, including landmarks. Such names would be established by naming +authorities with a geographically larger area of responsibility, containing all or part of a +naming authority with a smaller region, such as a state name overlaying a county name or a +county name overlaying a city or town name. Examples would be a state highway designation +(State Highway 7) overlaid upon locally named roads or a memorial highway overlaid on local +road names or state highway names. + + + + + + +Local communities hold on to address names much longer than do regional agencies. A community +may use a colloquial address name as much as 30 years after that name has either expired or is +no longer salient. This entry provides a conversion to a current name. + + + + + + +In data processing, entry errors occur. Such errors if frequently encountered may be +corrected by a direct match of the error and a substitution to a current name. + + + + + + +For data processing efficiency, entities often create alternate names for internal use. When +such alternate names are exposed to other entities they need to be resolved to a current name. + + + + + + +Address is posted, but not recognized by addressing authority (e.g. vanity address on a building). + + + + + + +Address is verified as being invalid, but keeps appearing in address lists. Different from Unofficial Altername +Names in that these are known not to exist; Address has been issued and is in use. + + + + + + + + +A status flag, or an explanatory note, for an address that is not correct according to the address schema in +which it is located, but is nonetheless a valid address. This field may be used to identify the type of anomaly +(e.g. wrong parity, out of sequence, out of range, etc.) rather than simply whether or not it is anomalous. Local +jurisdictions may create specific categories for anomalies. + + + + + + + +Whether an address range covers part of a transportation segment, one segment, multiple +segments, or the entire thoroughfare within the Address Reference System Extent. + + + + + + + + + + + + + + +Whether the low Complete Address Number of an address range is closer to the +from-node or the to-node of the transportation segment(s) that the range is related to. + + + + + + The low address is nearer the from node; numbers +ascend toward the to node. + + + + + The low address is nearer the to node; numbers +descend toward the to node. + + + + + The numbers run in opposite directions on either +side of the street. The low number on the left side is nearer the +from node. The low number on the right side is nearer the to node. + + + + + + The numbers run in opposite +directions on either side of the street. The low number on the left side +is nearer the to node. The low number on the right side is nearer the from node. + + + + + + The address range has null values for +the high and low Complete Address Numbers. + + + + + + Does not apply (transportation +segment directionality is inconsistent within the range). + + + + + + The address range directionality is not known. + + + + + + + + This attribute states +whether an address range (either a Two Number Address Range +or a Four Number Address Range) is actual or potential. + + + + + + +The low and high CompleteAddressNumbers are numbers that have been assigned and are in use +along the addressed feature. + + + + + + +The low and high CompleteAddressNumbers are numbers that would be assigned if all possible +numbers were in use along the addressed feature, and there were no gaps between the +range and its preceding and following ranges. + + + + + + +The relationship between the low and high CompleteAddressNumbers and the addressed feature +is unknown. + + + + + + + +A text description providing more detail on how to identify or find the addressed feature. + + + + + + + The property of an +Address Number with respect to being odd or even. "A relation between a pair of integers: if both integers +are odd or both are even they have the same parity; if one is odd and the other is even they have different +parity." + + + + + + + + + + +This attribute identifies when two or more Complete Address Number elements or two +or more Complete Street Name elements have been combined without a space +separating them. + + + + + + +The elements inside the CompleteAddressNumber or +CompleteStreetName are attached and need special parsing rules. + + + + + + + + + + +"The Concept of Left and Right sides of a feature that a Number Range Applies to. + + + + + + + + + + + +"The Concept of Low or High of numbers participating in a Number Range Applies to. + + + + + + + + + + + +A geographic area where the street names conform to a theme. For example, some neighborhoods +feature streets named for birds, US presidents or trees. A subset of the +complete street name domain applies to this area. + + + + + + + + + + + +Name of the address scheme that operates over a specified area, i.e.: mountain addresses, +plains addresses. + + + + + + + + + +A description of an Address Scheme that includes business rules about parity, naming +conventions, and other matters concerning the assignment and maintenance +of an addressing scheme. This element may refer to an address ordinance, Standard +Operating Procedures manual or other external document wherein the rules for addresses in a given scheme +are written. + + + + + + + + + + + +Location where the address axes meet. + + + + + + + + + + + + +Address axes define the boundaries between adjoining zones in address schema. Those zones may +be quadrants (northwest, northeast, southeast, southwest) or other +geographic divisions. Lowest address numbers occur nearest an axis. + + + + + + + + + + + +Boundary of the area over which an address schema is used when assigning addresses. + + + + + + + + + +Source from whom the data provider obtained the address, or with whom the data provider +validated the address. Important if the data provider did not obtain the +address directly from the local authority. + + + + + + + + + +The authority (e.g., municipality, county) that created or has jurisdiction over the +creation of an address. The addressing authority may or may not be +the same as the physical or postal jurisdiction noted for the address. + + + + + + + + + +The FIPS or GNIs code for the authority (e.g., municipality, county) that created or has jurisdiction +over the creation of an address. The addressing authority may or may not be the same as +the physical or postal jurisdiction noted for the address. + + + + + + + + + + +An action command for incremental datasets. Add indicates that the information is new. +DELETE indicates that the information is to be removed. + + + + + + + + + + +Whether the Delivery Address includes or excludes the Complete Subaddress. + + + + + + The Delivery Address includes the Complete +Subaddress (if any) + + + + + The Delivery Address includes the Complete +Subaddress (if any) + + + + + Not stated/no information (default value) + + + + + + + + + +The entire address, unparsed, except for the Place Name, State Name, +Zip Code, Zip Plus 4, Country Name, and, optionally, Complete Subaddress elements. + + + + + + + + + + + +The unparsed accumulation of Postal City, State, and ZIPCode elements. + + + + + + + + + +This element is defined solely for use with the General Address class, which is constructed +to accommodate and mix addresses of all types (e.g., a general postal +mailing list or contact list). Place Name, State Name, Zip Code, and +Zip Plus 4, which appear in all address classes, are kept separate +from the rest of the address. No longer a parsed datatype. Content +still represents it as such. + + + + + + + + + +This element is defined solely for use with the General Address class, which is constructed +to accommodate and mix addresses of all types (e.g., a general postal +mailing list or contact list). Place Name, State Name, Zip Code, and +Zip Plus 4, which appear in all address classes, are kept separate +from the rest of the address. No longer a parsed datatype. Content +still represents it as such. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The portion of the Complete Address +Number which follows the Address Number itself. +1. The Address Number element is required to compose a Complete Address +Number. The other elements are optional. +2. The Address Number must be converted from integer to characterString +when constructing the Complete Address Number. +3. The great majority of Complete Address Numbers are simple integers. +Infrequently the integer is followed by an alphanumeric Address Number +Suffix, typically a letter or a fraction. Even more rarely the integer +is preceded by an alphanumeric Address Number Prefix. In addition to +the typical numbering format, four special-case formats are found in +the United States: Milepost addresses, grid-style address numbers, +hyphenated address numbers, and other Address Number Prefix letters or +symbols. +4. Milepost Complete Address Numbers (Example: "Milepost 240"). Road +mileposts are sometimes used to specify locations along highways and +similar roads. Mileposts are often used to locate, for example, crash +sites, emergency call boxes, bridge locations, inspection stations, +roadside rest stops, railroad crossings, highway exits, park and +campground entrances, RV parks, and truck stops. Milepost addresses +should be parsed as follows: +---"Milepost" (or equivalent word or phrase, such as "kilometer" or +'Mile Marker") is an Address Number Prefix +---The milepost number (integer part only) is an Address Number +---Tenths, if given, are an Address Number Suffix, including the decimal point. +---The road name or highway route number is a Complete Street Name, and +parsed accordingly +Note that, in Puerto Rico, road measurements are given in kilometers +(km), which are sometimes divided into hectometers (hm). +5. Grid-style Complete Address Numbers (Example: "N89W16758"). In +certain communities in and around southern Wisconsin, Complete Address +Numbers include a map grid cell reference preceding the Address Number. +In the examples above, "N89W16758" should be read as "North 89, West +167, Address Number 58". "W63N645" should be read as "West 63, North, +Address Number 645." The north and west values specify a locallydefined +map grid cell with which the address is located. Local +knowledge is needed to know when the grid reference stops and the +Address Number begins. +6. Hyphenated Complete Address Numbers (Example: "5-5415"). In some +areas (notably certain parts of New York City, southern California, and +Hawaii), Complete Address Numbers often include hyphens. Hyphenated +Complete Address Numbers should not be confused with Two Number Address +Ranges. The former is a single Complete Address Number while the latter +includes two Complete Address Numbers. +7. Hyphenated Complete Address Numbers can be parsed so that the number +indicating the site or structure is the Address Number, and the +remainder (including the hyphen) is the Address Number Prefix or +Address Number Suffix. +8. In New York City, hyphenated Complete Address Numbers (the +recommended format for storing complete address numbers in New York +City) follow a more complex set of rules. The number to the left of the +hyphen indicates the "block" (conceptually--the number does not always +change at street intersections and sometimes it changes within a single +block face). The number to the right of the hyphen indicates the site +or house number within the "block". If the Address Number is less than +ten, it is written with a leading zero, as in 194-03 1/2 above. +Additional leading zeros may be added to either number to provide for +correct sorting if the entire Complete Address Number is treated as a +characterString with the hyphen included. Within the address standard, +these numbers can be constructed and parsed as follows: +a. The left-side number (194) and the hyphen form the Address Number +Prefix element (text), with leading zeros shown if needed. +Federal Geographic Data Committee FGDC Document Number FGDC-STD-016-2011 +United States Thoroughfare, Landmark, and Postal Address Data Standard 461 +b. The right-side number (3) is the Address Number (integer), converted +to a characterString with the leading zero(s) added (03) upon +conversion to Complete Address Number. +c. The suffix, if any (such as the "1/2" in 194-03 1/2), is an Address Number Suffix. +9. Other Address Number Prefix Letters or Symbols. In Puerto Rico, +Address Numbers are commonly preceded by an Address Number Prefix +letter (e.g. "A 19"). In Portland, OR, negative Address Numbers have +been assigned in an area along the west bank of the Willamette River. +The minus sign is represented as a leading zero ("0121" and "121" are +two different Complete Address Numbers). In such cases the leading zero +should be treated as an Address Number Prefix. +10. Zero as a Complete Address Number. Special care should be taken +with records where the Address Number is 0 (zero). Occasionally zero is +issued as a valid address number (e.g. 0 Prince Street, Alexandria, VA +22314) or it can be imputed (1/2 Fifth Avenue, New York, NY 10003, for +which the Address Number would be 0 and the Address Number Suffix would +be "1/2"). More often, though, the Address Number is either missing or +non-existent, and null value has been converted to zero. +11. Address Numbers vs. Address "Letters". In rare instances, +thoroughfare addresses may be identified by letters instead of numbers +(for example, "A" Main Street, "B" Main Street, "C" Main Street, "AA" +Main Street, "AB" Main Street, etc.) A few thousand such cases have +been verified in Puerto Rico, and others may be found elsewhere. In +such cases, the letter(s) cannot be treated as an Address Number, +because an Address Number must be an integer. The letter(s) also cannot +be an Address Number Prefix or Address Number Suffix, because neither +of those can be created except in conjunction with an Address Number. +Instead, the letter(s) should be treated a Subaddress Identifier in an +Unnumbered Thoroughfare Address. (For example: Complete Street Name = +"Calle Sanchez", Complete Subaddress Identifier = "AB", Complete Place +Name = "Mayaguez" State Name = "PR"). As an alternative, the address +may be classified in the General Address Class and treated accordingly. + + + + + + + + + + + + + + + + + + + + +{ Complete Address Number (low)*} + { Separator Element *} + { Complete Address Number +(high)*} A set of two address numbers, separated by a "Separator", +representing the low and high numbers of an address range. An address +number range element should be accompanied by an Address Range Type +Attribute that describes the type of range presented in this element. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Support information and record level metadata for each Address + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO15924_2004.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO15924_2004.xml new file mode 100644 index 0000000000..ef82fb533b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO15924_2004.xml @@ -0,0 +1,1471 @@ + + + + + + This International Standard provides a code for the presentation of names of scripts. The codes were devised for use in terminology, lexicography, bibliography, and linguistics, but they may be used for any application requiring the expression of scripts in coded form. + + ISO15924_2004 + Codes for the representation of names of scripts + + + + Arabic + arabe + Arabic + + Arab + 160 + + + + + + Imperial Aramaic + arameen imperial + Imperial_Aramaic + + Armi + 124 + + + + + + Armenian + armenien + Armenian + + Armn + 230 + + + + + + Avestan + avestique + Avestan + + Avst + 134 + + + + + + Balinese + balinais + Balinese + + Bali + 360 + + + + + + Bamum + bamoum + Bamum + + Bamu + 435 + + + + + + Batak + batak + + Batk + 365 + + + + + + Bengali + bengali + Bengali + + Beng + 325 + + + + + + Blissymbols + symboles Bliss + + Blis + 550 + + + + + + Bopomofo + bopomofo + Bopomofo + + Bopo + 285 + + + + + + Brahmi + brahmi + + Brah + 300 + + + + + + Braille + braille + Braille + + Brai + 570 + + + + + + Buginese + bouguis + Buginese + + Bugi + 367 + + + + + + Buhid + bouhide + Buhid + + Buhd + 372 + + + + + + Chakma + chakma + + Cakm + 349 + + + + + + Unified Canadian Aboriginal Syllabics + syllabaire autochtone canadien unifie + Canadian_Aboriginal + + Cans + 440 + + + + + + Carian + carien + Carian + + Cari + 201 + + + + + + Cham + cham (cam, tcham) + + Cham + 358 + + + + + + Cherokee + tcheroki + Cherokee + + Cher + 445 + + + + + + Cirth + cirth + + Cirt + 291 + + + + + + Coptic + copte + Coptic + + Copt + 204 + + + + + + Cypriot + syllabaire chypriote + Cypriot + + Cprt + 403 + + + + + + Cyrillic + cyrillique + Cyrillic + + Cyrl + 220 + + + + + + Cyrillic (Old Church Slavonic variant) + cyrillique (variante slavonne) + + Cyrs + 221 + + + + + + Devanagari (Nagari) + devanagari + Devanagari + + Deva + 315 + + + + + + Deseret (Mormon) + deseret (mormon) + Deseret + + Dsrt + 250 + + + + + + Egyptian demotic + demotique egyptien + + Egyd + 070 + + + + + + Egyptian hieratic + hieratique egyptien + + Egyh + 060 + + + + + + Egyptian hieroglyphs + hieroglyphes egyptiens + Egyptian_Hierogyphs + + Egyp + 050 + + + + + + Ethiopic (Ge'ez) + ethiopien (ge'ez, gueze) + Ethiopic + + Ethi + 430 + + + + + + Georgian (Mkhedruli) + georgien (mkhedrouli) + Georgian + + Geor + 240 + + + + + + Khutsuri (Asomtavruli and Nuskhuri) + khoutsouri (assomtavrouli et nouskhouri) + + Geok + 241 + + + + + + Glagolitic + glagolitique + Glagolitic + + Glag + 225 + + + + + + Gothic + gotique + Gothic + + Goth + 206 + + + + + + Greek + grec + Greek + + Grek + 200 + + + + + + Gujarati + goudjarati (gujrati) + Gujarati + + Gujr + 320 + + + + + + Gurmukhi + gourmoukhi + Gurmukhi + + Guru + 310 + + + + + + Hangul (Hangul, Hangeul) + hangul (hangul, hangeul) + Hangul + + Hang + 286 + + + + + + Han (Hanzi, Kanji, Hanja) + ideogrammes han (sinogrammes) + Han + + Hani + 500 + + + + + + Hanunoo (Hanunoo) + hanounoo + Hanunoo + + Hano + 371 + + + + + + Han (Simplified variant) + ideogrammes han (variante simplifiee) + + Hans + 501 + + + + + + Han (Traditional variant) + ideogrammes han (variante traditionnelle) + + Hant + 502 + + + + + + Hebrew + hebreu + Hebrew + + Hebr + 125 + + + + + + Hiragana + hiragana + Hiragana + + Hira + 410 + + + + + + Pahawh Hmong + pahawh hmong + + Hmng + 450 + + + + + + (alias for Hiragana + Katakana) + (alias pour hiragana + katakana) + Katakana_Or_Hiragana + + Hrkt + 412 + + + + + + Old Hungarian + ancien hongrois + + Hung + 176 + + + + + + Indus (Harappan) + indus + + Inds + 610 + + + + + + Old Italic (Etruscan, Oscan, etc.) + ancien italique (etrusque, osque, etc.) + Old_Italic + + Ital + 210 + + + + + + Javanese + javanais + Javanese + + Java + 361 + + + + + + Japanese (alias for Han + Hiragana + Katakana) + japonais (alias pour han + hiragana + katakana) + + Jpan + 413 + + + + + + Kayah Li + kayah li + Kayah_Li + + Kali + 357 + + + + + + Katakana + katakana + Katakana + + Kana + 411 + + + + + + Kharoshthi + kharochthi + Kharoshthi + + Khar + 305 + + + + + + Khmer + khmer + Khmer + + Khmr + 355 + + + + + + Kannada + kannara (canara) + Kannada + + Knda + 345 + + + + + + Korean (alias for Hangul + Han) + coreen (alias pour hangul + han) + + Kore + 287 + + + + + + Kaithi + kaithi + Kaithi + + Kthi + 317 + + + + + + Tai Tham (Lanna) + tai tham (lanna) + Tai_Tham + + Lana + 351 + + + + + + Lao + laotien + Lao + + Laoo + 356 + + + + + + Latin (Fraktur variant) + latin (variante bris�e) + + Latf + 217 + + + + + + Latin (Gaelic variant) + latin (variante gaelique) + + Latg + 216 + + + + + + Latin + latin + Latin + + Latn + 215 + + + + + + Lepcha (Rong) + lepcha (rong) + Lepcha + + Lepc + 335 + + + + + + Limbu + limbou + Limbu + + Limb + 336 + + + + + + Linear A + lineaire A + + Lina + 400 + + + + + + Linear B + lineaire B + Linear_B + + Linb + 401 + + + + + + Lisu (Fraser) + lisu (Fraser) + Lisu + + Lisu + 399 + + + + + + Lycian + lycien + Lycian + + Lyci + 202 + + + + + + Lydian + lydien + Lydian + + Lydi + 116 + + + + + + Mandaic, Mandaean + mandeen + + Mand + 140 + + + + + + Manichaean + manicheen + + Mani + 139 + + + + + + Mayan hieroglyphs + hieroglyphes mayas + + Maya + 090 + + + + + + Meroitic + meroitique + + Mero + 100 + + + + + + Malayalam + malayalam + Malayalam + + Mlym + 347 + + + + + + Moon (Moon code, Moon script, Moon type) + ecriture Moon + + Moon + 218 + + + + + + Mongolian + mongol + Mongolian + + Mong + 145 + + + + + + Meitei Mayek (Meithei, Meetei) + meitei mayek + Meetei_Mayek + + Mtei + 337 + + + + + + Myanmar (Burmese) + birman + Myanmar + + Mymr + 350 + + + + + + Nakhi Geba ('Na-'Khi 'Ggo-'baw, Naxi Geba) + nakhi geba + + Nkgb + 420 + + + + + + N'Ko + n'ko + Nko + + Nkoo + 165 + + + + + + Ogham + ogam + Ogham + + Ogam + 212 + + + + + + Ol Chiki (Ol Cemet', Ol, Santali) + ol tchiki + Ol_Chiki + + Olck + 261 + + + + + + Old Turkic, Orkhon Runic + orkhon + Old_Turkic + + Orkh + 175 + + + + + + Oriya + oriya + Oriya + + Orya + 327 + + + + + + Osmanya + osmanais + Osmanya + + Osma + 260 + + + + + + Old Permic + ancien permien + + Perm + 227 + + + + + + Phags-pa + 'phags pa + Phags_Pa + + Phag + 331 + + + + + + Inscriptional Pahlavi + pehlevi des inscriptions + Inscriptional_Pahlavi + + Phli + 131 + + + + + + Psalter Pahlavi + pehlevi des psautiers + + Phlp + 132 + + + + + + Book Pahlavi + pehlevi des livres + + Phlv + 133 + + + + + + Phoenician + phenicien + Phoenician + + Phnx + 115 + + + + + + Miao (Pollard) + miao (Pollard) + + Plrd + 282 + + + + + + Inscriptional Parthian + parthe des inscriptions + Inscriptional_Parthian + + Prti + 130 + + + + + + Reserved for private use (start) + reserve a l'usage prive (debut) + + Qaaa + 900 + + + + + + Reserved for private use (end) + reserve a l'usage prive (fin) + + Qabx + 949 + + + + + + Rejang (Redjang, Kaganga) + redjang (kaganga) + Rejang + + Rjng + 363 + + + + + + Rongorongo + rongorongo + + Roro + 620 + + + + + + Runic + runique + Runic + + Runr + 211 + + + + + + Samaritan + samaritain + Samaritan + + Samr + 123 + + + + + + Sarati + sarati + + Sara + 292 + + + + + + Old South Arabian + sud-arabique, himyarite + Old_South_Arabian + + Sarb + 105 + + + + + + Saurashtra + saurachtra + Saurashtra + + Saur + 344 + + + + + + SignWriting + SignEcriture, SignWriting + + Sgnw + 095 + + + + + + Shavian (Shaw) + shavien (Shaw) + Shavian + + Shaw + 281 + + + + + + Sinhala + singhalais + Sinhala + + Sinh + 348 + + + + + + Sundanese + sundanais + Sundanese + + Sund + 362 + + + + + + Syloti Nagri + syloti nagri + Syloti_Nagri + + Sylo + 316 + + + + + + Syriac + syriaque + Syriac + + Syrc + 135 + + + + + + Syriac (Estrangelo variant) + syriaque (variante estranghelo) + + Syre + 138 + + + + + + Syriac (Western variant) + syriaque (variante occidentale) + + Syrj + 137 + + + + + + Syriac (Eastern variant) + syriaque (variante orientale) + + Syrn + 136 + + + + + + Tagbanwa + tagbanoua + Tagbanwa + + Tagb + 373 + + + + + + Tai Le + tai-le + Tai_Le + + Tale + 353 + + + + + + New Tai Lue + nouveau tai-lue + New_Tai_Lue + + Talu + 354 + + + + + + Tamil + tamoul + Tamil + + Taml + 346 + + + + + + Tai Viet + tai viet + Tai_Viet + + Tavt + 359 + + + + + + Telugu + telougou + Telugu + + Telu + 340 + + + + + + Tengwar + tengwar + + Teng + 290 + + + + + + Tifinagh (Berber) + tifinagh (berbere) + Tifinagh + + Tfng + 120 + + + + + + Tagalog (Baybayin, Alibata) + tagal (baybayin, alibata) + Tagalog + + Tglg + 370 + + + + + + Thaana + thana + Thaana + + Thaa + 170 + + + + + + Thai + thai + Thai + + Thai + 352 + + + + + + Tibetan + tibetain + Tibetan + + Tibt + 330 + + + + + + Ugaritic + ougaritique + Ugaritic + + Ugar + 040 + + + + + + Vai + vai + Vai + + Vaii + 470 + + + + + + Visible Speech + parole visible + + Visp + 280 + + + + + + Old Persian + cuneiforme persepolitain + Old_Persian + + Xpeo + 030 + + + + + + Cuneiform, Sumero-Akkadian + cuneiforme sumero-akkadien + Cuneiform + + Xsux + 020 + + + + + + Yi + yi + Yi + + Yiii + 460 + + + + + + Code for inherited script + codet pour ecriture heritee + Inherited + + Zinh + 994 + + + + + + Mathematical notation + notation mathematique + + Zmth + 995 + + + + + + Symbols + symboles + + Zsym + 996 + + + + + + Code for unwritten documents + codet pour les documents non ecrites + + Zxxx + 997 + + + + + + Code for undetermined script + codet pour ecriture indeterminee + Common + + Zyyy + 998 + + + + + + Code for uncoded script + codet pour ecriture non codee + Unknown + + Zzzz + 999 + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO3166-1.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO3166-1.xml new file mode 100644 index 0000000000..ae70183aef --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO3166-1.xml @@ -0,0 +1,1427 @@ + + + + + ISO 3166-1 is part of the ISO 3166 standard published by the International Organization for Standardization (ISO), and defines codes for the names of countries, dependent territories, and special areas of geographical interest. The official name of the standard is Codes for the representation of names of countries and their subdivisions - Part 1: Country codes. + + ISO3166-1 + Codes for the Representation of Country Names + + + AD + ANDORRA + + + + + AE + UNITED + + + + + AF + AFGHANISTAN + + + + + AG + ANTIGUA + + + + + AI + ANGUILLA + + + + + AL + ALBANIA + + + + + AM + ARMENIA + + + + + AN + NETHERLANDS + + + + + AO + ANGOLA + + + + + AQ + ANTARCTICA + + + + + AR + ARGENTINA + + + + + AS + AMERICAN + + + + + AT + AUSTRIA + + + + + AU + AUSTRALIA + + + + + AW + ARUBA + + + + + AZ + AZERBAIJAN + + + + + BA + BOSNIA + + + + + BB + BARBADOS + + + + + BD + BANGLADESH + + + + + BE + BELGIUM + + + + + BF + BURKINA + + + + + BG + BULGARIA + + + + + BH + BAHRAIN + + + + + BI + BURUNDI + + + + + BJ + BENIN + + + + + BM + BERMUDA + + + + + BN + BRUNEI + + + + + BO + BOLIVIA + + + + + BR + BRAZIL + + + + + BS + BAHAMAS + + + + + BT + BHUTAN + + + + + BV + BOUVET + + + + + BW + BOTSWANA + + + + + BY + BELARUS + + + + + BZ + BELIZE + + + + + CA + CANADA + + + + + CC + COCOS + + + + + CD + CONGO, + + + + + CF + CENTRAL + + + + + CG + CONGO + + + + + CH + SWITZERLAND + + + + + CI + C?TE + + + + + CK + COOK + + + + + CL + CHILE + + + + + CM + CAMEROON + + + + + CN + CHINA + + + + + CO + COLOMBIA + + + + + CR + COSTA + + + + + CU + CUBA + + + + + CV + CAPE + + + + + CX + CHRISTMAS + + + + + CY + CYPRUS + + + + + CZ + CZECH + + + + + DE + GERMANY + + + + + DJ + DJIBOUTI + + + + + DK + DENMARK + + + + + DM + DOMINICA + + + + + DO + DOMINICAN + + + + + DZ + ALGERIA + + + + + EC + ECUADOR + + + + + EE + ESTONIA + + + + + EG + EGYPT + + + + + EH + WESTERN + + + + + ER + ERITREA + + + + + ES + SPAIN + + + + + ET + ETHIOPIA + + + + + FI + FINLAND + + + + + FJ + FIJI + + + + + FK + FALKLAND + + + + + FM + MICRONESIA, + + + + + FO + FAROE + + + + + FR + FRANCE + + + + + GA + GABON + + + + + GB + UNITED + + + + + GD + GRENADA + + + + + GE + GEORGIA + + + + + GF + FRENCH + + + + + GH + GHANA + + + + + GI + GIBRALTAR + + + + + GL + GREENLAND + + + + + GM + GAMBIA + + + + + GN + GUINEA + + + + + GP + GUADELOUPE + + + + + GQ + EQUATORIAL + + + + + GR + GREECE + + + + + GS + SOUTH + + + + + GT + GUATEMALA + + + + + GU + GUAM + + + + + GW + GUINEA-BISSAU + + + + + GY + GUYANA + + + + + HK + HONG + + + + + HM + HEARD + + + + + HN + HONDURAS + + + + + HR + CROATIA + + + + + HT + HAITI + + + + + HU + HUNGARY + + + + + ID + INDONESIA + + + + + IE + IRELAND + + + + + IL + ISRAEL + + + + + IN + INDIA + + + + + IO + BRITISH + + + + + IQ + IRAQ + + + + + IR + IRAN, + + + + + IS + ICELAND + + + + + IT + ITALY + + + + + JM + JAMAICA + + + + + JO + JORDAN + + + + + JP + JAPAN + + + + + KE + KENYA + + + + + KG + KYRGYZSTAN + + + + + KH + CAMBODIA + + + + + KI + KIRIBATI + + + + + KM + COMOROS + + + + + KN + SAINT + + + + + KP + KOREA, + + + + + KR + KOREA, + + + + + KW + KUWAIT + + + + + KY + CAYMAN + + + + + KZ + KAZAKHSTAN + + + + + LA + LAO + + + + + LB + LEBANON + + + + + LC + SAINT + + + + + LI + LIECHTENSTEIN + + + + + LK + SRI + + + + + LR + LIBERIA + + + + + LS + LESOTHO + + + + + LT + LITHUANIA + + + + + LU + LUXEMBOURG + + + + + LV + LATVIA + + + + + LY + LIBYAN + + + + + MA + MOROCCO + + + + + MC + MONACO + + + + + MD + MOLDOVA, + + + + + MG + MADAGASCAR + + + + + MH + MARSHALL + + + + + MK + MACEDONIA, + + + + + ML + MALI + + + + + MM + MYANMAR + + + + + MN + MONGOLIA + + + + + MO + MACAU + + + + + MP + NORTHERN + + + + + MQ + MARTINIQUE + + + + + MR + MAURITANIA + + + + + MS + MONTSERRAT + + + + + MT + MALTA + + + + + MU + MAURITIUS + + + + + MV + MALDIVES + + + + + MW + MALAWI + + + + + MX + MEXICO + + + + + MY + MALAYSIA + + + + + MZ + MOZAMBIQUE + + + + + NA + NAMIBIA + + + + + NC + NEW + + + + + NE + NIGER + + + + + NF + NORFOLK + + + + + NG + NIGERIA + + + + + NI + NICARAGUA + + + + + NL + NETHERLANDS + + + + + NO + NORWAY + + + + + NP + NEPAL + + + + + NU + NIUE + + + + + NZ + NEW + + + + + OM + OMAN + + + + + PA + PANAMA + + + + + PE + PERU + + + + + PF + FRENCH + + + + + PG + PAPUA + + + + + PH + PHILIPPINES + + + + + PK + PAKISTAN + + + + + PL + POLAND + + + + + PM + SAINT + + + + + PN + PITCAIRN + + + + + PR + PUERTO + + + + + PT + PORTUGAL + + + + + PW + PALAU + + + + + PY + PARAGUAY + + + + + QA + QATAR + + + + + RE + R?UNION + + + + + RO + ROMANIA + + + + + RU + RUSSIAN + + + + + RW + RWANDA + + + + + SA + SAUDI + + + + + SB + SOLOMON + + + + + SC + SEYCHELLES + + + + + SD + SUDAN + + + + + SE + SWEDEN + + + + + SG + SINGAPORE + + + + + SH + SAINT + + + + + SI + SLOVENIA + + + + + SJ + SVALBARD + + + + + SK + SLOVAKIA + + + + + SL + SIERRA + + + + + SM + SAN + + + + + SN + SENEGAL + + + + + SO + SOMALIA + + + + + SR + SURINAME + + + + + ST + SAO + + + + + SV + EL + + + + + SY + SYRIAN + + + + + SZ + SWAZILAND + + + + + TC + TURKS + + + + + TD + CHAD + + + + + TF + FRENCH + + + + + TG + TOGO + + + + + TH + THAILAND + + + + + TJ + TAJIKISTAN + + + + + TK + TOKELAU + + + + + TM + TURKMENISTAN + + + + + TN + TUNISIA + + + + + TO + TONGA + + + + + TP + EAST + + + + + TR + TURKEY + + + + + TT + TRINIDAD + + + + + TV + TUVALU + + + + + TW + TAIWAN, + + + + + TZ + TANZANIA, + + + + + UA + UKRAINE + + + + + UG + UGANDA + + + + + UM + UNITED + + + + + US + UNITED + + + + + UY + URUGUAY + + + + + UZ + UZBEKISTAN + + + + + VE + VENEZUELA + + + + + VG + VIRGIN + + + + + VI + VIRGIN + + + + + VN + VIET + + + + + VU + VANUATU + + + + + WF + WALLIS + + + + + WS + SAMOA + + + + + YE + YEMEN + + + + + YT + MAYOTTE + + + + + YU + YUGOSLAVIA + + + + + ZA + SOUTH + + + + + ZM + ZAMBIA + + + + + ZW + ZIMBABWE + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO639-3.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO639-3.xml new file mode 100644 index 0000000000..17f26d7268 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/ISO639-3.xml @@ -0,0 +1,3047 @@ + + + + + ISO 639-3 is a code that aims to define three-letter identifiers for all known human languages. At the core of ISO 639-3 are the individual languages already accounted for in ISO 639-2. The large number of living languages in the initial inventory of ISO 639-3 beyond those already included in ISO 639-2 was derived primarily from Ethnologue (15th edition). Additional extinct, ancient, historic, and constructed languages have been obtained from Linguist List. + + ISO639-3 + Codes for the Representation of Names of Languages + + + aaa + Ghotuo + + + + + aab + Alumu-Tesu + + + + + aaa + Ari + + + + + aac + Amal + + + + + aae + Arbereshe Albanian + + + + + aac + Aranadan + + + + + aae + Ambrak + + + + + aae + Abu' Arapesh + + + + + aac + Arifama-Miniafia + + + + + aak + Ankave + + + + + aae + Afade + + + + + aal + Aramanik + + + + + aac + Anambe + + + + + aah + Algerian Saharan Arabic + + + + + aan + Para Arara + + + + + aaa + Eastern Abnaki + + + + + aae + Afar + + + + + aai + Aasax + + + + + aan + Arvanitika Albanian + + + + + aar + Abau + + + + + aaw + Solong + + + + + aab + Mandobo Atas + + + + + aae + Amarasi + + + + + aah + Abe + + + + + aal + Bankon + + + + + aao + Ambala Ayta + + + + + aar + Camarines Norte Agta + + + + + aau + Western Abnaki + + + + + aaz + Abai Sungai + + + + + abc + Abaga + + + + + abf + Tajiki Arabic + + + + + abi + Abidji + + + + + aaa + Aka-Bea + + + + + aac + Abkhazian + + + + + aae + Lampung Nyo + + + + + aag + Abanyom + + + + + aai + Abua + + + + + aal + Abon + + + + + aan + Abenlen Ayta + + + + + aap + Abaza + + + + + aar + Abron + + + + + aat + Ambonese Malay + + + + + aaw + Ambulas + + + + + aaz + Abure + + + + + abb + Baharna Arabic + + + + + abd + Pal + + + + + abf + Inabaknon + + + + + abh + Aneme Wake + + + + + abj + Abui + + + + + abl + Achagua + + + + + abn + Anca + + + + + abp + Gikyode + + + + + abr + Achinese + + + + + abt + Saint Lucian Creole French + + + + + abv + Acoli + + + + + abx + Aka-Cari + + + + + abz + Aka-Kora + + + + + acb + Akar-Bale + + + + + ace + Mesopotamian Arabic + + + + + acf + Achang + + + + + ach + Eastern Acipa + + + + + aci + Ta'izzi-Adeni Arabic + + + + + ack + Achi + + + + + acl + Acroa + + + + + acm + Achterhoeks + + + + + acn + Achuar-Shiwiar + + + + + acp + Achumawi + + + + + acq + Hijazi Arabic + + + + + acr + Omani Arabic + + + + + acs + Cypriot Arabic + + + + + act + Acheron + + + + + acu + Adangme + + + + + acv + Adabe + + + + + acw + Dzodinka + + + + + acx + Adele + + + + + acy + Dhofari Arabic + + + + + acz + Andegerebinha + + + + + ada + Adhola + + + + + adb + Adi + + + + + add + Adioukrou + + + + + ade + Galo + + + + + adf + Adang + + + + + adg + Abu + + + + + adh + Adap + + + + + adi + Adangbe + + + + + adj + Adonara + + + + + adl + Adamorobe Sign Language + + + + + adn + Adnyamathanha + + + + + ado + Aduge + + + + + adp + Amundava + + + + + adq + Amdo Tibetan + + + + + adr + Adyghe + + + + + ads + Adzera + + + + + adt + Areba + + + + + adu + Tunisian Arabic + + + + + adw + Saidi Arabic + + + + + adx + Argentine Sign Language + + + + + ady + Northeast Pashayi + + + + + adz + Haeke + + + + + aea + Ambele + + + + + aeb + Arem + + + + + aec + Armenian Sign Language + + + + + aed + Aer + + + + + aee + Eastern Arrernte + + + + + aek + Alsea + + + + + ael + Akeu + + + + + aem + Ambakich + + + + + aen + Amele + + + + + aeq + Aeka + + + + + aer + Gulf Arabic + + + + + aes + Andai + + + + + aeu + Putukwam + + + + + aew + Afghan Sign Language + + + + + aey + Afrihili + + + + + aez + Akrukay + + + + + afb + Nanubae + + + + + afd + Defaka + + + + + afe + Eloyi + + + + + afg + Tapei + + + + + afh + Afrikaans + + + + + afi + Afro-Seminole Creole + + + + + afk + Afitti + + + + + afn + Awutu + + + + + afo + Obokuitai + + + + + afp + Aguano + + + + + afr + Legbo + + + + + afs + Agatu + + + + + aft + Agarabi + + + + + afu + Angal + + + + + afz + Arguni + + + + + aga + Angor + + + + + agb + Ngelima + + + + + agc + Agariya + + + + + agd + Argobba + + + + + age + Isarog Agta + + + + + agf + Fembe + + + + + agg + Angaataha + + + + + agh + Agutaynen + + + + + agi + Tainae + + + + + agj + Paranan + + + + + agk + Aghem + + + + + agl + Aguaruna + + + + + agm + Esimbi + + + + + agn + Central Cagayan Agta + + + + + ago + Aguacateco + + + + + agp + Remontado Agta + + + + + agq + Kahua + + + + + agr + Aghul + + + + + ags + Southern Alta + + + + + agt + Mt. Iriga Agta + + + + + agu + Ahanta + + + + + agv + Axamb + + + + + agw + Qimant + + + + + agx + Aghu + + + + + agy + Tiagbamrin Aizi + + + + + agz + Akha + + + + + aha + Igo + + + + + ahb + Mobumrin Aizi + + + + + ahg + Ahan + + + + + ahh + Ahom + + + + + ahi + Aproumu Aizi + + + + + ahk + Ahirani + + + + + ahl + Ashe + + + + + ahm + Ahtena + + + + + ahn + Arosi + + + + + aho + Ainu (China) + + + + + ahp + Ainbai + + + + + ahr + Alngith + + + + + ahs + Amara + + + + + aht + Agi + + + + + aia + Antigua and Barbuda Creole English + + + + + aib + Ai-Cham + + + + + aic + Assyrian Neo-Aramaic + + + + + aid + Lishanid Noshan + + + + + aie + Ake + + + + + aif + Aimele + + + + + aig + Aimol + + + + + aih + Ainu (Japan) + + + + + aii + Aiton + + + + + aij + Burumakok + + + + + aik + Aimaq + + + + + ail + Airoran + + + + + aim + Nataoran Amis + + + + + ain + Arikem + + + + + aio + Aari + + + + + aip + Aighon + + + + + aiq + Ali + + + + + air + Aja (Sudan) + + + + + ais + Aja (Benin) + + + + + ait + Ajie + + + + + aiw + South Levantine Arabic + + + + + aix + Judeo-Tunisian Arabic + + + + + aiy + Judeo-Moroccan Arabic + + + + + aja + Ajawa + + + + + ajg + Amri Karbi + + + + + aji + AkanMacrolanguageLivingmore ... + + + + + ajp + Batak Angkola + + + + + ajt + Mpur + + + + + aju + Ukpet-Ehom + + + + + ajw + Akawaio + + + + + ajz + Akpa + + + + + aka + Anakalangu + + + + + akb + Angal Heneng + + + + + akc + Aiome + + + + + akd + Aka-Jeru + + + + + ake + Akkadian + + + + + akf + Aklanon + + + + + akg + Aka-Bo + + + + + akh + Akurio + + + + + aki + Siwu + + + + + akj + Ak + + + + + akk + Araki + + + + + akl + Akaselem + + + + + akm + Akolet + + + + + ako + Akum + + + + + akp + Akhvakh + + + + + akq + Akwa + + + + + akr + Aka-Kede + + + + + aks + Aka-Kol + + + + + akt + Alabama + + + + + aku + Alago + + + + + akv + Qawasqar + + + + + akw + Alladian + + + + + akx + Aleut + + + + + aky + Alege + + + + + akz + Alawa + + + + + ala + Amaimon + + + + + alc + Alangan + + + + + ald + Alak + + + + + ale + Allar + + + + + alf + Amblong + + + + + alh + Gheg Albanian + + + + + ali + Larike-Wakasihu + + + + + alj + Alune + + + + + alk + Algonquin + + + + + all + Alutor + + + + + alm + Tosk Albanian + + + + + aln + Southern Altai + + + + + alo + 'Are'are + + + + + alp + Alaba-K�abeena + + + + + alq + Amol + + + + + alr + Alyawarr + + + + + als + Alur + + + + + alt + Amanaye + + + + + alu + Ambo + + + + + alw + Amahuaca + + + + + alx + Yanesha' + + + + + aly + Hamer-Banna + + + + + alz + Amarag + + + + + ama + Amharic + + + + + amb + Amis + + + + + amc + Amdang + + + + + ame + Ambai + + + + + amf + War-Jaintia + + + + + amg + Ama (Papua New Guinea) + + + + + amh + Amanab + + + + + ami + Amo + + + + + amj + Alamblak + + + + + amk + Amahai + + + + + aml + Amarakaeri + + + + + amm + Southern Amami-Oshima + + + + + amn + Amto + + + + + amo + Guerrero Amuzgo + + + + + amp + Ambelau + + + + + amq + Western Neo-Aramaic + + + + + amr + Anmatyerre + + + + + ams + Ami + + + + + amt + Atampaya + + + + + amu + Andaqui + + + + + amv + Andoa + + + + + amw + Ngas + + + + + amx + Ansus + + + + + amy + Xaracuu + + + + + amz + Animere + + + + + ana + Old English (ca. 450-1100) + + + + + anb + Nend + + + + + anc + Andi + + + + + and + Anor + + + + + ane + Goemai + + + + + anf + Anu + + + + + ang + Anal + + + + + anh + Obolo + + + + + ani + Andoque + + + + + anj + Angika + + + + + ank + Jarawa (India) + + + + + anl + Andh + + + + + anm + Anserma + + + + + ann + Antakarinya + + + + + ano + Anuak + + + + + anp + Denya + + + + + anq + Anaang + + + + + anr + Andra-Hus + + + + + ans + Anyin + + + + + ant + Anem + + + + + anu + Angolar + + + + + anv + Abom + + + + + anw + Pemon + + + + + anx + Andarum + + + + + any + Angal Enen + + + + + anz + Bragat + + + + + aoa + Angoram + + + + + aob + Arma + + + + + aoc + Anindilyakwa + + + + + aod + Mufian + + + + + aoe + Arho + + + + + aof + Alor + + + + + aog + Omie + + + + + aoh + Bumbita Arapesh + + + + + aoi + Aore + + + + + aoj + Taikat + + + + + aok + A'tong + + + + + aol + Atorada + + + + + aom + Uab Meto + + + + + aon + Sa'a + + + + + aor + North Levantine Arabic + + + + + aos + Sudanese Arabic + + + + + aot + Bukiyip + + + + + aox + Ampanang + + + + + aoz + Athpariya + + + + + apb + Apiaka + + + + + apc + Jicarilla Apache + + + + + apd + Kiowa Apache + + + + + ape + Lipan Apache + + + + + apg + Mescalero-Chiricahua Apache + + + + + aph + Apinaye + + + + + api + Apalik + + + + + apj + Apma + + + + + apk + A-Pucikwar + + + + + apl + Arop-Lokep + + + + + apm + Arop-Sissano + + + + + apn + Apatani + + + + + apo + Apurina + + + + + app + Alapmunte + + + + + apq + Western Apache + + + + + apr + Aputai + + + + + aps + Apalai + + + + + apt + Safeyoka + + + + + apu + Archi + + + + + apv + Arigidi + + + + + apw + Atohwaim + + + + + apx + Northern Alta + + + + + apy + Atakapa + + + + + apz + Arh� + + + + + aqc + ArabicMacrolanguageLivingmore ... + + + + + aqg + Standard Arabic + + + + + aqm + Official Aramaic (700-300 BCE) + + + + + aqn + Arabana + + + + + aqp + Western Arrarnta + + + + + aqr + Aragonese + + + + + ara + Arhuaco + + + + + arb + Arikara + + + + + arc + Arapaso + + + + + ard + Arikapu + + + + + are + Arabela + + + + + arg + Mapudungun + + + + + arh + Araona + + + + + ari + Arapaho + + + + + arj + Algerian Arabic + + + + + ark + Karo (Brazil) + + + + + arl + Najdi Arabic + + + + + arn + Arua (Amazonas State) + + + + + aro + Arbore + + + + + arp + Arawak + + + + + arq + Arua (Rodonia State) + + + + + arr + Moroccan Arabic + + + + + ars + Egyptian Arabic + + + + + aru + Asu (Tanzania) + + + + + arv + Assiniboine + + + + + arw + Casuarina Coast Asmat + + + + + arx + Asas + + + + + ary + American Sign Language + + + + + arz + Australian Sign Language + + + + + asa + Cishingini + + + + + asb + Abishira + + + + + asc + Buruwai + + + + + asd + Nsari + + + + + ase + Ashkun + + + + + asf + Asilulu + + + + + asg + Assamese + + + + + ash + Xingu Asurini + + + + + asi + Dano + + + + + asj + Algerian Sign Language + + + + + ask + Austrian Sign Language + + + + + asl + Asuri + + + + + asm + Ipulo + + + + + asn + Asturian + + + + + aso + Tocantins Asurini + + + + + asp + Asoa + + + + + asq + Australian Aborigines Sign Language + + + + + asr + Muratayak + + + + + ass + Yaosakor Asmat + + + + + ast + As + + + + + asu + Pele-Ata + + + + + asv + Zaiwa + + + + + asw + Atsahuaca + + + + + asx + Ata Manobo + + + + + asy + Atemble + + + + + asz + Ivbie North-Okpela-Arhe + + + + + ata + Attie + + + + + atb + Atikamekw + + + + + atc + Ati + + + + + atd + Mt. Iraya Agta + + + + + ate + Ata + + + + + atg + Ashtiani + + + + + ati + Atong + + + + + atj + Pudtol Atta + + + + + atk + Aralle-Tabulahan + + + + + atl + Waimiri-Atroari + + + + + atm + Gros Ventre + + + + + atn + Pamplona Atta + + + + + ato + Reel + + + + + atp + Northern Altai + + + + + atq + Atsugewi + + + + + atr + Arutani + + + + + ats + Aneityum + + + + + att + Arta + + + + + atu + Asumboa + + + + + atv + Alugu + + + + + atw + Waorani + + + + + atx + Anuta + + + + + aty + =/Kx'au//'ein + + + + + atz + Aguna + + + + + aua + Aushi + + + + + aub + Anuki + + + + + auc + Awjilah + + + + + aud + Heyo + + + + + aue + Aulua + + + + + aug + Asu (Nigeria) + + + + + auh + Molmo One + + + + + aui + Auyokawa + + + + + auj + Makayam + + + + + auk + Anus + + + + + aul + Aruek + + + + + aum + Austral + + + + + aun + Auye + + + + + auo + Awyi + + + + + aup + Aura + + + + + auq + Awiyaana + + + + + aur + Uzbeki Arabic + + + + + aut + Avaric + + + + + auu + Avau + + + + + auw + Alviri-Vidari + + + + + aux + Avestan + + + + + auy + Avikam + + + + + auz + Kotava + + + + + ava + Eastern Egyptian Bedawi Arabic + + + + + avb + Avatime + + + + + avd + Agavotaguerra + + + + + ave + Aushiri + + + + + avi + Au + + + + + avk + Avokaya + + + + + avl + Av�-Canoeiro + + + + + avn + awa Awadhi + + + + + avo + Awa (Papua New Guinea) + + + + + avs + Cicipu + + + + + avt + Aweti + + + + + avu + Awbono + + + + + avv + Aekyom + + + + + awa + Awabakal + + + + + awb + Arawum + + + + + awc + Awngi + + + + + awe + Awak + + + + + awh + Awera + + + + + awi + South Awyu + + + + + awk + Arawete + + + + + awm + Central Awyu + + + + + awn + Jair Awyu + + + + + awo + Awun + + + + + awr + Awara + + + + + aws + Edera Awyu + + + + + awt + Abipon + + + + + awu + Mato Grosso Arara + + + + + awv + Yaka (Central African Republic) + + + + + aww + Middle Armenian + + + + + awx + Xaragure + + + + + awy + Awar + + + + + axb + Ayizo Gbe + + + + + axg + Southern Aymara + + + + + axk + Ayabadhu + + + + + axm + Ayere + + + + + axx + Ginyanga + + + + + aya + Hadrami Arabic + + + + + ayb + Leyigha + + + + + ayc + Akuku + + + + + ayd + Libyan Arabic + + + + + aye + Aymara + + + + + ayg + Sanaani Arabic + + + + + ayh + Ayoreo + + + + + ayi + North Mesopotamian Arabic + + + + + ayk + Ayi (Papua New Guinea) + + + + + ayl + Central Aymara + + + + + aym + Sorsogon Ayta + + + + + ayn + Bataan Ayta + + + + + ayo + Ayu + + + + + ayp + Ayi (China) + + + + + ayq + Tayabas Ayta + + + + + ayr + Mai Brat + + + + + ays + Azha + + + + + ayt + South Azerbaijani + + + + + ayu + Azerbaijani + + + + + ayx + San Pedro Amuzgos Amuzgo + + + + + ayy + North Azerbaijani + + + + + ayz + Ipalapa Amuzgo + + + + + aza + Awing + + + + + azb + Faire Atta + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierBibliographicTypeCodeDictionary.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierBibliographicTypeCodeDictionary.xml new file mode 100644 index 0000000000..7cdc6f0ef7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierBibliographicTypeCodeDictionary.xml @@ -0,0 +1,52 @@ + + + + + The type of a bibliographic reference citation for a location instance in a gazetteer. + + GeoIdentifierBibliographicTypeCode + DoD/IC Dictionary: GSIP Geographic Identifier Bibliographic Reference Citation Type Code Dictionary + + + + A collection of data records intended for computer processing. + dataset + Dataset + + + + + A formal meeting in which one or more persons question, consult, or evaluate another person. + interview + Interview + + + + + A representation of the features of an area of the Earth that portrays them in their respective forms, sizes, and relationships according to some convention of representation on a flat surface. + map + Map + + + + + A book or other written or printed work. + text + Text + + + + + A connected group of pages on the World Wide Web regarded as a single entity, usually maintained by one person or organization and devoted to a single topic or several closely related topics. + website + Website + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierIDTypeCodeDictionary.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierIDTypeCodeDictionary.xml new file mode 100644 index 0000000000..635b96282b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierIDTypeCodeDictionary.xml @@ -0,0 +1,31 @@ + + + + + The type of an identification for a location type in a gazetteer. + + GeoIdentifierIDTypeCode + DoD/IC Dictionary: GSIP Geographic Identifier Identification Type Code Dictionary + + + + An assigned unique alphanumeric string (or 'code') by which a particular geographic entity is, or was, known. + code + Code + + + + + A unique proper name, specific term, or expression by which a particular geographic entity is, or was, known. + name + Name + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierNameTypeCodeDictionary.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierNameTypeCodeDictionary.xml new file mode 100644 index 0000000000..e0322f4c46 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/dictionaries/gsipCodelistGeoIdentifierNameTypeCodeDictionary.xml @@ -0,0 +1,118 @@ + + + + + The type of an alternative geographic identifier (e.g., a name) of a location instance in a gazetteer. + + GeoIdentifierNameTypeCode + DoD/IC Dictionary: GSIP Geographic Identifier Name Type Code Dictionary + + + + + + + The approved geographic name for a feature as determined in accordance with the naming policy of the U.S. Board on Geographic Names (BGN). + approved + Approved + + + + + An English name that is in widespread usage for a feature that is located in a region where English is not the official language. + conventional + Conventional + + + + + A historical name for a feature that remains in the original (non-Latin/Roman) script. + historicalOriginal + Historical Original + + + + + A historical name for a feature that has been transliterated to the Latin/Roman script as necessary. + historicalTransliterated + Historical Transliterated + + + + + The official local name for a feature that remains in the original (non-Latin/Roman) script and is approved by the U.S. Board on Geographic Names (BGN). + nativeOriginal + Native Original + + + + + The official local name for a feature that has been transliterated to the Latin/Roman script as necessary and is approved by the U.S. Board on Geographic Names (BGN). + nativeTransliterated + Native Transliterated + + + + + A provisional name for a feature that remains in the original (non-Latin/Roman) script. + provisionalOriginal + Provisional Native + + + + + A local name for a feature that remains in the original (non-Latin/Roman) script, where a native source for the name was either unavailable or nonexistant and a non-native source for the name was used instead and the resulting name could not be verified from a recent local official source. + unverifiedOriginal + Unverified Original + An unverified name is usually indicated in a gazetteer using the dagger symbol. + + + + + A local name for a feature that has been transliterated to the Latin/Roman script as necessary, where a native source for the name was either unavailable or nonexistant and a non-native source for the name was used instead and the resulting name could not be verified from a recent local official source. + unverifiedTransliterated + Unverified Transliterated + An unverified name is usually indicated in a gazetteer using the dagger symbol. + + + + + A variant or alternate name for a feature that remains in the original (non-Latin/Roman) script. + variantOriginal + Variant Original + For example, a former name, a name in local usage, alternate name spellings found in various sources, or a derived short name. + + + + + A variant or alternate name for a feature that has been transliterated to the Latin/Roman script as necessary. + variantTransliterated + Variant Transliterated + For example, a former name, a name in local usage, alternate name spellings found in various sources, or a derived short name. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/si.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/si.xsd new file mode 100644 index 0000000000..5291432c69 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19112/BP_2012/si.xsd @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + A collection of location instances. + + + + + A collection-type intended for use as a generic container of location instances. + + + + + + + + + + + + + + + + + + + + + A spatial reference system using geographic identifiers. It is comprised of one or more location types (which may +be related). Each location instance is uniquely identified by means of a geographic identifier. [ISO 19112:2003 Clause 7.1] For example, countries as defined in ISO 3166-1 or named population centres in a region. + + + + + A spatial reference system using geographic identifiers type. A spatial reference system using geographic identifiers is comprised of a related set of one or more location types, together with their corresponding geographic identifiers. These location types may be related to each other through aggregation or disaggregation, possibly forming a hierarchy. [ISO 19112:2003 Clause 6.2] For example, countries as defined in ISO 3166-1 or named population centres in a region. + + + + + + + + The name of a spatial reference system using geographic identifiers. + + + + + + The geographic area within which the reference system occurs. + + + + + + + A characterization of the basis for the spatial reference system. For example: 'administration', 'electoral', and 'postal'. + + + + + Authority with overall responsibility for the spatial reference system. + + + + + + iso19112:SI_LocationType + The location type in the spatial reference system. + + + + + + + + + + + + + A location type in a spatial reference system. A location type specifies the nature of the location that is specified by a location instance. For example, a "county", a "town", a "property", or a "river". + + + + + A location type type in a spatial reference system. + + + + + + + + The name of the location type. + + + + + + A method of uniquely identifying location instances. For example, 'name' or 'code'. + + + + + + The way in which location instances are defined. The definition of the location type shall be in the form of one of the following: + - an area, defined by a set of boundaries, for example countries defined by their borders; + - a single feature, for example a street defined by its centre line, or a junction of two such streets; + - a collection of smaller features, for example trade areas defined by groups of countries. +Where a location type is defined as a collection of smaller units, an instance of that location need not have a well-defined boundary, for +example a postal code defined as a collection of postal delivery points. + + + + + + The geographic area within which the location type occurs. For example, in the case of a gazetteer of "rivers” then the extent of North America. + + + + + The name of the organization or class of organization that is able to create and destroy location instances. + + + + + + + iso19112:SI_LocationType + A parent location type (a location type of which this location type is a subdivision). Parent and child location types are linked to the location type by the nesting association. + + + + + iso19112:SI_LocationType + A child location type (a location type which subdivides this location type). Parent and child location types are linked to the location type by the nesting association. + + + + + + + + + + + + A gazetteer is a directory of geographic identifiers describing location instances. It will contain additional information regarding the position of each location instance. It may include a coordinate reference, but it may also be purely descriptive. If it contains a coordinate reference, this will enable transformation from the spatial reference system using geographic identifiers to the coordinate reference system. If it contains a descriptive reference, this will be a spatial reference using a different spatial reference system with geographic identifiers, for example the postcode of a property. For any location type, there may be more than one gazetteer. + + + + + A gazetteer type; a gazetteer is a directory of geographic identifiers describing location instances. + + + + + + + + The name of the gazetteer, including its version date. A new version of the gazetteer shall be created whenever any location instance is created or destroyed, or a new version of a location instance is created. + + + + + + A description of the location types contained in the gazetteer. For example, the “rivers of North America” or the “streets of London”. + + + + + + The geographic domain covered by the gazetteer. For example, for a gazetteer of rivers the extent of North America, or for a gazetteer of streets the extent of the City of London. + + + + + The organization responsible for maintenance of the gazetteer. + + + + + The coordinate reference system, if any, that is used in the gazetteer for describing position. The coordinate reference system provides a linking mechanism between referencing using geographic identifiers and referencing using coordinates. + + + + + iso19112:SI_LocationType + The location type for which instances are recorded in the gazetteer. + + + + + + + + + + + + A location instance in a spatial reference system. A location instance specifies a location that is characterized by a location type. For example, a particular "county", "town", "property", or "river". + + + + + A location instance in a spatial reference system. + + + + + + + + The unique geographic identifier for the location instance. In order to ensure that the geographic identifier is unique within a wider geographic domain, the geographic identifier may need to include an identifier of an instance of a parent location type, for example “Paris, Texas” (as distinguished from "Paris, France"). + + + + + Optional additional geographic identifiers for the location instance. + + + + + The coordinates of a representative point for the location instance. An example of the position is the coordinates of the centroid of the location instance. This provides a linking mechanism to spatial referencing by coordinates. + + + + + + A description of the location instance. The geographic extent shall be defined in one of the following ways: + - as a collection of smaller geographic features, for example the European Union, defined by its constituent countries; + - by a bounding polygon, described by either of the following: + -- as a closed set of boundary segments (each defined by one or more geographic features), for example a block defined +by the bounding streets; + -- by a set of coordinates, for example, a land parcel defined by the coordinates of its boundary. + + + + + + The date of creation of this version of the location instance. The temporal extent will normally be the date of creation of this version of the gazetteer containing this location instance. + + + + + The name of organization responsible for defining the characteristics of the location instance. + + + + + Optional reference to the feature being identified by this location instance. + + + + + iso19112:SI_LocationInstance + A location instance of a different location type, for which this location instance is a sub-division. + + + + + iso19112:SI_LocationInstance + A location instance of a different location type, which subdivides this location instance. + + + + + iso19112:SI_LocationType + The location type of this location instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Optionally identifies partner organization that specified this geographic identifier, such as 'State of Montana'. + + + + + + A unique geographic identifier for a location instance. In order to ensure that the geographic identifier is unique within a wider geographic domain, the geographic identifier may need to include an identifier of an instance of a parent location type, for example “Paris, Texas” (as distinguished from "Paris, France"). + + + + + + An identifier associated with the (e.g., name) geographic identifier. + + + + + + Domain value describing if the alternativeGeographicIdentifier value (e.g, name) is, for example, an 'official' or 'variant'. For example, Canada has two official languages so there may be two official names; one English and one French. + + + + + Optionally, the date on which this geographic identifier (e.g., a name) was determined. + + + + + Identifies whether this geographic identifier (e.g., a name) is considered to be primary for the location instance. + + + + + + Optional bibliographic reference citation codes (e.g., in the case that this geographic identifier is a "name"). + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/ReadMe.txt new file mode 100644 index 0000000000..8a1ac7cb02 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/ReadMe.txt @@ -0,0 +1,26 @@ +ISO(c) ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Information - Metadata - XML Schema Implementation + +This XML Schema implementation is composed of the following namespaces: +- Geographic Common (GCO) extensible markup language + (http://www.isotc211.org/2005/gco) +- Geographic MetaData (GMD) extensible markup language + (http://www.isotc211.org/2005/gmd) +- Geographic Metadata XML (GMX) Schema (http://www.isotc211.org/2005/gmx) +- Geographic Spatial Schema (GSS) extensible markup language + (http://www.isotc211.org/2005/gss) +- Geographic Spatial Referencing (GSR) extensible markup language + (http://www.isotc211.org/2005/gsr) +- Geographic Temporal Schema (GTS) extensible markup language + (http://www.isotc211.org/2005/gts) + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +XML resources related to those namespaces are also provided at this location. + +------------------------------------------------------------------------------- + +See X\ReadMe.txt for details of lineage and modification of the package X diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/ReadMe.txt new file mode 100644 index 0000000000..db0b4ed98b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/ReadMe.txt @@ -0,0 +1,47 @@ +ISO(c) GCO schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic COmmon (GCO) extensible markup language + +GCO is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GCO includes all the definitions of http://www.isotc211.org/2005/gco +namespace. The root document of this namespace is the file gco.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Adoption of W3C Implementation of XLink: + - schemaLocation changed to: http://www.w3.org/1999/xlink.xsd + - xlink:simpleLink renamed xlink:simpleAttrs + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GCO + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GCO + * GCO XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (nicolas.lesage@ign.fr). diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/basicTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/basicTypes.xsd new file mode 100644 index 0000000000..49df769221 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/basicTypes.xsd @@ -0,0 +1,431 @@ + + + + + Geographic COmmon (GCO) extensible markup language is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. GCO includes all the definitions of http://www.isotc211.org/2005/gco namespace. The root document of this namespace is the file gco.xsd. This basicTypes.xsd schema implements concepts from the "basic types" package of ISO/TS 19103. + + + + + + + + + + + + + A TypeName is a LocalName that references either a recordType or object type in some form of schema. The stored value "aName" is the returned value for the "aName()" operation. This is the types name. - For parsing from types (or objects) the parsible name normally uses a "." navigation separator, so that it is of the form [class].[member].[memberOfMember]. ...) + + + + + + + + + + + + + + + + + + + + + + + A MemberName is a LocalName that references either an attribute slot in a record or recordType or an attribute, operation, or association role in an object instance or type description in some form of schema. The stored value "aName" is the returned value for the "aName()" operation. + + + + + + + + + + + + + + + + + + + + + + + + Use to represent the possible cardinality of a relation. Represented by a set of simple multiplicity ranges. + + + + + + + + + + + + + + + + + + + + + + + A component of a multiplicity, consisting of an non-negative lower bound, and a potentially infinite upper bound. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/gco.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/gco.xsd new file mode 100644 index 0000000000..6090d49d5f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/gco.xsd @@ -0,0 +1,12 @@ + + + + + Geographic COmmon (GCO) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GCO includes all the definitions of http://www.isotc211.org/2005/gco namespace. The root document of this namespace is the file gco.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/gcoBase.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/gcoBase.xsd new file mode 100644 index 0000000000..2f34174fb3 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gco/gcoBase.xsd @@ -0,0 +1,63 @@ + + + + + Geographic COmmon (GCO) extensible markup language is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. GCO includes all the definitions of http://www.isotc211.org/2005/gco namespace. The root document of this namespace is the file gco.xsd. This gcoBase.xsd schema provides: + 1. tools to handle specific objects like "code lists" and "record"; + 2. Some XML types representing that do not follow the general encoding rules. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/ReadMe.txt new file mode 100644 index 0000000000..2c4c7c66c8 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/ReadMe.txt @@ -0,0 +1,45 @@ +ISO(c) GMD schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic MetaData (GMD) extensible markup language + +GMD is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GMD includes all the definitions of http://www.isotc211.org/2005/gmd +namespace. The root document of this namespace is the file gmd.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GMD + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GMD + * GMD XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (http://www.ign.fr). + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/applicationSchema.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/applicationSchema.xsd new file mode 100644 index 0000000000..0a7ccbbb5b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/applicationSchema.xsd @@ -0,0 +1,43 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This applicationSchema.xsd schema implements the UML conceptual schema defined in A.2.12 of ISO 19115:2003. It contains the implementation of the class MD_ApplicationSchemaInformation. + + + + + + + + + + + Information about the application schema used to build the dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/citation.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/citation.xsd new file mode 100644 index 0000000000..4f5d7dd1d7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/citation.xsd @@ -0,0 +1,276 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This citation.xsd schema implements the UML conceptual schema defined in A.3.2 of ISO 19115:2003. It contains the implementation of the following classes: CI_ResponsibleParty, CI_Citation, CI_Address, CI_OnlineResource, CI_Contact, CI_Telephone, URL, CI_Date, CI_Series, CI_RoleCode, CI_PresentationFormCode, CI_OnLineFunctionCode, CI_DateTypeCode. + + + + + + + + + + + Identification of, and means of communication with, person(s) and organisations associated with the dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + Standardized resource reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Location of the responsible individual or organisation + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information about online sources from which the dataset, specification, or community profile name and extended metadata elements can be obtained. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information required enabling contact with the responsible person and/or organisation + + + + + + + + + + + + + + + + + + + + + + + + + + + Telephone numbers for contacting the responsible individual or organisation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/constraints.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/constraints.xsd new file mode 100644 index 0000000000..b683389c35 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/constraints.xsd @@ -0,0 +1,107 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This constraints.xsd schema implements the UML conceptual schema defined in A.2.3 of ISO 19115:2003. It contains the implementation of the following classes: MD_Constraints, MD_LegalConstraints, MD_SecurityConstraints, MD_ClassificationCode, MD_RestrictionCode. + + + + + + + + + + Restrictions on the access and use of a dataset or metadata + + + + + + + + + + + + + + + + + + + + + + + Restrictions and legal prerequisites for accessing and using the dataset. + + + + + + + + + + + + + + + + + + + + + + + + + Handling restrictions imposed on the dataset because of national security, privacy, or other concerns + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/content.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/content.xsd new file mode 100644 index 0000000000..bf3c94657b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/content.xsd @@ -0,0 +1,190 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This content.xsd schema implements the UML conceptual schema defined in ISO 19115:2003, A.2.8. It contains the implementation of the following classes: MD_FeatureCatalogueDescription, MD_CoverageDescription, +MD_ImageDescription, MD_ContentInformation, MD_RangeDimension, MD_Band, MD_CoverageContentTypeCode, MD_ImagingConditionCode. + + + + + + + + + + + Information identifing the feature catalogue + + + + + + + + + + + + + + + + + + + + + + + + + + + Information about the domain of the raster cell + + + + + + + + + + + + + + + + + + + + + + + + + Information about an image's suitability for use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set of adjacent wavelengths in the electro-magnetic spectrum with a common characteristic, such as the visible band + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/dataQuality.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/dataQuality.xsd new file mode 100644 index 0000000000..3cd6d16e1d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/dataQuality.xsd @@ -0,0 +1,556 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This dataQuality.xsd schema implements the UML conceptual schema defined in A.2.4 of ISO 19115:2003. It contains the implementation of the following classes: LI_ProcessStep, LI_Source, LI_Lineage, +DQ_ConformanceResult, DQ_QuantitativeResult, DQ_Result, DQ_TemporalValidity, DQ_AccuracyOfATimeMeasurement, DQ_QuantitativeAttributeAccuracy, DQ_NonQuantitativeAttributeAccuracy, DQ_ThematicClassificationCorrectness, DQ_RelativeInternalPositionalAccuracy, DQ_GriddedDataPositionalAccuracy, DQ_AbsoluteExternalPositionalAccuracy, DQ_TopologicalConsistency, DQ_FormatConsistency, DQ_DomainConsistency, DQ_ConceptualConsistency, DQ_CompletenessOmission, DQ_CompletenessCommission, DQ_TemporalAccuracy, DQ_ThematicAccuracy, DQ_PositionalAccuracy, DQ_LogicalConsistency, DQ_Completeness, DQ_Element, DQ_DataQuality. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + quantitative_result from Quality Procedures - - renamed to remove implied use limitiation. + + + + + + + + + + + + + + + + + + + + + + + + + Quantitative_conformance_measure from Quality Procedures. - - Renamed to remove implied use limitation - - OCL - -- result is type specified by valueDomain - result.tupleType = valueDomain + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/distribution.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/distribution.xsd new file mode 100644 index 0000000000..380cecab04 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/distribution.xsd @@ -0,0 +1,203 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This distribution.xsd schema implements the UML conceptual schema defined in A.2.10 of ISO 19115:2003. It contains the implementation of the following classes: MD_Medium, MD_DigitalTransferOptions, MD_StandardOrderProcess, MD_Distributor, MD_Distribution, MD_Format, MD_MediumFormatCode, MD_MediumNameCode. + + + + + + + + + + + Information about the media on which the data can be distributed + + + + + + + + + + + + + + + + + + + + + + + + + + + + Technical means and media by which a dataset is obtained from the distributor + + + + + + + + + + + + + + + + + + + + + + + + + + Common ways in which the dataset may be obtained or received, and related instructions and fee information + + + + + + + + + + + + + + + + + + + + + + + + + + Information about the distributor + + + + + + + + + + + + + + + + + + + + + + + + + + Information about the distributor of and options for obtaining the dataset + + + + + + + + + + + + + + + + + + + + + + + + + Description of the form of the data to be distributed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/extent.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/extent.xsd new file mode 100644 index 0000000000..363da1346c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/extent.xsd @@ -0,0 +1,206 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This extent.xsd schema implements the UML conceptual schema defined in A.3.1 of ISO 19115:2003 and the associated corrigendum. It contains the implementation of the following classes: EX_TemporalExtent, EX_VerticalExtent, EX_BoundingPolygon, EX_Extent, EX_GeographicExtent, EX_GeographicBoundingBox, EX_SpatialTemporalExtent, EX_GeographicDescription. + + + + + + + + + + + + + + Time period covered by the content of the dataset + + + + + + + + + + + + + + + + + + + + + + + Vertical domain of dataset + + + + + + + + + + + + + + + + + + + + + + + + + Boundary enclosing the dataset expressed as the closed set of (x,y) coordinates of the polygon (last point replicates first point) + + + + + + + + + + + + + + + + + + + + + + + Information about spatial, vertical, and temporal extent + + + + + + + + + + + + + + + + + + + + + + + + + + Geographic area of the dataset + + + + + + + + + + + + + + + + + + + + + + + Geographic area of the entire dataset referenced to WGS 84 + + + + + + + + + + + + + + + + + + + + + + + + + + Extent with respect to date and time + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/freeText.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/freeText.xsd new file mode 100644 index 0000000000..f55277029d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/freeText.xsd @@ -0,0 +1,123 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This freeText.xsd schema implements cultural and linguistic adaptability extensions defined in 7.3 of ISO/TS 19139:2007. This extension essentially formalizes the free text concept described in Annex J of ISO 19115:2003. For this reason, and in order to simplify the organization of overall geographic metadata XML schema, this schema has been included as part of the gmd namespace instead of the gmx namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/gmd.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/gmd.xsd new file mode 100644 index 0000000000..7e4963059e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/gmd.xsd @@ -0,0 +1,13 @@ + + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/identification.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/identification.xsd new file mode 100644 index 0000000000..1e23f57c9c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/identification.xsd @@ -0,0 +1,349 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This identification.xsd schema implements the UML conceptual schema defined in A.2.2 of ISO 19115:2003. It contains the implementation of the following classes: MD_Identification, MD_BrowseGraphic, MD_DataIdentification, MD_ServiceIdentification, MD_RepresentativeFraction, MD_Usage, MD_Keywords, DS_Association, MD_AggregateInformation, MD_CharacterSetCode, MD_SpatialRepresentationTypeCode, MD_TopicCategoryCode, MD_ProgressCode, MD_KeywordTypeCode, DS_AssociationTypeCode, DS_InitiativeTypeCode, MD_ResolutionType. + + + + + + + + + + + + + Basic information about data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Graphic that provides an illustration of the dataset (should include a legend for the graphic) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + See 19119 for further info + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Brief description of ways in which the dataset is currently used. + + + + + + + + + + + + + + + + + + + + + + + + + + Keywords, their type and reference source + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Encapsulates the dataset aggregation information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + High-level geospatial data thematic classification to assist in the grouping and search of available geospatial datasets + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/maintenance.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/maintenance.xsd new file mode 100644 index 0000000000..9e7236938c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/maintenance.xsd @@ -0,0 +1,87 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This maintenance.xsd schema implements the UML conceptual schema defined in A.2.5 of ISO 19115:2003. It contains the implementation of the following classes: MD_MaintenanceInformation, MD_MaintenanceFrequencyCode, MD_ScopeCode, MD_ScopeDescription. + + + + + + + + + + + + Information about the scope and frequency of updating + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Description of the class of information covered by the information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataApplication.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataApplication.xsd new file mode 100644 index 0000000000..14429199e9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataApplication.xsd @@ -0,0 +1,176 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This metadataApplication.xsd schema implements the UML conceptual schema defined in A.2.12 of ISO 19115:2003. It contains the implementation of the class: MD_ApplicationSchemaInformation. + + + + + + + + + + + Identifiable collection of datasets + + + + + + + + + + + + + + + + + + + + + + + + + + Identifiable collection of data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataEntity.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataEntity.xsd new file mode 100644 index 0000000000..d0ae0bf288 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataEntity.xsd @@ -0,0 +1,71 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This metadataEntity.xsd schema implements the UML conceptual schema defined in A.2.1 of ISO 19115:2003. It contains the implementation of the class MD_Metadata. + + + + + + + + + + + + + + + + + + Information about the metadata + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataExtension.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataExtension.xsd new file mode 100644 index 0000000000..665740a4e6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/metadataExtension.xsd @@ -0,0 +1,100 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This metadataExtension.xsd schema implements the UML conceptual schema defined in A.2.11 of ISO 19115:2003. It contains the implementation of the following classes: MD_ExtendedElementInformation, MD_MetadataExtensionInformation, MD_ObligationCode, MD_DatatypeCode. + + + + + + + + + + + New metadata element, not found in ISO 19115, which is required to describe geographic data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information describing metadata extensions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/portrayalCatalogue.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/portrayalCatalogue.xsd new file mode 100644 index 0000000000..5cf370d0e1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/portrayalCatalogue.xsd @@ -0,0 +1,37 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This portrayalCatalogue.xsd schema implements the UML conceptual schema defined in A.2.9 of ISO 19115:2003. It contains the implementation of the class MD_PortrayalCatalogueReference. + + + + + + + + + + + Information identifing the portrayal catalogue used + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/referenceSystem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/referenceSystem.xsd new file mode 100644 index 0000000000..b6abd58723 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/referenceSystem.xsd @@ -0,0 +1,101 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This referenceSystem.xsd schema implements the UML conceptual schema defined in A.2.7 of ISO 19115:2003 and ISO 19115:2003/Cor. 1:2006. It contains the implementation of the following classes: RS_Identifier, MD_ReferenceSystem, MD_Identifier and RS_Reference System. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Description of the spatial and temporal reference systems used in the dataset + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/spatialRepresentation.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/spatialRepresentation.xsd new file mode 100644 index 0000000000..34e0f23081 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmd/spatialRepresentation.xsd @@ -0,0 +1,238 @@ + + + + + Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This portrayalCatalogue.xsd schema implements the UML conceptual schema defined in A.2.6 of ISO 19115:2003. It contains the implementation of the following classes: MD_GridSpatialRepresentation, MD_VectorSpatialRepresentation, MD_SpatialRepresentation, MD_Georeferenceable, MD_Dimension, MD_Georectified, MD_GeometricObjects, MD_TopologyLevelCode, MD_GeometricObjectTypeCode, MD_CellGeometryCode, MD_DimensionNameTypeCode, MD_PixelOrientationCode. + + + + + + + + + + + + Types and numbers of raster spatial objects in the dataset + + + + + + + + + + + + + + + + + + + + + + + + + + Information about the vector spatial objects in the dataset + + + + + + + + + + + + + + + + + + + + + + + + Digital mechanism used to represent spatial information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/ReadMe.txt new file mode 100644 index 0000000000..16a0ede8ef --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/ReadMe.txt @@ -0,0 +1,47 @@ +ISO(c) GMX schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Metadata XML (GMX) Schema + +GMX is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GMX includes all the definitions of http://www.isotc211.org/2005/gmx +namespace. The root document of this namespace is the file gmx.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Adoption of W3C Implementation of XLink: + - schemaLocation changed to: http://www.w3.org/1999/xlink.xsd + - xlink:simpleLink renamed xlink:simpleAttrs + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GMX + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GMX + * GMX XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (nicolas.lesage@ign.fr). diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/catalogues.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/catalogues.xsd new file mode 100644 index 0000000000..4f6d6c2192 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/catalogues.xsd @@ -0,0 +1,113 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This catalogues.xsd schema implements the UML conceptual schema defined in 7.4.4.1 of ISO/TS 19139:2007. It contains the implementation of CT_Catalogue, CT_CodelistCatalogue, CT_UomCatalogue and CT_CrsCatalogue. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/codelistItem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/codelistItem.xsd new file mode 100644 index 0000000000..f16462a52b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/codelistItem.xsd @@ -0,0 +1,169 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This codelistItem.xsd schema implements the UML conceptual schema defined in 7.4.4.4 of ISO/TS 19139:2007. It contains the implementation of CT_Codelist and CT_CodelistValue. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constraints: - 1) metadataProperty.card = 0 - 2) dictionaryEntry.card = 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constraint: codeEntry.type = ML_CodeListDefinition + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/crsItem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/crsItem.xsd new file mode 100644 index 0000000000..62ea73323a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/crsItem.xsd @@ -0,0 +1,1031 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This crsItem.xsd schema implements the UML conceptual schema defined in 7.4.4.3 of ISO/TS 19139:2007. It contains the implementation of CT_CRS, CT_CoordinateSystem, CT_CoordinateSystemAxis, CT_Datum, CT_Ellipsoid, CT_PrimeMeridian, CT_Operation, CT_OperationMethod and CT_OperationParameters. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/extendedTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/extendedTypes.xsd new file mode 100644 index 0000000000..bf47803bbe --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/extendedTypes.xsd @@ -0,0 +1,76 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This extendedTypes.xsd schema contains the XML definitions of FileName, Anchor and MimeFileType classes. These classes are fully described in 7.2 of ISO/TS 19139:2007. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/gmx.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/gmx.xsd new file mode 100644 index 0000000000..0df5b3756c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/gmx.xsd @@ -0,0 +1,12 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/gmxUsage.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/gmxUsage.xsd new file mode 100644 index 0000000000..824e10b82d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/gmxUsage.xsd @@ -0,0 +1,128 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This gmxUsage.xsd schema implements the UML conceptual schema defined in 7.4.1 of ISO/TS 19139:2007. It contains the implementation of the following classes: MX_Dataset, MX_Aggregate, MX_DataFile and MX_ScopeCode. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/uomItem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/uomItem.xsd new file mode 100644 index 0000000000..02eee9e5d6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gmx/uomItem.xsd @@ -0,0 +1,163 @@ + + + + + Geographic Metadata XML (GMX) Schema is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMX includes all the definitions of http://www.isotc211.org/2005/gmx namespace. The root document of this namespace is the file gmx.xsd. This uomItem.xsd schema implements the UML conceptual schema defined in 7.4.4.2 of ISO/TS 19139:2007. It contains the implementation of the UnitDefinition class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/ReadMe.txt new file mode 100644 index 0000000000..6bbcd21d6a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/ReadMe.txt @@ -0,0 +1,45 @@ +ISO(c) GSR schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Spatial Referencing (GSR) extensible markup language + +GSR is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GSR includes all the definitions of http://www.isotc211.org/2005/gsr +namespace. The root document of this namespace is the file gsr.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GSR + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GSR + * GSR XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (http://www.ign.fr). + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/gsr.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/gsr.xsd new file mode 100644 index 0000000000..a3aacf3aab --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/gsr.xsd @@ -0,0 +1,12 @@ + + + + + Geographic Spatial Referencing (GSR) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GSR includes all the definitions of http://www.isotc211.org/2005/gsr namespace. The root document of this namespace is the file gsr.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/spatialReferencing.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/spatialReferencing.xsd new file mode 100644 index 0000000000..2e9bf0fac4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gsr/spatialReferencing.xsd @@ -0,0 +1,25 @@ + + + + + Geographic Spatial Referencing (GSR) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GSR includes all the definitions of http://www.isotc211.org/2005/gsr namespace. The root document of this namespace is the file gsr.xsd. This spatialReferencing.xsd schema contains the implementation of SC_CRS. The encoding of this class is mapped to an ISO 19136 XML type. + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/ReadMe.txt new file mode 100644 index 0000000000..d1d377a77c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/ReadMe.txt @@ -0,0 +1,44 @@ +ISO(c) GSS schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Spatial Schema (GSS) extensible markup language + +GSS is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GSS includes all the definitions of http://www.isotc211.org/2005/gss +namespace. The root document of this namespace is the file gss.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GSS + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GSS + * GSS XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (nicolas.lesage@ign.fr). diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/geometry.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/geometry.xsd new file mode 100644 index 0000000000..4fec2bfb2e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/geometry.xsd @@ -0,0 +1,36 @@ + + + + + Geographic Spatial Schema (GSS) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GSS includes all the definitions of http://www.isotc211.org/2005/gss namespace. The root document of this namespace is the file gss.xsd. This geometry.xsd schema contains the implementation of GM_Object and GM_Point. The encoding of these classes is mapped to ISO 19136 geometric types. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/gss.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/gss.xsd new file mode 100644 index 0000000000..2594cfe939 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gss/gss.xsd @@ -0,0 +1,12 @@ + + + + + Geographic Spatial Schema (GSS) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GSS includes all the definitions of http://www.isotc211.org/2005/gss namespace. The root document of this namespace is the file gss.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/ReadMe.txt new file mode 100644 index 0000000000..29b13074a1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/ReadMe.txt @@ -0,0 +1,44 @@ +ISO(c) GTS schema ReadMe.txt +------------------------------------------------------------------------------ + +Geographic Temporal Schema (GTS) extensible markup language + +GTS is a component of the XML Schema Implementation of Geographic +Information Metadata documented in ISO/TS 19139:2007. + +GTS includes all the definitions of http://www.isotc211.org/2005/gts +namespace. The root document of this namespace is the file gts.xsd. + +The most current schemas are available at: +http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of readme.txt file and schema annotations + * Use of absolute schema locations of imported namespaces + * Simplification of the schema location of included XML Schemas + * Addition of the version attribute to the schema element. The value of + this attribute is expected to be the date of the last release of the + XML schemas (e.g. 2012-07-13 for this release) + * Include root XML Schema document in all schema documents + + Validation: Schemas have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + +2009-03-16 Marcellin Prudham & Nicolas Lesage + * Change of GML namespace: http://www.opengis.net/gml (GML 3.2) => + http://www.opengis.net/gml/3.2 (GML 3.2.1=ISO 19136) + + Note: ISO/TS 19139:2007 (published 2007-04-17) normatively reference + ISO 19136 which was published 2007-08-23. The major change applied to + ISO 19136 is the change of the namespace URI. Previous release of GTS + are not compliant with ISO/TS 19139:2007 + + Validation: Schemas have been validated with XSV 2.10, Xerces J 2.7.1 and + XML Spy 2009 (2009-03-02, IGN / France - Nicolas Lesage / Marcellin Prudham) + +2006-05-04 Marie-Pierre Escher & Nicolas Lesage + * First official release of GTS + * GTS XML Schema files were generated from ISO/TC 211 UML class diagrams + in accordance with ISO/TS 19139:2007. The XML Schema generator is a + Rational Rose Plug-in developed by IGN France (http://www.ign.fr). diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/gts.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/gts.xsd new file mode 100644 index 0000000000..a4184fdb83 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/gts.xsd @@ -0,0 +1,12 @@ + + + + + Geographic Temporal Schema (GTS) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GTS includes all the definitions of http://www.isotc211.org/2005/gts namespace. The root document of this namespace is the file gts.xsd. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/temporalObjects.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/temporalObjects.xsd new file mode 100644 index 0000000000..2c8a9b670e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/gts/temporalObjects.xsd @@ -0,0 +1,35 @@ + + + + + Geographic Temporal Schema (GTS) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GTS includes all the definitions of http://www.isotc211.org/2005/gts namespace. The root document of this namespace is the file gts.xsd. The temporalObjects.xsd schema contains the XML implementation of TM_Object, TM_Primitive and TM_PeriodDuration from ISO 19108. The encoding of these classes is mapped to ISO 19136 temporal types and W3C built-in types. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/ReadMe.txt new file mode 100644 index 0000000000..2cdbe533f2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/ReadMe.txt @@ -0,0 +1,20 @@ +ISO(c) - ISO/TS 19139:2007 resources +------------------------------------------------------------------------------ + +ISO/TS 19139:2007 resources are XML Files provided with the XML +Schema Implementations defined in ISO/TS 19139-2. Those resources are: +- Catalogues of Codelist, Units of measure (uom) and Coordinate Reference + Systems (CRS) +- sample XML + +------------------------------------------------------------------------------- + +2012-07-13 Nicolas Lesage on behalf of the ISO/TC 211 XML Maintenance Group + * Update of Readme.txt file + * Use of absolute schema locations + * Adoption of W3C Implementation of XLink: + + Validation: XML Files have been validated with XML Spy 2010 Rel. 2 (MSXML 6.0) + + +No history... diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/ML_gmxCodelists.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/ML_gmxCodelists.xml new file mode 100644 index 0000000000..4fbbdd5a0e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/ML_gmxCodelists.xml @@ -0,0 +1,841 @@ + + + + + + ML_gmxCodelists + + + Codelists for description of metadata datasets compliant with ISO/TC 211 19115:2003 and 19139 + + + Listes de codes pour la description de lots de métadonnées conforme ISO TC/211 19115:2003 et 19139 + + + + + GMX (and imported) namespace + + + 0.0 + + + 2005-03-18 + + + + + English + + + UTF 8 + + + + + + French + + + France + + + UTF 8 + + + + + + + + + + identification of when a given event occurred + CI_DateTypeCode + + + date identifies when the resource was brought into existence + creation + creation + + + date identifiant la création de la ressource + creation + création + + + + + + + + date identifies when the resource was issued + publication + publication + + + date identifiant la publication de la ressource + publication + publication + + + + + + + + date identifies when the resource was examined or re-examined and imporved or amended + revision + revision + + + amélioration ou amendement de la ressource + revision + révision + + + + + + + + identification de quand un événement s'est produit + CI_DateTypeCode + + + + + + + + + function performed by the resource + CI_OnLineFunctionCode + + + online instructions for transferring data from one storage device or system to another + download + Download + + + transfert de la ressource d'un système à un autre + download + Téléchargement + + + + + + + + online information about the resource + information + Information + + + description de la ressource en ligne + information + Information + + + + + + + + online instructions for requesting the resource from the provider + offlineAccess + Off line access + + + information pour requérir la ressource + offlineAccess + Accès hors ligne + + + + + + + + online order process for obtening the resource + order + Order + + + formulaire pour obtenir la ressource + order + commande en ligne + + + + + + + + online search interface for seeking out information about the resource + search + Search + + + interface de recherche d'information sur la ressource + search + Moteur de recherche + + + + + + + + Fonctionnalité offerte par la ressource + CI_OnLineFunctionCode + + + + + + + + + name of the character coding standard used in the resource + MD_CharacterSetCode + + + 16-bit fixed size Universal Character Set, based on ISO/IEC 10646 + ucs2 + + + 16 bits ISO/IEC 10646 + ucs2 + + + + + + + + 32-bit fixed size Universal Character Set, based on ISO/IEC 10646 + ucs4 + + + 32 bits ISO/IEC 10646 + ucs4 + + + + + + + + 7-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf7 + + + 7 bits ISO/IEC 10646 + utf7 + + + + + + + + 8-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf8 + + + 8 bits ISO/IEC 10646 + utf8 + + + + + + + + 16-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf16 + + + 16 bits ISO/IEC 10646 + utf16 + + + + + + + + ISO/IEC 8859-1, Information technology - 8-bit single byte coded graphic character sets - Part 1 : Latin alphabet No.1 + 8859part1 + + + ISO/IEC 8859-1, alphabet latin 1 + 8859part1 + + + + + + + + ISO/IEC 8859-2, Information technology - 8-bit single byte coded graphic character sets - Part 2 : Latin alphabet No.2 + 8859part2 + + + ISO/IEC 8859-2, alphabet latin 2 + 8859part2 + + + + + + + + ISO/IEC 8859-3, Information technology - 8-bit single byte coded graphic character sets - Part 3 : Latin alphabet No.3 + 8859part3 + + + ISO/IEC 8859-3, alphabet latin 3 + 8859part3 + + + + + + + + ISO/IEC 8859-4, Information technology - 8-bit single byte coded graphic character sets - Part 4 : Latin alphabet No.4 + 8859part4 + + + ISO/IEC 8859-4, alphabet latin 4 + 8859part4 + + + + + + + + ISO/IEC 8859-5, Information technology - 8-bit single byte coded graphic character sets - Part 5 : Latin/Cyrillic alphabet + 8859part5 + + + ISO/IEC 8859-5, alphabet latin/cyrillique + 8859part5 + + + + + + + + ISO/IEC 8859-6, Information technology - 8-bit single byte coded graphic character sets - Part 6 : Latin/Arabic alphabet + 8859part6 + + + ISO/IEC 8859-6, alphabet latin/arabe + 8859part6 + + + + + + + + ISO/IEC 8859-7, Information technology - 8-bit single byte coded graphic character sets - Part 7 : Latin/Greek alphabet + 8859part7 + + + ISO/IEC 8859-7, alphabet latin/grec + 8859part7 + + + + + + + + ISO/IEC 8859-8, Information technology - 8-bit single byte coded graphic character sets - Part 8 : Latin/Hebrew alphabet + 8859part8 + + + ISO/IEC 8859-8, alphabet latin/hébreu + 8859part8 + + + + + + + + ISO/IEC 8859-9, Information technology - 8-bit single byte coded graphic character sets - Part 9 : Latin alphabet No.5 + 8859part9 + + + ISO/IEC 8859-9, alphabet latin 5 + 8859part9 + + + + + + + + ISO/IEC 8859-10, Information technology - 8-bit single byte coded graphic character sets - Part 10 : Latin alphabet No.6 + 8859part10 + + + ISO/IEC 8859-10, alphabet latin 6 + 8859part10 + + + + + + + + ISO/IEC 8859-11, Information technology - 8-bit single byte coded graphic character sets - Part 11 : Latin/Thai alphabet + 8859part11 + + + ISO/IEC 8859-11, alphabet latin/Thaï + 8859part11 + + + + + + + + + ISO/IEC 8859-13, Information technology - 8-bit single byte coded graphic character sets - Part 13 : Latin alphabet No.7 + 8859part13 + + + ISO/IEC 8859-13, alphabet latin 7 + 8859part13 + + + + + + + + ISO/IEC 8859-14, Information technology - 8-bit single byte coded graphic character sets - Part 14 : Latin alphabet No.8 (Celtic) + 8859part14 + + + ISO/IEC 8859-14, alphabet latin 8 (celtique) + 8859part14 + + + + + + + + ISO/IEC 8859-15, Information technology - 8-bit single byte coded graphic character sets - Part 15 : Latin alphabet No.9 + 8859part15 + + + ISO/IEC 8859-15, alphabet latin 9 + 8859part15 + + + + + + + + ISO/IEC 8859-16, Information technology - 8-bit single byte coded graphic character sets - Part 16 : Latin alphabet No.10 + 8859part16 + + + ISO/IEC 8859-16, alphabet latin 10 + 8859part16 + + + + + + + + japanese code set used for electronic transmission + jis + + + Japonais + jis + + + + + + + + japanese code set used on MS-DOS machines + shiftJIS + + + Japonais pour MS-DOS + shiftJIS + + + + + + + + japanese code set used on UNIX based machines + eucJP + + + Japonais pour UNIX + eucJP + + + + + + + + United States ASCII code set (ISO 646 US) + usAscii + + + ISO 646 US + usAscii + + + + + + + + IBM mainframe code set + ebcdic + + + IBM + ebcdic + + + + + + + + Korean code set + eucKR + + + Koréen + eucKR + + + + + + + + traditional Chinese code set used in Taiwan, Hong Kong of China and other areas + big5 + + + Chinois traditionel (Taiwan, Hong Kong, Chine) + big5 + + + + + + + + simplified Chinese code set + GB2312 + + + Chinois simplifié + GB2312 + + + + + + + + Jeu de caractères + MD_CharacterSetCode + + + + + + + + + class of information to which the referencing entity applies + MD_ScopeCode + + + Information applies to the attribute class + attribute + Attribute + + + Information qui s’applique à une classe d’attributs + attribute + Attribut + + + + + + + + Information applies to the characteristic of a feature + attributeType + Attribute type + + + Information qui s’applique à la caractéristique d’une entité géographique + attributeType + Type d’attribut + + + + + + + + Information applies to the dataset + dataset + Dataset + + + Information qui s’applique au jeu de données + dataset + Jeu de données + + + + + + Information applies to the dataset + dataset + 005 + + + + + + + Information applies to the series + series + Series + + + Information qui s’applique à une série + series + Série + + + + + + + + Information applies to non-geographic data + nonGeographicDataset + Non geographic dataset + + + Information qui s’applique à des données non-géographiques + nonGeographicDataset + Jeu de données non géographiques + + + + + + + + Information applies to a feature + feature + Feature + + + Information qui s’applique à un élément (entité géographique) + feature + Elément + + + + + + + + Information applies to a feature type + featureType + Feature type + + + Information qui s’applique à un type d’élément + featureType + Type d’élément + + + + + + + + Information applies to a property type + propertyType + Property type + + + Information qui s’applique à un type de propriété + propertyType + Type de propriété + + + + + + + + Information applies to a tile, a spatial subset of geographic data + tile + Tile + + + Information qui s’applique à une tuile, un sous-ensemble spatial de données géographiques + tile + Tuile + + + + + + + + information sur l'entité sur laquelle les métadonnées s'appliquent + MD_ScopeCode + + + + + + + + + + Language : ISO 639-2 (3 characters) + LanguageCode + + + English + eng + English + + + Anglais + eng + Anglais + + + + + + + + French + fra + French + + + Français + fra + Français + + + + + + + + Langue : ISO 639-2 (3 caractères) + LanguageCode + + + + + + + + + Country : ISO 3166-2 (2 characters) + Country + + + United Kingdom + UK + United Kingdom + + + Royaume-Uni + UK + Royaume-Uni + + + + + + + + France + FR + France + + + France + FR + France + + + + + + + + Pays : ISO 3166-2 (2 caractères) + Country + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/gmxCodelists.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/gmxCodelists.xml new file mode 100644 index 0000000000..9214ce8808 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/gmxCodelists.xml @@ -0,0 +1,1898 @@ + + + + + + + gmxCodelists + + + Codelists for description of metadata datasets compliant with ISO/TC 211 19115:2003 and 19139 + + + GMX (and imported) namespace + + + 0.0 + + + 2005-03-18 + + + + + + + + identification of when a given event occurred + CI_DateTypeCode + + + date identifies when the resource was brought into existence + creation + + + + + date identifies when the resource was issued + publication + + + + + date identifies when the resource was examined or re-examined and imporved or amended + revision + + + + + + + + function performed by the resource + CI_OnLineFunctionCode + + + online instructions for transferring data from one storage device or system to another + download + + + + + online information about the resource + information + + + + + online instructions for requesting the resource from the provider + offlineAccess + + + + + online order process for obtening the resource + order + + + + + online search interface for seeking out information about the resource + search + + + + + + + + mode in which the data is represented + CI_PresentationFormCode + + + digital representation of a primarily textual item (can contain illustrations also) + documentDigital + + + + + representation of a primarily textual item (can contain illustrations also) on paper, photograhic material, or other media + imageDigital + + + + + likeness of natural or man-made features, objects, and activities acquired through the sensing of visual or any other segment of the electromagnetic spectrum by sensors, such as thermal infrared, and high resolution radar and stored in digital format + documentHardcopy + + + + + likeness of natural or man-made features, objects, and activities acquired through the sensing of visual or any other segment of the electromagnetic spectrum by sensors, such as thermal infrared, and high resolution radar and reproduced on paper, photographic material, or other media for use directly by the human user + imageHardcopy + + + + + map represented in raster or vector form + mapDigital + + + + + map printed on paper, photographic material, or other media for use directly by the human user + mapHardcopy + + + + + multi-dimensional digital representation of a feature, process, etc. + modelDigital + + + + + 3-dimensional, physical model + modelHardcopy + + + + + vertical cross-section in digital form + profileDigital + + + + + vertical cross-section printed on paper, etc. + profileHardcopy + + + + + digital representation of facts or figures systematically displayed, especially in columns + tableDigital + + + + + representation of facts or figures systematically displayed, especially in columns, printed onpapers, photographic material, or other media + tableHardcopy + + + + + digital video recording + videoDigital + + + + + video recording on film + videoHardcopy + + + + + + + + function performed by the responsible party + CI_RoleCode + + + party that supplies the resource + resourceProvider + + + + + party that accepts accountability and responsability for the data and ensures appropriate care and maintenance of the resource + custodian + + + + + party that owns the resource + owner + + + + + party who uses the resource + user + + + + + party who distributes the resource + distributor + + + + + party who created the resource + originator + + + + + party who can be contacted for acquiring knowledge about or acquisition of the resource + pointOfContact + + + + + key party responsible for gathering information and conducting research + principalInvestigator + + + + + party wha has processed the data in a manner such that the resource has been modified + processor + + + + + party who published the resource + publisher + + + + + party who authored the resource + author + + + + + + + + type or method for evaluating an identified data quality measure + DQ_EvaluationMethodTypeCode + + + method of evaluating the quality of a dataset based on inspection of items within the dataset, where all data required is internal to the dataset being evaluated + directInternal + + + + + method of evaluating the quality of a dataset based on inspection of items within the dataset, where reference data external to the dataset being evaluated is required + directExternal + + + + + method of evaluating the quality of a dataset based on external knowledge + indirect + + + + + + + + justification for the correlation of two datasets + DS_AssociationTypeCode + + + reference from one dataset to another + crossReference + + + + + reference to a master dataset of which this one is a part + largerWorkCitation + + + + + part of the same structured set of data held in a computer + partOfSeamlessDatabase + + + + + mapping and charting information from which the dataset content originates + source + + + + + part of a set of imagery that when used together, provides three-dimensional images + stereoMate + + + + + + + + type of aggregation activity in which datasets are related + DS_InitiativeTypeCode + + + series of organized planned actions + campaign + + + + + accumulation of datasets assembled for a specific purpose + collection + + + + + specific performance of a function or group of functions + exercise + + + + + process designed to find if something is effective or valid + experiment + + + + + search or systematic inquiry + investigation + + + + + specific operation of a data collection system + mission + + + + + device or piece of equipment which detects or records + sensor + + + + + action that is part of a series of actions + operation + + + + + vehicle or other support base that holds a sensor + platform + + + + + method of doing something involving a number of steps + process + + + + + specific planned activity + program + + + + + organized undertaking, research, or development + project + + + + + examination or investigation + study + + + + + piece of work + task + + + + + process of testing to discover or demonstrate something + trial + + + + + + + + code indicating whether grid data is point or area + MD_CellGeometryCode + + + each cell represents a point + point + + + + + each cell represents an area + area + + + + + + + + name of the character coding standard used in the resource + MD_CharacterSetCode + + + 16-bit fixed size Universal Character Set, based on ISO/IEC 10646 + ucs2 + + + + + 32-bit fixed size Universal Character Set, based on ISO/IEC 10646 + ucs4 + + + + + 7-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf7 + + + + + 8-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf8 + + + + + 16-bit variable size UCS Transfer Format, based on ISO/IEC 10646 + utf16 + + + + + ISO/IEC 8859-1, Information technology - 8-bit single byte coded graphic character sets - Part 1 : Latin alphabet No.1 + 8859part1 + + + + + ISO/IEC 8859-2, Information technology - 8-bit single byte coded graphic character sets - Part 2 : Latin alphabet No.2 + 8859part2 + + + + + ISO/IEC 8859-3, Information technology - 8-bit single byte coded graphic character sets - Part 3 : Latin alphabet No.3 + 8859part3 + + + + + ISO/IEC 8859-4, Information technology - 8-bit single byte coded graphic character sets - Part 4 : Latin alphabet No.4 + 8859part4 + + + + + ISO/IEC 8859-5, Information technology - 8-bit single byte coded graphic character sets - Part 5 : Latin/Cyrillic alphabet + 8859part5 + + + + + ISO/IEC 8859-6, Information technology - 8-bit single byte coded graphic character sets - Part 6 : Latin/Arabic alphabet + 8859part6 + + + + + ISO/IEC 8859-7, Information technology - 8-bit single byte coded graphic character sets - Part 7 : Latin/Greek alphabet + 8859part7 + + + + + ISO/IEC 8859-8, Information technology - 8-bit single byte coded graphic character sets - Part 8 : Latin/Hebrew alphabet + 8859part8 + + + + + ISO/IEC 8859-9, Information technology - 8-bit single byte coded graphic character sets - Part 9 : Latin alphabet No.5 + 8859part9 + + + + + ISO/IEC 8859-10, Information technology - 8-bit single byte coded graphic character sets - Part 10 : Latin alphabet No.6 + 8859part10 + + + + + ISO/IEC 8859-11, Information technology - 8-bit single byte coded graphic character sets - Part 11 : Latin/Thai alphabet + 8859part11 + + + + + + ISO/IEC 8859-13, Information technology - 8-bit single byte coded graphic character sets - Part 13 : Latin alphabet No.7 + 8859part13 + + + + + ISO/IEC 8859-14, Information technology - 8-bit single byte coded graphic character sets - Part 14 : Latin alphabet No.8 (Celtic) + 8859part14 + + + + + ISO/IEC 8859-15, Information technology - 8-bit single byte coded graphic character sets - Part 15 : Latin alphabet No.9 + 8859part15 + + + + + ISO/IEC 8859-16, Information technology - 8-bit single byte coded graphic character sets - Part 16 : Latin alphabet No.10 + 8859part16 + + + + + japanese code set used for electronic transmission + jis + + + + + japanese code set used on MS-DOS machines + shiftJIS + + + + + japanese code set used on UNIX based machines + eucJP + + + + + United States ASCII code set (ISO 646 US) + usAscii + + + + + IBM mainframe code set + ebcdic + + + + + Korean code set + eucKR + + + + + traditional Chinese code set used in Taiwan, Hong Kong of China and other areas + big5 + + + + + simplified Chinese code set + GB2312 + + + + + + + + name of the handling restrictions on the dataset + MD_ClassificationCode + + + available for general disclosure + unclassified + + + + + not for general disclosure + restricted + + + + + available for someone who can be entrusted with information + confidential + + + + + kept or meant to be kept private, unknown, or hidden from all but a select group of people + secret + + + + + of the highest secrecy + topSecret + + + + + + + + specific type of information represented in the cell + MD_CoverageContentTypeCode + + + meaningful numerical representation of a physical parameter that is not the actual value of the physical parameter + image + + + + + code value with no quantitative meaning, used to represent a physical quantity + thematicClassification + + + + + value in physical units of the quantity being measured + physicalMeasurement + + + + + + + + datatype of element or entity + MD_DatatypeCode + + + descriptor of a set of objects that share the same attributes, operations, methods, relationships, and behavior + class + + + + + + flexible enumeration useful for expressing a long list of values, can be extended + codelist + + + + + data type whose instances form a list of named literal values, not extendable + enumeration + + + + + permissible value for a codelist or enumeration + codelistElement + + + + + class that cannot be directly instantiated + abstractClass + + + + + class that is composed of classes it is connected to by an aggregate relationship + aggregateClass + + + + + subclass that may be substituted for its superclass + specifiedClass + + + + + class with few or no operations whose primary purpose is to hold the abstract state of another class for transmittal, storage, encoding or persistent storage + datatypeClass + + + + + named set of operations that characterize the behavior of an element + interfaceClass + + + + + class describing a selection of one of the specified types + unionClass + + + + + class whose instances are classes + metaClass + + + + + class used for specification of a domain of instances (objects), together with the operations applicable to the objects. A type may have attributes and associations + typeClass + + + + + free text field + characterString + + + + + numerical field + integer + + + + + semantic relationship between two classes that involves connections among their instances + association + + + + + + + + name of the dimension + MD_DimensionNameTypeCode + + + ordinate (y) axis + row + + + + + abscissa (x) axis + column + + + + + vertical (z) axis + vertical + + + + + along the direction of motion of the scan point + track + + + + + perpendicular to the direction of motion of the scan point + crossTrack + + + + + scan line of a sensor + line + + + + + element along a scan line + sample + + + + + duration + time + + + + + + + + name of point or vector objects used to locate zero-, one-, two-, or three-dimensional spatial locations in the dataset + MD_GeometricObjectTypeCode + + + set of geometric primitives such that their boundaries can be represented as a union of other primitives + complex + + + + + connected set of curves, solids or surfaces + composite + + + + + bounded, 1-dimensional geometric primitive, representing the continuous image of a line + curve + + + + + zero-dimensional geometric primitive, representing a position but not having an extent + point + + + + + bounded, connected 3-dimensional geometric primitive, representing the continuous image of a region of space + solid + + + + + bounded, connected 2-dimensional geometric primitive, representing the continuous image of a region of a plane + surface + + + + + + + + code which indicates conditions which may affect the image + MD_ImagingConditionCode + + + portion of the image is blurred + blurredImage + + + + + portion of the image is partially obscured by cloud cover + cloud + + + + + acute angle between the plane of the ecliptic (the plane of the Earth s orbit) and the plane of the celestial equator + degradingObliquity + + + + + portion of the image is partially obscured by fog + fog + + + + + portion of the image is partially obscured by heavy smoke or dust + heavySmokeOrDust + + + + + image was taken at night + night + + + + + image was taken during rainfall + rain + + + + + image was taken during semi-dark conditions -- twilight conditions + semiDarkness + + + + + portion of the image is obscured by shadow + shadow + + + + + portion of the image is obscured by snow + snow + + + + + the absence of collection data of a given point or area caused by the relative location of topographic features which obstruct the collection path between the collector(s) and the subject(s) of interest + terrainMasking + + + + + + + + methods used to group similar keywords + MD_KeywordTypeCode + + + keyword identifies a branch of instruction or specialized learning + discipline + + + + + keyword identifies a location + place + + + + + keyword identifies the layer(s) of any deposited substance + stratum + + + + + keyword identifies a time period related to the dataset + temporal + + + + + keyword identifies a particular subject or topic + theme + + + + + + + + frequency with which modifications and deletions are made to the data after it is first produced + MD_MaintenanceFrequencyCode + + + data is repeatedly and frequently updated + continual + + + + + data is updated each day + daily + + + + + data is updated on a weekly basis + weekly + + + + + data is updated every two weeks + fortnightly + + + + + data is updated each month + monthly + + + + + + + data is updated every three months + + quarterly + + + + + + data is updated twice each year + biannually + + + + + data is updated every year + annually + + + + + data is updated as deemed necessary + asNeeded + + + + + data is updated in intervals that are uneven in duration + irregular + + + + + there are no plans to update the data + notPlanned + + + + + frequency of maintenance for the data is not known + + unknown + + + + + + + + + method used to write to the medium + MD_MediumFormatCode + + + CoPy In / Out (UNIX file format and command) + cpio + + + + + Tape ARchive + tar + + + + + high sierra file system + highSierra + + + + + information processing volume and file structure of CD-ROM + iso9660 + + + + + rock ridge interchange protocol (UNIX) + iso9660RockRidge + + + + + hierarchical file system (Macintosh) + iso9660AppleHFS + + + + + + + + name of the medium + MD_MediumNameCode + + + read-only optical disk + cdRom + + + + + digital versatile disk + dvd + + + + + digital versatile disk, read only + dvdRom + + + + + 3,5 inch magnetic disk + 3halfInchFloppy + + + + + 5,25 inch magnetic disk + 5quarterInchFloppy + + + + + 7 track magnetic tape + 7trackTape + + + + + 9 track magnetic tape + 9trackType + + + + + 3480 cartridge tape drive + 3480Cartridge + + + + + 3490 cartridge tape drive + 3490Cartridge + + + + + 3580 cartridge tape drive + 3580Cartridge + + + + + 4 millimetre magnetic tape + 4mmCartridgeTape + + + + + 8 millimetre magnetic tape + 8mmCartridgeTape + + + + + 0,25 inch magnetic tape + 1quarterInchCartridgeTape + + + + + half inch cartridge streaming tape drive + digitalLinearTape + + + + + direct computer linkage + onLine + + + + + linkage through a satellite communication system + satellite + + + + + communication through a telephone network + telephoneLink + + + + + pamphlet or leaflet giving descriptive information + hardcopy + + + + + + + + obligation of the element or entity + MD_ObligationCode + + + element is always required + mandatory + + + + + element is not required + optional + + + + + element is required when a specific condition is met + conditional + + + + + + + + point in a pixel corresponding to the Earth location of the pixel + MD_PixelOrientationCode + + + point halfway between the lower left and the upper right of the pixel + center + + + + + the corner in the pixel closest to the origin of the SRS; if two are at the same distance from the origin, the one with the smallest x-value + lowerLeft + + + + + next corner counterclockwise from the lower left + lowerRight + + + + + next corner counterclockwise from the lower right + upperRight + + + + + next corner counterclockwise from the upper right + upperLeft + + + + + + + + status of the dataset or progress of a review + MD_ProgressCode + + + production of the data has been completed + completed + + + + + data has been stored in an offline storage facility + historicalArchive + + + + + data is no longer relevant + obsolete + + + + + data is continually being updated + onGoing + + + + + fixed date has been established upon or by which the data will be created or updated + planned + + + + + data needs to be generated or updated + required + + + + + data is currently in the process of being created + underDevelopment + + + + + + + + limitation(s) placed upon the access or use of the data + MD_RestrictionCode + + + exclusive right to the publication, production, or sale of the rights to a literary, dramatic, musical, or artistic work, or to the use of a commercial print or label, granted by law for a specified period of time to an author, composer, artist, distributor + copyright + + + + + government has granted exclusive right to make, sell, use or license an invention or discovery + patent + + + + + produced or sold information awaiting a patent + patentPending + + + + + a name, symbol, or other device identifying a product, officially registered and legally restricted to the use of the owner or manufacturer + trademark + + + + + formal permission to do something + license + + + + + rights to financial benefit from and control of distribution of non-tangible property that is a result of creativity + intellectualPropertyRights + + + + + withheld from general circulation or disclosure + restricted + + + + + limitation not listed + otherRestrictions + + + + + + + + class of information to which the referencing entity applies + MD_ScopeCode + + + information applies to the attribute class + attribute + + + + + information applies to the characteristic of a feature + attributeType + + + + + information applies to the collection hardware class + collectionHardware + + + + + information applies to the collection session + collectionSession + + + + + information applies to the dataset + dataset + + + + + information applies to the series + series + + + + + information applies to non-geographic data + nonGeographicDataset + + + + + information applies to a dimension group + dimensionGroup + + + + + information applies to a feature + feature + + + + + information applies to a feature type + featureType + + + + + information applies to a property type + propertyType + + + + + information applies to a field session + fieldSession + + + + + information applies to a computer program or routine + software + + + + + information applies to a capability which a service provider entity makes available to a service user entity through a set of interfaces that define a behaviour, such as a use case + service + + + + + information applies to a copy or imitation of an existing or hypothetical object + model + + + + + information applies to a tile, a spatial subset of geographic data + tile + + + + + + + + method used to represent geographic information in the dataset + MD_SpatialRepresentationTypeCode + + + vector data is used to represent geographic data + vector + + + + + grid data is used to represent geographic data + grid + + + + + textual or tabular data is used to represent geographic data + textTable + + + + + triangulated irregular network + tin + + + + + three-dimensional view formed by the intersecting homologous rays of an overlapping pair of images + stereoModel + + + + + scene from a video recording + video + + + + + + + + high-level geographic data thematic classification to assist in the grouping and search of available geographic data sets. Can be used to group keywords as well. Listed examples are not exhaustive. + MD_TopicCategoryCode + + + rearing of animals and/or cultivation of plants. Examples: agriculture, irrigation, aquaculture, plantations, herding, pests and diseases affecting crops and livestock + farming + + + + + flora and/or fauna in natural environment. Examples: wildlife, vegetation, biological sciences, ecology, wilderness, sealife, wetlands, habitat + biota + + + + + legal land descriptions. Examples: political and administrative boundaries + boundaries + + + + + processes and phenomena of the atmosphere. Examples: cloud cover, weather, climate, atmospheric conditions, climate change, precipitation + climatologyMeteorologyAtmosphere + + + + + economic activities, conditions and employment. Examples: production, labour, revenue, commerce, industry, tourism and ecotourism, forestry, fisheries, commercial or subsistence hunting, exploration and exploitation of resources such as minerals, oil and gas + economy + + + + + height above or below sea level. Examples: altitude, bathymetry, digital elevation models, slope, derived products + elevation + + + + + environmental resources, protection and conservation. Examples: environmental pollution, waste storage and treatment, environmental impact assessment, monitoring environmental risk, nature reserves, landscape + environment + + + + + information pertaining to earth sciences. Examples: geophysical features and processes, geology, minerals, sciences dealing with the composition, structure and origin of the earth s rocks, risks of earthquakes, volcanic activity, landslides, gravity information, soils, permafrost, hydrogeology, erosion + geoscientificInformation + + + + + health, health services, human ecology, and safety. Examples: disease and illness, factors affecting health, hygiene, substance abuse, mental and physical health, health services + health + + + + + base maps. Examples: land cover, topographic maps, imagery, unclassified images, annotations + imageryBaseMapsEarthCover + + + + + military bases, structures, activities. Examples: barracks, training grounds, military transportation, information collection + intelligenceMilitary + + + + + inland water features, drainage systems and their characteristics. Examples: rivers and glaciers, salt lakes, water utilization plans, dams, currents, floods, water quality, hydrographic charts + inlandWaters + + + + + positional information and services. Examples: addresses, geodetic networks, control points, postal zones and services, place names + location + + + + + features and characteristics of salt water bodies (excluding inland waters). Examples: tides, tidal waves, coastal information, reefs + oceans + + + + + information used for appropriate actions for future use of the land. Examples: land use maps, zoning maps, cadastral surveys, land ownership + planningCadastre + + + + + characteristics of society and cultures. Examples: settlements, anthropology, archaeology, education, traditional beliefs, manners and customs, demographic data, recreational areas and activities, social impact assessments, crime and justice, census information + society + + + + + man-made construction. Examples: buildings, museums, churches, factories, housing, monuments, shops, towers + structure + + + + + means and aids for conveying persons and/or goods. Examples: roads, airports/airstrips, shipping routes, tunnels, nautical charts, vehicle or vessel location, aeronautical charts, railways + transportation + + + + + energy, water and waste systems and communications infrastructure and services. Examples: hydroelectricity, geothermal, solar and nuclear sources of energy, water purification and distribution, sewage collection and disposal, electricity and gas distribution, data communication, telecommunication, radio, communication networks + utilitiesCommunication + + + + + + + + degree of complexity of the spatial relationships + MD_TopologyLevelCode + + + geometry objects without any additional structure which describes topology + geometryOnly + + + + + 1-dimensional topological complex -- commonly called chain-node topology + topology1D + + + + + 1-dimensional topological complex that is planar. (A planar graph is a graph that can be drawn in a plane in such a way that no two edges intersect except at a vertex.) + planarGraph + + + + + 2-dimensional topological complex that is planar. (A 2-dimensional topological complex is commonly called full topology in a cartographic 2D environment.) + fullPlanarGraph + + + + + 1-dimensional topological complex that is isomorphic to a subset of a surface. (A geometric complex is isomorphic to a topological complex if their elements are in a one-to-one, dimensional-and boundry-preserving correspondence to one another.) + surfaceGraph + + + + + 2-dimensional topological complex that is isomorphic to a subset of a surface + fullSurfaceGraph + + + + + 3-dimensional topological complex. (A topological complex is a collection of topological primitives that are closed under the boundary operations.) + topology3D + + + + + complete coverage of a 3D Euclidean coordinate space + fullTopology3D + + + + + topological complex without any specified geometric realisation + abstract + + + + + + + + Extension of MD_ScopeCode for the needs of GMX application schemas and in the context of a transfer + MX_ScopeCode + + + + information applies to the attribute class + attribute + + + + + information applies to the characteristic of a feature + attributeType + + + + + information applies to the collection hardware class + collectionHardware + + + + + information applies to the collection session + collectionSession + + + + + information applies to the dataset + dataset + + + + + information applies to the series + series + + + + + information applies to non-geographic data + nonGeographicDataset + + + + + information applies to a dimension group + dimensionGroup + + + + + information applies to a feature + feature + + + + + information applies to a feature type + featureType + + + + + information applies to a property type + propertyType + + + + + information applies to a field session + fieldSession + + + + + information applies to a computer program or routine + software + + + + + information applies to a capability which a service provider entity makes available to a service user entity through a set of interfaces that define a behaviour, such as a use case + service + + + + + information applies to a copy or imitation of an existing or hypothetical object + model + + + + + information applies to a tile, a spatial subset of geographic data + tile + + + + + + The referencing entity applies to a transfer aggregate which was originally identified as an initiative (DS_Initiative) + initiative + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a stereo mate (DS_StereoMate) + stereomate + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a sensor (DS_Sensor) + sensor + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a platform series (DS_PlatformSeries) + platformSeries + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a sensor series (DS_SensorSeries) + sensorSeries + + + + + The referencing entity applies to a transfer aggregate which was originally identified as a production series (DS_ProductionSeries) + productionSeries + + + + + The referencing entity applies to a transfer aggregate which has no existence outside of the transfer context + transferAggregate + + + + + The referencing entity applies to a transfer aggregate which has an existence outside of the transfer context, but which does not pertains to a specific aggregate type. + otherAggregate + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/tcCodelists.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/tcCodelists.xml new file mode 100644 index 0000000000..89dfd67c0a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/codelist/tcCodelists.xml @@ -0,0 +1,63 @@ + + + + + + tcCodelists + + + Codelists used in the type catalogue schema + + + Type catalogues + + + 0.1 + + + 2007-06-14 + + + + + + + specifies aggregation semantics: specifies whether the value of each property is a single value ("noAggregation") which is the default case or if a single property instance has an aggregate value in which case the value specifies the aggregation type ("bag", "set", "sequence"). Note that this value is independent from the cardinality. + TC_AggregationType + + + single value - no aggregation (default) + noAggregation + + + + + aggregation semantics: bag + bag + + + + + aggregation semantics: set + set + + + + + aggregation semantics: sequence (ordered bag) + sequence + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/crs/ML_gmxCrs.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/crs/ML_gmxCrs.xml new file mode 100644 index 0000000000..485b6d5278 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/crs/ML_gmxCrs.xml @@ -0,0 +1,179 @@ + + + + + + + ML_gmxCrs + + + CRS catalogue for description of gmx metadata dataset + + + Catalogue des paramètres géodésiques pour la description de jeux de métadonnées conformes aux schémas gmx + + + + + GMX (and imported) namespace + + + 0.0 + + + 2005-03-29 + + + + + English + + + UTF 8 + + + + + + French + + + France + + + UTF 8 + + + + + + + + + + 4326 + WGS84G + World Geodetic System 1984 + + + + + + + + World + + + + + + + + not known + + + + + + 4326 + WGS84G + WGS 1984 + + + + + + + + Monde + + + + + + + + inconnu + + + + + + + + + + 6422 + ellipsoidal2Ddeg + + + + + + + + + 9901 + Geodetic latitude + Lat + North + + + + + + 9902 + Geodetic longitude + Lon + East + + + + + + + 6326 + World Geodetic System 1984 + not known + + + + + + + + + 7030 + WGS 84 + 6378137 + + + 298.2572 + + + + + + + + + 8901 + Greenwich + 0 + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/crs/gmxCrs.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/crs/gmxCrs.xml new file mode 100644 index 0000000000..2ab0e10c20 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/crs/gmxCrs.xml @@ -0,0 +1,287 @@ + + + + + + gmxCrs + + + CRS parameters dictionary + + + GMX (and imported) namespace + + + 0.0 + + + 2005-03-18 + + + + + + + + 4326 + WGS84G + World Geodetic System 1984 + + + + + + + + World: Afghanistan, Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antarctica, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, + Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belgium, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bosnia and Herzegowina, + Botswana, Bouvet Island, Brazil, British Indian Ocean Territory, British Virgin Islands, Brunei Darussalam, Bulgaria, Burkina Faso, Burundi, Cambodia, + Cameroon, Canada, Cape Verde, Cayman Islands, Central African Republic, Chad, Chile, China, Christmas Island, Cocos (Keeling) Islands, Comoros, + Congo, Cook Islands, Costa Rica, Côte d'Ivoire (Ivory Coast), Croatia, Cuba, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, + East Timor, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Falkland Islands (Malvinas), Faroe Islands, Fiji, Finland, France, + French Guiana, French Polynesia, French Southern Territories, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, + Guadeloupe, Guam, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Heard Island and McDonald Islands, Holy See (Vatican City State), Honduras, China + - Hong Kong, Hungary, Iceland, India, Indonesia, Islamic Republic of Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakstan, Kenya, Kiribati, + Democratic People's Republic of Korea (North Korea), Republic of Korea (South Korea), Kuwait, Kyrgyzstan, Lao People's Democratic Republic (Laos), + Latvia, Lebanon, Lesotho, Liberia, Libyan Arab Jamahiriya, Liechtenstein, Lithuania, Luxembourg, China - Macau, The Former Yugoslav Republic of + Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Marshall Islands, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Federated States + of Micronesia, Monaco, Mongolia, Montserrat, Morocco, Mozambique, Myanmar (Burma), Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New + Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Niue, Norfolk Island, Northern Mariana Islands, Norway, Oman, Pakistan, Palau, Panama, Papua New + Guinea (PNG), Paraguay, Peru, Philippines, Pitcairn, Poland, Portugal, Puerto Rico, Qatar, Reunion, Romania, Russian Federation, Rwanda, Saint Kitts and + Nevis, Saint Lucia, Saint Vincent and the Grenadines, Samoa, San Marino, Sao Tome and Principe, Saudi Arabia, Senegal, Seychelles, Sierra Leone, + Singapore, Slovakia (Slovak Republic), Slovenia, Solomon Islands, Somalia, South Africa, South Georgia and the South Sandwich Islands, Spain, Sri Lanka, + Saint Helena, Saint Pierre and Miquelon, Sudan, Suriname, Svalbard and Jan Mayen, Swaziland, Sweden, Switzerland, Syrian Arab Republic, Taiwan, + Tajikistan, United Republic of Tanzania, Thailand, The Democratic Republic of the Congo (Zaire), Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, + Turkey, Turkmenistan, Turks and Caicos Islands, Tuvalu, Uganda, Ukraine, United Arab Emirates (UAE), United Kingdom (UK), United States (USA), + United States Minor Outlying Islands, Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, US Virgin Islands, Wallis and Futuna, Western Sahara, Yemen, + Yugoslavia - Union of Serbia and Montenegro, Zambia, Zimbabwe. + + + + + + + + not known + + + + + + + + 32638 + UTM38W84 + WGS 84 / UTM zone 38N + + + + + + + + Between 42 and 48 deg East; northern hemisphere. Armenia. Azerbaijan. Djibouti. Eritrea. Ethiopia. Georgia. Islamic Republic of Iran. Iraq. Kazakstan. Kuwait. Russian Federation. Saudi Arabia. Somalia. Tukey. Yemen. + + + + + + + + not known + + + + + + + + + + + Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east. UoM: deg + 6422 + CS ellipsoidal2D + + + + + + + + Cartesian 2D CS. Axes: easting, northing (E,N). Orientations: east, north. UoM: m. + 4400 + Cs cartesian2D + + + + + + + + + 9901 + Geodetic latitude + Lat + North + + + + + + 9902 + Geodetic longitude + Lon + East + + + + + + 9907 + Northing + N + North + + + + + + 9906 + Easting + E + east + + + + + + + 6326 + World Geodetic System 1984 + not known + + + + + + + + + 7030 + WGS 84 + 6378137 + + + 298.2572 + + + + + + + + + 8901 + Greenwich + 0 + + + + + + 16038 + UTM Zone 38 N + not known + + + + 0 + + + + + + 45 + + + + + + 0.9996 + + + + + + 500000 + + + + + + 0 + + + + + + + + + 9807 + PRCM040 + Transverse Mercator + Transverse Mercator + 2 + 2 + + + + + + + + + + + 8801 + Latitude of natural origin + + + + + 8802 + Longitude of natural origin + + + + + 8805 + Scale factor at natural origin + + + + + 8806 + False Easting + + + + + 8807 + False Northing + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/example/fr-fr.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/example/fr-fr.xml new file mode 100644 index 0000000000..939b9722a0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/example/fr-fr.xml @@ -0,0 +1,83 @@ + + + + + + + France-France + + + + + + French + + + FR + + + UTF 8 + + + + + + + + 2005-03-18 + + + création + + + + + + + 2006-02-03 + + + révision + + + + + + + + french translation team + + + auteur + + + + + + + + + Résumé succint du contenu du jeu de données + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/uom/ML_gmxUom.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/uom/ML_gmxUom.xml new file mode 100644 index 0000000000..a29faa144c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/uom/ML_gmxUom.xml @@ -0,0 +1,125 @@ + + + + + + uom + + + units of measure dictionary compliant with SI definitions + + + dictionnaire d'unités de mesure conforme avec les définitions du Système International (SI) + + + + + GMX (and imported) namespace + + + 0.0 + + + 2005-06-18 + + + + + English + + + UTF 8 + + + + + + French + + + France + + + UTF 8 + + + + + + + + + + The metre is the length of the path travelled by ligth in vaccum during a time interval of 1/299 792 458 of a second + metre + length + m + + + + + unité de longueur de référence dans le système international, correspond à la distance parcourue par la lumière dans le vide pendant 1/299 792 458 seconde + metre + mètre + longueur + + + + + + + + + + Measure of angle equal to Pi/180 radians, widely used in geography + degree + angle + + 1.74532925199433E-02 + + + + + Unité d'angle de référence en géographie égale à Pi/180 radians. + degree + degré + angle + + + + + + + + + Radian is an unit of angle measure. It is defined as the ratio of arc length to the radius of the circle. + radian + plane angle + rad + + + + + + Le radian est une unité de mesaure angulaire définie comme le ratio entre le rayon et la longueur de l'arc. + radian + radian + angle planaire + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/uom/gmxUom.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/uom/gmxUom.xml new file mode 100644 index 0000000000..8e25cd4107 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/iso/19139/20070417/resources/uom/gmxUom.xml @@ -0,0 +1,66 @@ + + + + + + gmxUom + + + units of measure dictionary compliant with SI definitions + + + ISO/TC 211 GMX (and imported) namespace + + + 0.0 + + + 2005-03-18 + + + + + + + + The metre is the length of the path travelled by ligth in vaccum during a time interval of 1/299 792 458 of a second + metre + length + m + + + + + + + Measure of angle equal to Pi/180 radians, widely used in geography + degree + angle + + 1.74532925199433E-02 + + + + + + + Radian is an unit of angle measure. It is defined as the ratio of arc length to the radius of the circle. + radian + plane angle + rad + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gaz/1.0.0/gaz.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gaz/1.0.0/gaz.xsd new file mode 100644 index 0000000000..28e0a7327d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gaz/1.0.0/gaz.xsd @@ -0,0 +1,59 @@ + + + + + + + + + + + A location instance in a spatial reference system. A location instance specifies a location that is characterized by a location type. For example, a particular "county", "town", "property", or "river". + + + + + A location instance in a spatial reference system. + + + + + + + A URI for the location instance. + + + + + Optional date on which this version of the location instance was last changed. + + + + + + A value description where the main value is 'Historic'. + + + + + + Optional description of the history of this location instance. + + + + + + Optional description of this location instance. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gaz/1.0.0/gsipCodelistGeoIdentifierDesignationTypeCodeDictionary.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gaz/1.0.0/gsipCodelistGeoIdentifierDesignationTypeCodeDictionary.xml new file mode 100644 index 0000000000..8984c0b136 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gaz/1.0.0/gsipCodelistGeoIdentifierDesignationTypeCodeDictionary.xml @@ -0,0 +1,31 @@ + + + + + The type of a designation for a location instance in a gazetteer. + + GeoIdentifierDesignationTypeCode + DoD/IC Dictionary: GSIP Geographic Identifier Designation Type Code Dictionary + + + + Lands owned or administered by the U.S. Federal government, for example: national parks, national wildlife refuges, military reservations, Federal prisons, and public-domain land. + administeredFederal + Administered Federal + + + + + A geographic feature that once existed but has ceased to exist, is no longer discernable on the landscape or seascape, and/or no longer serves the original purpose. + historical + Historical + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/SchematronConstraints.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/SchematronConstraints.xml new file mode 100644 index 0000000000..6cfd40f197 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/SchematronConstraints.xml @@ -0,0 +1,71 @@ + + Schematron constraints for GML / ISO 19136 + + + + + + ValueArray may not carry both a reference to a codeSpace and a uom + + + + + All components shall be of the same type + All components shall be of the same type + + + + + The presence of a dimension attribute implies the presence of the srsName attribute. + The presence of an axisLabels attribute implies the presence of the srsName attribute. + The presence of an uomLabels attribute implies the presence of the srsName attribute. + The presence of an uomLabels attribute implies the presence of the axisLabels attribute and vice versa. + + + + + All patches shall be gml:PolygonPatch elements or an element in the substitution group of gml:PolygonPatch. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All patches shall be gml:Triangle elements or an element in the substitution group of gml:PolygonPatch. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + Property element may not carry both a reference to an object and contain an object. + Property element shall either carry a reference to an object or contain an object. + + + + + All values in the domain set shall be gml:MultiPoint elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:MultiCurve elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:MultiSurface elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:MultiSolid elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:Grid elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + + + All values in the domain set shall be gml:RectifiedGrid elements or an element in its substitution group. Note that the test currently does not identify substitutable elements correctly, this will require the use of XPath 2 in the future. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/basicTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/basicTypes.xsd new file mode 100644 index 0000000000..d6ffd5f6a1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/basicTypes.xsd @@ -0,0 +1,268 @@ + + + + basicTypes.xsd + See ISO/DIS 19136 8.2. +W3C XML Schema provides a set of built-in "simple" types which define methods for representing values as literals without internal markup. These are described in W3C XML Schema Part 2:2001. Because GML is an XML encoding in which instances are described using XML Schema, these simple types shall be used as far as possible and practical for the representation of data types. W3C XML Schema also provides methods for defining +- new simple types by restriction and combination of the built-in types, and +- complex types, with simple content, but which also have XML attributes. +In many places where a suitable built-in simple type is not available, simple content types derived using the XML Schema mechanisms are used for the representation of data types in GML. +A set of these simple content types that are required by several GML components are defined in the basicTypes schema, as well as some elements based on them. These are primarily based around components needed to record amounts, counts, flags and terms, together with support for exceptions or null values. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + gml:NilReasonType defines a content model that allows recording of an explanation for a void value or other exception. +gml:NilReasonType is a union of the following enumerated values: +- inapplicable there is no value +- missing the correct value is not readily available to the sender of this data. Furthermore, a correct value may not exist +- template the value will be available later +- unknown the correct value is not known to, and not computable by, the sender of this data. However, a correct value probably exists +- withheld the value is not divulged +- other:text other brief explanation, where text is a string of two or more characters with no included spaces +and +- anyURI which should refer to a resource which describes the reason for the exception +A particular community may choose to assign more detailed semantics to the standard values provided. Alternatively, the URI method enables a specific or more complete explanation for the absence of a value to be provided elsewhere and indicated by-reference in an instance document. +gml:NilReasonType is used as a member of a union in a number of simple content types where it is necessary to permit a value from the NilReasonType union as an alternative to the primary type. + + + + + + + + + + + + + + + + + + + + + + + + gml:SignType is a convenience type with values "+" (plus) and "-" (minus). + + + + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value. + + + + + + gml:CodeType is a generalized type to be used for a term, keyword or name. +It adds a XML attribute codeSpace to a term, where the value of the codeSpace attribute (if present) shall indicate a dictionary, thesaurus, classification scheme, authority, or pattern for the term. + + + + + + + + + + gml:CodeWithAuthorityType requires that the codeSpace attribute is provided in an instance. + + + + + + + + + + gml:MeasureType supports recording an amount encoded as a value of XML Schema double, together with a units of measure indicated by an attribute uom, short for "units Of measure". The value of the uom attribute identifies a reference system for the amount, usually a ratio or interval scale. + + + + + + + + + + The simple type gml:UomIdentifer defines the syntax and value space of the unit of measure identifier. + + + + + + This type specifies a character string of length at least one, and restricted such that it must not contain any of the following characters: ":" (colon), " " (space), (newline), (carriage return), (tab). This allows values corresponding to familiar abbreviations, such as "kg", "m/s", etc. +It is recommended that the symbol be an identifier for a unit of measure as specified in the "Unified Code of Units of Measure" (UCUM) (http://aurora.regenstrief.org/UCUM). This provides a set of symbols and a grammar for constructing identifiers for units of measure that are unique, and may be easily entered with a keyboard supporting the limited character set known as 7-bit ASCII. ISO 2955 formerly provided a specification with this scope, but was withdrawn in 2001. UCUM largely follows ISO 2955 with modifications to remove ambiguities and other problems. + + + + + + + + This type specifies a URI, restricted such that it must start with one of the following sequences: "#", "./", "../", or a string of characters followed by a ":". These patterns ensure that the most common URI forms are supported, including absolute and relative URIs and URIs that are simple fragment identifiers, but prohibits certain forms of relative URI that could be mistaken for unit of measure symbol . +NOTE It is possible to re-write such a relative URI to conform to the restriction (e.g. "./m/s"). +In an instance document, on elements of type gml:MeasureType the mandatory uom attribute shall carry a value corresponding to either +- a conventional unit of measure symbol, +- a link to a definition of a unit of measure that does not have a conventional symbol, or when it is desired to indicate a precise or variant definition. + + + + + + + + This type is deprecated for tuples with ordinate values that are numbers. +CoordinatesType is a text string, intended to be used to record an array of tuples or coordinates. +While it is not possible to enforce the internal structure of the string through schema validation, some optional attributes have been provided in previous versions of GML to support a description of the internal structure. These attributes are deprecated. The attributes were intended to be used as follows: +Decimal symbol used for a decimal point (default="." a stop or period) +cs symbol used to separate components within a tuple or coordinate string (default="," a comma) +ts symbol used to separate tuples or coordinate strings (default=" " a space) +Since it is based on the XML Schema string type, CoordinatesType may be used in the construction of tables of tuples or arrays of tuples, including ones that contain mixed text and numeric values. + + + + + + + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + A type for a list of values of the respective simple type. + + + + + + gml:CodeListType provides for lists of terms. The values in an instance element shall all be valid according to the rules of the dictionary, classification scheme, or authority identified by the value of its codeSpace attribute. + + + + + + + + + + gml:CodeOrNilReasonListType provides for lists of terms. The values in an instance element shall all be valid according to the rules of the dictionary, classification scheme, or authority identified by the value of its codeSpace attribute. An instance element may also include embedded values from NilReasonType. It is intended to be used in situations where a term or classification is expected, but the value may be absent for some reason. + + + + + + + + + + gml:MeasureListType provides for a list of quantities. + + + + + + + + + + gml:MeasureOrNilReasonListType provides for a list of quantities. An instance element may also include embedded values from NilReasonType. It is intended to be used in situations where a value is expected, but the value may be absent for some reason. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateOperations.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateOperations.xsd new file mode 100644 index 0000000000..3ba39e2b3f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateOperations.xsd @@ -0,0 +1,525 @@ + + + + coordinateOperations.xsd + See ISO/DIS 19136 13.6. +The spatial or temporal coordinate operations schema components can be divided into five logical parts, which define elements and types for XML encoding of the definitions of: +- Multiple abstract coordinate operations +- Multiple concrete types of coordinate operations, including Transformations and Conversions +- Abstract and concrete parameter values and groups +- Operation methods +- Abstract and concrete operation parameters and groups +These schema component encodes the Coordinate Operation package of the UML Model for ISO 19111 Clause 11. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + gml:AbstractCoordinateOperation is a mathematical operation on coordinates that transforms or converts coordinates to another coordinate reference system. Many but not all coordinate operations (from CRS A to CRS B) also uniquely define the inverse operation (from CRS B to CRS A). In some cases, the operation method algorithm for the inverse operation is the same as for the forward algorithm, but the signs of some operation parameter values shall be reversed. In other cases, different algorithms are required for the forward and inverse operations, but the same operation parameter values are used. If (some) entirely different parameter values are needed, a different coordinate operation shall be defined. +The optional coordinateOperationAccuracy property elements provide estimates of the impact of this coordinate operation on point position accuracy. + + + + + + + + + + + + + + + + + + + gml:operationVersion is the version of the coordinate transformation (i.e., instantiation due to the stochastic nature of the parameters). Mandatory when describing a transformation, and should not be supplied for a conversion. + + + + + gml:coordinateOperationAccuracy is an association role to a DQ_PositionalAccuracy object as encoded in ISO/TS 19139, either referencing or containing the definition of that positional accuracy. That object contains an estimate of the impact of this coordinate operation on point accuracy. That is, it gives position error estimates for the target coordinates of this coordinate operation, assuming no errors in the source coordinates. + + + + + + + + + + + gml:sourceCRS is an association role to the source CRS (coordinate reference system) of this coordinate operation. + + + + + gml:targetCRS is an association role to the target CRS (coordinate reference system) of this coordinate operation. + + + + + gml:CoordinateOperationPropertyType is a property type for association roles to a coordinate operation, either referencing or containing the definition of that coordinate operation. + + + + + + + + + gml:AbstractSingleOperation is a single (not concatenated) coordinate operation. + + + + + gml:SingleOperationPropertyType is a property type for association roles to a single operation, either referencing or containing the definition of that single operation. + + + + + + + + + gm:AbstractGeneralConversion is an abstract operation on coordinates that does not include any change of datum. The best-known example of a coordinate conversion is a map projection. The parameters describing coordinate conversions are defined rather than empirically derived. Note that some conversions have no parameters. The operationVersion, sourceCRS, and targetCRS elements are omitted in a coordinate conversion. +This abstract complex type is expected to be extended for well-known operation methods with many Conversion instances, in GML Application Schemas that define operation-method-specialized element names and contents. This conversion uses an operation method, usually with associated parameter values. However, operation methods and parameter values are directly associated with concrete subtypes, not with this abstract type. All concrete types derived from this type shall extend this type to include a "usesMethod" element that references the "OperationMethod" element. Similarly, all concrete types derived from this type shall extend this type to include zero or more elements each named "uses...Value" that each use the type of an element substitutable for the "AbstractGeneralParameterValue" element. + + + + + + + + + + + + + + + + + + + + + + + gml:GeneralConversionPropertyType is a property type for association roles to a general conversion, either referencing or containing the definition of that conversion. + + + + + + + + + gml:AbstractGeneralTransformation is an abstract operation on coordinates that usually includes a change of Datum. The parameters of a coordinate transformation are empirically derived from data containing the coordinates of a series of points in both coordinate reference systems. This computational process is usually "over-determined", allowing derivation of error (or accuracy) estimates for the transformation. Also, the stochastic nature of the parameters may result in multiple (different) versions of the same coordinate transformation. The operationVersion, sourceCRS, and targetCRS proeprty elements are mandatory in a coordinate transformation. +This abstract complex type is expected to be extended for well-known operation methods with many Transformation instances, in Application Schemas that define operation-method-specialized value element names and contents. This transformation uses an operation method with associated parameter values. However, operation methods and parameter values are directly associated with concrete subtypes, not with this abstract type. All concrete types derived from this type shall extend this type to include a "usesMethod" element that references one "OperationMethod" element. Similarly, all concrete types derived from this type shall extend this type to include one or more elements each named "uses...Value" that each use the type of an element substitutable for the "AbstractGeneralParameterValue" element. + + + + + + + + + + + + + + + + + + + + + + + + + + gml:GeneralTransformationPropertyType is a property type for association roles to a general transformation, either referencing or containing the definition of that transformation. + + + + + + + + + + gml:ConcatenatedOperation is an ordered sequence of two or more coordinate operations. This sequence of operations is constrained by the requirement that the source coordinate reference system of step (n+1) must be the same as the target coordinate reference system of step (n). The source coordinate reference system of the first step and the target coordinate reference system of the last step are the source and target coordinate reference system associated with the concatenated operation. Instead of a forward operation, an inverse operation may be used for one or more of the operation steps mentioned above, if the inverse operation is uniquely defined by the forward operation. +The gml:coordOperation property elements are an ordered sequence of associations to the two or more operations used by this concatenated operation. The AggregationAttributeGroup should be used to specify that the coordOperation associations are ordered. + + + + + + + + + + + + + gml:coordOperation is an association role to a coordinate operation. + + + + + gml:ConcatenatedOperationPropertyType is a property type for association roles to a concatenated operation, either referencing or containing the definition of that concatenated operation. + + + + + + + + + gml:PassThroughOperation is a pass-through operation specifies that a subset of a coordinate tuple is subject to a specific coordinate operation. +The modifiedCoordinate property elements are an ordered sequence of positive integers defining the positions in a coordinate tuple of the coordinates affected by this pass-through operation. The AggregationAttributeGroup should be used to specify that the modifiedCoordinate elements are ordered. + + + + + + + + + + + + + + + + gml:modifiedCoordinate is a positive integer defining a position in a coordinate tuple. + + + + + gml:PassThroughOperationPropertyType is a property type for association roles to a pass through operation, either referencing or containing the definition of that pass through operation. + + + + + + + + + gml:Conversion is a concrete operation on coordinates that does not include any change of Datum. The best-known example of a coordinate conversion is a map projection. The parameters describing coordinate conversions are defined rather than empirically derived. Note that some conversions have no parameters. +This concrete complex type can be used without using a GML Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one Conversion instance. +The usesValue property elements are an unordered list of composition associations to the set of parameter values used by this conversion operation. + + + + + + + + + + + + + + + gml:method is an association role to the operation method used by a coordinate operation. + + + + + gml:parameterValue is a composition association to a parameter value or group of parameter values used by a coordinate operation. + + + + + gml:ConversionPropertyType is a property type for association roles to a concrete general-purpose conversion, either referencing or containing the definition of that conversion. + + + + + + + + + gml:Transformation is a concrete object element derived from gml:GeneralTransformation (13.6.2.13). +This concrete object can be used for all operation methods, without using a GML Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one Transformation instance. +The parameterValue elements are an unordered list of composition associations to the set of parameter values used by this conversion operation. + + + + + + + + + + + + + + + gml:TransformationPropertyType is a property type for association roles to a transformation, either referencing or containing the definition of that transformation. + + + + + + + + + gml:AbstractGeneralParameterValue is an abstract parameter value or group of parameter values. +This abstract complexType is expected to be extended and restricted for well-known operation methods with many instances, in Application Schemas that define operation-method-specialized element names and contents. Specific parameter value elements are directly contained in concrete subtypes, not in this abstract type. All concrete types derived from this type shall extend this type to include one "...Value" element with an appropriate type, which should be one of the element types allowed in the ParameterValueType. In addition, all derived concrete types shall extend this type to include a "operationParameter" property element that references one element substitutable for the "OperationParameter" object element. + + + + + + + + gml:AbstractGeneralParameterValuePropertyType is a property type for inline association roles to a parameter value or group of parameter values, always containing the values. + + + + + + + + gml:ParameterValue is a parameter value, an ordered sequence of values, or a reference to a file of parameter values. This concrete complex type may be used for operation methods without using an Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one instance. This complex type may be used, extended, or restricted for well-known operation methods, especially for methods with many instances. + + + + + + + + + + + + + + + + + + + + + + + + gml:value is a numeric value of an operation parameter, with its associated unit of measure. + + + + + gml:stringValue is a character string value of an operation parameter. A string value does not have an associated unit of measure. + + + + + gml:integerValue is a positive integer value of an operation parameter, usually used for a count. An integer value does not have an associated unit of measure. + + + + + gml:booleanValue is a boolean value of an operation parameter. A Boolean value does not have an associated unit of measure. + + + + + gml:valueList is an ordered sequence of two or more numeric values of an operation parameter list, where each value has the same associated unit of measure. An element of this type contains a space-separated sequence of double values. + + + + + gml:integerValueList is an ordered sequence of two or more integer values of an operation parameter list, usually used for counts. These integer values do not have an associated unit of measure. An element of this type contains a space-separated sequence of integer values. + + + + + gml:valueFile is a reference to a file or a part of a file containing one or more parameter values, each numeric value with its associated unit of measure. When referencing a part of a file, that file shall contain multiple identified parts, such as an XML encoded document. Furthermore, the referenced file or part of a file may reference another part of the same or different files, as allowed in XML documents. + + + + + gml:operationParameter is an association role to the operation parameter of which this is a value. + + + + + gml:ParameterValueGroup is a group of related parameter values. The same group can be repeated more than once in a Conversion, Transformation, or higher level ParameterValueGroup, if those instances contain different values of one or more parameterValues which suitably distinquish among those groups. This concrete complex type can be used for operation methods without using an Application Schema that defines operation-method-specialized element names and contents. This complex type may be used, extended, or restricted for well-known operation methods, especially for methods with only one instance. +The parameterValue elements are an unordered set of composition association roles to the parameter values and groups of values included in this group. + + + + + + + + + + + + + + + gml:group is an association role to the operation parameter group for which this element provides parameter values. + + + + + gml:OperationMethod is a method (algorithm or procedure) used to perform a coordinate operation. Most operation methods use a number of operation parameters, although some coordinate conversions use none. Each coordinate operation using the method assigns values to these parameters. +The parameter elements are an unordered list of associations to the set of operation parameters and parameter groups used by this operation method. + + + + + + + + + + + + + + + + + + + + gml:formulaCitation provides a reference to a publication giving the formula(s) or procedure used by an coordinate operation method. + + + + + + + + + + + gml:formula Formula(s) or procedure used by an operation method. The use of the codespace attribite has been deprecated. The property value shall be a character string. + + + + + gml:sourceDimensions is the number of dimensions in the source CRS of this operation method. + + + + + gml:targetDimensions is the number of dimensions in the target CRS of this operation method. + + + + + gml:parameter is an association to an operation parameter or parameter group. + + + + + gml:OperationMethodPropertyType is a property type for association roles to a concrete general-purpose operation method, either referencing or containing the definition of that method. + + + + + + + + + gml:GeneralOperationParameter is the abstract definition of a parameter or group of parameters used by an operation method. + + + + + + + + + + + + + + gml:minimumOccurs is the minimum number of times that values for this parameter group or parameter are required. If this attribute is omitted, the minimum number shall be one. + + + + + gml:AbstractGeneralOperationParameterPropertyType is a property type for association roles to an operation parameter or group, either referencing or containing the definition of that parameter or group. + + + + + + + + + gml:OperationParameter is the definition of a parameter used by an operation method. Most parameter values are numeric, but other types of parameter values are possible. This complex type is expected to be used or extended for all operation methods, without defining operation-method-specialized element names. + + + + + + + + + + + + gml:OperationParameterPropertyType is a property type for association roles to an operation parameter, either referencing or containing the definition of that parameter. + + + + + + + + + gml:OperationParameterGroup is the definition of a group of parameters used by an operation method. This complex type is expected to be used or extended for all applicable operation methods, without defining operation-method-specialized element names. +The generalOperationParameter elements are an unordered list of associations to the set of operation parameters that are members of this group. + + + + + + + + + + + + + + + gml:maximumOccurs is the maximum number of times that values for this parameter group may be included. If this attribute is omitted, the maximum number shall be one. + + + + + gml:OperationParameterPropertyType is a property type for association roles to an operation parameter group, either referencing or containing the definition of that parameter group. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateReferenceSystems.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateReferenceSystems.xsd new file mode 100644 index 0000000000..72a6ced2d5 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateReferenceSystems.xsd @@ -0,0 +1,373 @@ + + + + coordinateReferenceSystems.xsd + See ISO/DIS 19136 13.3. +The spatial-temporal coordinate reference systems schema components are divided into two logical parts. One part defines elements and types for XML encoding of abstract coordinate reference systems definitions. The larger part defines specialized constructs for XML encoding of definitions of the multiple concrete types of spatial-temporal coordinate reference systems. +These schema components encode the Coordinate Reference System packages of the UML Models of ISO 19111 Clause 8 and ISO/DIS 19136 D.3.10, with the exception of the abstract "SC_CRS" class. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + gml:AbstractSingleCRS implements a coordinate reference system consisting of one coordinate system and one datum (as opposed to a Compound CRS). + + + + + gml:SingleCRSPropertyType is a property type for association roles to a single coordinate reference system, either referencing or containing the definition of that coordinate reference system. + + + + + + + + + gml:AbstractGeneralDerivedCRS is a coordinate reference system that is defined by its coordinate conversion from another coordinate reference system. This abstract complex type shall not be used, extended, or restricted, in a GML Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. + + + + + + + + + + + + + + gml:conversion is an association role to the coordinate conversion used to define the derived CRS. + + + + + gml:CompundCRS is a coordinate reference system describing the position of points through two or more independent coordinate reference systems. It is associated with a non-repeating sequence of two or more instances of SingleCRS. + + + + + + + + + + + + + + + The gml:componentReferenceSystem elements are an ordered sequence of associations to all the component coordinate reference systems included in this compound coordinate reference system. The gml:AggregationAttributeGroup should be used to specify that the gml:componentReferenceSystem properties are ordered. + + + + + gml:CompoundCRSPropertyType is a property type for association roles to a compound coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + + gml:GeodeticCRS is a coordinate reference system based on a geodetic datum. + + + + + + + + + + + + + + + + + gml:ellipsoidalCS is an association role to the ellipsoidal coordinate system used by this CRS. + + + + + gml:cartesianCS is an association role to the Cartesian coordinate system used by this CRS. + + + + + gml:sphericalCS is an association role to the spherical coordinate system used by this CRS. + + + + + gml:geodeticDatum is an association role to the geodetic datum used by this CRS. + + + + + + gml:GeodeticCRSPropertyType is a property type for association roles to a geodetic coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:VerticalCRS is a 1D coordinate reference system used for recording heights or depths. Vertical CRSs make use of the direction of gravity to define the concept of height or depth, but the relationship with gravity may not be straightforward. By implication, ellipsoidal heights (h) cannot be captured in a vertical coordinate reference system. Ellipsoidal heights cannot exist independently, but only as an inseparable part of a 3D coordinate tuple defined in a geographic 3D coordinate reference system. + + + + + + + + + + + + + + + gml:verticalCS is an association role to the vertical coordinate system used by this CRS. + + + + + gml:verticalDatum is an association role to the vertical datum used by this CRS. + + + + + gml:VerticalCRSPropertyType is a property type for association roles to a vertical coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:ProjectedCRS is a 2D coordinate reference system used to approximate the shape of the earth on a planar surface, but in such a way that the distortion that is inherent to the approximation is carefully controlled and known. Distortion correction is commonly applied to calculated bearings and distances to produce values that are a close match to actual field values. + + + + + + + + + + + + + + + + + + gml:baseGeodeticCRS is an association role to the geodetic coordinate reference system used by this projected CRS. + + + + + gml:ProjectedCRSPropertyType is a property type for association roles to a projected coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:DerivedCRS is a single coordinate reference system that is defined by its coordinate conversion from another single coordinate reference system known as the base CRS. The base CRS can be a projected coordinate reference system, if this DerivedCRS is used for a georectified grid coverage as described in ISO 19123, Clause 8. + + + + + + + + + + + + + + + + gml:baseCRS is an association role to the coordinate reference system used by this derived CRS. + + + + + The gml:derivedCRSType property describes the type of a derived coordinate reference system. The required codeSpace attribute shall reference a source of information specifying the values and meanings of all the allowed string values for this property. + + + + + An association role to the coordinate system used by this CRS. + + + + + gml:DerivedCRSPropertyType is a property type for association roles to a non-projected derived coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:EngineeringCRS is a contextually local coordinate reference system which can be divided into two broad categories: +- earth-fixed systems applied to engineering activities on or near the surface of the earth; +- CRSs on moving platforms such as road vehicles, vessels, aircraft, or spacecraft, see ISO 19111 8.3. + + + + + + + + + + + + + + + + + deprecated + + + + + + + + + + + gml:cylindricalCS is an association role to the cylindrical coordinate system used by this CRS. + + + + + gml:linearCS is an association role to the linear coordinate system used by this CRS. + + + + + gml:polarCS is an association role to the polar coordinate system used by this CRS. + + + + + gml:userDefinedCS is an association role to the user defined coordinate system used by this CRS. + + + + + gml:engineeringDatum is an association role to the engineering datum used by this CRS. + + + + + gml:EngineeringCRSPropertyType is a property type for association roles to an engineering coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:ImageCRS is an engineering coordinate reference system applied to locations in images. Image coordinate reference systems are treated as a separate sub-type because the definition of the associated image datum contains two attributes not relevant to other engineering datums. + + + + + + + + + + + + + + + + + + + gml:affineCS is an association role to the affine coordinate system used by this CRS. + + + + + gml:imageDatum is an association role to the image datum used by this CRS. + + + + + gml:ImageCRSPropertyType is a property type for association roles to an image coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + + + gml:TemporalCRS is a 1D coordinate reference system used for the recording of time. + + + + + + + + + + + + + + + + + + gml:timeCS is an association role to the time coordinate system used by this CRS. + + + + + gml:temporalDatum is an association role to the temporal datum used by this CRS. + + + + + gml:TemporalCRSPropertyType is a property type for association roles to a temporal coordinate reference system, either referencing or containing the definition of that reference system. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateSystems.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateSystems.xsd new file mode 100644 index 0000000000..37627f20f7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coordinateSystems.xsd @@ -0,0 +1,297 @@ + + + + coordinateSystems.xsd + See ISO/DIS 19136 13.4. +The coordinate systems schema components can be divded into three logical parts, which define elements and types for XML encoding of the definitions of: +- Coordinate system axes +- Abstract coordinate system +- Multiple concrete types of spatial-temporal coordinate systems +These schema components encode the Coordinate System packages of the UML Models of ISO 19111 Clause 9 and ISO/DIS 19136 D.3.10. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + gml:CoordinateSystemAxis is a definition of a coordinate system axis. + + + + + + + + + + + + + + + The uom attribute provides an identifier of the unit of measure used for this coordinate system axis. The value of this coordinate in a coordinate tuple shall be recorded using this unit of measure, whenever those coordinates use a coordinate reference system that uses a coordinate system that uses this axis. + + + + + + + + gml:axisAbbrev is the abbreviation used for this coordinate system axis; this abbreviation is also used to identify the coordinates in the coordinate tuple. The codeSpace attribute may reference a source of more information on a set of standardized abbreviations, or on this abbreviation. + + + + + gml:axisDirection is the direction of this coordinate system axis (or in the case of Cartesian projected coordinates, the direction of this coordinate system axis at the origin). +Within any set of coordinate system axes, only one of each pair of terms may be used. For earth-fixed CRSs, this direction is often approximate and intended to provide a human interpretable meaning to the axis. When a geodetic datum is used, the precise directions of the axes may therefore vary slightly from this approximate direction. +The codeSpace attribute shall reference a source of information specifying the values and meanings of all the allowed string values for this property. + + + + + The gml:minimumValue and gml:maximumValue properties allow the specification of minimum and maximum value normally allowed for this axis, in the unit of measure for the axis. For a continuous angular axis such as longitude, the values wrap-around at this value. Also, values beyond this minimum/maximum can be used for specified purposes, such as in a bounding box. A value of minus infinity shall be allowed for the gml:minimumValue element, a value of plus infiniy for the gml:maximumValue element. If these elements are omitted, the value is unspecified. + + + + + The gml:minimumValue and gml:maximumValue properties allow the specification of minimum and maximum value normally allowed for this axis, in the unit of measure for the axis. For a continuous angular axis such as longitude, the values wrap-around at this value. Also, values beyond this minimum/maximum can be used for specified purposes, such as in a bounding box. A value of minus infinity shall be allowed for the gml:minimumValue element, a value of plus infiniy for the gml:maximumValue element. If these elements are omitted, the value is unspecified. + + + + + gml:rangeMeaning describes the meaning of axis value range specified by gml:minimumValue and gml:maximumValue. This element shall be omitted when both gml:minimumValue and gml:maximumValue are omitted. This element should be included when gml:minimumValue and/or gml:maximumValue are included. If this element is omitted when the gml:minimumValue and/or gml:maximumValue are included, the meaning is unspecified. The codeSpace attribute shall reference a source of information specifying the values and meanings of all the allowed string values for this property. + + + + + gml:CoordinateSystemAxisPropertyType is a property type for association roles to a coordinate system axis, either referencing or containing the definition of that axis. + + + + + + + + + gml:AbstractCoordinateSystem is a coordinate system (CS) is the non-repeating sequence of coordinate system axes that spans a given coordinate space. A CS is derived from a set of mathematical rules for specifying how coordinates in a given space are to be assigned to points. The coordinate values in a coordinate tuple shall be recorded in the order in which the coordinate system axes associations are recorded. This abstract complex type shall not be used, extended, or restricted, in an Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. + + + + + + + + + + + + + + + The gml:axis property is an association role (ordered sequence) to the coordinate system axes included in this coordinate system. The coordinate values in a coordinate tuple shall be recorded in the order in which the coordinate system axes associations are recorded, whenever those coordinates use a coordinate reference system that uses this coordinate system. The gml:AggregationAttributeGroup should be used to specify that the axis objects are ordered. + + + + + gml:CoordinateSystemPropertyType is a property type for association roles to a coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:EllipsoidalCS is a two- or three-dimensional coordinate system in which position is specified by geodetic latitude, geodetic longitude, and (in the three-dimensional case) ellipsoidal height. An EllipsoidalCS shall have two or three gml:axis property elements; the number of associations shall equal the dimension of the CS. + + + + + + + + + + gml:EllipsoidalCSPropertyType is a property type for association roles to an ellipsoidal coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:CartesianCS is a 1-, 2-, or 3-dimensional coordinate system. In the 1-dimensional case, it contains a single straight coordinate axis. In the 2- and 3-dimensional cases gives the position of points relative to orthogonal straight axes. In the multi-dimensional case, all axes shall have the same length unit of measure. A CartesianCS shall have one, two, or three gml:axis property elements. + + + + + + + + + + gml:CartesianCSPropertyType is a property type for association roles to a Cartesian coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:VerticalCS is a one-dimensional coordinate system used to record the heights or depths of points. Such a coordinate system is usually dependent on the Earth's gravity field, perhaps loosely as when atmospheric pressure is the basis for the vertical coordinate system axis. A VerticalCS shall have one gml:axis property element. + + + + + + + + + + gml:VerticalCSPropertyType is a property type for association roles to a vertical coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:TimeCS is a one-dimensional coordinate system containing a time axis, used to describe the temporal position of a point in the specified time units from a specified time origin. A TimeCS shall have one gml:axis property element. + + + + + + + + + + gml:TimeCSPropertyType is a property type for association roles to a time coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:LinearCS is a one-dimensional coordinate system that consists of the points that lie on the single axis described. The associated coordinate is the distance – with or without offset – from the specified datum to the point along the axis. A LinearCS shall have one gml:axis property element. + + + + + + + + + + gml:LinearCSPropertyType is a property type for association roles to a linear coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:UserDefinedCS is a two- or three-dimensional coordinate system that consists of any combination of coordinate axes not covered by any other coordinate system type. A UserDefinedCS shall have two or three gml:axis property elements; the number of property elements shall equal the dimension of the CS. + + + + + + + + + + gml:UserDefinedCSPropertyType is a property type for association roles to a user-defined coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:SphericalCS is a three-dimensional coordinate system with one distance measured from the origin and two angular coordinates. A SphericalCS shall have three gml:axis property elements. + + + + + + + + + + gml:SphericalCSPropertyType is property type for association roles to a spherical coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:PolarCS ia s two-dimensional coordinate system in which position is specified by the distance from the origin and the angle between the line from the origin to a point and a reference direction. A PolarCS shall have two gml:axis property elements. + + + + + + + + + + gml:PolarCSPropertyType is a property type for association roles to a polar coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:CylindricalCS is a three-dimensional coordinate system consisting of a polar coordinate system extended by a straight coordinate axis perpendicular to the plane spanned by the polar coordinate system. A CylindricalCS shall have three gml:axis property elements. + + + + + + + + + + gml:CylindricalCSPropertyType is a property type for association roles to a cylindrical coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + + + gml:AffineCS is a two- or three-dimensional coordinate system with straight axes that are not necessarily orthogonal. An AffineCS shall have two or three gml:axis property elements; the number of property elements shall equal the dimension of the CS. + + + + + + + + + + gml:AffineCSPropertyType is a property type for association roles to an affine coordinate system, either referencing or containing the definition of that coordinate system. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coverage.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coverage.xsd new file mode 100644 index 0000000000..a1bbfa4fa4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/coverage.xsd @@ -0,0 +1,292 @@ + + + + coverage.xsd + See ISO/DIS 19136 20.3. +A coverage incorporates a mapping from a spatiotemporal domain to a range set, the latter providing the set in which the attribute values live. The range set may be an arbitrary set including discrete lists, integer or floating point ranges, and multi-dimensional vector spaces. +A coverage can be viewed as the graph of the coverage function f:A à B, that is as the set of ordered pairs {(x, f(x)) | where x is in A}. This view is especially applicable to the GML encoding of a coverage. In the case of a discrete coverage, the domain set A is partitioned into a collection of subsets (typically a disjoint collection) A = UAi and the function f is constant on each Ai. For a spatial domain, the Ai are geometry elements, hence the coverage can be viewed as a collection of (geometry,value) pairs, where the value is an element of the range set. If the spatial domain A is a topological space then the coverage can be viewed as a collection of (topology,value) pairs, where the topology element in the pair is a topological n-chain (in GML terms this is a gml:TopoPoint, gml:TopoCurve, gml:TopoSurface or gml:TopoSolid). +A coverage is implemented as a GML feature. We can thus speak of a "temperature distribution feature", or a "remotely sensed image feature", or a "soil distribution feature". +As is the case for any GML object, a coverage object may also be the value of a property of a feature. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + The base type for coverages is gml:AbstractCoverageType. The basic elements of a coverage can be seen in this content model: the coverage contains gml:domainSet and gml:rangeSet properties. The gml:domainSet property describes the domain of the coverage and the gml:rangeSet property describes the range of the coverage. + + + + + + + + + + + + + This element serves as the head of a substitution group which may contain any coverage whose type is derived from gml:AbstractCoverageType. It may act as a variable in the definition of content models where it is required to permit any coverage to be valid. + + + + + + + + + + + + + + A discrete coverage consists of a domain set, range set and optionally a coverage function. The domain set consists of either spatial or temporal geometry objects, finite in number. The range set is comprised of a finite number of attribute values each of which is associated to every direct position within any single spatiotemporal object in the domain. In other words, the range values are constant on each spatiotemporal object in the domain. This coverage function maps each element from the coverage domain to an element in its range. The coverageFunction element describes the mapping function. +This element serves as the head of a substitution group which may contain any discrete coverage whose type is derived from gml:DiscreteCoverageType. + + + + + + + + + + + + + + A continuous coverage as defined in ISO 19123 is a coverage that can return different values for the same feature attribute at different direct positions within a single spatiotemporal object in its spatiotemporal domain. The base type for continuous coverages is AbstractContinuousCoverageType. +The coverageFunction element describes the mapping function. +The abstract element gml:AbstractContinuousCoverage serves as the head of a substitution group which may contain any continuous coverage whose type is derived from gml:AbstractContinuousCoverageType. + + + + + The gml:domainSet property element describes the spatio-temporal region of interest, within which the coverage is defined. Its content model is given by gml:DomainSetType. +The value of the domain is thus a choice between a gml:AbstractGeometry and a gml:AbstractTimeObject. In the instance these abstract elements will normally be substituted by a geometry complex or temporal complex, to represent spatial coverages and time-series, respectively. +The presence of the gml:AssociationAttributeGroup means that domainSet follows the usual GML property model and may use the xlink:href attribute to point to the domain, as an alternative to describing the domain inline. Ownership semantics may be provided using the gml:OwnershipAttributeGroup. + + + + + + + + + + + + + + + + The gml:rangeSet property element contains the values of the coverage (sometimes called the attribute values). Its content model is given by gml:RangeSetType. +This content model supports a structural description of the range. The semantic information describing the range set is embedded using a uniform method, as part of the explicit values, or as a template value accompanying the representation using gml:DataBlock and gml:File. +The values from each component (or "band") in the range may be encoded within a gml:ValueArray element or a concrete member of the gml:AbstractScalarValueList substitution group . Use of these elements satisfies the value-type homogeneity requirement. + + + + + + + + + + + + + gml:DataBlock describes the Range as a block of text encoded values similar to a Common Separated Value (CSV) representation. +The range set parameterization is described by the property gml:rangeParameters. + + + + + + + + + + + + + + + gml:CoordinatesType consists of a list of coordinate tuples, with each coordinate tuple separated by the ts or tuple separator (whitespace), and each coordinate in the tuple by the cs or coordinate separator (comma). +The gml:tupleList encoding is effectively "band-interleaved". + + + + + gml:doubleOrNilReasonList consists of a list of gml:doubleOrNilReason values, each separated by a whitespace. The gml:doubleOrNilReason values are grouped into tuples where the dimension of each tuple in the list is equal to the number of range parameters. + + + + + for efficiency reasons, GML also provides a means of encoding the range set in an arbitrary external encoding, such as a binary file. This encoding may be "well-known" but this is not required. This mode uses the gml:File element. +The values of the coverage (attribute values in the range set) are transmitted in a external file that is referenced from the XML structure described by gml:FileType. The external file is referenced by the gml:fileReference property that is an anyURI (the gml:fileName property has been deprecated). This means that the external file may be located remotely from the referencing GML instance. +The gml:compression property points to a definition of a compression algorithm through an anyURI. This may be a retrievable, computable definition or simply a reference to an unambiguous name for the compression method. +The gml:mimeType property points to a definition of the file mime type. +The gml:fileStructure property is defined by a codelist. Note further that all values shall be enclosed in a single file. Multi-file structures for values are not supported in GML. +The semantics of the range set is described as above using the gml:rangeParameters property. +Note that if any compression algorithm is applied, the structure above applies only to the pre-compression or post-decompression structure of the file. +Note that the fields within a record match the gml:valueComponents of the gml:CompositeValue in document order. + + + + + + + + + deprecated + + + + + + + + + + + + The gml:coverageFunction property describes the mapping function from the domain to the range of the coverage. +The value of the CoverageFunction is one of gml:CoverageMappingRule and gml:GridFunction. +If the gml:coverageFunction property is omitted for a gridded coverage (including rectified gridded coverages) the gml:startPoint is assumed to be the value of the gml:low property in the gml:Grid geometry, and the gml:sequenceRule is assumed to be linear and the gml:axisOrder property is assumed to be "+1 +2". + + + + + + + + + + + + gml:CoverageMappingRule provides a formal or informal description of the coverage function. +The mapping rule may be defined as an in-line string (gml:ruleDefinition) or via a remote reference through xlink:href (gml:ruleReference). +If no rule name is specified, the default is 'Linear' with respect to members of the domain in document order. + + + + + + + + + + + gml:GridFunction provides an explicit mapping rule for grid geometries, i.e. the domain shall be a geometry of type grid. It describes the mapping of grid posts (discrete point grid coverage) or grid cells (discrete surface coverage) to the values in the range set. +The gml:startPoint is the index position of a point in the grid that is mapped to the first point in the range set (this is also the index position of the first grid post). If the gml:startPoint property is omitted the gml:startPoint is assumed to be equal to the value of gml:low in the gml:Grid geometry. Subsequent points in the mapping are determined by the value of the gml:sequenceRule. + + + + + + + + + + + The gml:SequenceRuleType is derived from the gml:SequenceRuleEnumeration through the addition of an axisOrder attribute. The gml:SequenceRuleEnumeration is an enumerated type. The rule names are defined in ISO 19123. If no rule name is specified the default is "Linear". + + + + + + deprecated + + + + + + + + + + + + + + + + + + + The different values in a gml:AxisDirectionList indicate the incrementation order to be used on all axes of the grid. Each axis shall be mentioned once and only once. + + + + + + The value of a gml:AxisDirection indicates the incrementation order to be used on an axis of the grid. + + + + + + + + In a gml:MultiPointCoverage the domain set is a gml:MultiPoint, that is a collection of arbitrarily distributed geometric points. +The content model is identical with gml:DiscreteCoverageType, but that gml:domainSet shall have values gml:MultiPoint. +In a gml:MultiPointCoverage the mapping from the domain to the range is straightforward. +- For gml:DataBlock encodings the points of the gml:MultiPoint are mapped in document order to the tuples of the data block. +- For gml:CompositeValue encodings the points of the gml:MultiPoint are mapped to the members of the composite value in document order. +- For gml:File encodings the points of the gml:MultiPoint are mapped to the records of the file in sequential order. + + + + + + In a gml:MultiCurveCoverage the domain is partioned into a collection of curves comprising a gml:MultiCurve. The coverage function then maps each curve in the collection to a value in the range set. +The content model is identical with gml:DiscreteCoverageType, but that gml:domainSet shall have values gml:MultiCurve. +In a gml:MultiCurveCoverage the mapping from the domain to the range is straightforward. +- For gml:DataBlock encodings the curves of the gml:MultiCurve are mapped in document order to the tuples of the data block. +- For gml:CompositeValue encodings the curves of the gml:MultiCurve are mapped to the members of the composite value in document order. +- For gml:File encodings the curves of the gml:MultiCurve are mapped to the records of the file in sequential order. + + + + + + In a gml:MultiSurfaceCoverage the domain is partioned into a collection of surfaces comprising a gml:MultiSurface. The coverage function than maps each surface in the collection to a value in the range set. +The content model is identical with gml:DiscreteCoverageType, but that gml:domainSet shall have values gml:MultiSurface. +In a gml:MultiSurfaceCoverage the mapping from the domain to the range is straightforward. +- For gml:DataBlock encodings the surfaces of the gml:MultiSurface are mapped in document order to the tuples of the data block. +- For gml:CompositeValue encodings the surfaces of the gml:MultiSurface are mapped to the members of the composite value in document order. +- For gml:File encodings the surfaces of the gml:MultiSurface are mapped to the records of the file in sequential order. + + + + + + In a gml:MultiSolidCoverage the domain is partioned into a collection of solids comprising a gml:MultiSolid. The coverage function than maps each solid in the collection to a value in the range set. +The content model is identical with gml:DiscreteCoverageType, but that gml:domainSet shall have values gml:MultiSolid. +In a gml:MultiSolidCoverage the mapping from the domain to the range is straightforward. +- For gml:DataBlock encodings the solids of the gml:MultiSolid are mapped in document order to the tuples of the data block. +- For gml:CompositeValue encodings the solids of the gml:MultiSolid are mapped to the members of the composite value in document order. +- For gml:File encodings the solids of the gml:MultiSolid are mapped to the records of the file in sequential order. + + + + + + A gml:GriddedCoverage is a discrete point coverage in which the domain set is a geometric grid of points. +Note that this is the same as the gml:MultiPointCoverage except that we have a gml:Grid to describe the domain. +The simple gridded coverage is not geometrically referenced and hence no geometric positions are assignable to the points in the grid. Such geometric positioning is introduced in the gml:RectifiedGridCoverage. + + + + + The gml:RectifiedGridCoverage is a discrete point coverage based on a rectified grid. It is similar to the grid coverage except that the points of the grid are geometrically referenced. The rectified grid coverage has a domain that is a gml:RectifiedGrid geometry. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/datums.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/datums.xsd new file mode 100644 index 0000000000..a62b866f0c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/datums.xsd @@ -0,0 +1,287 @@ + + + + + datums.xsd + See ISO/DIS 19136 13.5 +The datums schema components can be divided into three logical parts, which define elements and types for XML encoding of the definitions of: +- Abstract datum +- Geodetic datums, including ellipsoid and prime meridian +- Multiple other concrete types of spatial or temporal datums +These schema components encode the Datum packages of the UML Models of ISO 19111 Clause 10 and ISO/DIS 19136 D.3.10. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + A gml:AbstractDatum specifies the relationship of a coordinate system to the earth, thus creating a coordinate reference system. A datum uses a parameter or set of parameters that determine the location of the origin of the coordinate reference system. Each datum subtype may be associated with only specific types of coordinate systems. This abstract complex type shall not be used, extended, or restricted, in a GML Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. + + + + + + + + + + + + + + + + + gml:anchorDefinition is a description, possibly including coordinates, of the definition used to anchor the datum to the Earth. Also known as the "origin", especially for engineering and image datums. The codeSpace attribute may be used to reference a source of more detailed on this point or surface, or on a set of such descriptions. +- For a geodetic datum, this point is also known as the fundamental point, which is traditionally the point where the relationship between geoid and ellipsoid is defined. In some cases, the "fundamental point" may consist of a number of points. In those cases, the parameters defining the geoid/ellipsoid relationship have been averaged for these points, and the averages adopted as the datum definition. +- For an engineering datum, the anchor definition may be a physical point, or it may be a point with defined coordinates in another CRS.may +- For an image datum, the anchor definition is usually either the centre of the image or the corner of the image. +- For a temporal datum, this attribute is not defined. Instead of the anchor definition, a temporal datum carries a separate time origin of type DateTime. + + + + + gml:realizationEpoch is the time after which this datum definition is valid. See ISO 19111 Table 32 for details. + + + + + gml:DatumPropertyType is a property type for association roles to a datum, either referencing or containing the definition of that datum. + + + + + + + + + gml:GeodeticDatum is a geodetic datum defines the precise location and orientation in 3-dimensional space of a defined ellipsoid (or sphere), or of a Cartesian coordinate system centered in this ellipsoid (or sphere). + + + + + + + + + + + + + + + gml:primeMeridian is an association role to the prime meridian used by this geodetic datum. + + + + + gml:ellipsoid is an association role to the ellipsoid used by this geodetic datum. + + + + + gml:GeodeticDatumPropertyType is a property type for association roles to a geodetic datum, either referencing or containing the definition of that datum. + + + + + + + + + A gml:Ellipsoid is a geometric figure that may be used to describe the approximate shape of the earth. In mathematical terms, it is a surface formed by the rotation of an ellipse about its minor axis. + + + + + + + + + + + + + + + gml:semiMajorAxis specifies the length of the semi-major axis of the ellipsoid, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a length, such as metres or feet. + + + + + gml:secondDefiningParameter is a property containing the definition of the second parameter that defines the shape of an ellipsoid. An ellipsoid requires two defining parameters: semi-major axis and inverse flattening or semi-major axis and semi-minor axis. When the reference body is a sphere rather than an ellipsoid, only a single defining parameter is required, namely the radius of the sphere; in that case, the semi-major axis "degenerates" into the radius of the sphere. +The inverseFlattening element contains the inverse flattening value of the ellipsoid. This value is a scale factor (or ratio). It uses gml:LengthType with the restriction that the unit of measure referenced by the uom attribute must be suitable for a scale factor, such as percent, permil, or parts-per-million. +The semiMinorAxis element contains the length of the semi-minor axis of the ellipsoid. When the isSphere element is included, the ellipsoid is degenerate and is actually a sphere. The sphere is completely defined by the semi-major axis, which is the radius of the sphere. + + + + + + + + + + + + + + + + + + + gml:EllipsoidPropertyType is a property type for association roles to an ellipsoid, either referencing or containing the definition of that ellipsoid. + + + + + + + + + A gml:PrimeMeridian defines the origin from which longitude values are determined. The default value for the prime meridian gml:identifier value is "Greenwich". + + + + + + + + + + + + + + gml:greenwichLongitude is the longitude of the prime meridian measured from the Greenwich meridian, positive eastward. If the value of the prime meridian "name" is "Greenwich" then the value of greenwichLongitude shall be 0 degrees. + + + + + gml:PrimeMeridianPropertyType is a property type for association roles to a prime meridian, either referencing or containing the definition of that meridian. + + + + + + + + + gml:EngineeringDatum defines the origin of an engineering coordinate reference system, and is used in a region around that origin. This origin may be fixed with respect to the earth (such as a defined point at a construction site), or be a defined point on a moving vehicle (such as on a ship or satellite). + + + + + + + + + + gml:EngineeringDatumPropertyType is a property type for association roles to an engineering datum, either referencing or containing the definition of that datum. + + + + + + + + + gml:ImageDatum defines the origin of an image coordinate reference system, and is used in a local context only. For an image datum, the anchor definition is usually either the centre of the image or the corner of the image. For more information, see ISO 19111 B.3.5. + + + + + + + + + + + + + + gml:pixelInCell is a specification of the way an image grid is associated with the image data attributes. The required codeSpace attribute shall reference a source of information specifying the values and meanings of all the allowed string values for this property. + + + + + gml:ImageDatumPropertyType is a property type for association roles to an image datum, either referencing or containing the definition of that datum. + + + + + + + + + gml:VerticalDatum is a textual description and/or a set of parameters identifying a particular reference level surface used as a zero-height surface, including its position with respect to the Earth for any of the height types recognized by this International Standard. + + + + + + + + + + gml:VerticalDatumPropertyType is property type for association roles to a vertical datum, either referencing or containing the definition of that datum. + + + + + + + + + A gml:TemporalDatum defines the origin of a Temporal Reference System. This type omits the "anchorDefinition" and "realizationEpoch" elements and adds the "origin" element with the dateTime type. + + + + + + + + + + + + + + The TemporalDatumBaseType partially defines the origin of a temporal coordinate reference system. This type restricts the AbstractDatumType to remove the "anchorDefinition" and "realizationEpoch" elements. + + + + + + + + + + + + + + + + + + + + gml:origin is the date and time origin of this temporal datum. + + + + + gml:TemporalDatumPropertyType is a property type for association roles to a temporal datum, either referencing or containing the definition of that datum. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/defaultStyle.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/defaultStyle.xsd new file mode 100644 index 0000000000..ce8c9975a7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/defaultStyle.xsd @@ -0,0 +1,454 @@ + + + + defaultStyle.xsd + + GML is an OGC Standard. + Copyright (c) 2007,2010 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + Top-level property. Used in application schemas to "attach" the styling information to GML data. The link between the data and the style should be established through this property only. + + + + + + [complexType of] Top-level property. Used in application schemas to "attach" the styling information to GML data. The link between the data and the style should be established through this property only. + + + + + + + + + + + The value of the top-level property. It is an abstract element. Used as the head element of the substitution group for extensibility purposes. + + + + + + [complexType of] The value of the top-level property. It is an abstract element. Used as the head element of the substitution group for extensibility purposes. + + + + + + + + + Predefined concrete value of the top-level property. Encapsulates all other styling information. + + + + + + [complexType of] Predefined concrete value of the top-level property. Encapsulates all other styling information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for features. + + + + + + [complexType of] The style descriptor for features. + + + + + + + + + + + + + + + + + + + Used to specify the grammar of the feature query mechanism. + + + + + + + + + + + Base complex type for geometry, topology, label and graph styles. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for geometries of a feature. + + + + + + [complexType of] The style descriptor for geometries of a feature. + + + + + + + + + deprecated + Deprecated in GML version 3.1.0. Use symbol with inline content instead. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for topologies of a feature. Describes individual topology elements styles. + + + + + + [complexType of] The style descriptor for topologies of a feature. Describes individual topology elements styles. + + + + + + + + + deprecated + Deprecated in GML version 3.1.0. Use symbol with inline content instead. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for labels of a feature, geometry or topology. + + + + + + [complexType of] The style descriptor for labels of a feature, geometry or topology. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The style descriptor for a graph consisting of a number of features. Describes graph-specific style attributes. + + + + + + [complexType of] The style descriptor for a graph consisting of a number of features. Describes graph-specific style attributes. + + + + + + + + + + + + + + + + + + + + + The symbol property. Extends the gml:AssociationType to allow for remote referencing of symbols. + + + + + + [complexType of] The symbol property. Allows for remote referencing of symbols. + + + + + + + + + + + + + Used to specify the type of the symbol used. + + + + + + + + + + + Label is mixed -- composed of text and XPath expressions used to extract the useful information from the feature. + + + + + + + + + + Defines the geometric transformation of entities. There is no particular grammar defined for this value. + + + + + + Used to vary individual graphic parameters and attributes of the style, symbol or text. + + + + + + + + + + + + Graph-specific styling property. + + + + + + + + + + Graph-specific styling property. + + + + + + + + + + Graph-specific styling property. + + + + + + + + + + Graph-specific styling property. + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/deprecatedTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/deprecatedTypes.xsd new file mode 100644 index 0000000000..7dbd79b201 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/deprecatedTypes.xsd @@ -0,0 +1,1133 @@ + + + + deprecatedTypes.xsd + All global schema components that are part of the GML schema, but were deprecated. See Annex I. + + GML is an OGC Standard. + Copyright (c) 2007,2010 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + + + + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + deprecated + + + + + + + + + + deprecated + + + + + deprecated + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + deprecated + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + + + + + + + + + + + + + + + + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + + + deprecated + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/dictionary.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/dictionary.xsd new file mode 100644 index 0000000000..8d6f94ab62 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/dictionary.xsd @@ -0,0 +1,90 @@ + + + + dictionary.xsd + See ISO/DIS 19136 Clause 16. +Many applications require definitions of terms which are used within instance documents as the values of certain properties or as reference information to tie properties to standard information values in some way. Units of measure and descriptions of measurable phenomena are two particular examples. +It will often be convenient to use definitions provided by external authorities. These may already be packaged for delivery in various ways, both online and offline. In order that they may be referred to from GML documents it is generally necessary that a URI be available for each definition. Where this is the case then it is usually preferable to refer to these directly. +Alternatively, it may be convenient or necessary to capture definitions in XML, either embedded within an instance document containing features or as a separate document. The definitions may be transcriptions from an external source, or may be new definitions for a local purpose. In order to support this case, some simple components are provided in GML in the form of +- a generic gml:Definition, which may serve as the basis for more specialized definitions +- a generic gml:Dictionary, which allows a set of definitions or references to definitions to be collected +These components may be used directly, but also serve as the basis for more specialised definition elements in GML, in particular: coordinate operations, coordinate reference systems, datums, temporal reference systems, and units of measure. +Note that the GML definition and dictionary components implement a simple nested hierarchy of definitions with identifiers. The latter provide handles which may be used in the description of more complex relationships between terms. However, the GML dictionary components are not intended to provide direct support for complex taxonomies, ontologies or thesauri. Specialised XML tools are available to satisfy the more sophisticated requirements. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The basic gml:Definition element specifies a definition, which can be included in or referenced by a dictionary. +The content model for a generic definition is a derivation from gml:AbstractGMLType. +The gml:description property element shall hold the definition if this can be captured in a simple text string, or the gml:descriptionReference property element may carry a link to a description elsewhere. +The gml:identifier element shall provide one identifier identifying this definition. The identifier shall be unique within the dictionaries using this definition. +The gml:name elements shall provide zero or more terms and synonyms for which this is the definition. +The gml:remarks element shall be used to hold additional textual information that is not conceptually part of the definition but is useful in understanding the definition. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets of definitions may be collected into dictionaries or collections. +A gml:Dictionary is a non-abstract collection of definitions. +The gml:Dictionary content model adds a list of gml:dictionaryEntry properties that contain or reference gml:Definition objects. A database handle (gml:id attribute) is required, in order that this collection may be referred to. The standard gml:identifier, gml:description, gml:descriptionReference and gml:name properties are available to reference or contain more information about this dictionary. The gml:description and gml:descriptionReference property elements may be used for a description of this dictionary. The derived gml:name element may be used for the name(s) of this dictionary. for remote definiton references gml:dictionaryEntry shall be used. If a Definition object contained within a Dictionary uses the descriptionReference property to refer to a remote definition, then this enables the inclusion of a remote definition in a local dictionary, giving a handle and identifier in the context of the local dictionary. + + + + + + + + + + + + + + + + This property element contains or refers to the definitions which are members of a dictionary. +The content model follows the standard GML property pattern, so a gml:dictionaryEntry may either contain or refer to a single gml:Definition. Since gml:Dictionary is substitutable for gml:Definition, the content of an entry may itself be a lower level dictionary. +Note that if the value is provided by reference, this definition does not carry a handle (gml:id) in this context, so does not allow external references to this specific definition in this context. When used in this way the referenced definition will usually be in a dictionary in the same XML document. + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/direction.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/direction.xsd new file mode 100644 index 0000000000..8b0f7f55cf --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/direction.xsd @@ -0,0 +1,84 @@ + + + + direction.xsd + See ISO/DIS 19136 Clause 18. +The direction schema components provide the GML Application Schema developer with a standard property element to describe direction, and associated objects that may be used to express orientation, direction, heading, bearing or other directional aspects of geographic features. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The property gml:direction is intended as a pre-defined property expressing a direction to be assigned to features defined in a GML application schema. + + + + + + + + + + + + + + + + Direction vectors are specified by providing components of a vector. + + + + + + deprecated + + + + + + + + + direction descriptions are specified by a compass point code, a keyword, a textual description or a reference to a description. +A gml:compassPoint is specified by a simple enumeration. +In addition, thre elements to contain text-based descriptions of direction are provided. +If the direction is specified using a term from a list, gml:keyword should be used, and the list indicated using the value of the codeSpace attribute. +if the direction is decribed in prose, gml:direction or gml:reference should be used, allowing the value to be included inline or by reference. + + + + + + + + + + + These directions are necessarily approximate, giving direction with a precision of 22.5°. It is thus generally unnecessary to specify the reference frame, though this may be detailed in the definition of a GML application language. + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/dynamicFeature.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/dynamicFeature.xsd new file mode 100644 index 0000000000..d755067cf1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/dynamicFeature.xsd @@ -0,0 +1,109 @@ + + + + dynamicFeature.xsd + See ISO/DIS 19136 15.6. +A number of types and relationships are defined to represent the time-varying properties of geographic features. +In a comprehensive treatment of spatiotemporal modeling, Langran (see Bibliography) distinguished three principal temporal entities: states, events, and evidence; the schema specified in the following Subclauses incorporates elements for each. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + Evidence is represented by a simple gml:dataSource or gml:dataSourceReference property that indicates the source of the temporal data. The remote link attributes of the gml:dataSource element have been deprecated along with its current type. + + + + + Evidence is represented by a simple gml:dataSource or gml:dataSourceReference property that indicates the source of the temporal data. + + + + + A convenience group. This allows an application schema developer to include dynamic properties in a content model in a standard fashion. + + + + + + + + + + + States are captured by time-stamped instances of a feature. The content model extends the standard gml:AbstractFeatureType with the gml:dynamicProperties model group. +Each time-stamped instance represents a 'snapshot' of a feature. The dynamic feature classes will normally be extended to suit particular applications. A dynamic feature bears either a time stamp or a history. + + + + + + + + + + + + A gml:DynamicFeatureCollection is a feature collection that has a gml:validTime property (i.e. is a snapshot of the feature collection) or which has a gml:history property that contains one or more gml:AbstractTimeSlices each of which contain values of the time varying properties of the feature collection. Note that the gml:DynamicFeatureCollection may be one of the following: +1. A feature collection which consists of static feature members (members do not change in time) but which has properties of the collection object as a whole that do change in time . +2. A feature collection which consists of dynamic feature members (the members are gml:DynamicFeatures) but which also has properties of the collection as a whole that vary in time. + + + + + + + + + + + + + + + + + + + + + + + + + To describe an event — an action that occurs at an instant or over an interval of time — GML provides the gml:AbtractTimeSlice element. A timeslice encapsulates the time-varying properties of a dynamic feature -- it shall be extended to represent a time stamped projection of a specific feature. The gml:dataSource property describes how the temporal data was acquired. +A gml:AbstractTimeSlice instance is a GML object that encapsulates updates of the dynamic—or volatile—properties that reflect some change event; it thus includes only those feature properties that have actually changed due to some process. +gml:AbstractTimeSlice basically provides a facility for attribute-level time stamping, in contrast to the object-level time stamping of dynamic feature instances. +The time slice can thus be viewed as event or process-oriented, whereas a snapshot is more state or structure-oriented. A timeslice has richer causality, whereas a snapshot merely portrays the status of the whole. + + + + + + + + + + + + + + + + A generic sequence of events constitute a gml:history of an object. +The gml:history element contains a set of elements in the substitution group headed by the abstract element gml:AbstractTimeSlice, representing the time-varying properties of interest. The history property of a dynamic feature associates a feature instance with a sequence of time slices (i.e. change events) that encapsulate the evolution of the feature. + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/feature.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/feature.xsd new file mode 100644 index 0000000000..1892ef6f8f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/feature.xsd @@ -0,0 +1,94 @@ + + + + feature.xsd + See ISO/DIS 19136 Clause 9. +A GML feature is a (representation of a) identifiable real-world object in a selected domain of discourse. The feature schema provides a framework for the creation of GML features and feature collections. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + The basic feature model is given by the gml:AbstractFeatureType. +The content model for gml:AbstractFeatureType adds two specific properties suitable for geographic features to the content model defined in gml:AbstractGMLType. +The value of the gml:boundedBy property describes an envelope that encloses the entire feature instance, and is primarily useful for supporting rapid searching for features that occur in a particular location. +The value of the gml:location property describes the extent, position or relative location of the feature. + + + + + + + + + + + + + This abstract element serves as the head of a substitution group which may contain any elements whose content model is derived from gml:AbstractFeatureType. This may be used as a variable in the construction of content models. +gml:AbstractFeature may be thought of as "anything that is a GML feature" and may be used to define variables or templates in which the value of a GML property is "any feature". This occurs in particular in a GML feature collection where the feature member properties contain one or multiple copies of gml:AbstractFeature respectively. + + + + + + + + + + + + This property describes the minimum bounding box or rectangle that encloses the entire feature. + + + + + + + + + + + + + + gml:EnvelopeWithTimePeriod is provided for envelopes that include a temporal extent. It adds two time position properties, gml:beginPosition and gml:endPosition, which describe the extent of a time-envelope. +Since gml:EnvelopeWithTimePeriod is assigned to the substitution group headed by gml:Envelope, it may be used whenever gml:Envelope is valid. + + + + + + + + + + + + + + + + The gml:locationName property element is a convenience property where the text value describes the location of the feature. If the location names are selected from a controlled list, then the list shall be identified in the codeSpace attribute. + + + + + The gml:locationReference property element is a convenience property where the text value referenced by the xlink:href attribute describes the location of the feature. + + + + + To create a collection of GML features, a property type shall be derived by extension from gml:AbstractFeatureMemberType. +By default, this abstract property type does not imply any ownership of the features in the collection. The owns attribute of gml:OwnershipAttributeGroup may be used on a property element instance to assert ownership of a feature in the collection. A collection shall not own a feature already owned by another object. + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryAggregates.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryAggregates.xsd new file mode 100644 index 0000000000..9ffbdc0531 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryAggregates.xsd @@ -0,0 +1,197 @@ + + + + geometryAggregates.xsd + See ISO/DIS 19136 12.3. +Geometric aggregates (i.e. instances of a subtype of gml:AbstractGeometricAggregateType) are arbitrary aggregations of geometry elements. They are not assumed to have any additional internal structure and are used to "collect" pieces of geometry of a specified type. Application schemas may use aggregates for features that use multiple geometric objects in their representations. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + gml:AbstractGeometricAggregate is the abstract head of the substitution group for all geometric aggregates. + + + + + + + + + + + + + + + gml:MultiGeometry is a collection of one or more GML geometry objects of arbitrary type. +The members of the geometric aggregate may be specified either using the "standard" property (gml:geometryMember) or the array property (gml:geometryMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element either references a geometry element via the XLink-attributes or contains the geometry element. + + + + + This property element contains a list of geometry elements. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a geometric aggregate as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + A gml:MultiPoint consists of one or more gml:Points. +The members of the geometric aggregate may be specified either using the "standard" property (gml:pointMember) or the array property (gml:pointMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element either references a Point via the XLink-attributes or contains the Point element. + + + + + This property element contains a list of points. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a collection of points as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + A gml:MultiCurve is defined by one or more gml:AbstractCurves. +The members of the geometric aggregate may be specified either using the "standard" property (gml:curveMember) or the array property (gml:curveMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element contains a list of curves. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a collection of curves as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + A gml:MultiSurface is defined by one or more gml:AbstractSurfaces. +The members of the geometric aggregate may be specified either using the "standard" property (gml:surfaceMember) or the array property (gml:surfaceMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element contains a list of surfaces. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a collection of surfaces as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + A gml:MultiSolid is defined by one or more gml:AbstractSolids. +The members of the geometric aggregate may be specified either using the "standard" property (gml:solidMember) or the array property (gml:solidMembers). It is also valid to use both the "standard" and the array properties in the same collection. + + + + + This property element either references a solid via the XLink-attributes or contains the solid element. A solid element is any element, which is substitutable for gml:AbstractSolid. + + + + + This property element contains a list of solids. The order of the elements is significant and shall be preserved when processing the array. + + + + + A property that has a collection of solids as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryBasic0d1d.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryBasic0d1d.xsd new file mode 100644 index 0000000000..2ac83e315b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryBasic0d1d.xsd @@ -0,0 +1,277 @@ + + + + geometryBasic0d1d.xsd + See ISO/DIS 19136 Clause 10. +Any geometry element that inherits the semantics of AbstractGeometryType may be viewed as a set of direct positions. +All of the classes derived from AbstractGeometryType inherit an optional association to a coordinate reference system. All direct positions shall directly or indirectly be associated with a coordinate reference system. When geometry elements are aggregated in another geometry element (such as a MultiGeometry or GeometricComplex), which already has a coordinate reference system specified, then these elements are assumed to be in that same coordinate reference system unless otherwise specified. +The geometry model distinguishes geometric primitives, aggregates and complexes. +Geometric primitives, i.e. instances of a subtype of AbstractGeometricPrimitiveType, will be open, that is, they will not contain their boundary points; curves will not contain their end points, surfaces will not contain their boundary curves, and solids will not contain their bounding surfaces. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + All geometry elements are derived directly or indirectly from this abstract supertype. A geometry element may have an identifying attribute (gml:id), one or more names (elements identifier and name) and a description (elements description and descriptionReference) . It may be associated with a spatial reference system (attribute group gml:SRSReferenceGroup). +The following rules shall be adhered to: +- Every geometry type shall derive from this abstract type. +- Every geometry element (i.e. an element of a geometry type) shall be directly or indirectly in the substitution group of AbstractGeometry. + + + + + + + + + + The attribute group SRSReferenceGroup is an optional reference to the CRS used by this geometry, with optional additional information to simplify the processing of the coordinates when a more complete definition of the CRS is not needed. +In general the attribute srsName points to a CRS instance of gml:AbstractCoordinateReferenceSystem. For well-known references it is not required that the CRS description exists at the location the URI points to. +If no srsName attribute is given, the CRS shall be specified as part of the larger context this geometry element is part of. + + + + + + + + The attributes uomLabels and axisLabels, defined in the SRSInformationGroup attribute group, are optional additional and redundant information for a CRS to simplify the processing of the coordinate values when a more complete definition of the CRS is not needed. This information shall be the same as included in the complete definition of the CRS, referenced by the srsName attribute. When the srsName attribute is included, either both or neither of the axisLabels and uomLabels attributes shall be included. When the srsName attribute is omitted, both of these attributes shall be omitted. +The attribute axisLabels is an ordered list of labels for all the axes of this CRS. The gml:axisAbbrev value should be used for these axis labels, after spaces and forbidden characters are removed. When the srsName attribute is included, this attribute is optional. When the srsName attribute is omitted, this attribute shall also be omitted. +The attribute uomLabels is an ordered list of unit of measure (uom) labels for all the axes of this CRS. The value of the string in the gml:catalogSymbol should be used for this uom labels, after spaces and forbidden characters are removed. When the axisLabels attribute is included, this attribute shall also be included. When the axisLabels attribute is omitted, this attribute shall also be omitted. + + + + + + + The AbstractGeometry element is the abstract head of the substitution group for all geometry elements of GML. This includes pre-defined and user-defined geometry elements. Any geometry element shall be a direct or indirect extension/restriction of AbstractGeometryType and shall be directly or indirectly in the substitution group of AbstractGeometry. + + + + + A geometric property may either be any geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same or another document). Note that either the reference or the contained element shall be given, but not both or none. +If a feature has a property that takes a geometry element as its value, this is called a geometry property. A generic type for such a geometry property is GeometryPropertyType. + + + + + + + + + + If a feature has a property which takes an array of geometry elements as its value, this is called a geometry array property. A generic type for such a geometry property is GeometryArrayPropertyType. +The elements are always contained inline in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported. + + + + + + + + + Direct position instances hold the coordinates for a position within some coordinate reference system (CRS). Since direct positions, as data types, will often be included in larger objects (such as geometry elements) that have references to CRS, the srsName attribute will in general be missing, if this particular direct position is included in a larger element with such a reference to a CRS. In this case, the CRS is implicitly assumed to take on the value of the containing object's CRS. +if no srsName attribute is given, the CRS shall be specified as part of the larger context this geometry element is part of, typically a geometric object like a point, curve, etc. + + + + + + + + + + + posList instances (and other instances with the content model specified by DirectPositionListType) hold the coordinates for a sequence of direct positions within the same coordinate reference system (CRS). +if no srsName attribute is given, the CRS shall be specified as part of the larger context this geometry element is part of, typically a geometric object like a point, curve, etc. +The optional attribute count specifies the number of direct positions in the list. If the attribute count is present then the attribute srsDimension shall be present, too. +The number of entries in the list is equal to the product of the dimensionality of the coordinate reference system (i.e. it is a derived value of the coordinate reference system definition) and the number of direct positions. + + + + + + + + + + + + GML supports two different ways to specify a geometric position: either by a direct position (a data type) or a point (a geometric object). +pos elements are positions that are "owned" by the geometric primitive encapsulating this geometric position. +pointProperty elements contain a point that may be referenced from other geometry elements or reference another point defined elsewhere (reuse of existing points). + + + + + + + + + GML supports two different ways to specify a list of geometric positions: either by a sequence of geometric positions (by reusing the group definition) or a sequence of direct positions (element posList). +The posList element allows for a compact way to specify the coordinates of the positions, if all positions are represented in the same coordinate reference system. + + + + + + + + + For some applications the components of the position may be adjusted to yield a unit vector. + + + + + + + + + + + + + + + deprecated + + + + + + + + + Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope). +The use of the properties "coordinates" and "pos" has been deprecated. The explicitly named properties "lowerCorner" and "upperCorner" shall be used instead. + + + + + gml:AbstractGeometricPrimitiveType is the abstract root type of the geometric primitives. A geometric primitive is a geometric object that is not decomposed further into other primitives in the system. All primitives are oriented in the direction implied by the sequence of their coordinate tuples. + + + + + + + + The AbstractGeometricPrimitive element is the abstract head of the substitution group for all (pre- and user-defined) geometric primitives. + + + + + A property that has a geometric primitive as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + + + A Point is defined by a single coordinate tuple. The direct position of a point is specified by the pos element which is of type DirectPositionType. + + + + + A property that has a point as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + This property element either references a point via the XLink-attributes or contains the point element. pointProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for Point. + + + + + gml:PointArrayPropertyType is a container for an array of points. The elements are always contained inline in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported. + + + + + + + + + gml:AbstractCurveType is an abstraction of a curve to support the different levels of complexity. The curve may always be viewed as a geometric primitive, i.e. is continuous. + + + + + + + + The AbstractCurve element is the abstract head of the substitution group for all (continuous) curve elements. + + + + + A property that has a curve as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + This property element either references a curve via the XLink-attributes or contains the curve element. curveProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractCurve. + + + + + A container for an array of curves. The elements are always contained in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported. + + + + + + + + + + + + + + + + + + + + + + + + + + A LineString is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate tuples, with linear interpolation between them. The number of direct positions in the list shall be at least two. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryBasic2d.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryBasic2d.xsd new file mode 100644 index 0000000000..5781df5c25 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryBasic2d.xsd @@ -0,0 +1,124 @@ + + + + geometryBasic2d.xsd + See ISO/DIS 19136 Clause 10. + + GML is an OGC Standard. + Copyright (c) 2007,2010 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + gml:AbstractSurfaceType is an abstraction of a surface to support the different levels of complexity. A surface is always a continuous region of a plane. + + + + + + + + The AbstractSurface element is the abstract head of the substitution group for all (continuous) surface elements. + + + + + A property that has a surface as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + This property element either references a surface via the XLink-attributes or contains the surface element. surfaceProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractSurface. + + + + + gml:SurfaceArrayPropertyType is a container for an array of surfaces. The elements are always contained in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported. + + + + + + + + + + + + + + + + + + + A Polygon is a special surface that is defined by a single surface patch (see D.3.6). The boundary of this patch is coplanar and the polygon uses planar interpolation in its interior. +The elements exterior and interior describe the surface boundary of the polygon. + + + + + A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty. + + + + + A boundary of a surface consists of a number of rings. The "interior" rings separate the surface / surface patch from the area enclosed by the rings. + + + + + + + + An abstraction of a ring to support surface boundaries of different complexity. +The AbstractRing element is the abstract head of the substituition group for all closed boundaries of a surface patch. + + + + + A property with the content model of gml:AbstractRingPropertyType encapsulates a ring to represent the surface boundary property of a surface. + + + + + + + + + + + + + + + + + + + + + + + + + A LinearRing is defined by four or more coordinate tuples, with linear interpolation between them; the first and last coordinates shall be coincident. The number of direct positions in the list shall be at least four. + + + + + A property with the content model of gml:LinearRingPropertyType encapsulates a linear ring to represent a component of a surface boundary. + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryComplexes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryComplexes.xsd new file mode 100644 index 0000000000..de4f9457d5 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryComplexes.xsd @@ -0,0 +1,95 @@ + + + + geometryComplexes.xsd + See ISO/DIS 19136 12.2. +Geometric complexes (i.e. instances of gml:GeometricComplexType) are closed collections of geometric primitives, i.e. they will contain their boundaries. +A geometric complex (gml:GeometricComplex) is defined by ISO 19107:2003, 6.6.1 as "a set of primitive geometric objects (in a common coordinate system) whose interiors are disjoint. Further, if a primitive is in a geometric complex, then there exists a set of primitives in that complex whose point-wise union is the boundary of this first primitive." +A geometric composite (gml:CompositeCurve, gml:CompositeSurface and gml:CompositeSolid) represents a geometric complex with an underlying core geometry that is isomorphic to a primitive, i.e. it can be viewed as a primitive and as a complex. See ISO 19107:2003, 6.1 and 6.6.3 for more details on the nature of composite geometries. +Geometric complexes and composites are intended to be used in application schemas where the sharing of geometry is important. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + + + A property that has a geometric complex as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + + + + + + + + + + + + + + + + A gml:CompositeCurve is represented by a sequence of (orientable) curves such that each curve in the sequence terminates at the start point of the subsequent curve in the list. +curveMember references or contains inline one curve in the composite curve. +The curves are contiguous, the collection of curves is ordered. Therefore, if provided, the aggregationType attribute shall have the value "sequence". + + + + + + + + + + + + + + + A gml:CompositeSurface is represented by a set of orientable surfaces. It is geometry type with all the geometric properties of a (primitive) surface. Essentially, a composite surface is a collection of surfaces that join in pairs on common boundary curves and which, when considered as a whole, form a single surface. +surfaceMember references or contains inline one surface in the composite surface. +The surfaces are contiguous. + + + + + + + + + + + + + + + gml:CompositeSolid implements ISO 19107 GM_CompositeSolid (see ISO 19107:2003, 6.6.7) as specified in D.2.3.6. +A gml:CompositeSolid is represented by a set of orientable surfaces. It is a geometry type with all the geometric properties of a (primitive) solid. Essentially, a composite solid is a collection of solids that join in pairs on common boundary surfaces and which, when considered as a whole, form a single solid. +solidMember references or contains one solid in the composite solid. The solids are contiguous. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryPrimitives.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryPrimitives.xsd new file mode 100644 index 0000000000..9cbd52cc60 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/geometryPrimitives.xsd @@ -0,0 +1,846 @@ + + + + geometryPrimitives.xsd + See ISO/DIS 19136 Clause 11. +Beside the "simple" geometric primitives specified in the previous Clause, this Clause specifies additional primitives to describe real world situations which require a more expressive geometry model. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + A curve is a 1-dimensional primitive. Curves are continuous, connected, and have a measurable length in terms of the coordinate system. +A curve is composed of one or more curve segments. Each curve segment within a curve may be defined using a different interpolation method. The curve segments are connected to one another, with the end point of each segment except the last being the start point of the next segment in the segment list. +The orientation of the curve is positive. +The element segments encapsulates the segments of the curve. + + + + + + + + + + + + + + + The property baseCurve references or contains the base curve, i.e. it either references the base curve via the XLink-attributes or contains the curve element. A curve element is any element which is substitutable for AbstractCurve. The base curve has positive orientation. + + + + + OrientableCurve consists of a curve and an orientation. If the orientation is "+", then the OrientableCurve is identical to the baseCurve. If the orientation is "-", then the OrientableCurve is related to another AbstractCurve with a parameterization that reverses the sense of the curve traversal. + + + + + + + + + + A curve segment defines a homogeneous segment of a curve. +The attributes numDerivativesAtStart, numDerivativesAtEnd and numDerivativesInterior specify the type of continuity as specified in ISO 19107:2003, 6.4.9.3. +The AbstractCurveSegment element is the abstract head of the substituition group for all curve segment elements, i.e. continuous segments of the same interpolation mechanism. +All curve segments shall have an attribute interpolation with type gml:CurveInterpolationType specifying the curve interpolation mechanism used for this segment. This mechanism uses the control points and control parameters to determine the position of this curve segment. + + + + + gml:CurveSegmentArrayPropertyType is a container for an array of curve segments. + + + + + + + + This property element contains a list of curve segments. The order of the elements is significant and shall be preserved when processing the array. + + + + + gml:CurveInterpolationType is a list of codes that may be used to identify the interpolation mechanisms specified by an application schema. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A LineStringSegment is a curve segment that is defined by two or more control points including the start and end point, with linear interpolation between them. +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + + An ArcString is a curve segment that uses three-point circular arc interpolation ("circularArc3Points"). The number of arcs in the arc string may be explicitly stated in the attribute numArc. The number of control points in the arc string shall be 2 * numArc + 1. +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + An Arc is an arc string with only one arc unit, i.e. three control points including the start and end point. As arc is an arc string consisting of a single arc, the attribute "numArc" is fixed to "1". + + + + + + + + + + A Circle is an arc whose ends coincide to form a simple closed loop. The three control points shall be distinct non-co-linear points for the circle to be unambiguously defined. The arc is simply extended past the third control point until the first control point is encountered. + + + + + + + + + + + + + + + + + + + + + + + + + + This variant of the arc computes the mid points of the arcs instead of storing the coordinates directly. The control point sequence consists of the start and end points of each arc plus the bulge (see ISO 19107:2003, 6.4.17.2). The normal is a vector normal (perpendicular) to the chord of the arc (see ISO 19107:2003, 6.4.17.4). +The interpolation is fixed as "circularArc2PointWithBulge". +The number of arcs in the arc string may be explicitly stated in the attribute numArc. The number of control points in the arc string shall be numArc + 1. +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + + + An ArcByBulge is an arc string with only one arc unit, i.e. two control points, one bulge and one normal vector. +As arc is an arc string consisting of a single arc, the attribute "numArc" is fixed to "1". + + + + + + + + + + + + + + + + + + + + + + + + + + + This variant of the arc requires that the points on the arc shall be computed instead of storing the coordinates directly. The single control point is the center point of the arc plus the radius and the bearing at start and end. This representation can be used only in 2D. +The element radius specifies the radius of the arc. +The element startAngle specifies the bearing of the arc at the start. +The element endAngle specifies the bearing of the arc at the end. +The interpolation is fixed as "circularArcCenterPointWithRadius". +Since this type describes always a single arc, the attribute "numArc" is fixed to "1". +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + A gml:CircleByCenterPoint is an gml:ArcByCenterPoint with identical start and end angle to form a full circle. Again, this representation can be used only in 2D. + + + + + + + + + + + + + + + + + + + + + + + + + + The number of control points shall be at least three. +vectorAtStart is the unit tangent vector at the start point of the spline. vectorAtEnd is the unit tangent vector at the end point of the spline. Only the direction of the vectors shall be used to determine the shape of the cubic spline, not their length. +interpolation is fixed as "cubicSpline". +degree shall be the degree of the polynomial used for the interpolation in this spline. Therefore the degree for a cubic spline is fixed to "3". +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + + + + + + + + A B-Spline is a piecewise parametric polynomial or rational curve described in terms of control points and basis functions as specified in ISO 19107:2003, 6.4.30. Therefore, interpolation may be either "polynomialSpline" or "rationalSpline" depending on the interpolation type; default is "polynomialSpline". +degree shall be the degree of the polynomial used for interpolation in this spline. +knot shall be the sequence of distinct knots used to define the spline basis functions (see ISO 19107:2003, 6.4.26.2). +The attribute isPolynomial shall be set to "true" if this is a polynomial spline (see ISO 19107:2003, 6.4.30.5). +The attribute knotType shall provide the type of knot distribution used in defining this spline (see ISO 19107:2003, 6.4.30.4). +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + gml:KnotPropertyType encapsulates a knot to use it in a geometric type. + + + + + A knot is a breakpoint on a piecewise spline curve. +value is the value of the parameter at the knot of the spline (see ISO 19107:2003, 6.4.24.2). +multiplicity is the multiplicity of this knot used in the definition of the spline (with the same weight). +weight is the value of the averaging weight used for this knot of the spline. + + + + + + + This enumeration type specifies values for the knots' type (see ISO 19107:2003, 6.4.25). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bezier curves are polynomial splines that use Bezier or Bernstein polynomials for interpolation purposes. It is a special case of the B-Spline curve with two knots. +degree shall be the degree of the polynomial used for interpolation in this spline. +knot shall be the sequence of distinct knots used to define the spline basis functions. +interpolation is fixed as "polynomialSpline". +isPolynomial is fixed as "true". +knotType is not relevant for Bezier curve segments. + + + + + + + + + + + + + + + + + An offset curve is a curve at a constant distance from the basis curve. offsetBase is the base curve from which this curve is defined as an offset. distance and refDirection have the same meaning as specified in ISO 19107:2003, 6.4.23. +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + location, refDirection, inDimension and outDimension have the same meaning as specified in ISO 19107:2003, 6.4.21. + + + + + + + + + + + + + + + + + + + + + + + + A clothoid, or Cornu's spiral, is plane curve whose curvature is a fixed function of its length. +refLocation, startParameter, endParameter and scaleFactor have the same meaning as specified in ISO 19107:2003, 6.4.22. +interpolation is fixed as "clothoid". +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + A sequence of geodesic segments. +The number of control points shall be at least two. +interpolation is fixed as "geodesic". +The content model follows the general pattern for the encoding of curve segments. + + + + + + + + + + + + + + + + + + + + A Surface is a 2-dimensional primitive and is composed of one or more surface patches as specified in ISO 19107:2003, 6.3.17.1. The surface patches are connected to one another. +patches encapsulates the patches of the surface. + + + + + + + + + + + + + + + The property baseSurface references or contains the base surface. The property baseSurface either references the base surface via the XLink-attributes or contains the surface element. A surface element is any element which is substitutable for gml:AbstractSurface. The base surface has positive orientation. + + + + + OrientableSurface consists of a surface and an orientation. If the orientation is "+", then the OrientableSurface is identical to the baseSurface. If the orientation is "-", then the OrientableSurface is a reference to a gml:AbstractSurface with an up-normal that reverses the direction for this OrientableSurface, the sense of "the top of the surface". + + + + + + A surface patch defines a homogenuous portion of a surface. +The AbstractSurfacePatch element is the abstract head of the substituition group for all surface patch elements describing a continuous portion of a surface. +All surface patches shall have an attribute interpolation (declared in the types derived from gml:AbstractSurfacePatchType) specifying the interpolation mechanism used for the patch using gml:SurfaceInterpolationType. + + + + + gml:SurfacePatchArrayPropertyType is a container for a sequence of surface patches. + + + + + + + + The patches property element contains the sequence of surface patches. The order of the elements is significant and shall be preserved when processing the array. + + + + + gml:SurfaceInterpolationType is a list of codes that may be used to identify the interpolation mechanisms specified by an application schema. + + + + + + + + + + + + + + + + + + + + + + + + + + + + A gml:PolygonPatch is a surface patch that is defined by a set of boundary curves and an underlying surface to which these curves adhere. The curves shall be coplanar and the polygon uses planar interpolation in its interior. +interpolation is fixed to "planar", i.e. an interpolation shall return points on a single plane. The boundary of the patch shall be contained within that plane. + + + + + + + + + + + + + + + gml:Triangle represents a triangle as a surface patch with an outer boundary consisting of a linear ring. Note that this is a polygon (subtype) with no inner boundaries. The number of points in the linear ring shall be four. +The ring (element exterior) shall be a gml:LinearRing and shall form a triangle, the first and the last position shall be coincident. +interpolation is fixed to "planar", i.e. an interpolation shall return points on a single plane. The boundary of the patch shall be contained within that plane. + + + + + + + + + + + + + + + gml:Rectangle represents a rectangle as a surface patch with an outer boundary consisting of a linear ring. Note that this is a polygon (subtype) with no inner boundaries. The number of points in the linear ring shall be five. +The ring (element exterior) shall be a gml:LinearRing and shall form a rectangle; the first and the last position shall be coincident. +interpolation is fixed to "planar", i.e. an interpolation shall return points on a single plane. The boundary of the patch shall be contained within that plane. + + + + + + + + + + + + + + + A ring is used to represent a single connected component of a surface boundary as specified in ISO 19107:2003, 6.3.6. +Every gml:curveMember references or contains one curve, i.e. any element which is substitutable for gml:AbstractCurve. In the context of a ring, the curves describe the boundary of the surface. The sequence of curves shall be contiguous and connected in a cycle. +If provided, the aggregationType attribute shall have the value "sequence". + + + + + + A property with the content model of gml:RingPropertyType encapsulates a ring to represent a component of a surface boundary. + + + + + + + + A gml:PointGrid group contains or references points or positions which are organised into sequences or grids. All rows shall have the same number of positions (columns). + + + + + + + + + + + + + + + + + + + + + + + + + The element provides a substitution group head for the surface patches based on parametric curves. All properties are specified in the derived subtypes. All derived subtypes shall conform to the constraints specified in ISO 19107:2003, 6.4.40. +If provided, the aggregationType attribute shall have the value "set". + + + + + + + + + + + + + + + + if provided, rows gives the number of rows, columns the number of columns in the parameter grid. The parameter grid is represented by an instance of the gml:PointGrid group. +The element provides a substitution group head for the surface patches based on a grid. All derived subtypes shall conform to the constraints specified in ISO 19107:2003, 6.4.41. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A polyhedral surface is a surface composed of polygon patches connected along their common boundary curves. This differs from the surface type only in the restriction on the types of surface patches acceptable. +polygonPatches encapsulates the polygon patches of the polyhedral surface. + + + + + A triangulated surface is a polyhedral surface that is composed only of triangles. There is no restriction on how the triangulation is derived. +trianglePatches encapsulates the triangles of the triangulated surface. + + + + + + + + + + + + + + + + + + + + + + + + A tin is a triangulated surface that uses the Delauny algorithm or a similar algorithm complemented with consideration of stoplines (stopLines), breaklines (breakLines), and maximum length of triangle sides (maxLength). controlPoint shall contain a set of the positions (three or more) used as posts for this TIN (corners of the triangles in the TIN). See ISO 19107:2003, 6.4.39 for details. + + + + + gml:LineStringSegmentArrayPropertyType provides a container for line strings. + + + + + + + + gml:AbstractSolidType is an abstraction of a solid to support the different levels of complexity. The solid may always be viewed as a geometric primitive, i.e. is contiguous. + + + + + + + + The AbstractSolid element is the abstract head of the substituition group for all (continuous) solid elements. + + + + + A property that has a solid as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none. + + + + + + + + + + This property element either references a solid via the XLink-attributes or contains the solid element. solidProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractSolid. + + + + + gml:SolidArrayPropertyType is a container for an array of solids. The elements are always contained in the array property, referencing geometry elements or arrays of geometry elements is not supported. + + + + + + + + + + + + + + + + + + + A solid is the basis for 3-dimensional geometry. The extent of a solid is defined by the boundary surfaces as specified in ISO 19107:2003, 6.3.18. exterior specifies the outer boundary, interior the inner boundary of the solid. + + + + + + + + + + + A shell is used to represent a single connected component of a solid boundary as specified in ISO 19107:2003, 6.3.8. +Every gml:surfaceMember references or contains one surface, i.e. any element which is substitutable for gml:AbstractSurface. In the context of a shell, the surfaces describe the boundary of the solid. +If provided, the aggregationType attribute shall have the value "set". + + + + + + This property element either references a surface via the XLink-attributes or contains the surface element. A surface element is any element, which is substitutable for gml:AbstractSurface. + + + + + A property with the content model of gml:ShellPropertyType encapsulates a shell to represent a component of a solid boundary. + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml.xsd new file mode 100644 index 0000000000..b319a195a2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml.xsd @@ -0,0 +1,20 @@ + + + + gml.xsd + + GML is an OGC Standard. + Copyright (c) 2007,2010 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gmlBase.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gmlBase.xsd new file mode 100644 index 0000000000..a5c772a5b6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gmlBase.xsd @@ -0,0 +1,185 @@ + + + + gmlBase.xsd + See ISO/DIS 19136 7.2. +The gmlBase schema components establish the GML model and syntax, in particular +- a root XML type from which XML types for all GML objects should be derived, +- a pattern and components for GML properties, +- patterns for collections and arrays, and components for generic collections and arrays, +- components for associating metadata with GML objects, +- components for constructing definitions and dictionaries. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + This element has no type defined, and is therefore implicitly (according to the rules of W3C XML Schema) an XML Schema anyType. It is used as the head of an XML Schema substitution group which unifies complex content and certain simple content elements used for datatypes in GML, including the gml:AbstractGML substitution group. + + + + + The abstract element gml:AbstractGML is "any GML object having identity". It acts as the head of an XML Schema substitution group, which may include any element which is a GML feature, or other object, with identity. This is used as a variable in content models in GML core and application schemas. It is effectively an abstract superclass for all GML objects. + + + + + + + + + + + + + + + + + + + + XLink components are the standard method to support hypertext referencing in XML. An XML Schema attribute group, gml:AssociationAttributeGroup, is provided to support the use of Xlinks as the method for indicating the value of a property by reference in a uniform manner in GML. + + + + + + deprecated + + + + + + Applying this pattern shall restrict the multiplicity of objects in a property element using this content model to exactly one. An instance of this type shall contain an element representing an object, or serve as a pointer to a remote object. +Applying the pattern to define an application schema specific property type allows to restrict +- the inline object to specified object types, +- the encoding to "by-reference only" (see 7.2.3.7), +- the encoding to "inline only" (see 7.2.3.8). + + + + + + + + + + + + Encoding a GML property inline vs. by-reference shall not imply anything about the "ownership" of the contained or referenced GML Object, i.e. the encoding style shall not imply any "deep-copy" or "deep-delete" semantics. To express ownership over the contained or referenced GML Object, the gml:OwnershipAttributeGroup attribute group may be added to object-valued property elements. If the attribute group is not part of the content model of such a property element, then the value may not be "owned". +When the value of the owns attribute is "true", the existence of inline or referenced object(s) depends upon the existence of the parent object. + + + + + + This element shows how an element + declaration may include a Schematron constraint to limit the property to act + in either inline or by-reference mode, but not both. + + + + + gml:abstractReference may be used as the head of a subtitution group of more specific elements providing a value by-reference. + + + + + gml:ReferenceType is intended to be used in application schemas directly, if a property element shall use a "by-reference only" encoding. + + + + + + + + gml:abstractInlineProperty may be used as the head of a subtitution group of more specific elements providing a value inline. + + + + + + + + + + + If the value of an object property is another object and that object contains also a property for the association between the two objects, then this name of the reverse property may be encoded in a gml:reversePropertyName element in an appinfo annotation of the property element to document the constraint between the two properties. The value of the element shall contain the qualified name of the property element. + + + + + The value of this property is a text description of the object. gml:description uses gml:StringOrRefType as its content model, so it may contain a simple text string content, or carry a reference to an external description. The use of gml:description to reference an external description has been deprecated and replaced by the gml:descriptionReference property. + + + + + The value of this property is a remote text description of the object. The xlink:href attribute of the gml:descriptionReference property references the external description. + + + + + The gml:name property provides a label or identifier for the object, commonly a descriptive name. An object may have several names, typically assigned by different authorities. gml:name uses the gml:CodeType content model. The authority for a name is indicated by the value of its (optional) codeSpace attribute. The name may or may not be unique, as determined by the rules of the organization responsible for the codeSpace. In common usage there will be one name per authority, so a processing application may select the name from its preferred codeSpace. + + + + + Often, a special identifier is assigned to an object by the maintaining authority with the intention that it is used in references to the object For such cases, the codeSpace shall be provided. That identifier is usually unique either globally or within an application domain. gml:identifier is a pre-defined property for such identifiers. + + + + + The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs. + + + + + To create a collection of GML Objects that are not all features, a property type shall be derived by extension from gml:AbstractMemberType. +This abstract property type is intended to be used only in object types where software shall be able to identify that an instance of such an object type is to be interpreted as a collection of objects. +By default, this abstract property type does not imply any ownership of the objects in the collection. The owns attribute of gml:OwnershipAttributeGroup may be used on a property element instance to assert ownership of an object in the collection. A collection shall not own an object already owned by another object. + + + + + + + + A GML Object Collection is any GML Object with a property element in its content model whose content model is derived by extension from gml:AbstractMemberType. +In addition, the complex type describing the content model of the GML Object Collection may also include a reference to the attribute group gml:AggregationAttributeGroup to provide additional information about the semantics of the object collection. This information may be used by applications to group GML objects, and optionally to order and index them. +The allowed values for the aggregationType attribute are defined by gml:AggregationType. See 8.4 of ISO/IEC 11404:1996 for the meaning of the values in the enumeration. + + + + + + + + + + + + + + + + To associate metadata described by any XML Schema with a GML object, a property element shall be defined whose content model is derived by extension from gml:AbstractMetadataPropertyType. +The value of such a property shall be metadata. The content model of such a property type, i.e. the metadata application schema shall be specified by the GML Application Schema. +By default, this abstract property type does not imply any ownership of the metadata. The owns attribute of gml:OwnershipAttributeGroup may be used on a metadata property element instance to assert ownership of the metadata. +If metadata following the conceptual model of ISO 19115 is to be encoded in a GML document, the corresponding Implementation Specification specified in ISO/TS 19139 shall be used to encode the metadata information. + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml_32_geometries.rdf b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml_32_geometries.rdf new file mode 100644 index 0000000000..f0fdc65c63 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml_32_geometries.rdf @@ -0,0 +1,368 @@ + + + + + + + + + + + + Point + + + + + + + Abstract Gridded Surface + + + + + + + Polyhedral Surface + + + + + + + Arc + + + + + + + Polynomial Spline + + + + + + + Multi-Curve + + + + + + + + + + Composite Surface + + + + + + + Arc String + + + + + Cylinder + + + + + Shell + + + + + + + Polygon + + + + + + + Triangulated Irregular Network + + + + + + + Multi-Geometry + + + + + + + Bezler + + + + + + + + + + Curve + + + + + + + BSpline + + + + + + + Line String Segment + + + + + + + Geodesic + + + + + + + + + Abstract Surface Patch + + + + + + + Geometric Complex + + + + + + + Arc by Bulge + + + + + + + CircleByCenterPoint + + + + + Multi-Point + + + + + + + Arc by Center Point + + + + + + + Offset Curve + + + + + + + Spline Curve + + + + + Composite + + + + + Line String + + + + + Circle + + + + + + + Orientable Curve + + + + + + + Orientable Surface + + + + + + + Clothoid + + + + + + + Arc String by Bulge + + + + + Triangulated Surface + + + + + + + Triangle + + + + + Cubic Spline + + + + + Abstract Geometry + + + + + Cone + + + + + + + + Composite Solid + + + + + Abstract Geometric Primitive + + + + + + + Linear Ring + + + + + Abstract Parametric Curve Surface + + + + + + + Geodesic String + + + + + Multi-Solid + + + + + Solid + + + + + + Composite Curve + + + + + + + Rectangle + + + + + Sphere + + + + + Ring + + + + + Polygon Patch + + + + + Multi-Surface + + + + + Abstract Curve Segment + + + + + + Surface + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml_3_2_1-ReadMe.txt b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml_3_2_1-ReadMe.txt new file mode 100644 index 0000000000..a0a6eb2ef7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/gml_3_2_1-ReadMe.txt @@ -0,0 +1,58 @@ +OpenGIS(r) GML schema version 3.2.1 / ISO 19136 - ReadMe.txt + +The schema has been validated with Xerces-J, Xerces C++ and XSV. + +------------------------------------------------------------------- + +2012-07-21 Kevin Stegemoller + + * v2.0.0 - v3.2.1 WARNING XLink change is NOT BACKWARD COMPATIBLE. + * changed OGC XLink (xlink:simpleLink) to W3C XLink (xlink:simpleAttrs) + per an approved TC and PC motion during the Dec. 2011 Brussels meeting. + see http://www.opengeospatial.org/blog/1597 + * implement 11-025: retroactively require/add all leaf documents of an + XML namespace shall explicitly the all-components schema + * v3.2.1: updated xsd:schema:@version to 3.2.1.2 (06-135r7 s#13.4) + +2007-09-06 Kevin Stegemoller + + GML 3.2.1 (ISO 19136) + * Published GML 3.2.1 schemas from OGC 07-036 + * validated with oXygen 8.2 (xerces-J 2.9.0) - Kevin Stegemoller + * validated with Xerces-J, Xerces-C++ and XSV - Clemens Portele + +2007-08-17 Kevin Stegemoller + + Changes made to these GML 3.2.1 / ISO 19136 schemas: + * added ReadMe.txt + * changed gmd.xsd references to "../../iso/19139/20070417/gmd/gmd.xsd" + * changed xlink references to be relative to /xlink/1.0.0/xlinks.xsd + available from schemas.opengis.net/xlink/1.0.0/xlinks.xsd (REMOVED 2012-07-21). + * removed xlinks schema and directory + + Changes made to these ISO 19139 schemas by OGC: + * added ReadMe.txt + * changed ISO_19136 path to /gml/3.2.1/ + * changed xlink references to be relative to /xlink/1.0.0/xlinks.xsd + available from schemas.opengis.net/xlink/1.0.0/xlinks.xsd (REMOVED 2012-07-21). + * removed xlinks schema and directory + +OGC GML 3.2.1 / ISO 19136 schemas files will be published at: +- http://schemas.opengis.net/gml/3.2.1/ +- http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19136_Schemas/ + +Files in the folder "ISO/19139/20070417" are also published at +- http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/ + +------------------------------------------------------------------- + +The Open Geospatial Consortium, Inc. official schema repository is at + http://schemas.opengis.net/ . +Policies, Procedures, Terms, and Conditions of OGC(r) are available + http://www.opengeospatial.org/ogc/policies/ . +Additional rights of use are described at + http://www.opengeospatial.org/legal/ . + +Copyright (c) 2007 Open Geospatial Consortium. + +------------------------------------------------------------------- diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/grids.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/grids.xsd new file mode 100644 index 0000000000..7592e0ec64 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/grids.xsd @@ -0,0 +1,64 @@ + + + + grids.xsd + See ISO/DIS 19136 20.2. +An implicit description of geometry is one in which the items of the geometry do not explicitly appear in the encoding. Instead, a compact notation records a set of parameters, and a set of objects may be generated using a rule with these parameters. This Clause provides grid geometries that are used in the description of gridded coverages and other applications. +In GML two grid structures are defined, namely gml:Grid and gml:RectifiedGrid. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The gml:Grid implicitly defines an unrectified grid, which is a network composed of two or more sets of curves in which the members of each set intersect the members of the other sets in an algorithmic way. The region of interest within the grid is given in terms of its gml:limits, being the grid coordinates of diagonally opposed corners of a rectangular region. gml:axisLabels is provided with a list of labels of the axes of the grid (gml:axisName has been deprecated). gml:dimension specifies the dimension of the grid. +The gml:limits element contains a single gml:GridEnvelope. The gml:low and gml:high property elements of the envelope are each integerLists, which are coordinate tuples, the coordinates being measured as offsets from the origin of the grid along each axis, of the diagonally opposing corners of a "rectangular" region of interest. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A rectified grid is a grid for which there is an affine transformation between the grid coordinates and the coordinates of an external coordinate reference system. It is defined by specifying the position (in some geometric space) of the grid "origin" and of the vectors that specify the post locations. +Note that the grid limits (post indexes) and axis name properties are inherited from gml:GridType and that gml:RectifiedGrid adds a gml:origin property (contains or references a gml:Point) and a set of gml:offsetVector properties. + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/measures.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/measures.xsd new file mode 100644 index 0000000000..c3a91fb3cf --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/measures.xsd @@ -0,0 +1,68 @@ + + + + measures.xsd + See ISO/DIS 19136 17.3. +gml:MeasureType is defined in the basicTypes schema. The measure types defined here correspond with a set of convenience measure types described in ISO/TS 19103. The XML implementation is based on the XML Schema simple type "double" which supports both decimal and scientific notation, and includes an XML attribute "uom" which refers to the units of measure for the value. Note that, there is no requirement to store values using any particular format, and applications receiving elements of this type may choose to coerce the data to any other type as convenient. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The value of a physical quantity, together with its unit. + + + + + This is a prototypical definition for a specific measure type defined as a vacuous extension (i.e. aliases) of gml:MeasureType. In this case, the content model supports the description of a length (or distance) quantity, with its units. The unit of measure referenced by uom shall be suitable for a length, such as metres or feet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The gml:angle property element is used to record the value of an angle quantity as a single number, with its units. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/observation.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/observation.xsd new file mode 100644 index 0000000000..944c9898ab --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/observation.xsd @@ -0,0 +1,95 @@ + + + + observation.xsd + See ISO/DIS 19136 Clause 19. +A GML observation models the act of observing, often with a camera, a person or some form of instrument. An observation feature describes the "metadata" associated with an information capture event, together with a value for the result of the observation. This covers a broad range of cases, from a tourist photo (not the photo but the act of taking the photo), to images acquired by space borne sensors or the measurement of a temperature 5 meters below the surfaces of a lake. +The basic structures introduced in this schema are intended to serve as the foundation for more comprehensive schemas for scientific, technical and engineering measurement schemas. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + The content model is a straightforward extension of gml:AbstractFeatureType; it automatically has the gml:identifier, gml:description, gml:descriptionReference, gml:name, and gml:boundedBy properties. +The gml:validTime element describes the time of the observation. Note that this may be a time instant or a time period. +The gml:using property contains or references a description of a sensor, instrument or procedure used for the observation. +The gml:target property contains or references the specimen, region or station which is the object of the observation. This property is particularly useful for remote observations, such as photographs, where a generic location property might apply to the location of the camera or the location of the field of view, and thus may be ambiguous. +The gml:subject element is provided as a convenient synonym for gml:target. This is the term commonly used in phtotography. +The gml:resultOf property indicates the result of the observation. The value may be inline, or a reference to a value elsewhere. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A gml:DirectedObservation is the same as an observation except that it adds an additional gml:direction property. This is the direction in which the observation was acquired. Clearly this applies only to certain types of observations such as visual observations by people, or observations obtained from terrestrial cameras. + + + + + + + + + + + + + + gml:DirectedObservationAtDistance adds an additional distance property. This is the distance from the observer to the subject of the observation. Clearly this applies only to certain types of observations such as visual observations by people, or observations obtained from terrestrial cameras. + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/referenceSystems.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/referenceSystems.xsd new file mode 100644 index 0000000000..19170340db --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/referenceSystems.xsd @@ -0,0 +1,70 @@ + + + + referenceSystems.xsd + See ISO/DIS 19136 13.2. +The reference systems schema components have two logical parts, which define elements and types for XML encoding of the definitions of: +- Identified Object, inherited by the ten types of GML objects used for coordinate reference systems and coordinate operations +- High-level part of the definitions of coordinate reference systems +This schema encodes the Identified Object and Reference System packages of the UML Model for ISO 19111. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + gml:IdentifiedObjectType provides identification properties of a CRS-related object. In gml:DefinitionType, the gml:identifier element shall be the primary name by which this object is identified, encoding the "name" attribute in the UML model. +Zero or more of the gml:name elements can be an unordered set of "identifiers", encoding the "identifier" attribute in the UML model. Each of these gml:name elements can reference elsewhere the object's defining information or be an identifier by which this object can be referenced. +Zero or more other gml:name elements can be an unordered set of "alias" alternative names by which this CRS related object is identified, encoding the "alias" attributes in the UML model. An object may have several aliases, typically used in different contexts. The context for an alias is indicated by the value of its (optional) codeSpace attribute. +Any needed version information shall be included in the codeSpace attribute of a gml:identifier and gml:name elements. In this use, the gml:remarks element in the gml:DefinitionType shall contain comments on or information about this object, including data source information. + + + + + + + + gml:AbstractCRS specifies a coordinate reference system which is usually single but may be compound. This abstract complex type shall not be used, extended, or restricted, in a GML Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. + + + + + + + + + + + + + + + The gml:domainOfValidity property implements an association role to an EX_Extent object as encoded in ISO/TS 19139, either referencing or containing the definition of that extent. + + + + + + + + + + + The gml:scope property provides a description of the usage, or limitations of usage, for which this CRS-related object is valid. If unknown, enter "not known". + + + + + gml:CRSPropertyType is a property type for association roles to a CRS abstract coordinate reference system, either referencing or containing the definition of that CRS. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporal.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporal.xsd new file mode 100644 index 0000000000..11c4ae3b3b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporal.xsd @@ -0,0 +1,269 @@ + + + + temporal.xsd + See ISO/DIS 19136 15.2. +The GML temporal schemas include components for describing temporal geometry and topology, temporal reference systems, and the temporal characteristics of geographic data. The model underlying the representation constitutes a profile of the conceptual schema described in ISO 19108. The underlying spatiotemporal model strives to accommodate both feature-level and attribute-level time stamping; basic support for tracking moving objects is also included. +Time is measured on two types of scales: interval and ordinal. An interval scale offers a basis for measuring duration, an ordinal scale provides information only about relative position in time. +Two other ISO standards are relevant to describing temporal objects: ISO 8601 describes encodings for time instants and time periods, as text strings with particular structure and punctuation; ISO 11404 provides a detailed description of time intervals as part of a general discussion of language independent datatypes. +The temporal schemas cover two interrelated topics and provide basic schema components for representing temporal instants and periods, temporal topology, and reference systems; more specialized schema components defines components used for dynamic features. Instances of temporal geometric types are used as values for the temporal properties of geographic features. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + gml:AbstractTimeObject acts as the head of a substitution group for all temporal primitives and complexes. + + + + + + + + + + gml:AbstractTimePrimitive acts as the head of a substitution group for geometric and topological temporal primitives. + + + + + + + + + + + + + + gml:TimePrimitivePropertyType provides a standard content model for associations between an arbitrary member of the substitution group whose head is gml:AbstractTimePrimitive and another object. + + + + + + + + + + gml:validTime is a convenience property element. + + + + + gml:RelatedTimeType provides a content model for indicating the relative position of an arbitrary member of the substitution group whose head is gml:AbstractTimePrimitive. It extends the generic gml:TimePrimitivePropertyType with an XML attribute relativePosition, whose value is selected from the set of 13 temporal relationships identified by Allen (1983) + + + + + + + + + + + + + + + + + + + + + + + + + + + + gml:AbstractTimeComplex is an aggregation of temporal primitives and acts as the head of a substitution group for temporal complexes. + + + + + + + + + + gml:TimeGeometricPrimitive acts as the head of a substitution group for geometric temporal primitives. +A temporal geometry shall be associated with a temporal reference system through the frame attribute that provides a URI reference that identifies a description of the reference system. Following ISO 19108, the Gregorian calendar with UTC is the default reference system, but others may also be used. The GPS calendar is an alternative reference systems in common use. +The two geometric primitives in the temporal dimension are the instant and the period. GML components are defined to support these as follows. + + + + + + + + + + + + gml:TimeInstant acts as a zero-dimensional geometric primitive that represents an identifiable position in time. + + + + + + + + + + + + + + gml:TimeInstantPropertyType provides for associating a gml:TimeInstant with an object. + + + + + + + + + + gml:TimePeriod acts as a one-dimensional geometric primitive that represents an identifiable extent in time. +The location in of a gml:TimePeriod is described by the temporal positions of the instants at which it begins and ends. The length of the period is equal to the temporal distance between the two bounding temporal positions. +Both beginning and end may be described in terms of their direct position using gml:TimePositionType which is an XML Schema simple content type, or by reference to an indentifiable time instant using gml:TimeInstantPropertyType. +Alternatively a limit of a gml:TimePeriod may use the conventional GML property model to make a reference to a time instant described elsewhere, or a limit may be indicated as a direct position. + + + + + + + + + + + + + + + + + + + + + + gml:TimePeriodPropertyType provides for associating a gml:TimePeriod with an object. + + + + + + + + + + The method for identifying a temporal position is specific to each temporal reference system. gml:TimePositionType supports the description of temporal position according to the subtypes described in ISO 19108. +Values based on calendars and clocks use lexical formats that are based on ISO 8601, as described in XML Schema Part 2:2001. A decimal value may be used with coordinate systems such as GPS time or UNIX time. A URI may be used to provide a reference to some era in an ordinal reference system . +In common with many of the components modelled as data types in the ISO 19100 series of International Standards, the corresponding GML component has simple content. However, the content model gml:TimePositionType is defined in several steps. +Three XML attributes appear on gml:TimePositionType: +A time value shall be associated with a temporal reference system through the frame attribute that provides a URI reference that identifies a description of the reference system. Following ISO 19108, the Gregorian calendar with UTC is the default reference system, but others may also be used. Components for describing temporal reference systems are described in 14.4, but it is not required that the reference system be described in this, as the reference may refer to anything that may be indentified with a URI. +For time values using a calendar containing more than one era, the (optional) calendarEraName attribute provides the name of the calendar era. +Inexact temporal positions may be expressed using the optional indeterminatePosition attribute. This takes a value from an enumeration. + + + + + + + + + + + + These values are interpreted as follows: +- "unknown" indicates that no specific value for temporal position is provided. +- "now" indicates that the specified value shall be replaced with the current temporal position whenever the value is accessed. +- "before" indicates that the actual temporal position is unknown, but it is known to be before the specified value. +- "after" indicates that the actual temporal position is unknown, but it is known to be after the specified value. +A value for indeterminatePosition may +- be used either alone, or +- qualify a specific value for temporal position. + + + + + + + + + + + The simple type gml:TimePositionUnion is a union of XML Schema simple types which instantiate the subtypes for temporal position described in ISO 19108. + An ordinal era may be referenced via URI. A decimal value may be used to indicate the distance from the scale origin . time is used for a position that recurs daily (see ISO 19108:2002 5.4.4.2). + Finally, calendar and clock forms that support the representation of time in systems based on years, months, days, hours, minutes and seconds, in a notation following ISO 8601, are assembled by gml:CalDate + + + + + + + + + This element is used directly as a property of gml:TimeInstant (see 15.2.2.3), and may also be used in application schemas. + + + + + The length of a time period. + + + + + + + + + gml:duration conforms to the ISO 8601 syntax for temporal length as implemented by the XML Schema duration type. + + + + + gml:timeInterval conforms to ISO 11404 which is based on floating point values for temporal length. +ISO 11404 syntax specifies the use of a positiveInteger together with appropriate values for radix and factor. The resolution of the time interval is to one radix ^(-factor) of the specified time unit. +The value of the unit is either selected from the units for time intervals from ISO 31-1:1992, or is another suitable unit. The encoding is defined for GML in gml:TimeUnitType. The second component of this union type provides a method for indicating time units other than the six standard units given in the enumeration. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporalReferenceSystems.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporalReferenceSystems.xsd new file mode 100644 index 0000000000..88f610b54a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporalReferenceSystems.xsd @@ -0,0 +1,189 @@ + + + + temporalReferenceSystems.xsd + See ISO/DIS 19136 15.5. +A value in the time domain is measured relative to a temporal reference system. Common types of reference systems include calendars, ordinal temporal reference systems, and temporal coordinate systems (time elapsed since some epoch). The primary temporal reference system for use with geographic information is the Gregorian Calendar and 24 hour local or Coordinated Universal Time (UTC), but special applications may entail the use of alternative reference systems. The Julian day numbering system is a temporal coordinate system that has an origin earlier than any known calendar, at noon on 1 January 4713 BC in the Julian proleptic calendar, and is useful in transformations between dates in different calendars. +In GML seven concrete elements are used to describe temporal reference systems: gml:TimeReferenceSystem, gml:TimeCoordinateSystem, gml:TimeCalendar, gml:TimeCalendarEra, gml:TimeClock, gml:TimeOrdinalReferenceSystem, and gml:TimeOrdinalEra. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + A reference system is characterized in terms of its domain of validity: the spatial and temporal extent over which it is applicable. The basic GML element for temporal reference systems is gml:TimeReferenceSystem. Its content model extends gml:DefinitionType with one additional property, gml:domainOfValidity. + + + + + + + + + + + + + + A temporal coordinate system shall be based on a continuous interval scale defined in terms of a single time interval. +The differences to ISO 19108 TM_CoordinateSystem are: +- the origin is specified either using the property gml:originPosition whose value is a direct time position, or using the property gml:origin whose model is gml:TimeInstantPropertyType; this permits more flexibility in representation and also supports referring to a value fixed elsewhere; +- the interval uses gml:TimeIntervalLengthType. + + + + + + + + + + + + + + + + + + + A calendar is a discrete temporal reference system that provides a basis for defining temporal position to a resolution of one day. +gml:TimeCalendar adds one property to those inherited from gml:TimeReferenceSystem. A gml:referenceFrame provides a link to a gml:TimeCalendarEra that it uses. A gml:TimeCalendar may reference more than one calendar era. +The referenceFrame element follows the standard GML property model, allowing the association to be instantiated either using an inline description using the gml:TimeCalendarEra element, or a link to a gml:TimeCalendarEra which is explicit elsewhere. + + + + + + + + + + + + + + gml:TimeCalendarEra inherits basic properties from gml:DefinitionType and has the following additional properties: +- gml:referenceEvent is the name or description of a mythical or historic event which fixes the position of the base scale of the calendar era. This is given as text or using a link to description held elsewhere. +- gml:referenceDate specifies the date of the referenceEvent expressed as a date in the given calendar. In most calendars, this date is the origin (i.e., the first day) of the scale, but this is not always true. +- gml:julianReference specifies the Julian date that corresponds to the reference date. The Julian day number is an integer value; the Julian date is a decimal value that allows greater resolution. Transforming calendar dates to and from Julian dates provides a relatively simple basis for transforming dates from one calendar to another. +- gml:epochOfUse is the period for which the calendar era was used as a basis for dating. + + + + + + + + + + + + + + + + + gml:TimeCalendarPropertyType provides for associating a gml:TimeCalendar with an object. + + + + + + + + + + gml:TimeCalendarEraPropertyType provides for associating a gml:TimeCalendarEra with an object. + + + + + + + + + + A clock provides a basis for defining temporal position within a day. A clock shall be used with a calendar in order to provide a complete description of a temporal position within a specific day. +gml:TimeClock adds the following properties to those inherited from gml:TimeReferenceSystemType: +- gml:referenceEvent is the name or description of an event, such as solar noon or sunrise, which fixes the position of the base scale of the clock. +- gml:referenceTime specifies the time of day associated with the reference event expressed as a time of day in the given clock. The reference time is usually the origin of the clock scale. +- gml:utcReference specifies the 24 hour local or UTC time that corresponds to the reference time. +- gml:dateBasis contains or references the calendars that use this clock. + + + + + + + + + + + + + + + + + gml:TimeClockPropertyType provides for associating a gml:TimeClock with an object. + + + + + + + + + + In some applications of geographic information — such as geology and archaeology — relative position in time is known more precisely than absolute time or duration. The order of events in time can be well established, but the magnitude of the intervals between them cannot be accurately determined; in such cases, the use of an ordinal temporal reference system is appropriate. An ordinal temporal reference system is composed of a sequence of named coterminous eras, which may in turn be composed of sequences of member eras at a finer scale, giving the whole a hierarchical structure of eras of verying resolution. +An ordinal temporal reference system whose component eras are not further subdivided is effectively a temporal topological complex constrained to be a linear graph. An ordinal temporal reference system some or all of whose component eras are subdivided is effectively a temporal topological complex with the constraint that parallel branches may only be constructed in pairs where one is a single temporal ordinal era and the other is a sequence of temporal ordinal eras that are called "members" of the "group". This constraint means that within a single temporal ordinal reference system, the relative position of all temporal ordinal eras is unambiguous. +The positions of the beginning and end of a given era may calibrate the relative time scale. +gml:TimeOrdinalReferenceSystem adds one or more gml:component properties to the generic temporal reference system model. + + + + + + + + + + + + + + Its content model follows the pattern of gml:TimeEdge, inheriting standard properties from gml:DefinitionType, and adding gml:start, gml:end and gml:extent properties, a set of gml:member properties which indicate ordered gml:TimeOrdinalEra elements, and a gml:group property which points to the parent era. +The recursive inclusion of gml:TimeOrdinalEra elements allow the construction of an arbitrary depth hierarchical ordinal reference schema, such that an ordinal era at a given level of the hierarchy includes a sequence of shorter, coterminous ordinal eras. + + + + + + + + + + + + + + + + + + + gml:TimeOrdinalEraPropertyType provides for associating a gml:TimeOrdinalEra with an object. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporalTopology.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporalTopology.xsd new file mode 100644 index 0000000000..b38392c44d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/temporalTopology.xsd @@ -0,0 +1,119 @@ + + + + temporalTopology.xsd + See ISO/DIS 19136 15.3. +Temporal topology is described in terms of time complexes, nodes, and edges, and the connectivity between these. Temporal topology does not directly provide information about temporal position. It is used in the case of describing a lineage or a history (e.g. a family tree expressing evolution of species, an ecological cycle, a lineage of lands or buildings, or a history of separation and merger of administrative boundaries). The following Subclauses specifies the temporal topology as temporal characteristics of features in compliance with ISO 19108. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + gml:TimeTopologyPrimitive acts as the head of a substitution group for topological temporal primitives. +Temporal topology primitives shall imply the ordering information between features or feature properties. The temporal connection of features can be examined if they have temporal topology primitives as values of their properties. Usually, an instantaneous feature associates with a time node, and a static feature associates with a time edge. A feature with both modes associates with the temporal topology primitive: a supertype of time nodes and time edges. +A topological primitive is always connected to one or more other topological primitives, and is, therefore, always a member of a topological complex. In a GML instance, this will often be indicated by the primitives being described by elements that are descendents of an element describing a complex. However, in order to support the case where a temporal topological primitive is described in another context, the optional complex property is provided, which carries a reference to the parent temporal topological complex. + + + + + + + + + + + + + + gml:TimeTopologyPrimitivePropertyType provides for associating a gml:AbstractTimeTopologyPrimitive with an object. + + + + + + + + + + A temporal topology complex shall be the connected acyclic directed graph composed of temporal topological primitives, i.e. time nodes and time edges. Because a time edge may not exist without two time nodes on its boundaries, static features have time edges from a temporal topology complex as the values of their temporal properties, regardless of explicit declarations. +A temporal topology complex expresses a linear or a non-linear graph. A temporal linear graph, composed of a sequence of time edges, provides a lineage described only by "substitution" of feature instances or feature element values. A time node as the start or the end of the graph connects with at least one time edge. A time node other than the start and the end shall connect to at least two time edges: one of starting from the node, and another ending at the node. +A temporal topological complex is a set of connected temporal topological primitives. The member primtives are indicated, either by reference or by value, using the primitive property. + + + + + + + + + + + + + + gml:TimeTopologyComplexPropertyType provides for associating a gml:TimeTopologyComplex with an object. + + + + + + + + + + A time node is a zero-dimensional topological primitive that represents an identifiable node in time (it is equivalent to a point in space). A node may act as the termination or initiation of any number of time edges. A time node may be realised as a geometry, its position, whose value is a time instant. + + + + + + + + + + + + + + + + gml:TimeNodePropertyType provides for associating a gml:TimeNode with an object + + + + + + + + + + A time edge is a one-dimensional topological primitive. It is an open interval that starts and ends at a node. The edge may be realised as a geometry whose value is a time period. + + + + + + + + + + + + + + + + gml:TimeEdgePropertyType provides for associating a gml:TimeEdge with an object. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/topology.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/topology.xsd new file mode 100644 index 0000000000..c528e6cfea --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/topology.xsd @@ -0,0 +1,386 @@ + + + + topology.xsd + See ISO/DIS 19136 Clause 14. +Topology is the branch of mathematics describing the properties of objects which are invariant under continuous deformation. For example, a circle is topologically equivalent to an ellipse because one can be transformed into the other by stretching. In geographic modelling, the foremost use of topology is in accelerating computational geometry. The constructs of topology allow characterisation of the spatial relationships between objects using simple combinatorial or algebraic algorithms. Topology, realised by the appropriate geometry, also allows a compact and unambiguous mechanism for expressing shared geometry among geographic features. +There are four instantiable classes of primitive topology objects, one for each dimension up to 3D. In addition, topological complexes are supported, too. +There is strong symmetry in the (topological boundary and coboundary) relationships between topology primitives of adjacent dimensions. Topology primitives are bounded by directed primitives of one lower dimension. The coboundary of each topology primitive is formed from directed topology primitives of one higher dimension. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + This abstract type supplies the root or base type for all topological elements including primitives and complexes. It inherits AbstractGMLType and hence can be identified using the gml:id attribute. + + + + + + + + + + + + + + gml:AbstractTopoPrimitive acts as the base type for all topological primitives. Topology primitives are the atomic (smallest possible) units of a topology complex. +Each topology primitive may contain references to other topology primitives of codimension 2 or more (gml:isolated). Conversely, nodes may have faces as containers and nodes and edges may have solids as containers (gml:container). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In the case of planar topology, a gml:Node must have a clockwise sequence of gml:directedEdge properties, to ensure a lossless topology representation as defined by Kuijpers, et. al. (see OGC 05-102 Topology IPR). + + + + + + + + + + + gml:Node represents the 0-dimensional primitive. +The optional coboundary of a node (gml:directedEdge) is a sequence of directed edges which are incident on this node. Edges emanating from this node appear in the node coboundary with a negative orientation. +If provided, the aggregationType attribute shall have the value "sequence". +A node may optionally be realised by a 0-dimensional geometric primitive (gml:pointProperty). + + + + + A gml:directedNode property element describes the boundary of topology edges and is used in the support of topological point features via the gml:TopoPoint expression, see below. The orientation attribute of type gml:SignType expresses the sense in which the included node is used: start ("-") or end ("+") node. + + + + + + + + + + + + + + + + + + + + + + + + + + gml:Edge represents the 1-dimensional primitive. +The topological boundary of an Edge (gml:directedNode) consists of a negatively directed start Node and a positively directed end Node. +The optional coboundary of an edge (gml:directedFace) is a circular sequence of directed faces which are incident on this edge in document order. In the 2D case, the orientation of the face on the left of the edge is "+"; the orientation of the face on the right on its right is "-". +If provided, the aggregationType attribute shall have the value "sequence". +An edge may optionally be realised by a 1-dimensional geometric primitive (gml:curveProperty). + + + + + A gml:directedEdge property element describes the boundary of topology faces, the coBoundary of topology nodes and is used in the support of topological line features via the gml:TopoCurve expression, see below. The orientation attribute of type gml:SignType expresses the sense in which the included edge is used, i.e. forward or reverse. + + + + + + + + + + + + + + + + + + + + + + + If the topological representation exists an unbounded manifold (e.g. Euclidean plane), a gml:Face must indicate whether it is a universal face or not, to ensure a lossless topology representation as defined by Kuijpers, et. al. (see OGC 05-102 Topology IPR). The optional universal attribute of type boolean is used to indicate this. NOTE The universal face is normally not part of any feature, and is used to represent the unbounded portion of the data set. Its interior boundary (it has no exterior boundary) would normally be considered the exterior boundary of the map represented by the data set. + + + + + + + + gml:Face represents the 2-dimensional topology primitive. +The topological boundary of a face (gml:directedEdge) consists of a sequence of directed edges. If provided, the aggregationType attribute shall have the value "sequence". +The optional coboundary of a face (gml:directedTopoSolid) is a pair of directed solids which are bounded by this face. A positively directed solid corresponds to a solid which lies in the direction of the negatively directed normal to the face in any geometric realisation. +A face may optionally be realised by a 2-dimensional geometric primitive (gml:surfaceProperty). + + + + + The gml:directedFace property element describes the boundary of topology solids, in the coBoundary of topology edges and is used in the support of surface features via the gml:TopoSurface expression, see below. The orientation attribute of type gml:SignType expresses the sense in which the included face is used i.e. inward or outward with respect to the surface normal in any geometric realisation. + + + + + + + + + + + + + + + + + + + + + + A gml:TopoSolid must indicate whether it is a universal topo-solid or not, to ensure a lossless topology representation as defined by Kuijpers, et. al. (see OGC 05-102 Topology IPR). The optional universal attribute of type boolean is used to indicate this and the default is fault. NOTE The universal topo-solid is normally not part of any feature, and is used to represent the unbounded portion of the data set. Its interior boundary (it has no exterior boundary) would normally be considered the exterior boundary of the data set. + + + + + + + + gml:TopoSolid represents the 3-dimensional topology primitive. +The topological boundary of a solid (gml:directedFace) consists of a set of directed faces. +A solid may optionally be realised by a 3-dimensional geometric primitive (gml:solidProperty). + + + + + The gml:directedSolid property element describes the coBoundary of topology faces and is used in the support of volume features via the gml:TopoVolume expression, see below. The orientation attribute of type gml:SignType expresses the sense in which the included solid appears in the face coboundary. In the context of a gml:TopoVolume the orientation attribute has no meaning. + + + + + + + + + + + + + + + + + + + + + + The intended use of gml:TopoPoint is to appear within a point feature to express the structural and possibly geometric relationships of this feature to other features via shared node definitions. + + + + + + + + + + + The gml:topoPointProperty property element may be used in features to express their relationship to the referenced topology node. + + + + + + + + + + + + + + + gml:TopoCurve represents a homogeneous topological expression, a sequence of directed edges, which if realised are isomorphic to a geometric curve primitive. The intended use of gml:TopoCurve is to appear within a line feature to express the structural and geometric relationships of this feature to other features via the shared edge definitions. +If provided, the aggregationType attribute shall have the value "sequence". + + + + + + + + + + + The gml:topoCurveProperty property element may be used in features to express their relationship to the referenced topology edges. + + + + + + + + + + + + + + + gml:TopoSurface represents a homogeneous topological expression, a set of directed faces, which if realised are isomorphic to a geometric surface primitive. The intended use of gml:TopoSurface is to appear within a surface feature to express the structural and possibly geometric relationships of this surface feature to other features via the shared face definitions. + + + + + + + + + + + The gml:topoSurfaceProperty property element may be used in features to express their relationship to the referenced topology faces. + + + + + + + + + + + + + + + gml:TopoVolume represents a homogeneous topological expression, a set of directed topologic solids, which if realised are isomorphic to a geometric solid primitive. The intended use of gml:TopoVolume is to appear within a solid feature to express the structural and geometric relationships of this solid feature to other features via the shared solid definitions. + + + + + + + + + + + The gml:topoVolumeProperty element may be used in features to express their relationship to the referenced topology volume. + + + + + + + + + + + + + + + + + + + + gml:TopoComplex is a collection of topological primitives. +Each complex holds a reference to its maximal complex (gml:maximalComplex) and optionally to sub- or super-complexes (gml:subComplex, gml:superComplex). +A topology complex contains its primitive and sub-complex members. + + + + + + The property elements gml:subComplex, gml:superComplex and gml:maximalComplex provide an encoding for relationships between topology complexes as described for gml:TopoComplex above. + + + + + The property elements gml:subComplex, gml:superComplex and gml:maximalComplex provide an encoding for relationships between topology complexes as described for gml:TopoComplex above. + + + + + The property elements gml:subComplex, gml:superComplex and gml:maximalComplex provide an encoding for relationships between topology complexes as described for gml:TopoComplex above. + + + + + The gml:topoPrimitiveMember property element encodes for the relationship between a topology complex and a single topology primitive. + + + + + + + + + + + + The gml:topoPrimitiveMembers property element encodes the relationship between a topology complex and an arbitrary number of topology primitives. + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/units.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/units.xsd new file mode 100644 index 0000000000..84eca23a04 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/units.xsd @@ -0,0 +1,162 @@ + + + + units.xsd + See ISO/DIS 17.2. +Several GML Schema components concern or require a reference scale or units of measure. Units are required for quantities that may occur as values of properties of feature types, as the results of observations, in the range parameters of a coverage, and for measures used in Coordinate Reference System definitions. +The basic unit definition is an extension of the general gml:Definition element defined in 16.2.1. Three specialized elements for unit definition are further derived from this. +This model is based on the SI system of units [ISO 1000], which distinguishes between Base Units and Derived Units. +- Base Units are the preferred units for a set of orthogonal fundamental quantities which define the particular system of units, which may not be derived by combination of other base units. +- Derived Units are the preferred units for other quantities in the system, which may be defined by algebraic combination of the base units. +In some application areas Conventional units are used, which may be converted to the preferred units using a scaling factor or a formula which defines a re-scaling and offset. The set of preferred units for all physical quantity types in a particular system of units is composed of the union of its base units and derived units. +Unit definitions are substitutable for the gml:Definition element declared as part of the dictionary model. A dictionary that contains only unit definitions and references to unit definitions is a units dictionary. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + The element gml:unitOfMeasure is a property element to refer to a unit of measure. This is an empty element which carries a reference to a unit of measure definition. + + + + + + + + + A gml:UnitDefinition is a general definition of a unit of measure. This generic element is used only for units for which no relationship with other units or units systems is known. +The content model of gml:UnitDefinition adds three additional properties to gml:Definition, gml:quantityType, gml:quantityTypeReference and gml:catalogSymbol. +The gml:catalogSymbol property optionally gives the short symbol used for this unit. This element is usually used when the relationship of this unit to other units or units systems is unknown. + + + + + + + + + + + + + + + + The gml:quantityType property indicates the phenomenon to which the units apply. This element contains an informal description of the phenomenon or type of physical quantity that is measured or observed. When the physical quantity is the result of an observation or measurement, this term is known as observable type or measurand. +The use of gml:quantityType for references to remote values is deprecated. + + + + + The gml:quantityTypeReference property indicates the phenomenon to which the units apply. The content is a reference to a remote value. + + + + + The catalogSymbol is the preferred lexical symbol used for this unit of measure. +The codeSpace attribute in gml:CodeType identifies a namespace for the catalog symbol value, and might reference the external catalog. The string value in gml:CodeType contains the value of a symbol that should be unique within this catalog namespace. This symbol often appears explicitly in the catalog, but it could be a combination of symbols using a specified algebra of units. + + + + + A base unit is a unit of measure that cannot be derived by combination of other base units within a particular system of units. For example, in the SI system of units, the base units are metre, kilogram, second, Ampere, Kelvin, mole, and candela, for the physical quantity types length, mass, time interval, electric current, thermodynamic temperature, amount of substance and luminous intensity, respectively. +gml:BaseUnit extends generic gml:UnitDefinition with the property gml:unitsSystem, which carries a reference to the units system to which this base unit is asserted to belong. + + + + + + + + + + + + + + Derived units are defined by combination of other units. Derived units are used for quantities other than those corresponding to the base units, such as hertz (s-1) for frequency, Newton (kg.m/s2) for force. Derived units based directly on base units are usually preferred for quantities other than the fundamental quantities within a system. If a derived unit is not the preferred unit, the gml:ConventionalUnit element should be used instead. +The gml:DerivedUnit extends gml:UnitDefinition with the property gml:derivationUnitTerms. + + + + + + + + + + + + + + A set of gml:derivationUnitTerm elements describes a derived unit of measure. Each element carries an integer exponent. The terms are combined by raising each referenced unit to the power of its exponent and forming the product. +This unit term references another unit of measure (uom) and provides an integer exponent applied to that unit in defining the compound unit. The exponent may be positive or negative, but not zero. + + + + + + + + + + + + Conventional units that are neither base units nor defined by direct combination of base units are used in many application domains. For example electronVolt for energy, feet and nautical miles for length. In most cases there is a known, usually linear, conversion to a preferred unit which is either a base unit or derived by direct combination of base units. +The gml:ConventionalUnit extends gml:UnitDefinition with a property that describes a conversion to a preferred unit for this physical quantity. When the conversion is exact, the element gml:conversionToPreferredUnit should be used, or when the conversion is not exact the element gml:roughConversionToPreferredUnit is available. Both of these elements have the same content model. The gml:derivationUnitTerm property defined above is included to allow a user to optionally record how this unit may be derived from other ("more primitive") units. + + + + + + + + + + + + + + + + + + The elements gml:conversionToPreferredUnit and gml:roughConversionToPreferredUnit represent parameters used to convert conventional units to preferred units for this physical quantity type. A preferred unit is either a Base Unit or a Derived Unit that is selected for all values of one physical quantity type. + + + + + The elements gml:conversionToPreferredUnit and gml:roughConversionToPreferredUnit represent parameters used to convert conventional units to preferred units for this physical quantity type. A preferred unit is either a Base Unit or a Derived Unit that is selected for all values of one physical quantity type. + + + + + The inherited attribute uom references the preferred unit that this conversion applies to. The conversion of a unit to the preferred unit for this physical quantity type is specified by an arithmetic conversion (scaling and/or offset). The content model extends gml:UnitOfMeasureType, which has a mandatory attribute uom which identifies the preferred unit for the physical quantity type that this conversion applies to. The conversion is specified by a choice of +- gml:factor, which defines the scale factor, or +- gml:formula, which defines a formula +by which a value using the conventional unit of measure can be converted to obtain the corresponding value using the preferred unit of measure. +The formula defines the parameters of a simple formula by which a value using the conventional unit of measure can be converted to the corresponding value using the preferred unit of measure. The formula element contains elements a, b, c and d, whose values use the XML Schema type double. These values are used in the formula y = (a + bx) / (c + dx), where x is a value using this unit, and y is the corresponding value using the base unit. The elements a and d are optional, and if values are not provided, those parameters are considered to be zero. If values are not provided for both a and d, the formula is equivalent to a fraction with numerator and denominator parameters. + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/valueObjects.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/valueObjects.xsd new file mode 100644 index 0000000000..204bdfdc8b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.2.1/valueObjects.xsd @@ -0,0 +1,205 @@ + + + + valueObjects.xsd + See ISO/DIS 19136 17.5. +The elements declared in this Clause build on other GML schema components, in particular gml:AbstractTimeObject, gml:AbstractGeometry, and the following types: gml:MeasureType, gml:MeasureListType, gml:CodeType, gml:CodeOrNilReasonListType, gml:BooleanOrNilReasonListType, gml:IntegerOrNilReasonList. +Of particular interest are elements that are the heads of substitution groups, and one named choice group. These are the primary reasons for the value objects schema, since they may act as variables in the definition of content models, such as Observations, when it is desired to permit alternative value types to occur some of which may have complex content such as arrays, geometry and time objects, and where it is useful not to prescribe the actual value type in advance. The members of the groups include quantities, category classifications, boolean, count, temporal and spatial values, and aggregates of these. +The value objects are defined in a hierarchy. The following relationships are defined: +- Concrete elements gml:Quantity, gml:Category, gml:Count and gml:Boolean are substitutable for the abstract element gml:AbstractScalarValue. +- Concrete elements gml:QuantityList, gml:CategoryList, gml:CountList and gml:BooleanList are substitutable for the abstract element gml:AbstractScalarValueList. +- Concrete element gml:ValueArray is substitutable for the concrete element gml:CompositeValue. +- Abstract elements gml:AbstractScalarValue and gml:AbstractScalarValueList, and concrete elements gml:CompositeValue, gml:ValueExtent, gml:CategoryExtent, gml:CountExtent and gml:QuantityExtent are substitutable for abstract element gml:AbstractValue. +- Abstract elements gml:AbstractValue, gml:AbstractTimeObject and gml:AbstractGeometry are all in a choice group named gml:Value, which is used for compositing in gml:CompositeValue and gml:ValueExtent. +- Schemas which need values may use the abstract element gml:AbstractValue in a content model in order to permit any of the gml:AbstractScalarValues, gml:AbstractScalarValueLists, gml:CompositeValue or gml:ValueExtent to occur in an instance, or the named group gml:Value to also permit gml:AbstractTimeObjects, gml:AbstractGeometrys. + +GML is an OGC Standard. +Copyright (c) 2007,2010 Open Geospatial Consortium. +To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + + + A gml:Category has an optional XML attribute codeSpace, whose value is a URI which identifies a dictionary, codelist or authority for the term. + + + + + + + + + + + + + + + + + + + + + + + An XML attribute uom ("unit of measure") is required, whose value is a URI which identifies the definition of a ratio scale or units by which the numeric value shall be multiplied, or an interval or position scale on which the value occurs. + + + + + + + + + + + + + gml:AbstractValue is an abstract element which acts as the head of a substitution group which contains gml:AbstractScalarValue, gml:AbstractScalarValueList, gml:CompositeValue and gml:ValueExtent, and (transitively) the elements in their substitution groups. +These elements may be used in an application schema as variables, so that in an XML instance document any member of its substitution group may occur. + + + + + gml:AbstractScalarValue is an abstract element which acts as the head of a substitution group which contains gml:Boolean, gml:Category, gml:Count and gml:Quantity, and (transitively) the elements in their substitution groups. + + + + + gml:AbstractScalarValueList is an abstract element which acts as the head of a substitution group which contains gml:BooleanList, gml:CategoryList, gml:CountList and gml:QuantityList, and (transitively) the elements in their substitution groups. + + + + + This is a convenience choice group which unifies generic values defined in this Clause with spatial and temporal objects and the measures described above, so that any of these may be used within aggregate values. + + + + + + + + + + + Property that refers to, or contains, a Value. Convenience element for general use. + + + + + Property that refers to, or contains, a Value. + + + + + + + + + + + + Property that contains Values. + + + + + + + + + + + gml:CompositeValue is an aggregate value built from other values . It contains zero or an arbitrary number of gml:valueComponent elements, and zero or one gml:valueComponents property elements. It may be used for strongly coupled aggregates (vectors, tensors) or for arbitrary collections of values. + + + + + + + + + + + + + + + + A Value Array is used for homogeneous arrays of primitive and aggregate values. +The member values may be scalars, composites, arrays or lists. +ValueArray has the same content model as CompositeValue, but the member values shall be homogeneous. The element declaration contains a Schematron constraint which expresses this restriction precisely. Since the members are homogeneous, the gml:referenceSystem (uom, codeSpace) may be specified on the gml:ValueArray itself and inherited by all the members if desired. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/extdBaseTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/extdBaseTypes.xsd new file mode 100644 index 0000000000..db854e7ed9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/extdBaseTypes.xsd @@ -0,0 +1,68 @@ + + + + extdBasicTypes.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + gmlxbt:LanguageStringType adds an optional xml:lang attribute to xs:string for the use within the GML schema and in GML application schemas. + + + + + + + + + + gmlxbt:CodeType is a generalized type to be used for a term, keyword or name. It adds a XML attribute codeSpace to a term, where the value of the codeSpace attribute (if present) shall indicate a dictionary, thesaurus, classification scheme, authority, or pattern for the term. + + + + + + + + + + gmlxbt:CodeWithAuthorityType requires that the codeSpace attribute is provided in an instance. + + + + + + + + + + + + + + + + + The value of this property is a text description of the object with optional xml:lang attribute. + + + + + The value of this property is a text description of the object with optional xml:lang attribute. + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/extdEncRule.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/extdEncRule.xsd new file mode 100644 index 0000000000..3218bed717 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/extdEncRule.xsd @@ -0,0 +1,6 @@ + + + extdEncRule.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/geometryCompact.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/geometryCompact.xsd new file mode 100644 index 0000000000..fe80726084 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/geometryCompact.xsd @@ -0,0 +1,218 @@ + + + geometryCompact.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + A SimplePolygon is a specialized polygon that has a simplified encoding of the logically equivalent GML 3.2 Surface with a single GML 3.2 PolygonPatch as its surface patch consisting of a single LinearRing as its exterior boundary and does not have any interior boundary. Thus the usage of the term 'simple' here refers to a specialized polygon with a _simplified_ encoding, which is _simply_ connected (no interior rings) and uses a _simple_ closed curve (no self-crossings) to represent its single boundary ring. + + + + + Abstract element representative of a substitution affiliation + + + + + + + + + + + + + + + + + + + + A SimpleRectangle is the special case of a simple polygon, which has exactly 4 control points in its boundary encoding representing the 4 corners of the rectangle. + + + + + + + + + + + + + + + + + + + + A SimpleTriangle is the special case of a simple polygon, which has exactly 3 control points in its boundary encoding representing the 3 corners of the triangle. + + + + + + + + + + + + + + + + + + + + A SimpleArcString is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one or more GML 3.2 Arc segments + + + + + Abstract element representative of a substitution affiliation + + + + + + + + + + + + + + + + + + + + + + A SimpleArc is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 ArcString segment . + + + + + + + + + + + + + + + + + + + + + + A SimpleArcByCenterPoint is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 SimpleArcByCenterPoint segment. + + + + + + + + + + + + + + + + + + + + + + + + + + A SimpleArcStringByBulge is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one or more GML 3.2 ArcByBulge segments. + + + + + + + + + + + + + + + + + + + + + + + + A SimpleArcStringByBulge is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one GML 3.2 ArcByBulge segment. + + + + + + + + + + + + + + + + + + + + + + + + A SimpleCircle is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 Circle segment. + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/iso8601.sch b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/iso8601.sch new file mode 100644 index 0000000000..ef133f89d0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/iso8601.sch @@ -0,0 +1,19 @@ + + + + + + + + + + + Year 0000 is not a valid year. + + + Calendar day 000 is not a valid value, the first day of the year is 001. + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRef.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRef.xsd new file mode 100644 index 0000000000..d9bf5d6165 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRef.xsd @@ -0,0 +1,215 @@ + + + linearRef.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gmllr:LinearReferencingMethod + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Informative values from ISO 19148 Annex C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Normative values from ISO 19148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefOffset.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefOffset.xsd new file mode 100644 index 0000000000..a6c6020628 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefOffset.xsd @@ -0,0 +1,96 @@ + + + linearRefOffset.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gmllr:AbstractGeometry + + + + + + + + + + + + + + The featureGeometry attribute value should reference a Geometry object + + gmllr:AbstractGeometry + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefOffsetVector.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefOffsetVector.xsd new file mode 100644 index 0000000000..50c0415626 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefOffsetVector.xsd @@ -0,0 +1,48 @@ + + + linearRefOffsetVector.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefTowardsReferent.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefTowardsReferent.xsd new file mode 100644 index 0000000000..14f94445d1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/linearRefTowardsReferent.xsd @@ -0,0 +1,23 @@ + + + linearRefTowardsReferent.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/referenceableGrid.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/referenceableGrid.xsd new file mode 100644 index 0000000000..086c1e2fa9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/referenceableGrid.xsd @@ -0,0 +1,79 @@ + + + referenceableGrid.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/tin.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/tin.xsd new file mode 100644 index 0000000000..f8fd7479ed --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/ogc/gml/3.3/tin.xsd @@ -0,0 +1,78 @@ + + + tin.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi-core.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi-core.xsd new file mode 100644 index 0000000000..b868551873 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi-core.xsd @@ -0,0 +1,2940 @@ + + + + + + + + + + + + Core XML type components that shall always be used as specified without further restriction unless documented by, and accomplished using, Schematron assertions. + + + + + An XML model group consisting of all TSPI resolution elements. + + + + + Horizontal Resolution Category: The horizontal resolution of the coordinate tuple of the accompanying point, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous. + + + + + Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying point, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous. + + + + + + + + An XML model group consisting of all TSPI presentation elements. + + + + + + Horizontal Presentation: A presentation of a point horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + Vertical Presentation: A presentation of a point vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + + + Point Type: A point type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + + + + + + + + Line String Type: A line string type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A line string is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate tuples, with linear interpolation between them. + + + + + + + + + + + + + + Circle Type: A circle type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include assessments of the accuracy and/or resolution of the center point coordinate tuple as well as optional specification of one or more character-oriented presentations of the center point coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle by center point is an arc by center point with identical start and end angle to form a full circle. This representation can be used only in 2D. + + + + + + + + + + + + + + Ellipse Type: An ellipse as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of an ellipse and then extended to include both assessments of the accuracy and/or resolution of the center point coordinate tuple as well as optional specification of one or more character-oriented presentations of the center point coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D. + + + + + + + The position of the center point of the ellipse. + + + + + + + Semi-major Axis Length: One-half of the length of the major axis of the ellipse. The major axis is the longest axis of an ellipse; it passes through the two foci. + + + + + Semi-minor Axis Length: One-half of the length of the minor axis of the ellipse. The minor axis is the shortest axis of an ellipse; it is perpendicular to the major axis. + + + + + Orientation: The direction of the major axis of the ellipse; its value is the counter-clockwise angle from the first axis of the Coordinate Reference System. + + + + + + + + + + + + Polygon Type: A polygon type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + + + + + + + + Simple Polygon Type: A simple polygon type as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A SimplePolygon is a specialized polygon that has a simplified encoding of the logically equivalent GML 3.2 Surface with a single GML 3.2 PolygonPatch as its surface patch consisting of a single LinearRing as its exterior boundary and does not have any interior boundary. Thus the usage of the term 'simple' here refers to a specialized polygon with a _simplified_ encoding, which is _simply_ connected (no interior rings) and uses a _simple_ closed curve (no self-crossings) to represent its single boundary ring. The last coordinate does _not_ have to repeat the first coordinate in this simplified encoding, so only three control points are required to specify a simple polygon. + + + + + + + + + + + + + + Simple Rectangle Type: A simple rectangle type as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A simple rectangle is the special case of a simple polygon, which has exactly 4 control points in its boundary encoding representing the 4 corners of the rectangle. + + + + + + + + + + + + + + Envelope Type: An envelope type, as developed based on ISO 19136:2007 (GML) Envelope for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the pair of coordinate tuples as well as optional specification of one or more character-oriented presentations of the pair of coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope). + + + + + + + Lower Corner Position: A coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope. + + + + + + + + + + + Upper Corner Position: A coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope. + + + + + + + + + + + + + Horizontal Presentation: A presentation of an envelope point horizontal locations that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + Lower Corner Horizontal Presentation: A presentation of an envelope lower corner point horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + Upper Corner Horizontal Presentation: A presentation of an envelope upper corner horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + + + + Vertical Presentation: A presentation of an envelope point vertical locations that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + Lower Corner Vertical Presentation: A presentation of an envelope lower corner point vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + Upper Corner Vertical Presentation: A presentation of an envelope upper corner vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + + + + + + + + + Circular Surface Type: A circular surface type, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a circle and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle is an arc that is specified by a center point, a radius, and which has identical start and end angles. This representation can be used only in 2D. + + + + + + + The position of the center point of the circle. + + + + + + + Radius: The distance from the center to the circumference of the circle. + + + + + + + + + + + + Elliptical Surface Type: An elliptical surface type, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a circle and then extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D. + + + + + + + The position of the center point of the ellipse. + + + + + + + Semi-major Axis Length: One-half of the length of the major axis of the ellipse. The major axis is the longest axis of an ellipse; it passes through the two foci. + + + + + Semi-minor Axis Length: One-half of the length of the minor axis of the ellipse. The minor axis is the shortest axis of an ellipse; it is perpendicular to the major axis. + + + + + Orientation: The direction of the major axis of the ellipse; its value is the counter-clockwise angle from the first axis of the Coordinate Reference System. + + + + + + + + + + + + Horizontal Presentation Type: A type consisting of one or more occurances of one of a set of alternative presentations of a point horizontal location that are generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + Sexagesimal Location: A sexagesimal position presentation based on 60 arc seconds comprising an arc minute and 60 arc minutes comprising an arc degree that is widely employed as a basis for position reporting. [desc] The presentation consists of two component strings, one each for the geodetic latitude and longitude coordinates, which are identical excepting differences in the maximum value of latitude (90 arc degrees) and longitude (180 arc degrees) and the allowed value of hemisphere (North and South, versus East and West). + + + + + Grid-Metre Location: A grid-metre position presentation based on the requirements of the Military Grid Reference System (MGRS) position reporting system. [desc] Grid squares are used as a means of identifying 100,000-metre x 100,000-metre spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from the southwest corner. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values. + + + + + Zone-Metre Location: A zone-metre position presentation based on the requirements of the universal grid position reporting systems based on Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS) map projections. [desc] Zones and hemispheres are used as a means of identifying spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from a reference location. The reference location is assigned a positive offset-value to ensure that all legal offset values in a zone are positive. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values. + + + + + Quadrangle Location: A datatype representing a quadrangle position presentation based on the requirements of the GEOREF area-designation system. [desc] Quadrangles are used as a means of identifying 1 arc degree x 1 arc degree spatial regions which are then subdivided in accordance with sexagesimal notation based on 60 arc minutes comprising an arc degree. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values. + + + + + Numeric-Bit Location: A numeric-bit position presentation based on the requirements of the Variable Message Format (VMF). [desc] VMF encodes values of geodetic latitude and longitude as multi-bit fields whose bit configurations represent actual numeric values. The least significant bit value and range are described in the applicable message description. A negative number is coded and transmitted with twos complement coding and identified by the number one in the most significant bit of the data field. + + + + + + Spatial Reference System Name: A unique identifier of a spatial reference system, usually a Coordinate Reference System (CRS). [desc] Specified as a Uniform Resource Identifier (URI). + + + + + + + Vertical Presentation Type: A type consisting of one or more occurances of one of a set of alternative presentations of a point vertical location that are generally intended for human-to-human communication rather than machine-to-machine communication. + + + + + Height: The distance above a reference surface determined along the direction of the reference surface normal with positive values being above the reference surface. [desc] Conventionally measured from an ellipsoid as "Height Above Ellipsoid" (HAE). + + + + + Altitude: The distance above a reference surface determined along the direction of gravity with positive values being above the reference surface. [desc] Conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)). + + + + + Depth: The distance below a reference surface determined along the direction of gravity with positive values being below the reference surface. [desc] Conventionally measured from Mean Sea level (MSL); may also be measured from a Todal Datum or River Datum. + + + + + + Spatial Reference System Name: A unique identifier of a spatial reference system, usually a Coordinate Reference System (CRS). [desc] Specified as a Uniform Resource Identifier (URI). + + + + + + + Sexagesimal Presentation Type: A datatype representing a sexagesimal position presentation based on 60 arc seconds comprising an arc minute and 60 arc minutes comprising an arc degree that is widely employed as a basis for position reporting. [desc] The presentation consists of two component strings, one each for the geodetic latitude and longitude coordinates, which are identical excepting differences in the maximum value of latitude (90 arc degrees) and longitude (180 arc degrees) and the allowed value of hemisphere (North and South, versus East and West). + + + + + + Geodetic Degree: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Degree: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc degrees. + + + + + Geodetic Longitude Degree: The presentation value of a spatial position expressed as an angle of geodetic longitude in unsigned decimal arc degrees. + + + + + + + + + Geodetic Degree Fraction: The presentation value of a spatial position expressed as remaining fractional arc degree angle components of geodetic latitude and longitude. + + + + + + Geodetic Decidegree: The presentation value of a spatial position expressed as remaining fractional arc decidegree (tenths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Decidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decidegrees (tenths of an arc degree). + + + + + Geodetic Longitude Decidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decidegrees (tenths of an arc degree). + + + + + + + + Geodetic Centidegree: The presentation value of a spatial position expressed as remaining fractional arc centidegree (hundredths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Centidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centidegrees (hundredths of an arc degree). + + + + + Geodetic Longitude Centidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centidegrees (hundredths of an arc degree). + + + + + + + + Geodetic Millidegree: The presentation value of a spatial position expressed as remaining fractional arc millidegree (thousandths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Millidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc millidegrees (thousandths of an arc degree). + + + + + Geodetic Longitude Millidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc millidegrees (thousandths of an arc degree). + + + + + + + + Geodetic Decimillidegree: The presentation value of a spatial position expressed as remaining fractional arc decimillidegree (ten-thousandths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Decimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decimillidegrees (ten-thousandths of an arc degree). + + + + + Geodetic Longitude Decimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decimillidegrees (ten-thousandths of an arc degree). + + + + + + + + Geodetic Centimillidegree: The presentation value of a spatial position expressed as remaining fractional arc centimillidegree (hundred-thousandths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Centimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centimillidegrees (hundred-thousandths of an arc degree). + + + + + Geodetic Longitude Centimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centimillidegrees (hundred-thousandths of an arc degree). + + + + + + + + Geodetic Microdegree: The presentation value of a spatial position expressed as remaining fractional arc microdegree (millionths of an arc degree) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Microdegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc microdegrees (millionths of an arc degree). + + + + + Geodetic Longitude Microdegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc microdegrees (millionth of an arc degree). + + + + + + + + + + + + Geodetic Minute: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc degrees have been specified. + + + + + + Geodetic Latitude Minute: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc minutes. + + + + + Geodetic Longitude Minute: The presentation value of a spatial position expressed as a component of an angle of geodetic longitude in unsigned decimal arc minutes. + + + + + + + + + Geodetic Minute Fraction: The presentation value of a spatial position expressed as remaining fractional arc minute angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc minutes have been specified. + + + + + + Geodetic Deciminute: The presentation value of a spatial position expressed as remaining fractional arc deciminute (tenths of an arc minute) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Deciminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc deciminutes (tenth of an arc minute). + + + + + Geodetic Longitude Deciminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc deciminutes (tenth of an arc minute). + + + + + + + + Geodetic Centiminute: The presentation value of a spatial position expressed as remaining fractional arc centiminute (hundredths of an arc minute) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Centiminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centiminutes (hundredth of an arc minute). + + + + + Geodetic Longitude Centiminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centiminutes (hundredth of an arc minute). + + + + + + + + Geodetic Milliminute: The presentation value of a spatial position expressed as remaining fractional arc milliiminute (thousandths of an arc minute) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Milliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc milliminutes (thousandth of an arc minute). + + + + + Geodetic Longitude Milliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc milliminutes (thousandth of an arc minute). + + + + + + + + Geodetic Decimilliminute: The presentation value of a spatial position expressed as remaining fractional arc decimilliminute (ten-thousandths of an arc minute) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Decimilliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decimilliminutes (ten-thousandth of an arc minute). + + + + + Geodetic Longitude Decimilliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decimilliminutes (ten-thousandth of an arc minute). + + + + + + + + + + + + Geodetic Second: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc degrees and arc minutes have been specified. + + + + + + Geodetic Latitude Seconds: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc seconds. + + + + + Geodetic Longitude Seconds: The presentation value of a spatial position expressed as a component of an angle of geodetic longitude in unsigned decimal arc seconds. + + + + + + + + + Geodetic Second Fraction: The presentation value of a spatial position expressed as remaining fractional arc second angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc seconds have been specified. + + + + + + Geodetic Decisecond: The presentation value of a spatial position expressed as remaining fractional arc decisecond (tenths of an arc second) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Deciseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc deciseconds (tenth of an arc second). + + + + + Geodetic Longitude Deciseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc deciseconds (tenth of an arc second). + + + + + + + + Geodetic Centisecond: The presentation value of a spatial position expressed as remaining fractional arc centisecond (hundredths of an arc second) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Centiseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centiseconds (hundredth of an arc second). + + + + + Geodetic Longitude Centiseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centiseconds (hundredth of an arc second). + + + + + + + + Geodetic Millisecond: The presentation value of a spatial position expressed as remaining fractional arc millisecond (thousandths of an arc second) angle components of geodetic latitude and longitude. + + + + + + Geodetic Latitude Milliseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc milliseconds (thousandth of an arc second). + + + + + Geodetic Longitude Milliseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc milliseconds (thousandth of an arc second). + + + + + + + + + + + + Geodetic Latitude Hemisphere: The hemispheric location of a spatial position expressed as a geodetic latitude, as a category. [desc] One of: north or south. + + + + + Geodetic Longitude Hemisphere: The hemispheric location of a spatial position expressed as a geodetic longitude, as a category. [desc] One of: east or west. + + + + + + Radix Point Mark: The symbol used in numerical representations to separate the integral part of the number (to the left of the radix) from its fractional part (to the right of the radix). [desc] The radix point mark is usually a small dot, either placed on the baseline or halfway between the baseline and the top of the numerals. In base-10, the radix point is more commonly called the decimal point; radix point, however, is the more general term used for other bases. In many non-English speaking countries, a comma ',' is used instead of a period '.' as the radix point mark. + + + + + + + + Geodetic Latitude Type: A datatype consisting of up to two digits in the range from "0" to "90" that may be used to represent an unsigned decimal value of geodetic latitude. Leading zeros may be suppressed as it is not of fixed-length. + + + + + + + + + Geodetic Longitude Type: A datatype consisting of up to three digits in the range from "0" to "180" that may be used to represent an unsigned decimal value of geodetic longitude. Leading zeros may be suppressed as it is not of fixed-length. + + + + + + + + + Latitude Hemisphere Type: A coded domain value denoting the hemispheric location of a spatial position expressed as a geodetic latitude. [desc] One of: north or south. + + + + + Northern Hemisphere: The half of the surface of the Earth lying to the side of the Equator in the direction of the star Polaris. [desc] It generally contains the North American and Eurasian landmasses. + + + + + Southern Hemisphere: The half of the surface of the Earth lying to the side of the Equator in the opposite direction of the star Polaris. [desc] It generally contains the South American, African, Australian, and Antarctic landmasses. + + + + + + + Longitude Hemisphere Type: A coded domain value denoting the hemispheric location of a spatial position expressed as a geodetic longitude. [desc] One of: east or west. + + + + + Eastern Hemisphere: The half of the surface of the Earth lying to the side of the 0 arc degree meridian in which direction the Earth rotates and ending at the 180 arc degree meridian. [desc] It generally contains the Eurasian, African and Australian landmasses. + + + + + Western Hemisphere: The half of the surface of the Earth lying to the side of the 0 arc degree meridian opposite to the direction in which the Earth rotates and ending at the 180 arc degree meridian. [desc] It generally contains the North American and South American landmasses. + + + + + + + + Sexagesimal Type: A datatype consisting of up to two digits in the range from "0" to "59" that may be used to represent an unsigned decimal value. Leading zeros may be suppressed as it is not of fixed-length. + + + + + + + + + + Deca Type: A datatype consisting of a single digit in the range from "0" to "9" that may be used to represent an unsigned decimal value. + + + + + + + + + + Hecto Type: A datatype consisting of two digits in the range from "00" to "99" that may be used to represent an unsigned decimal value. + + + + + + + + + + Kilo Type: A datatype consisting of three digits in the range from "000" to "999" that may be used to represent an unsigned decimal value. + + + + + + + + + + Decakilo Type: A datatype consisting of four digits in the range from "0000" to "9999" that may be used to represent an unsigned decimal value. + + + + + + + + + + Hectokilo Type: A datatype consisting of five digits in the range from "00000" to "99999" that may be used to represent an unsigned decimal value. + + + + + + + + + + Mega Type: A datatype consisting of six digits in the range from "000000" to "999999" that may be used to represent an unsigned decimal value. + + + + + + + + + + + Radix Point Mark Type: A datatype representing the symbol used in numerical representations to separate the integral part of the number (to the left of the radix) from its fractional part (to the right of the radix). [desc] The radix point mark is usually a small dot, either placed on the baseline or halfway between the baseline and the top of the numerals. In base-10, the radix point is more commonly called the decimal point; radix point, however, is the more general term used for other bases. In many non-English speaking countries, a comma ',' is used instead of a period '.' as the radix point mark. + + + + + + + + + + Grid-Metre Presentation Type: A datatype representing a grid-metre position presentation based on the requirements of the Military Grid Reference System (MGRS) position reporting system. [desc] Grid squares are used as a means of identifying 100,000-metre x 100,000-metre spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from the southwest corner. The presentation consists of a single component string integrating all coordinate tuple values. + + + + + + Grid Zone Column: An identification of a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '01' to '60'. + + + + + Grid Zone Row: An identification of a 8 arc degree tall spatial region on the surface of the Earth. [desc] There are 19 bands of latitude each of 8 arc degrees in height, extending northward from the 80 arc degree parallel in the Southern Hemisphere; these bands are lettered northwards from A to W inclusive (omitting 'I' and 'O'). There is a final 20th band of 12 arc degrees in latitude extending from 72 to 84 arc degrees North that is lettered as 'X'. + + + + + + Grid Square Column: An identification of a 100,000 metre wide spatial region on the surface of the Earth with respect to an encompassing grid zone. [desc] There are up to eight such grid square columns in a grid zone. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3. + + + + + Grid Square Row: An identification of a 100,000 metre tall spatial region on the surface of the Earth with respect to an encompassing grid row. [desc] There are up to nine such grid square rows in a grid row. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3. + + + + + + Relative Location: The relative position of a square subregion with respect to an encompassing grid square. + + + + + + Decakilometre Offset: The relative position of a 10,000 by 10,000 metre subregion with respect to an encompassing grid square. + + + + + + Decakilometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in decakilometres (ten thousand metres) eastwards of the western boundary of an encompassing grid square column. + + + + + Decakilometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in decakilometres (ten thousand metres) northwards of the southern boundary of an encompassing grid square row. + + + + + + + + Kilometre Offset: The relative position of a 1,000 by 1,000 metre subregion with respect to an encompassing grid square. + + + + + + Kilometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in kilometres eastwards of the western boundary of an encompassing grid square column. + + + + + Kilometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in kilometres northwards of the southern boundary of an encompassing grid square row. + + + + + + + + Hectometre Offset: The relative position of a 100 by 100 metre subregion with respect to an encompassing grid square. + + + + + + Hectometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in hectometres (hundred metres) eastwards of the western boundary of an encompassing grid square column. + + + + + Hectometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in hectometres (hundred metres) northwards of the southern boundary of an encompassing grid square row. + + + + + + + + Decametre Offset: The relative position of a 10 by 10 metre subregion with respect to an encompassing grid square. + + + + + + Decametre Easting: The presentation value of a spatial position expressed as an integer-valued offset in decametres (ten metres) eastwards of the western boundary of an encompassing grid square column. + + + + + Decametre Northing: The presentation value of a spatial position expressed as an integer-valued offset in decametres (ten metres) northwards of the southern boundary of an encompassing grid square row. + + + + + + + + Metre Offset: The relative position of a 1 by 1 metre subregion with respect to an encompassing grid square. + + + + + + Metre Easting: The presentation value of a spatial position expressed as an integer-valued offset in metres eastwards of the western boundary of an encompassing grid square column. + + + + + Metre Northing: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid square row. + + + + + + + + + + + + + + Grid Square Column Type: A two-digit datatype identifying a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '01' to '60'. + + + + + + + + + + Grid Zone Row Type: A one-character datatype identifying a 8 arc degree tall spatial region on the surface of the Earth. [desc] There are 19 bands of latitude each of 8 arc degrees in height, extending northward from the 80 arc degree parallel in the Southern Hemisphere; these bands are lettered northwards from A to W inclusive (omitting 'I' and 'O'). There is a final 20th band of 12 arc degrees in latitude extending from 72 to 84 arc degrees North that is lettered as 'X'. + + + + + + + + + Grid Square Column Type: A one-character datatype identifying a 100,000 kilometre wide spatial region on the surface of the Earth with respect to an encompassing grid zone. [desc] There are up to eight such grid square columns in a grid zone. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3. + + + + + + + + + Grid Square Row Type: A one-character datatype identifying a 100,000 kilometre tall spatial region on the surface of the Earth with respect to an encompassing grid row. [desc] There are up to nine such grid square rows in a grid row. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3. + + + + + + + + + + Zone-Metre Presentation Type: A datatype representing a zone-metre position presentation based on the requirements of the universal grid position reporting systems based on Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS) map projections. [desc] Zones and hemispheres are used as a means of identifying spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from a reference location. The reference location is assigned a positive offset-value to ensure that all legal offset values in a zone are positive. The presentation consists of a single component string integrating all coordinate tuple values. + + + + + + Grid Zone Column: An identification of a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '00' to '60'. + + + + + Geodetic Latitude Hemisphere: The hemispheric location of a spatial position, as a category. [desc] One of: north or south. + + + + + + Metre Easting: The presentation value of a spatial position expressed as an integer-valued offset in metres eastwards of the western boundary of an encompassing grid zone. + + + + + + + + + Metre Northing: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid zone hemisphere. [desc] The northing value is based on a "false northing" concept where value in the Northern Hemisphere start with zero located at the Equator and rise towards the North Pole, whereas values in the Southern hemisphere start at 10,000,000 at the Equator and fall towards the South Pole. + + + + + Metre Northing Extended: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid zone hemisphere. [desc] The northing value is based on a "false northing" concept where values in the Northern Hemisphere start with zero located at the Equator and rise towards the North Pole, whereas values in the Southern hemisphere start at 10,000,000 at the Equator and fall towards the South Pole. The extension allows for the representation of values in the Northern Hemisphere (up to 1,000,000 metres) with respect to the Southern Hemisphere. + + + + + + + + + + + Decamega Type: A datatype consisting of seven digits in the range from "0000000" to "9999999" that may be used to represent an unsigned decimal value. + + + + + + + + + + Hecto-mega ExtendedType: A datatype consisting of eight digits in the range from "00000000" to "11000000" that may be used to represent an unsigned decimal value. + + + + + + + + + + + Quadrangle Presentation Type: A datatype representing a quadrangle position presentation based on the requirements of the GEOREF area-designation system. [desc] Quadrangles are used as a means of identifying 1 arc degree x 1 arc degree spatial regions which are then subdivided in accordance with sexagesimal notation based on 60 arc minutes comprising an arc degree. The presentation consists of a single component string integrating all coordinate tuple values. + + + + + + Geographic Quadrangle: An identification of a 15 arc degree by 15 arc degree spatial region on the surface of the Earth. [desc] There are 24 longitudinal zones each of 15 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are lettered eastwards from A to Z inclusive (omitting the letters "I" and "O"). There are 12 bands of latitude each of 15 arc degrees in height, extending northward from the South Pole; these bands are lettered northwards from A to M inclusive (omitting I). Each member of the resulting set of 288 15 arc minute quadrangles is identified by two letters. The first letter is that of the 15 arc degree longitude zone and the second letter that of the 15 arc degree latitude band; for example: “MK”. + + + + + Geographic Zone: An identification of a 1 arc degree by 1 arc degree spatial region on the surface of the Earth with respect to an encompassing 15 arc degree by 15 arc degree geographic quadrangle. [desc] Each geographic quadrangle is sub-divided into 15 one arc degree zones of longitude, lettered eastward from the western meridian of the quadrangle; these 1 arc degree zones are lettered from A to Q inclusive (omitting the letters “I” and “O”). Each geographic quadrangle is also subdivided into 15 one arc degree bands of latitude northward from the southern parallel of the quadrangle; these 1 arc degree bands are lettered northwards from A to Q inclusive (omitting the letters “I” and “O”). A nested 1 arc degree by 1 arc degree quadrangle may thus be identified by four letters; the third letter is that of the 1 arc degree longitude zone and the fourth letter that of the 1 arc degree latitude band; for example: “MKPG”. + + + + + + Subzone Minute: The geodetic position of a 1 arc minute by 1 arc minute subzone region with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth. + + + + + + Easting Minute: A two-digit identification of a 1 arc minute zone of longitude with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59". + + + + + Northing Minute: A two-digit identification of a 1 arc minute band of latitude with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth. [desc] Bands are numbered northwards from the southern parallel of the encompassing region, starting with "00" and ending with "59". + + + + + + + + + Subzone Fraction: An identification of a higher resolution tenth or hundredth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth. + + + + + + Deciminute: A pair of one-digit identifiers of a higher resolution tenth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth. + + + + + + Easting Deciminute: A one-digit identification of a higher resolution tenth of an arc minute zone of longitude with respect to an associated specified arc minute zone. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "0" to "9". + + + + + Northing Deciminute: A one-digit identification of a higher resolution tenth of an arc minute band of latitude with respect to an associated specified arc minute band. [desc] Bands are numbered northward from the southern parallel of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "0" to "9". + + + + + + + + Centiminute: A pair of two-digit identifiers of a higher resolution hundredth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth. + + + + + + Easting Centiminute: A two-digit identification of a higher resolution hundredth of an arc minute zone of longitude with respect to an associated specified arc minute zone. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "00" to "99". + + + + + Northing Centiminute: A two-digit identification of a higher resolution hundredth of an arc minute band of latitude with respect to an associated specified arc minute band. [desc] Bands are numbered northward from the southern parallel of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "00" to "99". + + + + + + + + + + + + + + Geographic Quadrangle Type: An identification of one of 288 15 arc degree by 15 arc degree spatial regions on the surface of the Earth as a two-character value; the first character is that of the 15 arc degree longitude zone and the second character that of the 15 arc degree latitude band (for example: “MK”). [desc] There are 24 longitudinal zones each of 15 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are lettered eastwards from A to Z inclusive (omitting the letters "I" and "O"). There are 12 bands of latitude each of 15 arc degrees in height, extending northward from the South Pole; these bands are lettered northwards from A to M inclusive (omitting I). + + + + + + + + + Geographic Zone Type: An identification of one of 255 1 arc degree by 1 arc degree spatial regions on the surface of the Earth with respect to an encompassing 15 arc degree by 15 arc degree geographic quadrangle, as a two-character value (for example: “PG”). [desc] Each geographic quadrangle is sub-divided into 15 one arc degree zones of longitude, lettered eastward from the western meridian of the quadrangle; these 1 arc degree zones are lettered from A to Q inclusive (omitting the letters “I” and “O”). Each geographic quadrangle is also subdivided into 15 one arc degree bands of latitude northward from the southern parallel of the quadrangle; these 1 arc degree bands are lettered northwards from A to Q inclusive (omitting the letters “I” and “O”). A nested 1 arc degree by 1 arc degree quadrangle may thus be identified by four letters; the third letter is that of the 1 arc degree longitude zone and the fourth letter that of the 1 arc degree latitude band; for example: “MKPG”. + + + + + + + + + + Numeric Bit Presentation Type: A datatype representing a numeric-bit position presentation based on the requirements of the Variable Message Format (VMF). [desc] VMF encodes values of geodetic latitude and longitude as multi-bit fields whose bit configurations represent actual numeric values. The least significant bit value and range are described in the applicable message description. A negative number is coded and transmitted with twos complement coding and identified by the number one in the most significant bit of the data field. + + + + + + Encoded 20-bit: A geodetic position based on 20 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/524,287 arc degrees. + + + + + + + + + + + Encoded 21-bit: A geodetic position based on 21 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/1,048,575 arc degrees. + + + + + + + + + + + Encoded 23-bit: A geodetic position based on 23 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/4,194,303 arc degrees. + + + + + + + + + + + Encoded 25-bit: A geodetic position based on 25 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/16,777,215 arc degrees. + + + + + + + + + + + Encoded 31-bit: A geodetic position based on 31 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/1,073,741,823 arc degrees. + + + + + + + + + + + + + + + Latitude 20-bit Type: A numeric datatype consisting of 20 bits in the range from 0 to 1,048,575 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/524,287 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 524,288. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/524,287 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/524,287 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Latitude 21-bit Type: A numeric datatype consisting of 21 bits in the range from 0 to 2,097,151 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/1,048,575 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,048,576. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/1,048,575 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/1,048,575 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Latitude 23-bit Type: A numeric datatype consisting of 23 bits in the range from 0 to 8,388,607 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/4,194,303 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 4,194,304. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/4,194,303 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/4,194,303 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Latitude 25-bit Type: A numeric datatype consisting of 25 bits in the range from 0 to 33,554,431 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/16,777,215 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 16,777,216. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/16,777,215 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/16,777,215 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Latitude 31-bit Type: A numeric datatype consisting of 31 bits in the range from 0 to 2,147,483,647 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/1,073,741,823 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,073,741,824. + + + + + + + Equator: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +90/1,073,741,823 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole). + + + + + + + + + -90 arc degrees (the South Pole) through -90/1,073,741,823 arc degrees (the minimum resolvable distance south of the Equator). + + + + + + + + + + + + Longitude 21-bit Type: A numeric datatype consisting of 21 bits in the range from 0 to 2,097,151 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/1,048,575 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,048,576. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/1,048,575 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/1,048,575 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Longitude 22-bit Type: A numeric datatype consisting of 22 bits in the range from 0 to 4,194,303 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/2,097,151 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 2,097,152. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/2,097,151 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/2,097,151 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Longitude 24-bit Type: A numeric datatype consisting of 24 bits in the range from 0 to 16,777,215 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/8,388,607 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 8,388,608. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/8,388,607 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/8,388,607 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Longitude 26-bit Type: A numeric datatype consisting of 26 bits in the range from 0 to 67,108,863 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/33,554,431 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 33,554,432. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/33,554,431 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/33,554,431 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Longitude 32-bit Type: A numeric datatype consisting of 32 bits in the range from 0 to 4,294,967,295 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/2,147,483,647 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 2,147,483,648. Note that this datatype is encoded as an long rather than an int. + + + + + + + Prime Meridian: 0 arc degrees. + + + + + No Statement: The value is not specified. + + + + + + + +180/2,147,483,647 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian). + + + + + + + + + -180 arc degrees (the anti-meridian) through -180/2,147,483,647 arc degrees (the minimum resolvable distance west of the Prime Meridian). + + + + + + + + + + + + Horizontal Resolution Enumeration Type: A coded domain value denoting a horizontal resolution category. [desc] The horizontal resolution of a spatial position in its Coordinate Reference System (CRS), as a category. + + + + + Geodetic Arc Degree: The spatial position is horizontally resolved to the nearest arc degree. [desc] An arc degree is a maximum of 111,694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Decidegree: The spatial position is horizontally resolved to the nearest tenth of an arc degree. [desc] A tenth of an arc degree is a maximum of 11,169.4 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Centidegree: The spatial position is horizontally resolved to the nearest hundredth of an arc degree. [desc] A hundredth of an arc degree is a maximum of 1,116.94 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Millidegree: The spatial position is horizontally resolved to the nearest thousandth of an arc degree. [desc] A thousandth of an arc degree is a maximum of 111.694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Decimillidegree: The spatial position is horizontally resolved to the nearest ten-thousandth of an arc degree. [desc] A ten-thousandth of an arc degree is a maximum of 11.1694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Centimillidegree: The spatial position is horizontally resolved to the nearest hundred-thousandth of an arc degree. [desc] A hundred-thousandth of an arc degree is a maximum of 1.11694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Microdegree: The spatial position is horizontally resolved to the nearest millionth of an arc degree. [desc] A millionth of an arc degree is a maximum of 0.111694 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Minute: The spatial position is horizontally resolved to the nearest arc minute. [desc] An arc minute is a maximum of 1,855.3 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Deciminute: The spatial position is horizontally resolved to the nearest tenth of an arc minute. [desc] A tenth of an arc minute is a maximum of 185.53 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Centiminute: The spatial position is horizontally resolved to the nearest hundredth of an arc minute. [desc] A hundredth of an arc minute is a maximum of 18.553 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Milliminute: The spatial position is horizontally resolved to the nearest thousandth of an arc minute. [desc] A thousandth of an arc minute is a maximum of 1.8553 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Decimilliminute: The spatial position is horizontally resolved to the nearest ten-thousandth of an arc minute. [desc] A ten-thousandth of an arc minute is a maximum of 0.18553 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Second: The spatial position is horizontally resolved to the nearest arc second. [desc] An arc second is a maximum of 30.92 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Decisecond: The spatial position is horizontally resolved to the nearest tenth of an arc second. [desc] A tenth of an arc second is a maximum of 3.092 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Centisecond: The spatial position is horizontally resolved to the nearest hundredth of an arc second. [desc] A hundredth of an arc second is a maximum of 0.3092 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Millisecond: The spatial position is horizontally resolved to the nearest thousandth of an arc second. [desc] A thousandth of an arc second is a maximum of 0.03092 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 20-bit: The spatial position is horizontally resolved to the nearest 90/524,287 arc degree (approximately 0.618 arc seconds). [desc] This corresponds to a maximum of 19.1 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 21-bit: The spatial position is horizontally resolved to the nearest 90/1,048,575 arc degree (approximately 0.309 arc seconds). [desc] This corresponds to a maximum of 9.55 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 23-bit: The spatial position is horizontally resolved to the nearest 90/4,194,303 arc degree (approximately 0.0772 arc seconds). [desc] This corresponds to a maximum of 2.39 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 25-bit: The spatial position is horizontally resolved to the nearest 90/16,777,215 arc degree (approximately 0.0193 arc seconds). [desc] This corresponds to a maximum of 0.597 metres in length on the WGS84 ellipsoid. + + + + + Geodetic Arc Degree 31-bit: The spatial position is horizontally resolved to the nearest 90/1,073,741,823 arc degree (approximately 0.000302 arc seconds). [desc] This corresponds to a maximum of 0.00933 metres in length on the WGS84 ellipsoid. + + + + + Hectokilometre: The spatial position is horizontally resolved to the nearest hundred kilometres. + + + + + Decakilometre: The spatial position is horizontally resolved to the nearest ten kilometres. + + + + + Kilometre: The spatial position is horizontally resolved to the nearest kilometre. + + + + + Hectometre: The spatial position is horizontally resolved to the nearest hundred metres. + + + + + Decametre: The spatial position is horizontally resolved to the nearest ten metres. + + + + + Metre: The spatial position is horizontally resolved to the nearest metre. + + + + + + + Horizontal Resolution Type: A flexible coded domain value denoting a horizontal resolution category. + + + + + + Horizontal Resolution Enumeration Code List: A remote resource that is specified by a URI and in which the Horizontal Resolution Enumeration code list domain is defined. + + + + + Horizontal Resolution Enumeration Code List Value: A coded Horizontal Resolution Enumeration value that is specified by a URI fragment, that encodes the concept intended (denoted) in the XML instance document, and which is a member of Horizontal Resolution Enumeration (remote resource code list) domain. + + + + + + + + Vertical Resolution Enumeration Type: A coded domain value denoting a vertical resolution category. [desc] The vertical resolution of a spatial position in its Coordinate Reference System (CRS), as a category. + + + + + Kilometre: The spatial position is vertically resolved to the nearest kilometre. + + + + + Hectometre: The spatial position is vertically resolved to the nearest hundred metres. + + + + + Decametre: The spatial position is vertically resolved to the nearest ten metres. + + + + + Metre: The spatial position is vertically resolved to the nearest metre. + + + + + Metre: The spatial position is vertically resolved to the nearest tenth of a metre. + + + + + Metre: The spatial position is vertically resolved to the nearest hundredth of a metre. + + + + + Metre: The spatial position is vertically resolved to the nearest thousandth of a metre. + + + + + Nautical Mile: The spatial position is vertically resolved to the nearest nautical mile. [desc] A nautical mile is exactly 1852 metres in length. + + + + + Statute Mile: The spatial position is vertically resolved to the nearest statute mile. [desc] A statute mile is exactly 1609.344 metres in length. + + + + + Kiloyard: The spatial position is vertically resolved to the nearest kiloyard. [desc] A kiloyard is exactly 914.4 metres in length. + + + + + Kilofoot: The spatial position is vertically resolved to the nearest kilofoot. [desc] A kilofoot is exactly 304.8 metres in length. + + + + + Hectofoot: The spatial position is vertically resolved to the nearest hectofoot. [desc] A hectofoot is exactly 30.48 metres in length. + + + + + Quarter Hectofoot: The spatial position is vertically resolved to the nearest 25 feet (quarter hectofeet). [desc] A hectofoot is exactly 7.62 metres in length. + + + + + Decafoot: The spatial position is vertically resolved to the nearest decafoot. [desc] A decafoot is exactly 3.048 metres in length. + + + + + Yard: The spatial position is vertically resolved to the nearest yard. [desc] A yard is exactly 0.9144 metres in length. + + + + + Foot: The spatial position is vertically resolved to the nearest foot. [desc] A foot is exactly 0.3048 metres in length. + + + + + Decifoot: The spatial position is vertically resolved to the nearest decifoot. [desc] A decifoot is exactly 0.03048 metres in length. + + + + + Inch: The spatial position is vertically resolved to the nearest inch. [desc] An inch is exactly 0.0254 metres in length. + + + + + Metre 22-bit: The spatial position is vertically resolved to the nearest 10,000/1,280,000 (0.0078125) metres. + + + + + Flight Level: The spatial position is vertically resolved to the nearest Flight Level (FL). [desc] A Flight Level is a surface of constant atmospheric pressure that is related to a specific world-wide fixed pressure datum (1013.25 hectoPascal) and is separated from other such surfaces by specific pressure intervals. It is conventionally given a numerical value to the nearest 1000 feet in units of 100 feet in accordance with the structure of the International Civil Aviation Organization (ICAO) Standard Atmosphere. For example, the 500-hPa level is written as “FL 180” where the corresponding ICAO standard height is 18,289 feet (600.0328 metres). A Flight Level is nominally equivalent to a hectofoot (which is exactly 30.48 metres in length). + + + + + + + + Vertical Resolution Type: A flexible coded domain value denoting a vertical resolution category. + + + + + Vertical Resolution Enumeration Code List: A remote resource that is specified by a URI and in which the Vertical Resolution Enumeration code list domain is defined. + + + + + Vertical Resolution Enumeration Code List Value: A coded Vertical Resolution Enumeration value that is specified by a URI fragment, that encodes the concept intended (denoted) in the XML instance document, and which is a member of Vertical Resolution Enumeration (remote resource code list) domain. + + + + + + + + + Altitude Measure Type: A datatype representing the distance of a point from a chosen reference surface measured upward either along the direction of gravity or along a line perpendicular to that reference surface with positive values being above the reference surface. [desc] When understood as an "altitude", conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)) along the direction of gravity. When understood as a "height", conventionally measured from an ellipsoid as "Height Above Ellipsoid" (HAE) along a line prependicular to the reference surface. + + + + + + Vertical Datum: A reference surface with respect to which altitudes are specified. [desc] The value of altitude (or sometimes equivalently, height) is determined either along the direction of gravity or along a line perpendicular to the reference surface with positive values being above the reference surface. + + + + + Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying vertical measure, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous. + + + + + + + + + Depth Measure Type: A datatype representing the distance of a point from a chosen reference surface measured downward along the direction of gravity with positive values being below the reference surface. [desc] Conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)); may also be measured from a Todal Datum or River Datum. + + + + + + Vertical Datum: A reference surface with respect to which depths are specified. [desc] The value of depth is determined downward along the direction of gravity with positive values being below the reference surface. + + + + + Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying vertical measure, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous. + + + + + + + + + + Vertical DatumType: A coded domain value denoting a vertical datum. [desc] A reference surface with respect to which altitudes and/or depths are specified. The value of altitude (or sometimes equivalently, height) and depth is determined along the direction of the reference surface normal. + + + + + WGS 84 EGM96 Geoid: The geopotential surface defined by the World Geodetic System (WGS) 1984 EGM96 Earth Gravity Model that is closely associated with the mean ocean surface. + + + + + WGS 84 EGM08 Geoid: The geopotential surface defined by the World Geodetic System (WGS) 1984 EGM08 Earth Gravity Model that is closely associated with the mean ocean surface. + + + + + Mean Sea Level (MSL): A continuous surface over the oceans (or its hypothetical extension under the land masses) defined by the mean of sea level surfaces approximated and observed over 19 years. + + + + + North American Vertical Datum (NAVD) 1988: A fixed reference for elevations derived from a general adjustment of the first-order terrestrial levelling nets of the United States, Canada, and Mexico. [desc] In the adjustment, only the height of the primary tidal bench mark, referenced to the International Great Lakes Datum of 1985 local mean sea level height value, at Pointe-au-Pere, Quebec, on the Gulf of St. Lawrence was held fixed, thus providing minimum constraint. + + + + + National Geodetic Vertical Datum (NGVD) 1929: A fixed reference for elevations derived from a general adjustment in 1929 of the first-order leveling nets of both the United States and Canada. [desc] In the adjustment, mean sea level was held fixed as observed at 21 tide stations in the United States and 5 in Canada. + + + + + Ground Level: A continuous surface over dry land and non-tidal waters (for example: lakes). [desc] In the case of non-tidal waters it is necessary to specify hydrologic conditions in order to ensure a precise reference surface specification. Over extensive areas it is often defined by a digital elevation model (for example: a matrix of elevation values or a Triangulated Irregular Network (TIN)). Over tidal waters (for example: oceans) it is usually considered to be extended to cover the remainder of the world based on a Mean Sea Level (MSL) surface. + + + + + Water Level: A locally observed level of the water surface. [desc] In the case of non-tidal waters (for example: lakes or rivers) it is necessary to specify hydrologic conditions in order to ensure a precise reference surface specification. Over tidal waters (for example: oceans) it is necessary to specify tidal conditions in order to ensure a precise reference surface specification. + + + + + Approximate Lowest Astronomical Tide: An approximate level, usually within 0.3 metres from that of lowest astronomical tide. + + + + + Approximate Mean Low Water: An approximate level, usually within 0.3 metres from that of mean low water. + + + + + Approximate Mean Low Water Springs: An approximate level, usually within 0.3 metres from that of mean low water springs. + + + + + Approximate Mean Lower Low Water: An approximate level, usually within 0.3 metres from that of mean lower low water. + + + + + Approximate Mean Sea Level: An approximate level, usually within 0.3 metres from that of mean sea level. + + + + + Equinoctial Spring Low Water: The level of low water springs near the time of an equinox. + + + + + High Water: The highest level reached at a location by the water surface in one tidal cycle. [desc] When used on inland waters it is generally defined as a level that the daily mean water level exceeds less than 5 percent of the time. + + + + + High Water Springs: An arbitrary level, approximating that of mean high water springs. + + + + + Higher High Water: The highest of the high waters (or single high water) of any specified tidal day due to the declination A1 effects of the moon and sun. + + + + + Higher High Water Large Tide: The average of the highest high waters, one from each of 19 years of observations. + + + + + Highest Astronomical Tide: The highest tidal level, which can be predicted to occur under average meteorological conditions and under any combination of astronomical conditions. + + + + + Highest High Water: The highest water level observed at a location. + + + + + International Great Lakes Datum 1985: A vertical reference system with its zero based on the mean water level at Rimouski/Pointe-au-Père, Quebec, over the period 1970 to 1988. + + + + + Indian Spring High Water: A tidal surface datum approximating the level of the mean of the higher high water at spring tides. [desc] This tidal datum approximates the highest water level observed at a location and is usually above that of the higher high water at spring tides. + + + + + Indian Spring Low Water: A tidal surface datum approximating the level of the mean of the lower low water at spring tides. [desc] This tidal datum approximates the lowest water level observed at a location and is usually below that of the lower low water at spring tides. + + + + + Low Water: An approximation of mean low water adopted as the reference level for a limited region, irrespective of better determinations later. [desc] Used mostly in harbour and river engineering. Used in inland waters. It is generally defined as a level which the daily mean water level would fall below less than 5 percent of the time and by no more than 0.2 metres during the navigation season. A single level surface is usually chosen as the low water datum for a whole lake. On a river, low water datum is a sloping surface, which approximates the surface of the river at a low state. + + + + + Low Water Springs: A level approximating that of mean low water springs. + + + + + Lower Low Water: The lowest of the low waters (or single low water) of any specified tidal day due to the declination A1 effects of the moon and sun. + + + + + Lower Low Water Large Tide: The average of the lowest low waters, one from each of 19 years of observations. + + + + + Lowest Astronomical Tide: The lowest tide level that can be predicted to occur under average meteorological conditions and under any combination of astronomical conditions. + + + + + Lowest Low Water: An arbitrary level conforming to the lowest tide observed at a location, or somewhat lower. + + + + + Lowest Low Water Springs: An arbitrary level conforming to the lowest water level observed at a location at spring tides during a period shorter than 19 years. + + + + + Mean High Water: The average height of all high waters at a location over a 19-year period. + + + + + Mean High Water Neaps: The average height of the high waters of the neap tide. + + + + + Mean High Water Springs: The average height of the high waters of spring tides. + + + + + Mean Higher High Water: The average height of higher high waters at a location over a 19-year period. + + + + + Mean Higher High Water Springs: The average height of higher high water at spring tides at a location. + + + + + Mean Low Water: The average height of all low waters at a location over a 19-year period. + + + + + Mean Low Water Neaps: The average height of the low waters of the neap tide. + + + + + Mean Low Water Springs: The average height of the low waters of spring tides. + + + + + Mean Lower Low Water: The average height of the lower low waters at a location over a 19-year period. + + + + + Mean Lower Low Water Springs: The average height of lower low water at spring tides at a location. + + + + + Mean Tide Level: The arithmetic mean of mean high water and mean low water. + + + + + Mean Water Level: The average of all hourly water levels over the available period of record. + + + + + Neap Tide: A tide of decreased range (or tidal currents of decreased speed) occurring semi-monthly as the result of the moon being in quadrature. [desc] The neap range of the tide is the average range occurring at the time of neap tides and is most conveniently computed from the harmonic constants. It is smaller than the mean range where the type of tide is either semi-diurnal or mixed and is of no practical significance where the type of tide is predominantly diurnal. + + + + + Nearly Highest High Water: An arbitrary level approximating the highest water level observed at a location, usually equivalent to the high water springs. + + + + + Nearly Lowest Low Water: A level approximating the lowest water level observed at a location, usually equivalent to Indian spring low water. + + + + + Spring Tide: A tide of increased range (or tidal water currents of increased speed) occurring semi-monthly as the result of the moon being new or full. [desc] The spring range of tide is the average range occurring at the time of spring tides and is most conveniently computed from the harmonic constants. It is larger than the mean range where the type of tide is either semi-diurnal or mixed, and is of no practical significance where the type of tide is predominantly diurnal. + + + + + WGS 84 Ellipsoid: The oblate ellipsoidal figure of the Earth defined by the World Geodetic System (WGS) 1984. + + + + + + + + Direction Measure Type: A datatype representing the angular distance of a direction from a chosen reference direction. [desc] The measured and reference directions are located in the horizontal plane, and the value of the angle is positive in a clockwise direction as viewed from “above” the horizontal plane. + + + + + + + + + + Direction Datum Type: The type of reference direction as determined by the means by which it is established (e.g., by the direction of a geographic or magnetic pole of the Earth). + + + + + Geodetic: Referenced to the direction of the geographic North Pole. + + + + + Magnetic: Referenced to the direction of the magnetic North Pole. + + + + + Military Grid: Referenced to the direction of "north" in a military grid established by a suitable map-projection, for example Universal Transverse Mercator (UTM). + + + + + Relative; Referenced to a direction established by the context of use (for example: the heading of a vessel). + + + + + + + + Cardinal Direction Type: A datatype representing the angular direction with respect to a chosen reference direction establishing 16 generalized directions (for example: southeast) based on the compass rose. [desc] The angular and reference directions are located in the horizontal plane, and the interpretation of the direction is as viewed from "above" the horizontal plane. + + + + + + + + + + + Compass Direction Type: The 16 generalized directions (for example: southeast) based on the compass rose. + + + + + North: The geographic half-octant centered on the direction of north [desc] The half-octant extends from 348.75 (-11.25) arc degrees to 11.25 arc degrees. + + + + + North-northeast: The geographic half-octant centered on the direction of north-northeast. [desc] The half-octant extends from 11.25 arc degrees to 33.75 arc degrees. + + + + + Northeast: The geographic half-octant centered on the direction of northeast. [desc] The half-octant extends from 33.75 arc degrees to 56.25 arc degrees. + + + + + East-northeast: The geographic half-octant centered on the direction of east-northeast. [desc] The half-octant extends from 56.25 arc degrees to 78.75 arc degrees. + + + + + East: The geographic half-octant centered on direction of east. [desc] The half-octant extends from 78.75 arc degrees to 101.25 arc degrees. + + + + + East-southeast: The geographic half-octant centered on the direction of east-southeast. [desc] The half-octant extends from 101.25 arc degrees to 123.75 arc degrees. + + + + + Southeast: The geographic half-octant centered on the direction of southeast. [desc] The half-octant extends from 123.75 arc degrees to 146.25 arc degrees. + + + + + South-southeast: The geographic half-octant centered on the direction of south-southeast. [desc] The half-octant extends from 146.25 arc degrees to 168.75 arc degrees. + + + + + South: The geographic half-octant centered on the direction of south. [desc] The half-octant extends from 168.75 arc degrees to 191.25 arc degrees. + + + + + South-southwest: The geographic half-octant centered on the direction of south-southwest [desc] The half-octant extends from 191.25 arc degrees to 213.75 arc degrees. + + + + + Southwest: The geographic half-octant centered on the direction of southwest [desc] The half-octant extends from 213.75 arc degrees to 236.25 arc degrees. + + + + + West-southwest: The geographic half-octant centered on the direction of west-southwest [desc] The half-octant extends from 236.25 arc degrees to 258.75 arc degrees. + + + + + West: The geographic half-octant centered on the direction of west. [desc] The half-octant extends from 258.75 arc degrees to 281.25 arc degrees. + + + + + West-northwest: The geographic half-octant centered on the direction of west-northwest. [desc] The half-octant extends from 281.25 arc degrees to 303.75 arc degrees. + + + + + Northwest: The geographic half-octant centered on the direction of northwest. [desc] The half-octant extends from 303.75 arc degrees to 326.25 arc degrees. + + + + + North-northwest: The geographic half-octant centered on the direction of north-northwest. [desc] The half-octant extends from 326.25 arc degrees to 348.75 arc degrees. + + + + + No Information: There is no information specified regarding the attribute value. [desc] Depending on the nature and quality of available information, the state of the data collection/update process, and other conditions, it may not be possible to populate a value due to lack of knowledge. + + + + + + + + + + Acceleration Type: A limited extension of the GML MeasureType that is restricted to the "acceleration" category of mutually comparable physical quantities. + + + + + + + + + + Amount of Substance Type: A limited extension of the GML MeasureType that is restricted to the "amount of substance" category of mutually comparable physical quantities. + + + + + + + + + + Area Type: A limited extension of the GML MeasureType that is restricted to the "area" category of mutually comparable physical quantities. + + + + + + + + + + Capacitance Type: A limited extension of the GML MeasureType that is restricted to the "capacitance" category of mutually comparable physical quantities. + + + + + + + + + + Electric Charge Type: A limited extension of the GML MeasureType that is restricted to the "electric charge" category of mutually comparable physical quantities. + + + + + + + + + + Electric Conductance Type: A limited extension of the GML MeasureType that is restricted to the "electric conductance" category of mutually comparable physical quantities. + + + + + + + + + + Electric Current Type: A limited extension of the GML MeasureType that is restricted to the "electric current" category of mutually comparable physical quantities. + + + + + + + + + + Electric Resistance Type: A limited extension of the GML MeasureType that is restricted to the "electric resistance" category of mutually comparable physical quantities. + + + + + + + + + + Electromotive Force Type: A limited extension of the GML MeasureType that is restricted to the "electromotive force" category of mutually comparable physical quantities. + + + + + + + + + + Energy Type: A limited extension of the GML MeasureType that is restricted to the "energy" category of mutually comparable physical quantities. + + + + + + + + + + Force Type: A limited extension of the GML MeasureType that is restricted to the "force" category of mutually comparable physical quantities. + + + + + + + + + + Frequency Type: A limited extension of the GML MeasureType that is restricted to the "frequency" category of mutually comparable physical quantities. + + + + + + + + + + Geopotential Energy Length Type: A limited extension of the GML MeasureType that is restricted to the "geopotential energy length" category of mutually comparable physical quantities. + + + + + + + + + + Illuminance Type: A limited extension of the GML MeasureType that is restricted to the "illuminance" category of mutually comparable physical quantities. + + + + + + + + + + Inductance Type: A limited extension of the GML MeasureType that is restricted to the "inductance" category of mutually comparable physical quantities. + + + + + + + + + + Irradiance Type: A limited extension of the GML MeasureType that is restricted to the "irradiance" category of mutually comparable physical quantities. + + + + + + + + + + Length Type: A limited extension of the GML MeasureType that is restricted to the "length" category of mutually comparable physical quantities. + + + + + + + + + + Linear Density Type: A limited extension of the GML MeasureType that is restricted to the "linear density" category of mutually comparable physical quantities. + + + + + + + + + + Linear Energy Transfer Type: A limited extension of the GML MeasureType that is restricted to the "linear energy transfer" category of mutually comparable physical quantities. + + + + + + + + + + Luminous Flux Type: A limited extension of the GML MeasureType that is restricted to the "luminous flux" category of mutually comparable physical quantities. + + + + + + + + + + Luminous Intensity Type: A limited extension of the GML MeasureType that is restricted to the "luminous intensity" category of mutually comparable physical quantities. + + + + + + + + + + Magnetic Flux Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux" category of mutually comparable physical quantities. + + + + + + + + + + Magnetic Flux Density Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux density" category of mutually comparable physical quantities. + + + + + + + + + + Magnetic Flux Density Gradient Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux density gradient" category of mutually comparable physical quantities. + + + + + + + + + + Mass Type: A limited extension of the GML MeasureType that is restricted to the "mass" category of mutually comparable physical quantities. + + + + + + + + + + Mass Density Type: A limited extension of the GML MeasureType that is restricted to the "mass density" category of mutually comparable physical quantities. + + + + + + + + + + Mass Fraction Type: A limited extension of the GML MeasureType that is restricted to the "mass fraction" category of mutually comparable physical quantities. + + + + + + + + + + Mass Rate Type: A limited extension of the GML MeasureType that is restricted to the "mass rate" category of mutually comparable physical quantities. + + + + + + + + + + Noncomparable Unit Type: A limited extension of the GML MeasureType that is restricted to the "noncomparable" category of physical quantities. + + + + + + + + + + Plane Angle Type: A limited extension of the GML MeasureType that is restricted to the "plane angle" category of mutually comparable physical quantities. + + + + + + + + + + Power Type: A limited extension of the GML MeasureType that is restricted to the "power" category of mutually comparable physical quantities. + + + + + + + + + + Power Level Difference Type: A limited extension of the GML MeasureType that is restricted to the "power level difference" category of mutually comparable physical quantities. + + + + + + + + + + Power Level Difference Length Gradient Type: A limited extension of the GML MeasureType that is restricted to the "power level difference length" category of mutually comparable physical quantities. + + + + + + + + + + Pressure Type: A limited extension of the GML MeasureType that is restricted to the "pressure" category of mutually comparable physical quantities. + + + + + + + + + + Pure Number Type: A limited extension of the GML MeasureType that is restricted to the "pure number" category of mutually comparable physical quantities. + + + + + + + + + + Radiation Absorbed Dose Type: A limited extension of the GML MeasureType that is restricted to the "radiation absorbed dose" category of mutually comparable physical quantities. + + + + + + + + + + Radiation Dose Equivalent Type: A limited extension of the GML MeasureType that is restricted to the "radiation dose equivalent" category of mutually comparable physical quantities. + + + + + + + + + + Radionuclide Activity Type: A limited extension of the GML MeasureType that is restricted to the "radionuclide activity" category of mutually comparable physical quantities. + + + + + + + + + + Rate Type: A limited extension of the GML MeasureType that is restricted to the "rate" category of mutually comparable physical quantities. + + + + + + + + + + Reciprocal Area Type: A limited extension of the GML MeasureType that is restricted to the "reciprocal area" category of mutually comparable physical quantities. + + + + + + + + + + Reciprocal Time Type: A limited extension of the GML MeasureType that is restricted to the "reciprocal time" category of mutually comparable physical quantities. + + + + + + + + + + Solid Angle Type: A limited extension of the GML MeasureType that is restricted to the "solid angle" category of mutually comparable physical quantities. + + + + + + + + + + Sound Speed Ratio Type: A limited extension of the GML MeasureType that is restricted to the "sound speed ratio" category of mutually comparable physical quantities. + + + + + + + + + + + Speed Type: A limited extension of the GML MeasureType that is restricted to the "speed" category of mutually comparable physical quantities. + + + + + + + + + + Surface Mass Density Rate Type: A limited extension of the GML MeasureType that is restricted to the "surface mass density" category of mutually comparable physical quantities. + + + + + + + + + + Thermodynamic Temperature Type: A limited extension of the GML MeasureType that is restricted to the "thermodynamic temperature" category of mutually comparable physical quantities. + + + + + + + + + + Time Type: A limited extension of the GML MeasureType that is restricted to the "time" category of mutually comparable physical quantities. + + + + + + + + + + Volume Type: A limited extension of the GML MeasureType that is restricted to the "volume" category of mutually comparable physical quantities. + + + + + + + + + + Volume Flow Rate Type: A limited extension of the GML MeasureType that is restricted to the "volume flow rate" category of mutually comparable physical quantities. + + + + + + + + + + Volume Fraction Type: A limited extension of the GML MeasureType that is restricted to the "volume fraction" category of mutually comparable physical quantities. + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi-ext.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi-ext.xsd new file mode 100644 index 0000000000..cc7d4541c9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi-ext.xsd @@ -0,0 +1,134 @@ + + + + + + + + + + + + TSPI-conformant registered extensions that specify additional representations for spatial position, geographic location, and/or physical address. It is populated with initial high-value extensions, but is dynamically maintained on the MDR. Its use is conditional on the requirements of a given system/application and its accompanying business requirements. + + + + + + + + Point: A point as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but limited to the WGS84E_3D coordinate reference system and then extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + + + + + + Point Type: A restricted point type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but limited to the WGS84E_3D coordinate reference system and then extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + .... + + + + + + + A property of the location instance. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi.xsd new file mode 100644 index 0000000000..f15a1e1d93 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/Schema/tspi/2.0.0/tspi.xsd @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + XML elements and non-core types with less strict reuse rules than ‘tspi-core’; it imports the schemas of the ‘tspi-core’and ‘tspi-ext’ namespaces. + + + + + + A place ("an identifiable part of any space") that is identified using geographic identifiers (e.g., a name). A spatial reference system using geographic identifiers is established that relates locations to positions. Gazetteers are then used to establish directories of (geographically) identified locations along with their corresponding positions. + + + + + A place ("an identifiable part of any space") that is identified using (physical) addresses (e.g., postal address). A systematic mapping may be established based on the structure of the addressing scheme that allows for geocoding, the process of converting addresses (e.g., "1600 Amphitheatre Parkway, Mountain View, CA") into positions (e.g., {37.423021, -122.083739}, a geodetic latitude/longitude coordinate-pair). "Virtual" addresses (e.g., in cyberspace), or virtual world identifiers, might be specified using Uniform Resource Identifiers (URI), however they are outside of the scope of this TSPI schema. + + + + + + + + + Point: A point as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + Line String: A line string as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A line string is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate tuples, with linear interpolation between them. + + + + + + + Circle: A circle as profiled from GML 3.3 (OGC 10-129r1) SimpleCircleByCenterPoint for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the center point coordinate tuple as well as optional specification of one or more character-oriented presentations of the center point coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle is an arc by center point with identical start and end angles to form a full circle. This representation can be used only in 2D. + + + + + + + Elliptical Surface: A surface that is bounded by an ellipse, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of an ellipse and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D. + + + + + + + Polygon: A polygon as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. + + + + + + + Simple Polygon: A simple polygon as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A simple polygon is a specialized polygon that has a simplified encoding of the logically equivalent GML 3.2 Surface with a single GML 3.2 PolygonPatch as its surface patch consisting of a single LinearRing as its exterior boundary and does not have any interior boundary. Thus the usage of the term 'simple' here refers to a specialized polygon with a _simplified_ encoding, which is _simply_ connected (no interior rings) and uses a _simple_ closed curve (no self-crossings) to represent its single boundary ring. The last coordinate does _not_ have to repeat the first coordinate in this simplified encoding, so only three control points are required to specify a simple polygon. + + + + + + + Simple Rectangle: A simple rectangle as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A simple rectangle is the special case of a simple polygon, which has exactly 4 control points in its boundary encoding representing the 4 corners of the rectangle. + + + + + + + Envelope: An envelope as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a GML Envelope and extended to include both assessments of the accuracy and/or resolution of the pair of coordinate tuples as well as optional specification of one or more character-oriented presentations of the pair of coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope). + + + + + + + Circular Surface: A surface that is bounded by a circle, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a circle and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle is an arc that is specified by a center point, a radius, and which has identical start and end angles. This representation can be used only in 2D. + + + + + + + Elliptical Surface: A surface that is bounded by an ellipse, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of an ellipse and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D. + + + + + + + + + A physical address that: (1) includes a Complete Address Number and a Complete Street Name; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) contains a Complete Street Name _without_ a Complete Address Number preceding it; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) contains two or more Complete Street Names, each separated by a Separator Element; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) contains two Complete Address Numbers separated by a hyphen, where the first Complete Address Number must be less than or equal to the second and the pair are followed by a Complete Street Name; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + + A physical address that: (1) includes a Complete Landmark Name _without_ a Complete Address Number preceding it and _without_ a Complete Street Name following it; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) includes a USPS Box in the required format _without_ a USPS Route; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) includes a USPS Address in the specified rural route (RR) or highway contract (HC) or overseas military delivery format; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) includes a USPS General Delivery Point in the specified format; (2) includes a Place Name and a State Name; and (3) a Zip Code and/or Country Name are recommended but not mandatory. + + + + + A physical address that: (1) includes a Delivery Address that is unparsed; (2) includes a Place Name and a State Name; and (3) a Zip Code is recommended but not mandatory. This class may include addresses that do not conform to any of the thoroughfare, landmark, or postal class formats, including non-U.S. addresses that do not fit into one those class formats. + + + + + + + + + + Acceleration: A physical measure that is restricted to the "acceleration" category of mutually comparable physical quantities. + + + + + + Amount of Substance: A physical measure that is restricted to the "amount of substance" category of mutually comparable physical quantities. + + + + + + Area: A physical measure that is restricted to the "area" category of mutually comparable physical quantities. + + + + + + Capacitance: A physical measure that is restricted to the "capacitance" category of mutually comparable physical quantities. + + + + + + Electric Charge: A physical measure that is restricted to the "electric charge" category of mutually comparable physical quantities. + + + + + + Electric Conductance: A physical measure that is restricted to the "electric conductance" category of mutually comparable physical quantities. + + + + + + Electric Current: A physical measure that is restricted to the "electric current" category of mutually comparable physical quantities. + + + + + + Electric Resistance: A physical measure that is restricted to the "electric resistance" category of mutually comparable physical quantities. + + + + + + Electromotive Force: A physical measure that is restricted to the "electromotive force" category of mutually comparable physical quantities. + + + + + + Energy: A physical measure that is restricted to the "energy" category of mutually comparable physical quantities. + + + + + + Force: A physical measure that is restricted to the "force" category of mutually comparable physical quantities. + + + + + + Frequency: A physical measure that is restricted to the "frequency" category of mutually comparable physical quantities. + + + + + + Geopotential Energy Length: A physical measure that is restricted to the "geopotential energy length" category of mutually comparable physical quantities. + + + + + + Illuminance: A physical measure that is restricted to the "illuminance" category of mutually comparable physical quantities. + + + + + + Inductance: A physical measure that is restricted to the "inductance" category of mutually comparable physical quantities. + + + + + + Irradiance: A physical measure that is restricted to the "irradiance" category of mutually comparable physical quantities. + + + + + + Length: A physical measure that is restricted to the "length" category of mutually comparable physical quantities. + + + + + + Linear Density: A physical measure that is restricted to the "linear density" category of mutually comparable physical quantities. + + + + + + Linear Energy Transfer: A physical measure that is restricted to the "linear energy transfer" category of mutually comparable physical quantities. + + + + + + Luminous Flux: A physical measure that is restricted to the "luminous flux" category of mutually comparable physical quantities. + + + + + + Luminous Intensity: A physical measure that is restricted to the "luminous intensity" category of mutually comparable physical quantities. + + + + + + Magnetic Flux: A physical measure that is restricted to the "magnetic flux" category of mutually comparable physical quantities. + + + + + + Magnetic Flux Density: A physical measure that is restricted to the "magnetic flux density" category of mutually comparable physical quantities. + + + + + + Magnetic Flux Density Gradient: A physical measure that is restricted to the "magnetic flux density gradient" category of mutually comparable physical quantities. + + + + + + Mass: A physical measure that is restricted to the "mass" category of mutually comparable physical quantities. + + + + + + Mass Density: A physical measure that is restricted to the "mass density" category of mutually comparable physical quantities. + + + + + + Mass Fraction: A physical measure that is restricted to the "mass fraction" category of mutually comparable physical quantities. + + + + + + Mass Rate: A physical measure that is restricted to the "mass rate" category of mutually comparable physical quantities. + + + + + + Noncomparable Unit: A physical measure that is restricted to the "noncomparable" category of physical quantities. + + + + + + Plane Angle: A physical measure that is restricted to the "plane angle" category of mutually comparable physical quantities. + + + + + + Power: A physical measure that is restricted to the "power" category of mutually comparable physical quantities. + + + + + + Power Level Difference: A physical measure that is restricted to the "power level difference" category of mutually comparable physical quantities. + + + + + + Power Level Difference Length Gradient: A physical measure that is restricted to the "power level difference length" category of mutually comparable physical quantities. + + + + + + Pressure: A physical measure that is restricted to the "pressure" category of mutually comparable physical quantities. + + + + + + Pure Number: A physical measure that is restricted to the "pure number" category of mutually comparable physical quantities. + + + + + + Radiation Absorbed Dose: A physical measure that is restricted to the "radiation absorbed dose" category of mutually comparable physical quantities. + + + + + + Radiation Dose Equivalent: A physical measure that is restricted to the "radiation dose equivalent" category of mutually comparable physical quantities. + + + + + + Radionuclide Activity: A physical measure that is restricted to the "radionuclide activity" category of mutually comparable physical quantities. + + + + + + Rate: A physical measure that is restricted to the "rate" category of mutually comparable physical quantities. + + + + + + Reciprocal Area: A physical measure that is restricted to the "reciprocal area" category of mutually comparable physical quantities. + + + + + + Reciprocal Time: A physical measure that is restricted to the "reciprocal time" category of mutually comparable physical quantities. + + + + + + Solid Angle: A physical measure that is restricted to the "solid angle" category of mutually comparable physical quantities. + + + + + + Sound Speed Ratio: A physical measure that is restricted to the "sound speed ratio" category of mutually comparable physical quantities. + + + + + + Speed: A physical measure that is restricted to the "speed" category of mutually comparable physical quantities. + + + + + + Surface Mass Density Rate: A physical measure that is restricted to the "surface mass density" category of mutually comparable physical quantities. + + + + + + Thermodynamic Temperature: A physical measure that is restricted to the "thermodynamic temperature" category of mutually comparable physical quantities. + + + + + + Time: A physical measure that is restricted to the "time" category of mutually comparable physical quantities. + + + + + + Volume: A physical measure that is restricted to the "volume" category of mutually comparable physical quantities. + + + + + + Volume Flow Rate: A physical measure that is restricted to the "volume flow rate" category of mutually comparable physical quantities. + + + + + + Volume Fraction: A physical measure that is restricted to the "volume fraction" category of mutually comparable physical quantities. + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-ClassDeclass.xsl b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-ClassDeclass.xsl new file mode 100644 index 0000000000..d33d4bd2d0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-ClassDeclass.xsl @@ -0,0 +1,599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | + + + + + + + + + + + + + + + + + + + + + + ( WARNING! This document does not contain a required overall classification marking. ) + + + + + ( WARNING! This document contains overall markings for both an unclassified and a classified document. ) + + + + + ( WARNING! This document does not contain required markings for either an originally or derivatively classified document. ) + + + + + + + + + ( WARNING! This document contains markings for both an originally and derivatively classified document. ) + + + + + ( WARNING! The reason for the classification decision should be specified for an originally classified document. ) + + + + + ( WARNING! This document does not contain required declassification instructions or markings. ) + + + + + ( WARNING! A declassification date or event should be specified for a document with a 25X or 50X declassification exemption, unless the document has a declassification exemption of 25X1-human, 50X1-HUM, 50X2-WMD, AEA, or NATO. ) + + + + + + + Not Applicable to RD/FRD/TFNI portions. See source list for NSI portions. + + + Not Applicable to NATO portions. See source list for NSI portions. + + + Not Applicable to RD/FRD/TFNI and NATO portions. See source list for NSI portions. + + + + + + + + + , + + + + + + + + , + + + or + + + + + + + , + + Date of Source: + + + + + + + , + + Source marked + + + + + + + + + + + + + + , + + Source marked + + + + + + + + + + + , Date of Source: + + + + + + + + + + ( WARNING! The exempted source marking should be included when the date of exempted source is specified. ) + + + ( WARNING! The date of exempted source marking should be included when the exempted source marking is specified. ) + + + + + + ( WARNING! This document contains both a declassification date and a declassification exemption of 25X1-human. ) + + + + + ( WARNING! This document contains both a declassification event and a declassification exemption of 25X1-human. ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Classified by: + + + + + Classified by: + + + + Derived from: + + + + + + + + + + + + + + + + + + + + + + + + + + + Reason: + + + + + + + + + + + + + + + + + + + + + + + Declassify on: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-PortionMark.xsl b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-PortionMark.xsl new file mode 100644 index 0000000000..1f9e14730d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-PortionMark.xsl @@ -0,0 +1,1027 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // + + JOINT + + + + + + + + + + + + + + + + + + + + + //CTS + + + //NS + + + //NC + + + //NR + + + //NU + + + + + + + // + + + + + + + + + + // + + + FGI + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + // + + + + + + + + + + + + //SAR- + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + + + + + + + //FGI + + + / + + + + + + + + + + + + //FGI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + REL + + + REL TO + + + + + + + + + + + + + + + + + + + + EYES + + + + EYES ONLY + + + + + + + + DISPLAY ONLY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ALPHA BRAVO CHARLIE + DELTA ECHO FOX + GULF HOTEL INDIGO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -SG + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ( + + + + + + + + + + + + + + + + + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-SecurityBanner.xsl b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-SecurityBanner.xsl new file mode 100644 index 0000000000..a15e7b1bec --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v13/external/ISM-v13/XSL/ISM/IC-ISM-SecurityBanner.xsl @@ -0,0 +1,1271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + //FGI + + + // + + JOINT + + + + + + TOP SECRET + SECRET + CONFIDENTIAL + RESTRICTED + UNCLASSIFIED + + + + + + + + + + + + + + TOP SECRET + SECRET + CONFIDENTIAL + UNCLASSIFIED + + + + + + + + //COSMIC TOP SECRET + //NATO SECRET + //NATO RESTRICTED + //NATO CONFIDENTIAL + //NATO UNCLASSIFIED + + + + + + // + + + + + + + + + + // + + + FGI + + + + + + + + TOP SECRET + SECRET + CONFIDENTIAL + RESTRICTED + UNCLASSIFIED + + + + + + + + + + + + + + + + // + + + + + + + + + + + + //SAR- + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + + + + + + + + + + //FGI + + + / + + + + + + + + + + + + //FGI + + + + + + + + + // + + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + //MR + + + + + + + + // + + + + + + + + 01 + + + + + + + + + 01 + + + + + + + + + // + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -SIGMA + + + + + + + - + + + + + + DOD UCNI + DOE UCNI + + + + + + + + + DOD UCNI + DOE UCNI + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SIGMA + + + + RD-SIGMA + + + + FRD-SIGMA + + + + + + + + + + + + + + + + + + + + RD-SIGMA + + + + FRD-SIGMA + + + + + + + + + + + + + + + + + + + + + - + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RSEN + ORCON + IMCON + NOFORN + PROPIN + + + + + + REL + + + + + RELEASABLE TO + + + REL TO + + + + + + + + + + + + + + + + + + + + EYES + + + + + + + + + EYES ONLY + + + + + + + + + LACONIC + DEA SENSITIVE + + DISPLAY ONLY + + + + + + + + + + + + + + + + + + + + + + + + + + SPECAT + SENSITIVE INFORMATION + LIMDIS + EXDIS + NODIS + SBU NOFORN + LES NOFORN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ALPHA BRAVO CHARLIE + DELTA ECHO FOX + GULF HOTEL INDIGO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SFA.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SFA.xsd new file mode 100644 index 0000000000..295ce2dcbb --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SFA.xsd @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SICommonTypes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SICommonTypes.xsd new file mode 100644 index 0000000000..fba8f2ec73 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SICommonTypes.xsd @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents range and azimuth + + + + + Range dimension. + + + + + Azimuth dimension. + + + + + + + The reference point + + + + + The XYZ ECEF (units = m) reference point. + + + + + The row and column (units = pixels) which maps to the ECEF point. + + + + + + Used for implementation specific signifier for the reference point. + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SICommonTypes_V1.0.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SICommonTypes_V1.0.xsd new file mode 100644 index 0000000000..66c101c167 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SICommonTypes_V1.0.xsd @@ -0,0 +1,731 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents range and azimuth + + + + + Range dimension. + + + + + Azimuth dimension. + + + + + + + The reference point + + + + + The XYZ ECEF (units = m) reference point. + + + + + The row and column (units = pixels) which maps to the ECEF point. + + + + + + Used for implementation specific signifier for the reference point. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SIDD_schema_V3.0.0.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SIDD_schema_V3.0.0.xsd new file mode 100644 index 0000000000..3502aafe96 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/SIDD_schema_V3.0.0.xsd @@ -0,0 +1,1715 @@ + + + + + + + + + + + + Any comma int triple. + + + + + + + + + + + + + + Size of LUT + + + + + + + + + + + Size of LUT. + + + + + + + + Object representing that the data requires color display. + + + + + LUT-base remap indicating that the color display is done through index-based color. + + + + + + + + This remap works by taking the input space and using the LUT to map it to a log space (for 8-bit only). + From the log space the C0 and Ch fields are applied to get to display-ready density space. + The density should then be rendered by the TTC and monitor comp. + This means that the default DRA should not apply anything besides the clip points. + If a different contrast/brightness is applied it should be done through modification of the clip points via DRA. + Examples: + Remap LUT Clips + ============================= + PEDF PEDF->D 0,255 + LLG LLG->A->LogA C0,Ch + Log N/A C0,Ch + NRL N/A 0,255 (Supposed to be display ready) + + + + + + Name of remap applied (for informational purposes only). + + + + + Textual remap parameter. Filled based upon remap type (for informational purposes only). For example, if the data is linlog encoded a RemapParameter could be used to describe any amplitude scaling that was performed prior to linlog encoding the data. + + + + + + + + + Information for proper color display of the data. + + + + + Information for proper monochrome display of the data. + + + + + + + + + Suggested override for the lower end-point of the display histogram in the ELT DRA application. Referred to as Pmin in SIPS documentation. + + + + + Suggested override for the upper end-point of the display histogram in the ELT DRA application. Referred to as Pmax in SIPS documentation. + + + + + + + Type for describing proper display of the derived product. + + + + + + Defines the pixel type, based on enumeration and definition in Design and Exploitation document. + + + + + + + Number of bands contained in the image. Populate with the number of bands present after remapping. For example an 8-bit RGB image (RGBLU) this should be populated with 3. + + + + + + + Indicates which band to display by default. Valid range = 1 to NumBands. + + + + + + + + + + Optional extensible parameters used to support profile-specific needs related to product display. Predefined filter types. + + + + + + + + + + Performs several key actions on an image to prepare it for necessary additional processing to achieve the desired output product. + + + + + + + Creates a set of sub-sampled versions of an image to provide processing chains with quick access to lower mangification values + for faster computation speeds and performance. + + + + + + + + + + Performs several key actions on an image to prepare it for necessary additional processing to achieve the desired output product. + + + + + + + Band equalization ensures that real-world neutral colors have equal digital count values + (i.e. are represented as neutral colors) across the dynamic range of the imaged scene. + + + + + + Filter must be no larger than 15x15. + + + + + + Data remapping refers to the specific need to convert the data of incoming, expanded or uncompressed image band data to non-mapped image data. + + + + + + + + + + + + + + + + + + + + + Algorithm used to perform RRDS downsampling + + + + + Only included if DownSamplingMethod=DECIMET + + + + + Only included if DownSamplingMethod=DECIMET + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Band equalization ensures that real-world neutral colors have equal digital count values + (i.e. are represented as neutral colors) across the dynamic range of the imaged scene. + + + + + + Allowed values: 1DLUT + + + + + + + + + + + + + + + + + + + + + + + + + + + + Database name of LUT to use. + + + + + + + + Index specifying the remap family. + + + + + + + Index specifying the member for the remap family. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The geometric transform element is used to perform various geometric distortions to each band of image data. These distortions + include image chipping, scaling, rotation, shearing, etc. + + + + + + + + Specifies the recommended ELT DRA overrides + + + + + + The 1-D LUT element uses one or more 1-D LUTs to stretch or compress tome data in valorous regions within a digital image's dynamic range. + 1-D LUT can be implemented using a Tonal Transfer Curve (TTC). There are 12 families of TTCs: Range = [0,11]. There are 64 members for each family: Range=[0, 63]. + + + + + + + + + + + The geometric transform element is used to perform various geometric distortions to each band of image data. These distortions + include image chipping, scaling, rotation, shearing, etc. + + + + + + + Parameters describing the default orientation of the product + + + + + + + + + + + Anti-Alias Filter used for scaling. + Refer to program-specific documentation for population guidance + + + + + + + Interpolation Filter used for scaling. + Refer to program-specific documentation for population guidance. + + + + + + + + + Parameters describing the default orientation of the product + + + + + + Descirbes the shadow direciton relative to the pixels in the file. + + + + + + + Descirbes the shadow direciton relative to the pixels in the file. + + + + + + + + + + + + + + Note: If defining a custom Filter, it must be no larger than 5x5. + + + + + Note: If defining a custom Filter, it must be no larger than 5x5. + + + + + + + + + Parameters describing the Color Management Module (CMM). + + + + + + + Parameters describing the Color Management Module (CMM). + + + + + + Name of sensor profile in ICC Profile database. + + + + + Name of display profile in ICC Profile database. + + + + + Valid ICC profile signature. + + + + + + + + + + + + + + + Parameter describing DRA. + + + + + Algorithm used for dynamic range adjustment. + + + + + + Indicates which band to use in computing statistics for DRA. Valid range = 1 to NumBands. + + + + + + + + + + + + + DRA clip low point. This is the cumulative histogram percentage value that defines the lower end-point of the dynamic range to be displayed. Range: [0.0 to 1.0] + + + + + + + DRA clip high point. This is the cumulative histogram percentage value that defines the upper end-point of the dynamic range to be displayed. Range: [0.0 to 1.0] + + + + + + The pixel value corresponding to the Pmin percentage poitn in the image histogram. Range: [0.0 to 1.0]/ + + + + + The pixel value corresponding to the Pmax percentage poitn in the image histogram. Range: [0.0 to 1.0]/ + + + + + + + Algorithm used for dynamic range adjustment. + + + + + + + + + + + + Subtractor value used to reduce haze in the image. Range: [0.0 to 2047.0] + + + + + Multiplier value used to reduce haze in the image. Range: [0.0 to 2047.0] + + + + + + + Plane definition for the product. + + + + + Unit vector of the plane defined to be aligned in the increasing row direction of the product. (Defined as Rpgd in Design and Exploitation document) + + + + + Unit vector of the plane defined to be aligned in the increasing column direction of the product. (Defined as Cpgd in Design and Exploitation document) + + + + + + + + + Reference point for the geometrical system. + + + + + + + + + + + Sample spacing in row and column. + + + + + Time (units = seconds) at which center of aperture for a given pixel coordinate in the product occurs. + + + + + + + + + Planar representation of the pixel grid + + + + + + + Plane definition for the product. + + + + + + + + + Polynomial pixel to ground. Only used for sensor systems where the radar geometry parameters are not recorded. + + + + + + + Polynomial that converts Row/Col to Latitude (degrees). + + + + + Polynomial that converts Row/Col to Longitude (degrees). + + + + + Polynomial that converts Row/Col to Altitude (meters above WGS-84 ellipsoid). + + + + + Polynomial that converts Latitude (degrees) and Longitude (degrees) to pixel row location. + + + + + Polynomial that converts Latitude (degrees) and Longitude (degrees) to pixel column location + + + + + + + + + Geographic mapping of the pixel grid. + + + + + + + + Cylindrical mapping of the pixel grid. + + + + + + + Along stripmap direction + + + + + Radius of Curvature defined at scene center. If not present, the radius of curvature will be derived based upon the equations provided in the Design and Exploitation Document + + + + + + + + + Geometric SAR information required for measurement/geolocation. + + + + + + Polynomial pixel to ground. Only used for sensor systems where the radar geometry parameters are not recorded. + + + + + Geographic mapping of the pixel grid referred to as GGD in the Design and Exploitation document. + + + + + Planar representation of the pixel grid referred to as PGD in the Design and Exploitation document. + + + + + Cylindrical mapping of the pixel grid referred to as CGD in the Design and Exploitation document. + + + + + + + Size of the image in pixels. + + + + + + Flag indicating whether ARP polynomial is based on the best available ("collect time" or "predicted") ephemeris. + + + + + + Based on ephemeries at time of collect + + + + + Based on predicted ephemeries (i.e. pre-collect) + + + + + Ephemeris has been refined after data collection + + + + + + + + Center of aperture polynomial (units = m) based upon time into the collect. + + + + + + Indicates the full image includes both valid data and some zero filled pixels. + Simple convex polygon enclosed the valid data (may include some zero filled pixels for simplification). Vertices in clockwise order. + + + + + + + + Finest achievable resolution parameters. + + + + + + + + + + + + + + + Classification guidance authority (only if file is classified). + + + + + Classifying authority. + + + + + Date that the authority was provided. Specified in YYYY-MM-DD. + + + + + + + The overall classification of the product. + + + + + Extensible parameters used to support profile-specific needs related to product security. + + + + + + + + + + + Software application name and version number. + + + + + Date and time defined in Coordinated Universal Time (UTC). The seconds should be followed by a Z to indicate UTC. + + + + + Creation location of product. + + + + + Product-specific profile applied during product processing. + + + + + + + Contains general information about product creation. + + + + + Details regarding processor. + + + + + The overall classification of the product. + + + + + The output product name defined by the processor. + + + + + Class of product. (examples: Dynamic Image, Amplitude Change Detection, Coherent Change Detection, etc.). + + + + + Type of sub-product. (examples: Frame #, Reference, Match, etc.). This field is only needed if there is a suite of associated products. + + + + + Extensible parameters used to support profile-specific needs related to product creation. + + + + + + + + + + + + + + + Identifies the earth model used for latitude, longitude and height parameters. All height values are Height Above The Ellipsoid (HAE). + + + + + + + + + Parameters apply to image corners of the product projected to the same height as the SCP. + These corners are an approximate geographic location that is not intended for analytical use. + + + + + + Image Corner Point (ICP) data for the 4 corners in product. ICPs indexed x = 1, 2, 3, 4, clockwise. + + + + + + + + + + + + + + + Indicates the full image includes both valid data and some zero filled pixels. + Simple convex polygon enclosed the valid data (may include some zero filled pixels for simplification). Vertices in clockwise order. + + + + + + + Vertices indexed n = 1, 2, ..., NumVertices. NumVertices >= 3. Vertex 1 is determined by (1) minimum row index, (2) minimum column index if 2 vertices with minimum row index, + 1st and last vertices are connected to form the polygon. + + + + + + + + + + Indicates the full image includes both valid data and some zero filled pixels. + Simple convex polygon enclosed the valid data (may include some zero filled pixels for simplification). Vertices in clockwise order. + + + + + + + Vertices indexed n = 1, 2, ..., NumVertices. NumVertices >= 3. Vertex 1 is determined by (1) minimum row index, (2) minimum column index if 2 vertices with minimum row index, + 1st and last vertices are connected to form the polygon. + + + + + + + + + + Contains information related to downstream chipping of the product. There is only one instance, and the instance is updated with respect to the full image parameters. + For example, if an image is chipped out of a smaller chip, the new chip needs to be updated to the original full image corners. + Since this relationship is linear, bi-linear interpolation is sufficient to determine an arbitrary chip coordinate in terms + of the original full image coordinates. Chipping is typically done using an exploitation tool, and should not be done in the initial product creation. + + + + + + Size of the chipped product in pixels. + + + + + Upper-left corner with respect to the original product. + + + + + Upper-right corner with respect to the original product. + + + + + Lower-left corner with respect to the original product. + + + + + Lower-right corner with respect to the original product. + + + + + + + + + + + + Application which applied a modification. + + + + + Date and time defined in Coordinated Universal Time (UTC). The seconds should be followed by a Z to indicate UTC. + + + + + Type of interpolation applied to the data. + + + + + Descriptor for the processing event. + + + + + + + + + + + + Contains information related to downstream chipping of the product. + + + + + Contains information related to downstream processing of the product. + + + + + + + + Computed metadata regarding one or more of the input collections and final product. + + + + + + Processing module to keep track of the name and any parameters associated with the algorithms used to produce the SIDD. + + + + + + + + + + + + The name of the algorithm used in processing the product. + + + + + + Parameters associated with the algorithm used in processing the product. + + + + + ProcessingModule is a repeatable structure within itself to create an algorithm as a subset of another algorithm. + + + + + + + + Metadata regarding the product. + + + + + Uniformly-weighted resolution projected into the Earth Tangent Plane (ETP). + + + + + Ellipticity of the 2D-IPR at the ORP, measured in the Earth Geodetic Tangent Plane (EGTP). Ellipticity is the ratio of the IPR ellipse's major axis to minor axis. + + + + + Describes the processed transmit and receive polarizations for the product. + + + + + Counter-clockwise angle from increasing row direction to north at the center of the image. + + + + + Exploitation feature extension for the end product + + + + + + + Computed metadata regarding the collect. + + + + + Metadata regarding one of the input collections. + + + + + + + + + + + + Metadata regarding the product. + + + + + + + ROI representing portion of input data used to make this product. + + + + + Number of rows and columns extracted from the input. + + + + + The upper-left pixel extracted from the input. + + + + + + + + + Polarization transmit type + + + + + Receive polarization type + + + + + Optional angle offset for the receive polarization defined at aperture center. + + + + + + + + + Polarization transmit type + + + + + Receive polarization type + + + + + + + General collection information. + + + + + The name of the sensor. + + + + + Radar collection mode. The ModeType refers to the collection type [SPOTLIGHT, STRIPMAP, DYNAMIC STRIPMAP]. The optional ModeID is used to represent system-specific mode identifiers. + + + + + Collection date and time defined in Coordinated Universal Time (UTC). The seconds should be followed by a Z to indicate UTC. + + + + + Date and time defined in local time. + + + + + The duration of the collection (units = seconds). + + + + + Uniformly-weighted resolution (range and azimuth) processed in the slant plane. + + + + + ROI representing portion of input data used to make this product. + + + + + Transmit and receive polarization. + + + + + + + Key geometry parameters independent of product processing. All values computed at the center time of the full collection. + + + + + Angle clockwise from north indicating the ETP line of sight vector. + + + + + Angle between the ETP at scene center and the range vector perpendicular to the direction of motion. + + + + + Angle from the ground track to platform velocity vector at nadir. Left-look is positive, right-look is negative. + + + + + Angle between the ETP and the line of sight vector. + + + + + Angle between the ETP and the cross range vector. Also known as the twist angle. + + + + + The angle between the velocity vector and the radar line-of-sight vector. Also known as the slant plane squint angle. + + + + + Exploitation feature extension related to geometry for a single input image + + + + + + + Phenomenology related to both the geometry and the final product processing. All values computed at the center time of the full collection. + + + + + The phenomon where vertical objects occlude radar energy. + + + + + The phenomenon where vertical objects appear as ground objects with the same range/range rate. + + + + + This is a range dependent phenomenon which describes the energy from a single scatter returned to the radar via more than one path and results in a nominally constant direction in the ETP. + + + + + Counter-clockwise angle from increasing row direction to ground track at the center of the image. + + + + + Exploitation feature extension related to phenomenology for a single input image + + + + + + + + + General collection information. + + + + + Key geometry parameters independent of product processing. + + + + + Phenomenology related to both the geometry and the final product processing. + + + + + + + + Contains information regarding any compression that has occured to the image data. + + + + + + Block describing details of JPEG 2000 compression. + + + + + + + + + + + Conditional fields that exist only for parsed images. + + + + + + + + + + + The default number of wavelet decompositionlevels performed per tile in the original image out of the processors. + + + + + + + The number of spectral bands in the original image out of the processors. + + + + + + + Original Layer Information. The following fileds repeat for all layers in (0, 1, ..., numLayers - 1). + The default number of layers per tile in original image out of the original processor. + + + + + + + + + Original Layer Information. The following fileds repeat for all layers in (0, 1, ..., numLayers - 1). + The default number of layers per tile in original image out of the original processor. + + + + + + + Layer Index Number indicates the number of layers being described. Layers are numbered from 0 to (numLayers - 1). + + + + + + + + + + + + The bit rate target associated with the layer. It may happen that the bit rate was not achieved due to data characteristics. + Note: for JPEG 2000 numerically lossless quality, the bit rate for the final layer is an expected value, based on performance. + + + + + + + + + + This block describes the Digital ElevatioNData when it is included with the SIDD product. + + + + + + + Describes the Local Geographic Coordinate system linking row/column to the absolute geographic coordinate (lat/lon) + + + + + + + Describes the absolute coordinate system to which the data is referenced. + + + + + + + Describes the horizontal and vertical point and regional information for the DED. + + + + + + + + + + Describes the Local Geographic Coordinate system linking row/column to the absolute geographic coordinate (lat/lon) + + + + + + + Pixel ground spacing in E/W direction that is the number of pixels or element intervals in 360 degrees. + + + + + + + Pixel ground spacing in N/S direction that is the number of pixels or element intervals in 360 degrees. + + + + + + + Northwest corner Latitude/Longitude - product NW corner + + + + + + + + + Describes the absolute coordinate system to which the data is referenced. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Z values false origin + + + + + + Gride zone number, required for UTM, not include for GCS. (4 character field) Values: +001 to +060 (northern hemisphere) -001 to -060 (southern hemisphere) + + + + + + + + + Describes the horizontal and vertical point and regional information for the DED. + + + + + + + Number of positional accuracy regions. + + + + + + + + + + + + + + + + + + Annotation Object. + + + + + + + Geometrical representation of the annotation. + + + + + + + + + + + + + + + Single annotation. + + + + + Identifier for the annotation which idicates the type of object represented by this annotation. + + + + + Spatial reference system of the annotation. Assumed to be WGS-84 geographic coordinate system if not specified with (lat, lon, h) units in (arc-sec, arc-sec, meters above ellipsoid). + + + + + The geometrical representation of the annotation. + + + + + + + Root element of the SIDD document. + + + + + + Information related to processor, classification, and product type. + + + + + Contains information on the parameters needed to display the product in an exploitation tool. + + + + + Contains geographic data. + + + + + Contains the metadata necessary for performing measurements. + + + + + Computed metadata regarding the input collections and final product. + + + + + Contains metadata related to downstream processing of the product. + + + + + See SICD documentation for metadata definitions. + + + + + Radiometric information about the product. + + + + + + Information about other collections that are matched to the current collection. The current collection is the collection from which this SIDD product was generated. + + + + + + + Contains information regarding any compression that has occured to the image data. + + + + + + + This block describes the Digital ElevatioNData when it is included with the SIDD product. + + + + + + Contains metadata related to algorithms used during product generation. + + + + + List of annotations for the imagery. + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/CVEXml.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/CVEXml.xsd new file mode 100644 index 0000000000..39c3fff66f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/CVEXml.xsd @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The version of the specification that the CVE belongs to. + + + + + + The attribute specVersion can only be used with CVE Schema version 2.1 or greater. + + + + + + + The attribute specVersion is required with CVE Schema version 2.1 or greater. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.rnc new file mode 100644 index 0000000000..5a039e2a75 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.rnc @@ -0,0 +1 @@ +CVEnumISM25X.att = attribute CVEnumISM25X { "AEA" | "NATO" | "NATO-AEA" | "25X1" | "25X1-EO-12951" | "25X2" | "25X3" | "25X4" | "25X5" | "25X6" | "25X7" | "25X8" | "25X9" | "50X1" | "50X1-HUM" | "50X2" | "50X2-WMD" | "50X3" | "50X4" | "50X5" | "50X6" | "50X7" | "50X8" | "50X9" } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.rng new file mode 100644 index 0000000000..b89f5fd249 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.rng @@ -0,0 +1,31 @@ + + + + + AEA + NATO + NATO-AEA + 25X1 + 25X1-EO-12951 + 25X2 + 25X3 + 25X4 + 25X5 + 25X6 + 25X7 + 25X8 + 25X9 + 50X1 + 50X1-HUM + 50X2 + 50X2-WMD + 50X3 + 50X4 + 50X5 + 50X6 + 50X7 + 50X8 + 50X9 + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.xsd new file mode 100644 index 0000000000..3054b1345f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISM25X.xsd @@ -0,0 +1,281 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISM25X Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISM25X.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized authority block declass date/event exemptions. This CVE is used by @ism:declassException. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISM25X.xml + + + + + + + + When using a source document that contains portions of Restricted Data (RD) + or Formerly Restricted Data (FRD) where the RD/FRD source document(s) + do not have declassification instructions, the derivatively classified + document shall not contain a declassification date or event on the + Declassify On line. The following shall be annotated on the Declassify On + line: "Not Applicable or (N/A) to RD/FRD portions" and + "See source list for NSI portions" separated by a period. + The source list must include the declassification instruction + for each of the source documents classified under E.O. 13526 and + shall not appear in the classification authority block + + + + + + + Since NATO information is not to be declassified or downgraded without the prior consent + of NATO, the “Declassify on” line of documents that commingle information classified by + NATO and U.S. classified NSI, will read “N/A to NATO portions. + See source list for NSI portions.” + The NSI source list will appear beneath the classification authority block + in a manner that clearly identifies it as separate and distinct. + + + + + + + Handles special case of BOTH NATO and AEA as a single exemption. + + + + + + + Reveal the identity of a confidential + human source, a human intelligence source, + a relationship with an intelligence or security + service of a foreign government or + international organization, or a non-human + intelligence source; or impair the + effectiveness of an intelligence method + currently in use, available for use, or under + development. + + + + + + + "25X1, EO 12951" (prescribed by the DNI for use on information described in E.O. 12951, + Release of Imagery Acquired by Space-Based National Intelligence Reconnaissance Systems) + + + + + + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + + + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + + + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + + + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + + + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + + + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + + + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + + + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + + + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + + + + When the information clearly and + demonstrably could be expected to + reveal the identity of a confidential + human source or a human intelligence + source. + + + + + + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + + + + When the information clearly and + demonstrably could reveal key design + concepts of weapons of mass + destruction. + + + + + + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + + + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + + + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + + + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + + + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + + + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + + + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rnc new file mode 100644 index 0000000000..7b76481c6d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rnc @@ -0,0 +1 @@ +CVEnumISMatomicEnergyMarkings.att = attribute CVEnumISMatomicEnergyMarkings { list { "RD"?, "RD-CNWDI"?, "RD-SG-((14)|(15)|(18)|(20))"?, "FRD"?, "FRD-SG-((14)|(15)|(18)|(20))"?, "DCNI"?, "UCNI"?, "TFNI"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rng new file mode 100644 index 0000000000..ed90f3737e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rng @@ -0,0 +1,31 @@ + + + + + + RD + + + RD-CNWDI + + + RD-SG-((14)|(15)|(18)|(20)) + + + FRD + + + FRD-SG-((14)|(15)|(18)|(20)) + + + DCNI + + + UCNI + + + TFNI + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd new file mode 100644 index 0000000000..840b812ed1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd @@ -0,0 +1,85 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMatomicEnergyMarkings Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMatomicEnergyMarkings.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Atomic Energy information markings from the published register. This CVE is used by @ism:atomicEnergyMarkings. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMatomicEnergyMarkings.xml + + + + + + + + + RD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + + + FRD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + + + + + + + RESTRICTED DATA + + + + + RD-CRITICAL NUCLEAR WEAPON DESIGN INFORMATION + + + + + FORMERLY RESTRICTED DATA + + + + + DoD CONTROLLED NUCLEAR INFORMATION + + + + + DoE CONTROLLED NUCLEAR INFORMATION + + + + + TRANSCLASSIFIED FOREIGN NUCLEAR INFORMATION + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAttributes.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAttributes.rnc new file mode 100644 index 0000000000..597bdef5e1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAttributes.rnc @@ -0,0 +1 @@ +CVEnumISMAttributes.att = attribute CVEnumISMAttributes { list { "compliesWith"?, "classification"?, "ownerProducer"?, "SCIcontrols"?, "SARIdentifier"?, "atomicEnergyMarkings"?, "disseminationControls"?, "FGIsourceOpen"?, "FGIsourceProtected"?, "hasApproximateMarkings"?, "releasableTo"?, "displayOnlyTo"?, "nonICmarkings"?, "classifiedBy"?, "derivativelyClassifiedBy"?, "classificationReason"?, "nonUSControls"?, "derivedFrom"?, "declassDate"?, "declassEvent"?, "declassException"?, "resourceElement"?, "excludeFromRollup"?, "createDate"?, "compilationReason"?, "noAggregation"?, "noticeType"?, "externalNotice"?, "DESVersion"?, "ISMCATCESVersion"?, "noticeDate"?, "noticeReason"?, "exemptFrom"?, "unregisteredNoticeType"?, "pocType"?, "joint"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAttributes.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAttributes.rng new file mode 100644 index 0000000000..5c1ca77726 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMAttributes.rng @@ -0,0 +1,115 @@ + + + + + + compliesWith + + + classification + + + ownerProducer + + + SCIcontrols + + + SARIdentifier + + + atomicEnergyMarkings + + + disseminationControls + + + FGIsourceOpen + + + FGIsourceProtected + + + hasApproximateMarkings + + + releasableTo + + + displayOnlyTo + + + nonICmarkings + + + classifiedBy + + + derivativelyClassifiedBy + + + classificationReason + + + nonUSControls + + + derivedFrom + + + declassDate + + + declassEvent + + + declassException + + + resourceElement + + + excludeFromRollup + + + createDate + + + compilationReason + + + noAggregation + + + noticeType + + + externalNotice + + + DESVersion + + + ISMCATCESVersion + + + noticeDate + + + noticeReason + + + exemptFrom + + + unregisteredNoticeType + + + pocType + + + joint + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.rnc new file mode 100644 index 0000000000..d955ee7173 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.rnc @@ -0,0 +1 @@ +CVEnumISMClassificationAll.att = attribute CVEnumISMClassificationAll { "R" | "C" | "S" | "TS" | "U" } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.rng new file mode 100644 index 0000000000..f8c114e2f0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.rng @@ -0,0 +1,12 @@ + + + + + R + C + S + TS + U + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd new file mode 100644 index 0000000000..386d857aa5 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd @@ -0,0 +1,54 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMClassificationAll Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMClassificationAll.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid classification marks. This CVE is used by @ism:classification. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMClassificationAll.xml + + + + + + + RESTRICTED + + + + + CONFIDENTIAL + + + + + SECRET + + + + + TOP SECRET + + + + + UNCLASSIFIED + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationUS.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationUS.rnc new file mode 100644 index 0000000000..82ab497f1a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationUS.rnc @@ -0,0 +1 @@ +CVEnumISMClassificationUS.att = attribute CVEnumISMClassificationUS { "TS" | "S" | "C" | "U" } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationUS.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationUS.rng new file mode 100644 index 0000000000..51f401b64d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMClassificationUS.rng @@ -0,0 +1,11 @@ + + + + + TS + S + C + U + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.rnc new file mode 100644 index 0000000000..cdcaa2e079 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.rnc @@ -0,0 +1 @@ +CVEnumISMCompliesWith.att = attribute CVEnumISMCompliesWith { list { "USGov"?, "USIC"?, "USDOD"?, "OtherAuthority"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.rng new file mode 100644 index 0000000000..5c59a9aaf6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.rng @@ -0,0 +1,19 @@ + + + + + + USGov + + + USIC + + + USDOD + + + OtherAuthority + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd new file mode 100644 index 0000000000..14151b4ad2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd @@ -0,0 +1,68 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCompliesWith Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCompliesWith.xml CVE it is based on, instead of here. + + + + + + + + (U) ISM rule sets documents may comply + with. This CVE is used by @ism:compliesWith. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCompliesWith.xml + + + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Federal Government. This is the minimum set of rules + for US documents to adhere to, and all US documents should claim compliance with + USGov. For example, a US Intelligence Community document should claim + ism:compliesWith="USGov USIC". + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Intelligence Community. Documents that claim compliance + with USIC MUST also claim compliance with USGov. + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Department of Defense. Documents that claim compliance + with USDOD MUST also claim compliance with USGov. + + + + + Document claims compliance with an authority other than the + USGov, USIC, or USDOD. This token is not allowed if the ism:ownerProducer contains + USA. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.rnc new file mode 100644 index 0000000000..4b813e2950 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.rnc @@ -0,0 +1 @@ +CVEnumISMDissem.att = attribute CVEnumISMDissem { list { "RS"?, "FOUO"?, "OC"?, "OC-USGOV"?, "IMC"?, "NF"?, "PR"?, "REL"?, "RELIDO"?, "EYES"?, "DSEN"?, "FISA"?, "DISPLAYONLY"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.rng new file mode 100644 index 0000000000..998276672f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.rng @@ -0,0 +1,46 @@ + + + + + + RS + + + FOUO + + + OC + + + OC-USGOV + + + IMC + + + NF + + + PR + + + REL + + + RELIDO + + + EYES + + + DSEN + + + FISA + + + DISPLAYONLY + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.xsd new file mode 100644 index 0000000000..5150a33bfa --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMDissem.xsd @@ -0,0 +1,102 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMDissem Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMDissem.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Dissemination controls from the published register. This CVE is used by @ism:disseminationControls. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMDissem.xml + + + + + + + RISK SENSITIVE + + + + + FOR OFFICIAL USE ONLY + + + + + ORIGINATOR CONTROLLED + + + + + ORIGINATOR CONTROLLED US GOVERNMENT + + + + + CONTROLLED IMAGERY + + + + + NOT RELEASABLE TO FOREIGN NATIONALS + + + + + CAUTION-PROPRIETARY INFORMATION INVOLVED + + + + + AUTHORIZED FOR RELEASE TO + + + + + RELEASABLE BY INFORMATION DISCLOSURE OFFICIAL + + + + + EYES ONLY + + + + + DEA SENSITIVE + + + + + FOREIGN INTELLIGENCE SURVEILLANCE ACT + + + + + AUTHORIZED FOR DISPLAY BUT NOT RELEASE TO + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMElements.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMElements.rnc new file mode 100644 index 0000000000..d555615e52 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMElements.rnc @@ -0,0 +1 @@ +CVEnumISMElements.att = attribute CVEnumISMElements { "Notice" | "NoticeText" | "NoticeList" | "NoticeExternal" | "NoticeExternalList" } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMElements.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMElements.rng new file mode 100644 index 0000000000..8700c53342 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMElements.rng @@ -0,0 +1,12 @@ + + + + + Notice + NoticeText + NoticeList + NoticeExternal + NoticeExternalList + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.rnc new file mode 100644 index 0000000000..b775c1bf8b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.rnc @@ -0,0 +1 @@ +CVEnumISMExemptFrom.att = attribute CVEnumISMExemptFrom { list { "IC_710_MANDATORY_FDR"?, "DOD_DISTRO_STATEMENT"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.rng new file mode 100644 index 0000000000..7feed70235 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.rng @@ -0,0 +1,13 @@ + + + + + + IC_710_MANDATORY_FDR + + + DOD_DISTRO_STATEMENT + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd new file mode 100644 index 0000000000..76cf142a18 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd @@ -0,0 +1,53 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMExemptFrom Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMExemptFrom.xml CVE it is based on, instead of here. + + + + + + + + (U) Current rule set names that documents may comply + with. This CVE is used by @ism:exemptFrom. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMExemptFrom.xml + + + + + + + Document claims exemption from ICD-710 rules mandating the + use of Foreign Disclosure and Release markings that have been encoded in ISM. + Currently, the requirement for FD&R is only mandatory for Disseminated Analytic + Product; however, it is strongly encouraged otherwise. + + + + + Document claims exemption from the rules in DoD5230.24 + requiring DoD Distribution Statements that have been encoded into + ISM. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.rnc new file mode 100644 index 0000000000..4ec9adf589 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.rnc @@ -0,0 +1 @@ +CVEnumISMNonIC.att = attribute CVEnumISMNonIC { list { "DS"?, "XD"?, "ND"?, "SBU"?, "SBU-NF"?, "LES"?, "LES-NF"?, "SSI"?, "NNPI"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.rng new file mode 100644 index 0000000000..88f1a85d8c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.rng @@ -0,0 +1,34 @@ + + + + + + DS + + + XD + + + ND + + + SBU + + + SBU-NF + + + LES + + + LES-NF + + + SSI + + + NNPI + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.xsd new file mode 100644 index 0000000000..c117114aee --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonIC.xsd @@ -0,0 +1,82 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNonIC Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNonIC.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Non-IC markings from the published register. This CVE is used by @ism:nonICmarkings. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNonIC.xml + + + + + + + LIMITED DISTRIBUTION + + + + + EXCLUSIVE DISTRIBUTION + + + + + NO DISTRIBUTION + + + + + SENSITIVE BUT UNCLASSIFIED + + + + + SENSITIVE BUT UNCLASSIFIED NOFORN + + + + + LAW ENFORCEMENT SENSITIVE + + + + + LAW ENFORCEMENT SENSITIVE NOFORN + + + + + SENSITIVE SECURITY INFORMATION + + + + + NAVAL NUCLEAR PROPULSION INFORMATION + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.rnc new file mode 100644 index 0000000000..5575b70bd4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.rnc @@ -0,0 +1 @@ +CVEnumISMNonUSControls.att = attribute CVEnumISMNonUSControls { list { "ATOMAL"?, "BOHEMIA"?, "BALK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.rng new file mode 100644 index 0000000000..616324cc7b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.rng @@ -0,0 +1,16 @@ + + + + + + ATOMAL + + + BOHEMIA + + + BALK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd new file mode 100644 index 0000000000..11eaef1fbe --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd @@ -0,0 +1,52 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNonUSControls Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNonUSControls.xml CVE it is based on, instead of here. + + + + + + + + (U) NonUS Control markings supported by ISM. This CVE is used by @ism:nonUSControls. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNonUSControls.xml + + + + + + + NATO Atomal mark + + + + + NATO Bohemia mark + + + + + NATO Balk mark + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.rnc new file mode 100644 index 0000000000..fddcaaab0d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.rnc @@ -0,0 +1 @@ +CVEnumISMNotice.att = attribute CVEnumISMNotice { list { "FISA"?, "IMC"?, "CNWDI"?, "RD"?, "FRD"?, "DS"?, "LES"?, "LES-NF"?, "DSEN"?, "DoD-Dist-A"?, "DoD-Dist-B"?, "DoD-Dist-C"?, "DoD-Dist-D"?, "DoD-Dist-E"?, "DoD-Dist-F"?, "DoD-Dist-X"?, "US-Person"?, "pre13526ORCON"?, "POC"?, "COMSEC"?, "SSI"?, "RSEN"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.rng new file mode 100644 index 0000000000..31402d3f6a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.rng @@ -0,0 +1,73 @@ + + + + + + FISA + + + IMC + + + CNWDI + + + RD + + + FRD + + + DS + + + LES + + + LES-NF + + + DSEN + + + DoD-Dist-A + + + DoD-Dist-B + + + DoD-Dist-C + + + DoD-Dist-D + + + DoD-Dist-E + + + DoD-Dist-F + + + DoD-Dist-X + + + US-Person + + + pre13526ORCON + + + POC + + + COMSEC + + + SSI + + + RSEN + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.xsd new file mode 100644 index 0000000000..75a2833dce --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMNotice.xsd @@ -0,0 +1,147 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNotice Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNotice.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized Notice values. This CVE is used by @ism:noticeType. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNotice.xml + + + + + + + FISA Warning statement + + + + + IMCON Warning statement + + + + + Controled Nuclear Weapon Design Information Warning statement + + + + + RD Warning statement + + + + + FRD Warning statement + + + + + LIMDIS caveat + + + + + LES Notice + + + + + LES-NF Notice + + + + + DSEN Notice + + + + + DoD Distribution statement A from DoD Directive 5230.24 + + + + + DoD Distribution statement B from DoD Directive 5230.24 + + + + + DoD Distribution statement C from DoD Directive 5230.24 + + + + + DoD Distribution statement D from DoD Directive 5230.24 + + + + + DoD Distribution statement E from DoD Directive 5230.24 + + + + + DoD Distribution statement F from DoD Directive 5230.24 + + + + + DoD Distribution statement X from DoD Directive 5230.24 + + + + + US Person info Notice + + + + + Indicates that an instance document must abide by rules pertaining to ORIGINATOR CONTROLLED data issued prior to Executive Order 13526. + + + + + Indicates that the contents of this notice specify the contact information for a required point-of-contact. + + + + + COMSEC Notice + + + + + Indicates that this is the notice for Sensitive Security Information + + + + + Risk Sensitive Notice + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.rnc new file mode 100644 index 0000000000..80811d13d3 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.rnc @@ -0,0 +1 @@ +CVEnumISMPocType.att = attribute CVEnumISMPocType { list { "ICD-710"?, "DoD-Dist-B"?, "DoD-Dist-C"?, "DoD-Dist-D"?, "DoD-Dist-E"?, "DoD-Dist-F"?, "DoD-Dist-X"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.rng new file mode 100644 index 0000000000..6625413124 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.rng @@ -0,0 +1,28 @@ + + + + + + ICD-710 + + + DoD-Dist-B + + + DoD-Dist-C + + + DoD-Dist-D + + + DoD-Dist-E + + + DoD-Dist-F + + + DoD-Dist-X + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.xsd new file mode 100644 index 0000000000..7ec80cce46 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMPocType.xsd @@ -0,0 +1,72 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMPocType Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMPocType.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized types for ISM-related points-of-contact. This CVE is used by @ism:pocType. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMPocType.xml + + + + + + + Point-of-contact for an ICD-710 notice. + + + + + DoD Distribution statement B from DoD Directive 5230.24 + + + + + DoD Distribution statement C from DoD Directive 5230.24 + + + + + DoD Distribution statement D from DoD Directive 5230.24 + + + + + DoD Distribution statement E from DoD Directive 5230.24 + + + + + DoD Distribution statement F from DoD Directive 5230.24 + + + + + DoD Distribution statement X from DoD Directive 5230.24 + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.rnc new file mode 100644 index 0000000000..88b7e9a917 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.rnc @@ -0,0 +1 @@ +CVEnumISMSAR.att = attribute CVEnumISMSAR { list { } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.rng new file mode 100644 index 0000000000..2b4e39cf48 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.rng @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.xsd new file mode 100644 index 0000000000..9516b478e7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSAR.xsd @@ -0,0 +1,36 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMSAR Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMSAR.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid SAR controls from the published register. This CVE is used by @ism:SARIdentifier. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMSAR.xml + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.rnc new file mode 100644 index 0000000000..ef764a4722 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.rnc @@ -0,0 +1 @@ +CVEnumISMSCIControls.att = attribute CVEnumISMSCIControls { list { "HCS"?, "HCS-O"?, "HCS-P"?, "RSV"?, "SI"?, "SI-EU"?, "SI-G"?, "SI-NK"?, "TK"?, "TK-BLFH"?, "TK-IDIT"?, "TK-KAND"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.rng new file mode 100644 index 0000000000..42f9deb6ef --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.rng @@ -0,0 +1,43 @@ + + + + + + HCS + + + HCS-O + + + HCS-P + + + RSV + + + SI + + + SI-EU + + + SI-G + + + SI-NK + + + TK + + + TK-BLFH + + + TK-IDIT + + + TK-KAND + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd new file mode 100644 index 0000000000..c46fedbdf1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd @@ -0,0 +1,97 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMSCIControls Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMSCIControls.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid SCI controls from the published register. This CVE is used by @ism:SCIcontrols. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMSCIControls.xml + + + + + + + HCS + + + + + HCS-O + + + + + HCS-P + + + + + RESERVE + + + + + SPECIAL INTELLIGENCE + + + + + ECRU + + + + + SI-GAMMA + + + + + NONBOOK + + + + + TALENT KEYHOLE + + + + + BLUEFISH + + + + + IDITAROD + + + + + KANDIK + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/IC-ISM.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/IC-ISM.xsd new file mode 100644 index 0000000000..86e6a0d3e9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISM/IC-ISM.xsd @@ -0,0 +1,1596 @@ + + + + + + Intelligence Community + Technical Specification XML Data Encoding Specification for Information Security + Marking Metadata (ISM.XML) + + + Notices + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + Description + W3C XML Schema for the XML Data + Encoding Specification Intelligence Community Metadata Standard for Information + Security Marking (ISM.XML). + + + Introduction + This XML Schema file is one + component of the XML Data Encoding Specification (DES). Please see the document + titled + XML Data Encoding + Specification for Information Security Marking Metadata + for a complete description of the encoding as well as a list of all + components. + This schema and its components, + as well as other parts of the DES may be overridden for localized implementations. + Therefore, permission to use, copy, modify, and distribute this XML Schema and the + other parts of the DES for any purpose is hereby granted in perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or DES for any purpose. It is provided “as is” + without expressed or implied warranty. + If you modify this XML Schema in + any way, label your schema as a variant of ISM.XML. + Please direct all questions, bug + reports, and suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + + The IC ISM schema is not a + standalone construct; it should be imported into a parent XML schema. + Refer to the + XML Data Encoding + Specification for Information Security Marking Metadata + Data Encoding Specification (ISM.XML DES) for an explanation of the + relationships of the IC ISM attributes and the associated controlled + vocabularies. The Intelligence Community Markings System Register and Manual + provide additional business rules (that may be classified) not provided in this + schema or the associated documentation. + The IC ISM attributes are + intended to support all Intelligence Community Markings System Register and + Manual markings. However, the attribute values are NOT intended to be verbatim + pieces of portion marks and banners. Instead, the values should be interpreted + by XSLT stylesheets or other formatting specifications to produce the required + portion marks and banners. + The controlled vocabularies + containing the required values for populating the attributes are described in + the ISM.XML DES. + Attribute group + "SecurityAttributesGroup" should be referenced in the attribute definition list + of any element that REQUIRES security metadata. + Attribute group + "SecurityAttributesOptionGroup" may be referenced in the attribute definition + list of any element for which security metadata may be appropriate but is not + required (such as, an individual cell of a table). + Elements declared in this + specification are conveniences to developers of Schema. Their use is not + required but was determined to be helpful for many Schemas that would otherwise + have to declare these simple elements. Schema developers are free to implement + their own versions of these elements. + This file provides an + XML-based schema for specification of metadata for classification and controls + markings. The goal of the IC ISM XML Schema is to provide a common set of XML + attributes for implementing security-based metadata throughout the IC. The IC + ISM XML Schema provides markup for the tokens that are used to format the + Intelligence Community Markings System Register and Manual markings. + The IC ISM XML Schema may + be incorporated into organizational XML-based schemas by (a) declaring the IC + ISM namespace and (b) inserting an "import" statement: + <xsd:schema xmlns="...my namespace name..." targetNamespace="...my + namespace name..." xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:ism="urn:us:gov:ic:ism"> ... <xsd:import + namespace="urn:us:gov:ic:ism schemaLocation="IC-ISM.xsd" /> + + + + + Creators + Office of the Director of + National Intelligence Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Applicable atomic energy + information markings for a document or portion + This attribute is used at + both resource and portion levels. The permissible values for this simple type + are defined in the ISM Atomic Energy Markings CVE: + CVEnumISMAtomicEnergyMarkings.xml. + + + + + + + + The highest level of + classification applicable to the containing document or portion + The Classification element + is always used in conjunction with the Owner Producer element. Taken together, + the two elements specify the classification category (TS, S, C, R, or U) and the + type of classification (US, non-US, or Joint). This attribute is used to render + portion marks and security banners. + This attribute is used at + both resource and portion levels. The permissible values for this simple type + are defined in the ISM Classification All CVE: + CVEnumISMClassificationAll.xml + + + + + + + + One or more reason + indicators or explanatory text describing the basis for an original + classification decision + This attribute corresponds + to the “Reason” line of a document’s classification authority block, and it is + only used, and only allowed, when classification is the result of an original + classification decision. It is used primarily at the resource level. + + + + + + + + + + + + + The identity, by name or + personal identifier and position title, of the original classification authority + for a document + This attribute corresponds + to the “Classified By” line of a resource’s classification authority block. It + is used primarily at the resource level. + + + + + + + + + + + + + The reason that the + classification of the document is more restrictive than the simple roll-up of + the marked portions of the document + This attribute is an + indicator that there is not accidental over-classification of the document. + Users must exercise special care beyond that indicated by the portion marks when + using this information. + + + + + + + + + + + + + The ISM rule sets a document + complies with + This attribute is used at + the resource level. The permissible values for this simple type are defined in + the ISM Complies With CVE: CVEnumISMCompliesWith.xml + + + + + + + + The date when ISM metadata + was added or updated + This date is used by some + constraint rules to determine if ISM markings are valid. For example, this date + is used to check deprecation of some marks. + + + + + + + + + + + The specific date when the + resource is subject to automatic declassification procedures if not properly + exempted from automatic declassification + This attribute corresponds + to the “Declassify On” line of a resource’s classification authority block. It + is used primarily at the resource level. + + + + + + + + + + + A description of an event + upon which the information shall be subject to automatic declassification + procedures if not properly exempted from automatic declassification A + description of an event upon which the information shall be automatically + declassified if not properly exempted from automatic declassification. + This attribute corresponds + to the “Declassify On” line of a resource’s classification authority block. It + is used primarily at the resource level. + + + + + + + + + + + + + The exemption from automatic + declassification that is claimed for a document + This element is used in + conjunction with the Declassification Date or Declassification Event, and it + corresponds to the “Declassify On” line of a resource’s classification authority + block. It is used primarily at the resource level. The permissible values for + this attribute are defined in the ISM N25X CVE: CVEnumISMN25X.xml. + ISOO Guidance: + @declassException should be a SINGLE value giving the longest + protection. + + + + + + + + The identity, by name or + personal identifier, of the derivative classification authority + This attribute corresponds + to the “Classified By” line of a resource’s classification authority block, and + it is used primarily at the resource level. + + + + + + + + + + + + + A citation of the + authoritative source or sources of the classification markings used in a + derivative classification decision for a classified document + This attribute corresponds + to the “Derived From” line of a document’s classification authority block, and + it is used primarily at the resource level. + ISOO Guidance: The source of + derivative classification. (1) The derivative classifier shall concisely + identify the source document or the classification guide on the ‘‘Derived From’’ + line, including the agency and, where available, the office of origin, and the + date of the source or guide. An example might appear as: Derived From: Memo, + ‘‘Funding Problems,’’ October 20, 2008, Office of Administration, Department of + Good Works or Derived From: CG No. 1, Department of Good Works, dated October + 20, 2008 (i) When a document is classified derivatively on the basis of more + than one source document or classification guide, the ‘‘Derived From’’ line + shall appear as: Derived From: Multiple Sources (ii) The derivative classifier + shall include a listing of the source materials on, or attached to, each + derivatively classified document. + + + + + + + + + + + + + The version number of the + DES. + If there are multiple + @ism:DESVersion attributes specified in an instance document, the first one in + document order is the one that will apply to the entire document. + + + + + + + + The set of countries and/or + international organizations associated with a “Display Only To” + marking + The “Display Only To” + marking indicates that a document is authorized for foreign viewing by + appropriate affiliates of approved countries and/or international organizations + without providing the foreign recipient with a copy for retention in any medium + (physical or electronic). + This attribute is used at + both the resource and the portion levels. The permissible values for this + attribute are defined in the ISM Rel To CVE: CVEnumISMRelTo.xml. + + + + + + + + Applicable dissemination + control markings for a document or portion + This attribute is rendered + in portion marks and banners. The permissible values for this attribute are + defined in the ISM Dissemination CVE: CVEnumISMDissem.xml + + + + + + + + An indicator that an + element’s ISM attributes do not contribute to the “rollup” classification of the + document + @ism:excludeFromRollup is + most often used when providing the security attributes of a referenced or + linked-to resource. This attribute provides a mechanism to assert a + more-restrictive classification of a resource pointed to by a link or reference + without impacting the document’s resource markings. + + + + + + + + + + + Specific exemptions within + an ISM rule set that are claimed for a document + This attribute is used on + the resource node of a document in conjunction with @compliesWith. The + permissible values for this simple type are defined in the ISM Exempt From CVE: + CVEnumISMExemptFrom.xml + + + + + + + + The set of countries and/or + international organizations whose information is derivatively sourced in a + document when the source of the information is not concealed (also used for + cases when the source is unknown) + FGI markings protect + foreign-owned or foreign-produced information and are applied based on sharing + agreements or arrangements with the source country or organization. + This attribute is used at + both the resource and the portion levels. The permissible values for this + attribute are defined in the ISM FGI Open CVE: CVEnumISMFGIOpen.xml. Note: the + value “UNKNOWN” is allowed in cases where the source of the information is not + known. + + + + + + + + The set of countries and/or + international organizations whose information is derivatively sourced in a + document when the source of the information must be concealed + This attribute has specific + rules concerning its usage: + PROTECTED SPACES — Within + protected internal organizational spaces, this attribute may be used to maintain + a formal record of the foreign country or countries and/or registered + international organization(s) that are the non-disclosable owner(s) and/or + producer(s) of information which is categorized as foreign government + information according to Security Markings Program guidelines. If the data + element is employed in this manner, then additional measures must be taken prior + to dissemination of the resource to shared spaces so that any indications of the + non-disclosable owner(s) and/or producer(s) of information within the resource + are eliminated. In all cases, the corresponding portion marking or banner + marking should be compliant with Security Markings Program guidelines for FGI + when the source must be concealed. In other words, even if the data element is + being employed within protected internal organizational spaces to maintain a + formal record of the non-disclosable owner(s) and/or producer(s) within an XML + resource, if the resource is rendered for display within the protected internal + organizational spaces in any format by a stylesheet or as a result of any other + transformation process, then the non-disclosable owner(s) and/or producer(s) + should not be included in the corresponding portion marking or banner + marking. + SHARED SPACES — Within + shared spaces, the data element serves only to indicate the presence of FGI; in + this case, this element’s value will always be “FGI”. The data element may also + be employed in this manner within protected internal organizational + spaces. + Permissible values for this + attribute are defined in the ISM FGI Protected CVE: CVEnumISMFGIProtected.xml. + Note: the value “FGI” is permitted in the case outlined for “shared + spaces”. + + + + + + + + When true, indicates the ISM + markings specified are estimated (e.g. system high). + + + + + + + + The version number of the + ISMCAT CES used in the document + If there are multiple + @ISMCATCESVersion attributes specified in an instance document, the first one in + document order is the one that will apply to the entire document. + + + + + + + + The group of Information + Security Marking attributes for use on a notice element without + externalNotice + + + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element adding optional + externalNotice + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element adding required + externalNotice=true + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance + document. + + + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance + document. + + + + + + + + + + + + + An attribute group to be + used on the root node of a schema implementing ISM. ISM being entirely + attributes based groups such as this are the only way to specify required + use. + + + + + + + + + + An attribute group to be + used on the root node of a schema implementing ISM. ISM being entirely + attributes based groups such as this are the only way to specify required use. + This group has all the attributes as optional. This group could be used in a + schema where many element may be the root node. When the element is acting as + the root element it should have attributes used similar to + ISMRootNodeAttributeGroup. + + + + + + + + + + A long string, less than or equal to 32000 characters. + + + + + + + + + + + + + + + + + + + When true, an indicator that there is no classification + by compilation across any combination of portions extracted from the document. + + + + + + + + One or more indicators of an + expansion or limitation on the distribution of a document or portion originating + from non-intelligence components + This attribute is used at + both the resource and the portion levels, and it is rendered in portion marks + and security banners. The permissible values for this attribute are defined in + the ISM Non-IC CVE: CVEnumISMNonIC.xml + + + + + + + + One or more indicators of an + expansion or limitation on the distribution of a document or portion originating + from non-US components (foreign government or international + organization). + This attribute is used at + both the resource and the portion levels, and it is rendered in portion marks + and security banners. The permissible values for this attribute are defined in + the ISM Non-US Controls CVE: CVEnumISMNonUSControls.xml + + + + + + + + Base type for Notices. Does + not include any attributes. + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText + + + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText for use when the notice refers to something + external. + + + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText + + + + + + + + A single Notice that may + consist of 1 or more NoticeText for use when the notice refers to something + external. + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + attributes 'classification' and 'ownerProducer' is required. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + Security on the notice is optional. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + attributes 'classification' and 'ownerProducer' is required and the notice is + for something external to the object. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + Security on the notice is optional and the notice is for something external to + the object. + + + + + + + + + + + A date associated with a + notice (for example, the DoD Distribution notice date) + + + + + + + + + + + + + A list of Notices + + + + + + + + + + + + + + A list of Notices + + + + + + + + + + + + + A reason associated with a + notice (for example, the DoD Distribution reason) + + + + + + + + + + + + + The actual text of a + notice. + + + + + + + + + + + + + + + An indicator that the + containing element contains a security-related notice. This attribute is used to + categorize which of the required notices is specified in the element. These + categories include those described in the Intelligence Community Markings System + Register and Manual, as well as additional well-defined and formally recognized + security notice types described in other directives, such as US-Person and DoD + Distribution. The element could contain any structure that the implementing + schema defines, and rendering details are relegated to the implementing schema. + The permissible values for this attribute are defined in the ISM Notice CVE: + CVEnumISMNotice.xml + + + + + + + + An indicator that an element + contains a security-related notice for information NOT contained in + document + This flag allows for a + notice to exist in a document without the data that would normally require the + notice. For example, a document could contain a FISA notice without FISA data + present. Source citations are a common use case for this attribute. + + + + + + + + + + + The set of national + governments and/or international organizations that have purview over the + containing classification marking + This element is always used + in conjunction with the Classification element. Taken together, the two elements + specify the classification category (TS, S, C, R, or U) and the type of + classification (US, non-US, or Joint). The permissable values for this attribute + are defined in the ISMCAT Owner Producer CVE: + CVEnumISMCATOwnerProducer.xml. + + + + + + + + When true, an indicator that + entities in the @ism:ownerProducer attribute are JOINT owners of the + data + + + + + + + + An attribute group to be + used on the element that represents an entity that can be designated as a + point-of-contact. This node may be a single person or an organization. + + + + + + + + + Indicates that the element + specifies a point-of-contact (POC) and the methods with which to contact that + individual. As certain POCs are required for different reasons (ICD-710 + compliance, DoD Distribution statements, etc), the values for this attribute + specify the reason(s) why the POC is provided. + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + country or countries and/or international organization(s) to which classified + information may be released based on the determination of an originator in + accordance with established foreign disclosure procedures. This element is used + in conjunction with the Dissemination Controls element. It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMRelTo.xml + + + + + + + + This attribute is used to + designate which element has the ISM attributes representing the classification + for the entire resource. Every document must have at least one element with this + indicator as true. It should be rare that a document has more than one. Mainly + this would occur in some sort of aggregation schema. In the aggregation case, + the first @resourceElement attribute in XML document order is the one used for + all constraint rules. + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. Implementing Schemas might use this on the + Root node or any other node. + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. Implementing Schemas might use this on the + Root node or any other node. This group has all the attributes as optional. It + could be used in a schema where many nodes may be the resource element. When the + element is acting as the resource element it should have attributes used similar + to ResourceNodeAttributeGroup. + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + defense or intelligence programs for which special access is required. It is + manifested in portion marks and security banners. PERMISSIBLE VALUES The + permissible values for this attribute are defined in the Controlled Value + Enumeration: CVEnumISMSAR.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying + sensitive compartmented information control system(s). It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMSCIControls.xml + + + + + + + + The group of Information + Security Marking attributes in which the use of attributes 'classification' and + 'ownerProducer' is required. + + + This group is to be + contrasted with group 'SecurityAttributesOptionGroup' in which use of those + attributes is optional. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The group of Information + Security Marking attributes in which the use of attributes 'classification' and + 'ownerProducer' is optional. This group is to be contrasted with group + 'SecurityAttributesGroup' in which use of these attributes is + required. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A short string, less than or equal to 256 characters. + + + + + + + + + + + + + + + + + + + A notice that is of a + category that is not described in the Intelligence Community Markings System + Register and Manual and/or is not sufficiently defined to be represented in the + Controlled Value Enumeration CVEnumISMNotice.xml. This attribute can be used by + specifications that import ISM to represent a wider variety of security-related + notices. + + + + + + + + + + + + + + Include all of the generated CVE + types applicable. + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 2016-SEP + 2016-02-17 + ODNI/IC CIO/IAD + + The schema change logs will no longer be maintained as of the 2016-SEP release. + The existing change logs will only serve as legacy information. + For changes to schema as of and after 2016-SEP, reference the change history in the DES. + + + + 12 + 2013-05-20 + ODNI/OCIO/ME/D&I + + + Decoupled + the specification from the country code CVEs. Created a new + ISMCAT specification that can rev independently of + ISM. + + + + + 11 + 2013-02-15 + ODNI/OCIO/ME/D&I + + + Added joint + attribute for signifying that multiple values in the + ownerProducer attribute are both producers of the + portion/document. + Added + attribute for joint ownership. [artf13902]. + + + + + 9 + 2012-3-19 + ODNI/OCIO/ME/D&I + + + Changed + DESVersion attribute from xsd:int to ShortStringType. + Changed + declaration of NoticeText to be simple content. + [artf12153]. + + + + + 8 + 2011-12-22 + Sun, ODNI/OCIO/ICEA + + + Added + unique namespaces to generated CVE schema fragments. + Removed + CVEGenerated schema import from and moved schema fragment + imports directly to the base ISM schema. + + + + + 7 + 2011-08-10 + Colbert, ODNI/OCIO/ICEA + + + Added a + complex type for NoticeList + + + + + 7 + 2011-07-14 + + + Colbert, + ODNI/OCIO/ICEA + Gilsenan, + ODNI/OCIO/ICEA + + + + + Renamed + @ism:notice to @ism:noticeType + Removed + @ism:ORCONPOC and @ism:noticePOC. They're replaced with the new + @ism:pocType attribute, which indicates that an element + specifies a point-of-contact's name and contact + method. + + + + + 7 + 2011-07-07 + + + Colbert, + ODNI/OCIO/ICEA + Gilsenan, + ODNI/OCIO/ICEA + + + + + Added + version information to the header + Removed + ACCM attribute + + + + + 7 + 2011-06-10 + Hansen, ODNI/OCIO/ICEA + + + Removed + @fixed="true" from the resourceElement attribute definition in + the ISMResourceNodeAttributeGroup and + ISMResourceNodeAttributeOptionGroup + + + + + 7 + 2011-05-11 + Colbert, ODNI/OCIO/ICEA + + + Added + ORCONPOC attribute and POCAttributeGroup + + + + + 7 + 2011-04-26 + Colbert, ODNI/OCIO/ICEA + + + Added + String types LongStringType, ShortStringType, + LongStringWithSecurityType, and + ShortStringWithSecurityType + Added + attribute unregisteredNoticeType and included it in + ISMNoticeAttributeGroup + + + + + 7 + 2011-04-22 + Colbert, ODNI/OCIO/ICEA + + + Explicitly + declared minOccurs and maxOccurs where appropriate. + + + + + 7 + 2011-04-19 + Hodges, ODNI/OCIO/ICEA + + + (CR 2010-4) + Add ISMNoticeAttributeGroup to hold the Notice specific + attributes and changed the NoticeAttribute groups to reference + it. ISMResourceAttributeGroup also added and Resource specific + attributes have been removed from the ResourceAttribute groups + and the new group added. + + + + + 7 + 2011-04-15 + Colbert, ODNI/OCIO/ICEA + + + Add + elements NoticeList, Notice, and NoticeText + + + + + 6 + 2011-01-27 + ODNI/OCIO/ICEA + + + Add + ACCM + + + + + 5 + 2010-09-25 + ODNI/OCIO/ICEA + + + Add + atomicEnergyMarkings + Remove + typeOfExemptedSource and dateOfExemptedSource + Add + ResourceNodeAttributeOptionGroup + Add + ISMRootNodeAttributeOptionGroup + + + + + 4 + 2010-06-01 + ODNI OCIO ICIS + + + Add DoD + Distro statements + Add NATO + refactor + Add Use of + Generated CVE schema types + + + + + 3 + 2010-01-22 + ODNI OCIO ICIS + + + (CR + 2010-02) Add notice attribute, NoticeAttributesGroup and + NoticeAttributesOptionGroup + Final + review before signature 2010-06-06 + Remove comment about LES not being in the Register + since it is now in the register. + Correct NoticeAttributesOptionGroup to have + SecurityAttributesOptionGroup so that NoteInline in PUBS + works correctly. + + + + + + + 2 + 2009-12-01 + ODNI OCIO ICIS + + + (CR + 2009-09) Added "compilationReason" to allow capturing + information about the reason that the document or portion bears + a more restrictive classification than the data would appear to + support. + (CR + 2009-07) Point to CVE files for enumeration values. + (CR + 2009-22) Change declassException and typeOfExemptedSource to + NMTOKEN. + (CR + 2009-16) Add ability to specify DES Version. + (CR + 2009-05) Add createDate, excludeFromRollup, resourceElement to + allow ISM rules to be independent of implementing + schema. + (CR + 2009-05) Add ISMRootNodeAttributeGroup and + ResourceNodeAttributeGroup. + + + + + 2.1 + 2008-08-19 + ODNI OCIO ICIS + Updated to support IC Standard for Information Security Marking + Metadata (2007-500-2) + Added + "DerivativelyClassifiedBy" to allow capturing information about + a derivative classifier separate from an original + classifier + + + + + 2.0 + 2004-04-30 + IC MWG + Updated to support changes to the CAPCO Register and + Implementation Manual. + Added + "ownerProducer" as a required attribute for entity + "SecurityAttributes" and as an optional attribute for entity + "SecurityAttributesOption." Purpose is to provide a single + method for specification of US, non-US, and joint + classifications. + Changed the + enumerated list that is the declared value of attribute + "classification" in order to accommodate non-US + classifications. + Added + optional attribute "SARIdentifier" as a separate container for + DoD/DoE special-access-required nicknames, codewords, or + trigraph/ digraph to support elevation of SAR to the same level + as SCI controls. + Added + optional attributes "classifiedBy" and "classificationReason" to + support generation of EO 12958 classification/declassification + blocks. + Changed the + declared value of "derivedFrom" to CDATA to allow the titles and + dates of source documents or classification guides to be + specified. + Replaced + the single attribute "declassification" with distinct attri- + butes for date-determined and event-determined declassification + and for the 25X declassification exceptions. + Added + attributes "typeOfExemptedSource" and "dateOfExemptedSource" for + use in specifying that one or more sources was marked OADR, X1 + through X8, or X-Foreign Relations. + Added + attribute "declassManualReview" for use in forcing "MR" to + appear in header and footer banners (regardless of whether any + caveats in the portions would necessitate manual + review). + + + + + 1.0 + 2002-07-05 + IC MWG + Released as a registered, production XML entity set + + + + + + + + Formal CVE Change + List + + Change History + + + Version + Date + By + Description + + + + + 7 + 2011-07-18 + Colbert, ODNI/OCIO/ICEA + + + Added + pocType + + + + + 7 + 2011-01-27 + ODNI/OCIO/ICEA + + + Remove ACCM + as attribute and move its values to nonICmarkings + + + + + 6 + 2011-01-27 + ODNI/OCIO/ICEA + + + Add + ACCM + + + + + 5 + 2010-09-25 + ODNI/OCIO/ICEA + + + Add + atomicEnergyMarkings + Remove + typeOfExemptedSource + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rnc new file mode 100644 index 0000000000..60bc85fe55 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rnc @@ -0,0 +1 @@ +CVEnumISMCATFGIOpen.att = attribute CVEnumISMCATFGIOpen { list { "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX1"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rng new file mode 100644 index 0000000000..8f1e7d09c2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rng @@ -0,0 +1,1000 @@ + + + + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX1 + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd new file mode 100644 index 0000000000..80f841305c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd @@ -0,0 +1,1702 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATFGIOpen Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATFGIOpen.xml CVE it is based on, instead of here. + + + + + + + + (U) GENC trigraphs except USA in alphabetical order by + trigraph, followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by + tetragraph. UNKNOWN removed since GENC has it as AX1. This CVE is used by @ism:FGIsourceOpen. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATFGIOpen.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Unknown + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rnc new file mode 100644 index 0000000000..8ab655fd85 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rnc @@ -0,0 +1 @@ +CVEnumISMCATFGIProtected.att = attribute CVEnumISMCATFGIProtected { list { "FGI"?, "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rng new file mode 100644 index 0000000000..89d252e1db --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rng @@ -0,0 +1,1000 @@ + + + + + + FGI + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd new file mode 100644 index 0000000000..e63199ac8a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd @@ -0,0 +1,1702 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATFGIProtected Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATFGIProtected.xml CVE it is based on, instead of here. + + + + + + + + (U) FGI, followed by GENC trigraphs except USA in + alphabetical order by trigraph, followed by IC Markings System Register and Manual Coalition tetragraphs in + alphabetical order by tetragraph. This CVE is used by @ism:FGIsourceProtected. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATFGIProtected.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Foreign Government Information + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rnc new file mode 100644 index 0000000000..d3bee95262 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rnc @@ -0,0 +1 @@ +CVEnumISMCATOwnerProducer.att = attribute CVEnumISMCATOwnerProducer { list { "FGI"?, "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "USA"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rng new file mode 100644 index 0000000000..2c387b9454 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rng @@ -0,0 +1,1003 @@ + + + + + + FGI + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + USA + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd new file mode 100644 index 0000000000..1e6cc1a8c6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd @@ -0,0 +1,1708 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATOwnerProducer Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATOwnerProducer.xml CVE it is based on, instead of here. + + + + + + + + (U) + FGI, followed by GENC trigraphs in alphabetical order by trigraph, + followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. This CVE is used by @ism:ownerProducer. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATOwnerProducer.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Foreign Government Information + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + United States of America + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rnc new file mode 100644 index 0000000000..e135b64f6e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rnc @@ -0,0 +1 @@ +CVEnumISMCATRelTo.att = attribute CVEnumISMCATRelTo { list { "USA"?, "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rng new file mode 100644 index 0000000000..99191df62d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rng @@ -0,0 +1,1000 @@ + + + + + + USA + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd new file mode 100644 index 0000000000..b934353aab --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd @@ -0,0 +1,1703 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATRelTo Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATRelTo.xml CVE it is based on, instead of here. + + + + + + + + (U) + USA, followed by GENC trigraphs except USA in alphabetical order by trigraph, + followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. This CVE is used by @ism:releasableTo and @ism:displayOnlyTo. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATRelTo.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + United States + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rnc new file mode 100644 index 0000000000..eed948a42e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rnc @@ -0,0 +1 @@ +CVEnumISMCATResponsibleEntity.att = attribute CVEnumISMCATResponsibleEntity { list { "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "USA"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "NATO"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rng new file mode 100644 index 0000000000..439b16d63d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rng @@ -0,0 +1,847 @@ + + + + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + USA + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + NATO + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.xsd new file mode 100644 index 0000000000..b94ac253d3 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.xsd @@ -0,0 +1,1439 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATResponsibleEntity Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATResponsibleEntity.xml CVE it is based on, instead of here. + + + + + + + + (U) + GENC trigraphs in alphabetical order by trigraph, plus the NATO tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATResponsibleEntity.xml + + + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + United States of America + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + North Atlantic Treaty Organization + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rnc new file mode 100644 index 0000000000..ec4f2038b0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rnc @@ -0,0 +1 @@ +CVEnumISMCATTetragraph.att = attribute CVEnumISMCATTetragraph { list { "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rng new file mode 100644 index 0000000000..bc2274be67 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rng @@ -0,0 +1,163 @@ + + + + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.xsd new file mode 100644 index 0000000000..a1f87dc4db --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/CveSchema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.xsd @@ -0,0 +1,307 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATTetragraph Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATTetragraph.xml CVE it is based on, instead of here. + + + + + + + + (U) + IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATTetragraph.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISM25X.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISM25X.csv new file mode 100644 index 0000000000..a8a4e09d83 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISM25X.csv @@ -0,0 +1,158 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","AEA","(U) "," + When using a source document that contains portions of Restricted Data (RD) + or Formerly Restricted Data (FRD) where the RD/FRD source document(s) + do not have declassification instructions, the derivatively classified + document shall not contain a declassification date or event on the + Declassify On line. The following shall be annotated on the Declassify On + line: "Not Applicable or (N/A) to RD/FRD portions" and + "See source list for NSI portions" separated by a period. + The source list must include the declassification instruction + for each of the source documents classified under E.O. 13526 and + shall not appear in the classification authority block + " +"(U) ","NATO","(U) "," + Since NATO information is not to be declassified or downgraded without the prior consent + of NATO, the “Declassify on” line of documents that commingle information classified by + NATO and U.S. classified NSI, will read “N/A to NATO portions. + See source list for NSI portions.” + The NSI source list will appear beneath the classification authority block + in a manner that clearly identifies it as separate and distinct. + " +"(U) ","NATO-AEA","(U) "," + Handles special case of BOTH NATO and AEA as a single exemption. + " +"(U) ","25X1","(U) "," + Reveal the identity of a confidential + human source, a human intelligence source, + a relationship with an intelligence or security + service of a foreign government or + international organization, or a non-human + intelligence source; or impair the + effectiveness of an intelligence method + currently in use, available for use, or under + development. + " +"(U) ","25X1-EO-12951","(U) "," + "25X1, EO 12951" (prescribed by the DNI for use on information described in E.O. 12951, + Release of Imagery Acquired by Space-Based National Intelligence Reconnaissance Systems) + " +"(U) ","25X2","(U) "," + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + " +"(U) ","25X3","(U) "," + Reveal information that would + impair U.S. cryptologic systems or activities. + " +"(U) ","25X4","(U) "," + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + " +"(U) ","25X5","(U) "," + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans;" +"(U) ","25X6","(U) "," + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + " +"(U) ","25X7","(U) "," + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + " +"(U) ","25X8","(U) "," + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + " +"(U) ","25X9","(U) "," + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + " +"(U) ","50X1","(U) "," + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + " +"(U) ","50X1-HUM","(U) "," + When the information clearly and + demonstrably could be expected to + reveal the identity of a confidential + human source or a human intelligence + source. + " +"(U) ","50X2","(U) "," + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + " +"(U) ","50X2-WMD","(U) "," + When the information clearly and + demonstrably could reveal key design + concepts of weapons of mass + destruction. + " +"(U) ","50X3","(U) "," + Reveal information that would + impair U.S. cryptologic systems or activities. + " +"(U) ","50X4","(U) "," + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + " +"(U) ","50X5","(U) "," + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans;" +"(U) ","50X6","(U) "," + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + " +"(U) ","50X7","(U) "," + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + " +"(U) ","50X8","(U) "," + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + " +"(U) ","50X9","(U) "," + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + " + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISM25X.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISM25X.xml new file mode 100644 index 0000000000..d76ac6f217 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISM25X.xml @@ -0,0 +1,257 @@ + + + + + + urn:us:gov:ic:cvenum:ism:25x + CVEnumISM25X + All currently authorized authority block declass date/event exemptions. This CVE is used by @ism:declassException. + + 2012-01-04T02:15:00-04:00 + + Marking Classified National Security Information Directive No. 1 + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + AEA + + When using a source document that contains portions of Restricted Data (RD) + or Formerly Restricted Data (FRD) where the RD/FRD source document(s) + do not have declassification instructions, the derivatively classified + document shall not contain a declassification date or event on the + Declassify On line. The following shall be annotated on the Declassify On + line: "Not Applicable or (N/A) to RD/FRD portions" and + "See source list for NSI portions" separated by a period. + The source list must include the declassification instruction + for each of the source documents classified under E.O. 13526 and + shall not appear in the classification authority block + + + + + NATO + + Since NATO information is not to be declassified or downgraded without the prior consent + of NATO, the “Declassify on” line of documents that commingle information classified by + NATO and U.S. classified NSI, will read “N/A to NATO portions. + See source list for NSI portions.” + The NSI source list will appear beneath the classification authority block + in a manner that clearly identifies it as separate and distinct. + + + + + NATO-AEA + + Handles special case of BOTH NATO and AEA as a single exemption. + + + + 25X1 + + Reveal the identity of a confidential + human source, a human intelligence source, + a relationship with an intelligence or security + service of a foreign government or + international organization, or a non-human + intelligence source; or impair the + effectiveness of an intelligence method + currently in use, available for use, or under + development. + + + + 25X1-EO-12951 + + "25X1, EO 12951" (prescribed by the DNI for use on information described in E.O. 12951, + Release of Imagery Acquired by Space-Based National Intelligence Reconnaissance Systems) + + + + 25X2 + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + 25X3 + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + 25X4 + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + 25X5 + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + 25X6 + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + 25X7 + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + 25X8 + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + 25X9 + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + 50X1 + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + 50X1-HUM + + When the information clearly and + demonstrably could be expected to + reveal the identity of a confidential + human source or a human intelligence + source. + + + + 50X2 + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + 50X2-WMD + + When the information clearly and + demonstrably could reveal key design + concepts of weapons of mass + destruction. + + + + 50X3 + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + 50X4 + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + 50X5 + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + 50X6 + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + 50X7 + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + 50X8 + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + 50X9 + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAtomicEnergyMarkings.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAtomicEnergyMarkings.csv new file mode 100644 index 0000000000..b79457c1e0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAtomicEnergyMarkings.csv @@ -0,0 +1,10 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","RD","(U) ","RESTRICTED DATA" +"(U) ","RD-CNWDI","(U) ","RD-CRITICAL NUCLEAR WEAPON DESIGN INFORMATION" +"(U) ","RD-SG-((14)|(15)|(18)|(20))","(U) ","RD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20." +"(U) ","FRD","(U) ","FORMERLY RESTRICTED DATA" +"(U) ","FRD-SG-((14)|(15)|(18)|(20))","(U) ","FRD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20." +"(U) ","DCNI","(U) ","DoD CONTROLLED NUCLEAR INFORMATION" +"(U) ","UCNI","(U) ","DoE CONTROLLED NUCLEAR INFORMATION" +"(U) ","TFNI","(U) ","TRANSCLASSIFIED FOREIGN NUCLEAR INFORMATION" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAtomicEnergyMarkings.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAtomicEnergyMarkings.xml new file mode 100644 index 0000000000..72b45db0d7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAtomicEnergyMarkings.xml @@ -0,0 +1,55 @@ + + + + urn:us:gov:ic:cvenum:ism:atomicEnergyMarkings + CVEnumISMatomicEnergyMarkings + All currently valid Atomic Energy information markings from the published register. This CVE is used by @ism:atomicEnergyMarkings. + + 2011-02-04T00:22:00-04:00 + + IC Systems Register and Manual + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + RD + RESTRICTED DATA + + + RD-CNWDI + RD-CRITICAL NUCLEAR WEAPON DESIGN INFORMATION + + + RD-SG-((14)|(15)|(18)|(20)) + RD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + FRD + FORMERLY RESTRICTED DATA + + + FRD-SG-((14)|(15)|(18)|(20)) + FRD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + DCNI + DoD CONTROLLED NUCLEAR INFORMATION + + + UCNI + DoE CONTROLLED NUCLEAR INFORMATION + + + TFNI + TRANSCLASSIFIED FOREIGN NUCLEAR INFORMATION + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAttributes.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAttributes.csv new file mode 100644 index 0000000000..a97bed1e65 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAttributes.csv @@ -0,0 +1,40 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","compliesWith","(U) ","compliesWith attribute" +"(U) ","classification","(U) ","classification attribute" +"(U) ","ownerProducer","(U) ","ownerProducer attribute" +"(U) ","SCIcontrols","(U) ","SCIcontrols attribute" +"(U) ","SARIdentifier","(U) ","SARIdentifier attribute" +"(U) ","atomicEnergyMarkings","(U) ","atomicEnergyMarkings attribute" +"(U) ","disseminationControls","(U) ","disseminationControls attribute" +"(U) ","FGIsourceOpen","(U) ","FGIsourceOpen attribute" +"(U) ","FGIsourceProtected","(U) ","FGIsourceProtected attribute" +"(U) ","hasApproximateMarkings","(U) ","hasApproximateMarkings attribute" +"(U) ","releasableTo","(U) ","releasableTo attribute" +"(U) ","displayOnlyTo","(U) ","displayOnlyTo attribute" +"(U) ","nonICmarkings","(U) ","nonICmarkings attribute" +"(U) ","classifiedBy","(U) ","classifiedBy attribute" +"(U) ","derivativelyClassifiedBy","(U) ","derivativelyClassifiedBy attribute" +"(U) ","classificationReason","(U) ","classificationReason attribute" +"(U) ","nonUSControls","(U) ","nonUSControls attribute" +"(U) ","derivedFrom","(U) ","derivedFrom attribute" +"(U) ","declassDate","(U) ","declassDate attribute" +"(U) ","declassEvent","(U) ","declassEvent attribute" +"(U) ","declassException","(U) ","declassException attribute" +"(U) ","resourceElement","(U) ","resourceElement attribute" +"(U) ","excludeFromRollup","(U) ","excludeFromRollup attribute" +"(U) ","createDate","(U) ","createDate attribute" +"(U) ","compilationReason","(U) ","compilationReason attribute" +"(U) ","noAggregation","(U) ","noAggregation attribute" +"(U) ","noticeType","(U) ","noticeType attribute" +"(U) ","externalNotice","(U) ","externalNotice attribute" +"(U) ","DESVersion","(U) ","DESVersion attribute" +"(U) ","ISMCATCESVersion","(U) ","ISMCATCESVersion attribute" +"(U) ","noticeDate","(U) ","notice date attribute" +"(U) ","noticeReason","(U) ","notice Reason attribute" +"(U) ","exemptFrom","(U) ","exemptFrom attribute" +"(U) ","unregisteredNoticeType","(U) ","unregisteredNoticeType attribute" +"(U) ","pocType","(U) ","Specifies a point-of contact for a security-related + requirement." +"(U) ","joint","(U) ","Indicator that multiple ownerProducers should be interpreted + as JOINT." + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAttributes.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAttributes.xml new file mode 100644 index 0000000000..790a045def --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMAttributes.xml @@ -0,0 +1,169 @@ + + + + urn:us:gov:ic:cvenum:ism:attributes + CVEnumISMAttributes + All currently authorized ISM attribute names. + This file is not imported by the schema. + + 2010-05-30T16:52:00-04:00 + + ISM schema + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + compliesWith + compliesWith attribute + + + classification + classification attribute + + + ownerProducer + ownerProducer attribute + + + SCIcontrols + SCIcontrols attribute + + + SARIdentifier + SARIdentifier attribute + + + atomicEnergyMarkings + atomicEnergyMarkings attribute + + + disseminationControls + disseminationControls attribute + + + FGIsourceOpen + FGIsourceOpen attribute + + + FGIsourceProtected + FGIsourceProtected attribute + + + hasApproximateMarkings + hasApproximateMarkings attribute + + + releasableTo + releasableTo attribute + + + displayOnlyTo + displayOnlyTo attribute + + + nonICmarkings + nonICmarkings attribute + + + classifiedBy + classifiedBy attribute + + + derivativelyClassifiedBy + derivativelyClassifiedBy attribute + + + classificationReason + classificationReason attribute + + + nonUSControls + nonUSControls attribute + + + derivedFrom + derivedFrom attribute + + + declassDate + declassDate attribute + + + declassEvent + declassEvent attribute + + + declassException + declassException attribute + + + resourceElement + resourceElement attribute + + + excludeFromRollup + excludeFromRollup attribute + + + createDate + createDate attribute + + + compilationReason + compilationReason attribute + + + noAggregation + noAggregation attribute + + + noticeType + noticeType attribute + + + externalNotice + externalNotice attribute + + + DESVersion + DESVersion attribute + + + ISMCATCESVersion + ISMCATCESVersion attribute + + + noticeDate + notice date attribute + + + noticeReason + notice Reason attribute + + + exemptFrom + exemptFrom attribute + + + unregisteredNoticeType + unregisteredNoticeType attribute + + + pocType + Specifies a point-of contact for a security-related + requirement. + + + joint + Indicator that multiple ownerProducers should be interpreted + as JOINT. + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationAll.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationAll.csv new file mode 100644 index 0000000000..0a0fbfe4a4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationAll.csv @@ -0,0 +1,7 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","R","(U) ","RESTRICTED" +"(U) ","C","(U) ","CONFIDENTIAL" +"(U) ","S","(U) ","SECRET" +"(U) ","TS","(U) ","TOP SECRET" +"(U) ","U","(U) ","UNCLASSIFIED" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationAll.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationAll.xml new file mode 100644 index 0000000000..f45f985aac --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationAll.xml @@ -0,0 +1,37 @@ + + + + urn:us:gov:ic:cvenum:ism:classification:all + CVEnumISMClassificationAll + All currently valid classification marks. This CVE is used by @ism:classification. + 2010-05-31T21:22:00-04:00 + IC Systems Register and Manual + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + R + RESTRICTED + + + C + CONFIDENTIAL + + + S + SECRET + + + TS + TOP SECRET + + + U + UNCLASSIFIED + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationUS.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationUS.csv new file mode 100644 index 0000000000..a1ca776dc2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationUS.csv @@ -0,0 +1,6 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","TS","(U) ","TOP SECRET" +"(U) ","S","(U) ","SECRET" +"(U) ","C","(U) ","CONFIDENTIAL" +"(U) ","U","(U) ","UNCLASSIFIED" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationUS.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationUS.xml new file mode 100644 index 0000000000..39521cc18a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMClassificationUS.xml @@ -0,0 +1,41 @@ + + + + urn:us:gov:ic:cvenum:ism:classification:us + CVEnumISMClassificationUS + All currently valid US classification marks. + This file is not imported by the schema. + + 2010-03-12T11:29:00-04:00 + + IC Systems Register and Manual + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + TS + TOP SECRET + + + S + SECRET + + + C + CONFIDENTIAL + + + U + UNCLASSIFIED + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMCompliesWith.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMCompliesWith.csv new file mode 100644 index 0000000000..31bbb87de9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMCompliesWith.csv @@ -0,0 +1,16 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","USGov","(U) ","Document claims compliance with all rules encoded in ISM for + documents produced by the US Federal Government. This is the minimum set of rules + for US documents to adhere to, and all US documents should claim compliance with + USGov. For example, a US Intelligence Community document should claim + ism:compliesWith="USGov USIC"." +"(U) ","USIC","(U) ","Document claims compliance with all rules encoded in ISM for + documents produced by the US Intelligence Community. Documents that claim compliance + with USIC MUST also claim compliance with USGov." +"(U) ","USDOD","(U) ","Document claims compliance with all rules encoded in ISM for + documents produced by the US Department of Defense. Documents that claim compliance + with USDOD MUST also claim compliance with USGov." +"(U) ","OtherAuthority","(U) ","Document claims compliance with an authority other than the + USGov, USIC, or USDOD. This token is not allowed if the ism:ownerProducer contains + USA." + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMCompliesWith.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMCompliesWith.xml new file mode 100644 index 0000000000..1e21e012f6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMCompliesWith.xml @@ -0,0 +1,53 @@ + + + + + + urn:us:gov:ic:cvenum:ism:complieswith + CVEnumISMCompliesWith + ISM rule sets documents may comply + with. This CVE is used by @ism:compliesWith. + + 2010-05-30T16:52:00-04:00 + + ISM schema + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + USGov + Document claims compliance with all rules encoded in ISM for + documents produced by the US Federal Government. This is the minimum set of rules + for US documents to adhere to, and all US documents should claim compliance with + USGov. For example, a US Intelligence Community document should claim + ism:compliesWith="USGov USIC". + + + USIC + Document claims compliance with all rules encoded in ISM for + documents produced by the US Intelligence Community. Documents that claim compliance + with USIC MUST also claim compliance with USGov. + + + USDOD + Document claims compliance with all rules encoded in ISM for + documents produced by the US Department of Defense. Documents that claim compliance + with USDOD MUST also claim compliance with USGov. + + + OtherAuthority + Document claims compliance with an authority other than the + USGov, USIC, or USDOD. This token is not allowed if the ism:ownerProducer contains + USA. + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMDissem.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMDissem.csv new file mode 100644 index 0000000000..c147b893f3 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMDissem.csv @@ -0,0 +1,15 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","RS","(U) ","RISK SENSITIVE" +"(U) ","FOUO","(U) ","FOR OFFICIAL USE ONLY" +"(U) ","OC","(U) ","ORIGINATOR CONTROLLED" +"(U) ","OC-USGOV","(U) ","ORIGINATOR CONTROLLED US GOVERNMENT" +"(U) ","IMC","(U) ","CONTROLLED IMAGERY" +"(U) ","NF","(U) ","NOT RELEASABLE TO FOREIGN NATIONALS" +"(U) ","PR","(U) ","CAUTION-PROPRIETARY INFORMATION INVOLVED" +"(U) ","REL","(U) ","AUTHORIZED FOR RELEASE TO" +"(U) ","RELIDO","(U) ","RELEASABLE BY INFORMATION DISCLOSURE OFFICIAL" +"(U) ","EYES","(U) ","EYES ONLY" +"(U) ","DSEN","(U) ","DEA SENSITIVE" +"(U) ","FISA","(U) ","FOREIGN INTELLIGENCE SURVEILLANCE ACT" +"(U) ","DISPLAYONLY","(U) ","AUTHORIZED FOR DISPLAY BUT NOT RELEASE TO" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMDissem.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMDissem.xml new file mode 100644 index 0000000000..fcf6cd2ad0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMDissem.xml @@ -0,0 +1,72 @@ + + + + + urn:us:gov:ic:cvenum:ism:dissem + CVEnumISMDissem + All currently valid Dissemination controls from the published register. This CVE is used by @ism:disseminationControls. + 2012-01-04T00:14:00-04:00 + IC Systems Register and Manual + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + RS + RISK SENSITIVE + + + FOUO + FOR OFFICIAL USE ONLY + + + OC + ORIGINATOR CONTROLLED + + + OC-USGOV + ORIGINATOR CONTROLLED US GOVERNMENT + + + IMC + CONTROLLED IMAGERY + + + NF + NOT RELEASABLE TO FOREIGN NATIONALS + + + PR + CAUTION-PROPRIETARY INFORMATION INVOLVED + + + REL + AUTHORIZED FOR RELEASE TO + + + RELIDO + RELEASABLE BY INFORMATION DISCLOSURE OFFICIAL + + + EYES + EYES ONLY + + + DSEN + DEA SENSITIVE + + + FISA + FOREIGN INTELLIGENCE SURVEILLANCE ACT + + + DISPLAYONLY + AUTHORIZED FOR DISPLAY BUT NOT RELEASE TO + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMElements.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMElements.csv new file mode 100644 index 0000000000..35186475f6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMElements.csv @@ -0,0 +1,7 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","Notice","(U) ","Notice element" +"(U) ","NoticeText","(U) ","NoticeText element" +"(U) ","NoticeList","(U) ","NoticeList element" +"(U) ","NoticeExternal","(U) ","NoticeExternal element" +"(U) ","NoticeExternalList","(U) ","NoticeExternalList element" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMElements.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMElements.xml new file mode 100644 index 0000000000..a364b1b116 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMElements.xml @@ -0,0 +1,42 @@ + + + + urn:us:gov:ic:cvenum:ism:attributes + CVEnumISMElements + All currently authorized ISM element names + + 2011-04-15T15:16:00-05:00 + + ISM schema + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + Notice + Notice element + + + NoticeText + NoticeText element + + + NoticeList + NoticeList element + + + NoticeExternal + NoticeExternal element + + + NoticeExternalList + NoticeExternalList element + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMExemptFrom.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMExemptFrom.csv new file mode 100644 index 0000000000..d14d2ac1d8 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMExemptFrom.csv @@ -0,0 +1,9 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","IC_710_MANDATORY_FDR","(U) ","Document claims exemption from ICD-710 rules mandating the + use of Foreign Disclosure and Release markings that have been encoded in ISM. + Currently, the requirement for FD&R is only mandatory for Disseminated Analytic + Product; however, it is strongly encouraged otherwise." +"(U) ","DOD_DISTRO_STATEMENT","(U) ","Document claims exemption from the rules in DoD5230.24 + requiring DoD Distribution Statements that have been encoded into + ISM." + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMExemptFrom.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMExemptFrom.xml new file mode 100644 index 0000000000..761ca82550 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMExemptFrom.xml @@ -0,0 +1,36 @@ + + + + urn:us:gov:ic:cvenum:ism:exemptfrom + CVEnumISMExemptFrom + Current rule set names that documents may comply + with. This CVE is used by @ism:exemptFrom. + + 2010-05-30T16:52:00-04:00 + + ISM schema + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + IC_710_MANDATORY_FDR + Document claims exemption from ICD-710 rules mandating the + use of Foreign Disclosure and Release markings that have been encoded in ISM. + Currently, the requirement for FD&R is only mandatory for Disseminated Analytic + Product; however, it is strongly encouraged otherwise. + + + DOD_DISTRO_STATEMENT + Document claims exemption from the rules in DoD5230.24 + requiring DoD Distribution Statements that have been encoded into + ISM. + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonIC.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonIC.csv new file mode 100644 index 0000000000..954ccbad79 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonIC.csv @@ -0,0 +1,11 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","DS","(U) ","LIMITED DISTRIBUTION" +"(U) ","XD","(U) ","EXCLUSIVE DISTRIBUTION" +"(U) ","ND","(U) ","NO DISTRIBUTION" +"(U) ","SBU","(U) ","SENSITIVE BUT UNCLASSIFIED" +"(U) ","SBU-NF","(U) ","SENSITIVE BUT UNCLASSIFIED NOFORN" +"(U) ","LES","(U) ","LAW ENFORCEMENT SENSITIVE" +"(U) ","LES-NF","(U) ","LAW ENFORCEMENT SENSITIVE NOFORN" +"(U) ","SSI","(U) ","SENSITIVE SECURITY INFORMATION" +"(U) ","NNPI","(U) ","NAVAL NUCLEAR PROPULSION INFORMATION" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonIC.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonIC.xml new file mode 100644 index 0000000000..7fcf2bd398 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonIC.xml @@ -0,0 +1,64 @@ + + + + urn:us:gov:ic:cvenum:ism:nonic + CVEnumISMNonIC + All currently valid Non-IC markings from the published register. This CVE is used by @ism:nonICmarkings. + + 2012-01-04T00:14:00-04:00 + + IC Systems Register and Manual + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + DS + LIMITED DISTRIBUTION + + + + XD + EXCLUSIVE DISTRIBUTION + + + ND + NO DISTRIBUTION + + + SBU + SENSITIVE BUT UNCLASSIFIED + + + SBU-NF + SENSITIVE BUT UNCLASSIFIED NOFORN + + + LES + LAW ENFORCEMENT SENSITIVE + + + LES-NF + LAW ENFORCEMENT SENSITIVE NOFORN + + + SSI + SENSITIVE SECURITY INFORMATION + + + NNPI + NAVAL NUCLEAR PROPULSION INFORMATION + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonUSControls.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonUSControls.csv new file mode 100644 index 0000000000..144332f9b0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonUSControls.csv @@ -0,0 +1,5 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","ATOMAL","(U) ","NATO Atomal mark" +"(U) ","BOHEMIA","(U) ","NATO Bohemia mark" +"(U) ","BALK","(U) ","NATO Balk mark" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonUSControls.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonUSControls.xml new file mode 100644 index 0000000000..bf7d3ac525 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNonUSControls.xml @@ -0,0 +1,34 @@ + + + + urn:us:gov:ic:cvenum:ism:nonuscontrols + CVEnumISMNonUSControls + NonUS Control markings supported by ISM. This CVE is used by @ism:nonUSControls. + + 2010-06-06T20:11:00-04:00 + + ISM schema + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + ATOMAL + NATO Atomal mark + + + BOHEMIA + NATO Bohemia mark + + + BALK + NATO Balk mark + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNotice.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNotice.csv new file mode 100644 index 0000000000..d7bf2b5f1b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNotice.csv @@ -0,0 +1,24 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","FISA","(U) ","FISA Warning statement" +"(U) ","IMC","(U) ","IMCON Warning statement" +"(U) ","CNWDI","(U) ","Controled Nuclear Weapon Design Information Warning statement" +"(U) ","RD","(U) ","RD Warning statement" +"(U) ","FRD","(U) ","FRD Warning statement" +"(U) ","DS","(U) ","LIMDIS caveat" +"(U) ","LES","(U) ","LES Notice" +"(U) ","LES-NF","(U) ","LES-NF Notice" +"(U) ","DSEN","(U) ","DSEN Notice" +"(U) ","DoD-Dist-A","(U) ","DoD Distribution statement A from DoD Directive 5230.24" +"(U) ","DoD-Dist-B","(U) ","DoD Distribution statement B from DoD Directive 5230.24" +"(U) ","DoD-Dist-C","(U) ","DoD Distribution statement C from DoD Directive 5230.24" +"(U) ","DoD-Dist-D","(U) ","DoD Distribution statement D from DoD Directive 5230.24" +"(U) ","DoD-Dist-E","(U) ","DoD Distribution statement E from DoD Directive 5230.24" +"(U) ","DoD-Dist-F","(U) ","DoD Distribution statement F from DoD Directive 5230.24" +"(U) ","DoD-Dist-X","(U) ","DoD Distribution statement X from DoD Directive 5230.24" +"(U) ","US-Person","(U) ","US Person info Notice" +"(U) ","pre13526ORCON","(U) ","Indicates that an instance document must abide by rules pertaining to ORIGINATOR CONTROLLED data issued prior to Executive Order 13526." +"(U) ","POC","(U) ","Indicates that the contents of this notice specify the contact information for a required point-of-contact." +"(U) ","COMSEC","(U) ","COMSEC Notice" +"(U) ","SSI","(U) ","Indicates that this is the notice for Sensitive Security Information" +"(U) ","RSEN","(U) ","Risk Sensitive Notice" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNotice.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNotice.xml new file mode 100644 index 0000000000..1c270d69b0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMNotice.xml @@ -0,0 +1,113 @@ + + + + urn:us:gov:ic:cvenum:ism:notice + CVEnumISMNotice + All currently authorized Notice values. This CVE is used by @ism:noticeType. + + 2010-03-12T11:29:00-04:00 + + DoD Instruction 5200.01 + ISOO 32 CFR Parts 2001 and 2003 + DoD Instruction 5230.24 + + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + FISA + FISA Warning statement + + + IMC + IMCON Warning statement + + + CNWDI + Controled Nuclear Weapon Design Information Warning statement + + + RD + RD Warning statement + + + FRD + FRD Warning statement + + + DS + LIMDIS caveat + + + LES + LES Notice + + + LES-NF + LES-NF Notice + + + DSEN + DSEN Notice + + + DoD-Dist-A + DoD Distribution statement A from DoD Directive 5230.24 + + + DoD-Dist-B + DoD Distribution statement B from DoD Directive 5230.24 + + + DoD-Dist-C + DoD Distribution statement C from DoD Directive 5230.24 + + + DoD-Dist-D + DoD Distribution statement D from DoD Directive 5230.24 + + + DoD-Dist-E + DoD Distribution statement E from DoD Directive 5230.24 + + + DoD-Dist-F + DoD Distribution statement F from DoD Directive 5230.24 + + + DoD-Dist-X + DoD Distribution statement X from DoD Directive 5230.24 + + + US-Person + US Person info Notice + + + pre13526ORCON + Indicates that an instance document must abide by rules pertaining to ORIGINATOR CONTROLLED data issued prior to Executive Order 13526. + + + POC + Indicates that the contents of this notice specify the contact information for a required point-of-contact. + + + COMSEC + COMSEC Notice + + + SSI + Indicates that this is the notice for Sensitive Security Information + + + RSEN + Risk Sensitive Notice + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMPocType.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMPocType.csv new file mode 100644 index 0000000000..f7b5e6797e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMPocType.csv @@ -0,0 +1,9 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","ICD-710","(U) ","Point-of-contact for an ICD-710 notice." +"(U) ","DoD-Dist-B","(U) ","DoD Distribution statement B from DoD Directive 5230.24" +"(U) ","DoD-Dist-C","(U) ","DoD Distribution statement C from DoD Directive 5230.24" +"(U) ","DoD-Dist-D","(U) ","DoD Distribution statement D from DoD Directive 5230.24" +"(U) ","DoD-Dist-E","(U) ","DoD Distribution statement E from DoD Directive 5230.24" +"(U) ","DoD-Dist-F","(U) ","DoD Distribution statement F from DoD Directive 5230.24" +"(U) ","DoD-Dist-X","(U) ","DoD Distribution statement X from DoD Directive 5230.24" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMPocType.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMPocType.xml new file mode 100644 index 0000000000..d1d65af361 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMPocType.xml @@ -0,0 +1,52 @@ + + + + urn:us:gov:ic:cvenum:ism:pocType + CVEnumISMPocType + All currently authorized types for ISM-related points-of-contact. This CVE is used by @ism:pocType. + + 2011-07-13T14:42:00-04:00 + + DoD Directive 5230.24 + ICD-710 + Originator Controlled Memo, March 11, 2011 + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + ICD-710 + Point-of-contact for an ICD-710 notice. + + + DoD-Dist-B + DoD Distribution statement B from DoD Directive 5230.24 + + + DoD-Dist-C + DoD Distribution statement C from DoD Directive 5230.24 + + + DoD-Dist-D + DoD Distribution statement D from DoD Directive 5230.24 + + + DoD-Dist-E + DoD Distribution statement E from DoD Directive 5230.24 + + + DoD-Dist-F + DoD Distribution statement F from DoD Directive 5230.24 + + + DoD-Dist-X + DoD Distribution statement X from DoD Directive 5230.24 + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSAR.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSAR.csv new file mode 100644 index 0000000000..553cbe0003 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSAR.csv @@ -0,0 +1,2 @@ +"ValueClassification","Value","DescriptionClassification","Description" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSAR.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSAR.xml new file mode 100644 index 0000000000..ba342acdc9 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSAR.xml @@ -0,0 +1,56 @@ + + + + urn:us:gov:ic:cvenum:ism:sar + CVEnumISMSAR + All currently valid SAR controls from the published register. This CVE is used by @ism:SARIdentifier. + + 2010-03-12T11:29:00-04:00 + + IC Systems Register and Manual + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSCIControls.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSCIControls.csv new file mode 100644 index 0000000000..8dac97fee4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSCIControls.csv @@ -0,0 +1,14 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","HCS","(U) ","HCS" +"(U) ","HCS-O","(U) ","HCS-O" +"(U) ","HCS-P","(U) ","HCS-P" +"(U) ","RSV","(U) ","RESERVE" +"(U) ","SI","(U) ","SPECIAL INTELLIGENCE" +"(U) ","SI-EU","(U) ","ECRU" +"(U) ","SI-G","(U) ","SI-GAMMA" +"(U) ","SI-NK","(U) ","NONBOOK" +"(U) ","TK","(U) ","TALENT KEYHOLE" +"(U) ","TK-BLFH","(U) ","BLUEFISH" +"(U) ","TK-IDIT","(U) ","IDITAROD" +"(U) ","TK-KAND","(U) ","KANDIK" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSCIControls.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSCIControls.xml new file mode 100644 index 0000000000..5b6d819fe4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISM/CVEnumISMSCIControls.xml @@ -0,0 +1,68 @@ + + + + urn:us:gov:ic:cvenum:ism:scicontrols + CVEnumISMSCIControls + All currently valid SCI controls from the published register. This CVE is used by @ism:SCIcontrols. + + 2019-12-23T16:24:50.911Z + + IC Systems Register and Manual + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + HCS + HCS + + + HCS-O + HCS-O + + + HCS-P + HCS-P + + + RSV + RESERVE + + + SI + SPECIAL INTELLIGENCE + + + SI-EU + ECRU + + + SI-G + SI-GAMMA + + + SI-NK + NONBOOK + + + TK + TALENT KEYHOLE + + + TK-BLFH + BLUEFISH + + + TK-IDIT + IDITAROD + + + TK-KAND + KANDIK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIOpen.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIOpen.csv new file mode 100644 index 0000000000..b8abd0436c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIOpen.csv @@ -0,0 +1,333 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","ABW","(U) ","Aruba" +"(U) ","AFG","(U) ","Islamic Republic of Afghanistan" +"(U) ","AGO","(U) ","Republic of Angola" +"(U) ","AIA","(U) ","Anguilla" +"(U) ","ALB","(U) ","Republic of Albania" +"(U) ","AND","(U) ","Principality of Andorra" +"(U) ","ARE","(U) ","United Arab Emirates" +"(U) ","ARG","(U) ","Argentine Republic" +"(U) ","ARM","(U) ","Republic of Armenia" +"(U) ","ASM","(U) ","Territory of American Samoa" +"(U) ","ATA","(U) ","Antarctica" +"(U) ","ATF","(U) ","French Southern and Antarctic Lands" +"(U) ","ATG","(U) ","Antigua and Barbuda" +"(U) ","AUS","(U) ","Commonwealth of Australia" +"(U) ","AUT","(U) ","Republic of Austria" +"(U) ","AX1","(U) ","Unknown" +"(U) ","AX2","(U) ","Guantanamo Bay Naval Base" +"(U) ","AX3","(U) ","Entity 6" +"(U) ","AZE","(U) ","Republic of Azerbaijan" +"(U) ","BDI","(U) ","Republic of Burundi" +"(U) ","BEL","(U) ","Kingdom of Belgium" +"(U) ","BEN","(U) ","Republic of Benin" +"(U) ","BES","(U) ","Bonaire, Sint Eustatius, and Saba" +"(U) ","BFA","(U) ","Burkina Faso" +"(U) ","BGD","(U) ","People’s Republic of Bangladesh" +"(U) ","BGR","(U) ","Republic of Bulgaria" +"(U) ","BHR","(U) ","Kingdom of Bahrain" +"(U) ","BHS","(U) ","Commonwealth of The Bahamas" +"(U) ","BIH","(U) ","Bosnia and Herzegovina" +"(U) ","BLM","(U) ","Saint Barthelemy" +"(U) ","BLR","(U) ","Republic of Belarus" +"(U) ","BLZ","(U) ","Belize" +"(U) ","BMU","(U) ","Bermuda" +"(U) ","BOL","(U) ","Plurinational State of Bolivia" +"(U) ","BRA","(U) ","Federative Republic of Brazil" +"(U) ","BRB","(U) ","Barbados" +"(U) ","BRN","(U) ","Brunei Darussalam" +"(U) ","BTN","(U) ","Kingdom of Bhutan" +"(U) ","BVT","(U) ","Bouvet Island" +"(U) ","BWA","(U) ","Republic of Botswana" +"(U) ","CAF","(U) ","Central African Republic" +"(U) ","CAN","(U) ","Canada" +"(U) ","CCK","(U) ","Territory of Cocos (Keeling) Islands" +"(U) ","CHE","(U) ","Swiss Confederation" +"(U) ","CHL","(U) ","Republic of Chile" +"(U) ","CHN","(U) ","People’s Republic of China" +"(U) ","CIV","(U) ","Republic of Côte d’Ivoire" +"(U) ","CMR","(U) ","Republic of Cameroon" +"(U) ","COD","(U) ","Democratic Republic of the Congo" +"(U) ","COG","(U) ","Republic of the Congo" +"(U) ","COK","(U) ","Cook Islands" +"(U) ","COL","(U) ","Republic of Colombia" +"(U) ","COM","(U) ","Union of the Comoros" +"(U) ","CPT","(U) ","Clipperton Island" +"(U) ","CPV","(U) ","Republic of Cabo Verde" +"(U) ","CRI","(U) ","Republic of Costa Rica" +"(U) ","CUB","(U) ","Republic of Cuba" +"(U) ","CUW","(U) ","Curaçao" +"(U) ","CXR","(U) ","Territory of Christmas Island" +"(U) ","CYM","(U) ","Cayman Islands" +"(U) ","CYP","(U) ","Republic of Cyprus" +"(U) ","CZE","(U) ","Czech Republic" +"(U) ","DEU","(U) ","Federal Republic of Germany" +"(U) ","DGA","(U) ","Diego Garcia" +"(U) ","DJI","(U) ","Republic of Djibouti" +"(U) ","DMA","(U) ","Commonwealth of Dominica" +"(U) ","DNK","(U) ","Kingdom of Denmark" +"(U) ","DOM","(U) ","Dominican Republic" +"(U) ","DZA","(U) ","People’s Democratic Republic of Algeria" +"(U) ","ECU","(U) ","Republic of Ecuador" +"(U) ","EGY","(U) ","Arab Republic of Egypt" +"(U) ","ERI","(U) ","State of Eritrea" +"(U) ","ESH","(U) ","Western Sahara" +"(U) ","ESP","(U) ","Kingdom of Spain" +"(U) ","EST","(U) ","Republic of Estonia" +"(U) ","ETH","(U) ","Federal Democratic Republic of Ethiopia" +"(U) ","FIN","(U) ","Republic of Finland" +"(U) ","FJI","(U) ","Republic of Fiji" +"(U) ","FLK","(U) ","Falkland Islands (Islas Malvinas)" +"(U) ","FRA","(U) ","French Republic" +"(U) ","FRO","(U) ","Faroe Islands" +"(U) ","FSM","(U) ","Federated States of Micronesia" +"(U) ","GAB","(U) ","Gabonese Republic" +"(U) ","GBR","(U) ","United Kingdom of Great Britain and Northern Ireland" +"(U) ","GEO","(U) ","Georgia" +"(U) ","GGY","(U) ","Bailiwick of Guernsey" +"(U) ","GHA","(U) ","Republic of Ghana" +"(U) ","GIB","(U) ","Gibraltar" +"(U) ","GIN","(U) ","Republic of Guinea" +"(U) ","GLP","(U) ","Region of Guadeloupe" +"(U) ","GMB","(U) ","Republic of The Gambia" +"(U) ","GNB","(U) ","Republic of Guinea-Bissau" +"(U) ","GNQ","(U) ","Republic of Equatorial Guinea" +"(U) ","GRC","(U) ","Hellenic Republic" +"(U) ","GRD","(U) ","Grenada" +"(U) ","GRL","(U) ","Greenland" +"(U) ","GTM","(U) ","Republic of Guatemala" +"(U) ","GUF","(U) ","Territorial Collectivity of Guiana" +"(U) ","GUM","(U) ","Territory of Guam" +"(U) ","GUY","(U) ","Co-operative Republic of Guyana" +"(U) ","HKG","(U) ","Hong Kong Special Administrative Region" +"(U) ","HMD","(U) ","Territory of Heard Island and McDonald Islands" +"(U) ","HND","(U) ","Republic of Honduras" +"(U) ","HRV","(U) ","Republic of Croatia" +"(U) ","HTI","(U) ","Republic of Haiti" +"(U) ","HUN","(U) ","Hungary" +"(U) ","IDN","(U) ","Republic of Indonesia" +"(U) ","IMN","(U) ","Isle of Man" +"(U) ","IND","(U) ","Republic of India" +"(U) ","IOT","(U) ","British Indian Ocean Territory" +"(U) ","IRL","(U) ","Ireland" +"(U) ","IRN","(U) ","Islamic Republic of Iran" +"(U) ","IRQ","(U) ","Republic of Iraq" +"(U) ","ISL","(U) ","Republic of Iceland" +"(U) ","ISR","(U) ","State of Israel" +"(U) ","ITA","(U) ","Italian Republic" +"(U) ","JAM","(U) ","Jamaica" +"(U) ","JEY","(U) ","Bailiwick of Jersey" +"(U) ","JOR","(U) ","Hashemite Kingdom of Jordan" +"(U) ","JPN","(U) ","Japan" +"(U) ","KAZ","(U) ","Republic of Kazakhstan" +"(U) ","KEN","(U) ","Republic of Kenya" +"(U) ","KGZ","(U) ","Kyrgyz Republic" +"(U) ","KHM","(U) ","Kingdom of Cambodia" +"(U) ","KIR","(U) ","Republic of Kiribati" +"(U) ","KNA","(U) ","Federation of Saint Kitts and Nevis" +"(U) ","KOR","(U) ","Republic of Korea" +"(U) ","KWT","(U) ","State of Kuwait" +"(U) ","LAO","(U) ","Lao People’s Democratic Republic" +"(U) ","LBN","(U) ","Lebanese Republic" +"(U) ","LBR","(U) ","Republic of Liberia" +"(U) ","LBY","(U) ","Libya" +"(U) ","LCA","(U) ","Saint Lucia" +"(U) ","LIE","(U) ","Principality of Liechtenstein" +"(U) ","LKA","(U) ","Democratic Socialist Republic of Sri Lanka" +"(U) ","LSO","(U) ","Kingdom of Lesotho" +"(U) ","LTU","(U) ","Republic of Lithuania" +"(U) ","LUX","(U) ","Grand Duchy of Luxembourg" +"(U) ","LVA","(U) ","Republic of Latvia" +"(U) ","MAC","(U) ","Macau Special Administrative Region" +"(U) ","MAF","(U) ","Saint Martin" +"(U) ","MAR","(U) ","Kingdom of Morocco" +"(U) ","MCO","(U) ","Principality of Monaco" +"(U) ","MDA","(U) ","Republic of Moldova" +"(U) ","MDG","(U) ","Republic of Madagascar" +"(U) ","MDV","(U) ","Republic of Maldives" +"(U) ","MEX","(U) ","United Mexican States" +"(U) ","MHL","(U) ","Republic of the Marshall Islands" +"(U) ","MKD","(U) ","Republic of Macedonia" +"(U) ","MLI","(U) ","Republic of Mali" +"(U) ","MLT","(U) ","Republic of Malta" +"(U) ","MMR","(U) ","Union of Burma" +"(U) ","MNE","(U) ","Montenegro" +"(U) ","MNG","(U) ","Mongolia" +"(U) ","MNP","(U) ","Commonwealth of the Northern Mariana Islands" +"(U) ","MOZ","(U) ","Republic of Mozambique" +"(U) ","MRT","(U) ","Islamic Republic of Mauritania" +"(U) ","MSR","(U) ","Montserrat" +"(U) ","MTQ","(U) ","Territorial Collectivity of Martinique" +"(U) ","MUS","(U) ","Republic of Mauritius" +"(U) ","MWI","(U) ","Republic of Malawi" +"(U) ","MYS","(U) ","Malaysia" +"(U) ","MYT","(U) ","Department of Mayotte" +"(U) ","NAM","(U) ","Republic of Namibia" +"(U) ","NCL","(U) ","New Caledonia" +"(U) ","NER","(U) ","Republic of Niger" +"(U) ","NFK","(U) ","Territory of Norfolk Island" +"(U) ","NGA","(U) ","Federal Republic of Nigeria" +"(U) ","NIC","(U) ","Republic of Nicaragua" +"(U) ","NIU","(U) ","Niue" +"(U) ","NLD","(U) ","Kingdom of the Netherlands" +"(U) ","NOR","(U) ","Kingdom of Norway" +"(U) ","NPL","(U) ","Federal Democratic Republic of Nepal" +"(U) ","NRU","(U) ","Republic of Nauru" +"(U) ","NZL","(U) ","New Zealand" +"(U) ","OMN","(U) ","Sultanate of Oman" +"(U) ","PAK","(U) ","Islamic Republic of Pakistan" +"(U) ","PAN","(U) ","Republic of Panama" +"(U) ","PCN","(U) ","Pitcairn, Henderson, Ducie, and Oeno Islands" +"(U) ","PER","(U) ","Republic of Peru" +"(U) ","PHL","(U) ","Republic of the Philippines" +"(U) ","PLW","(U) ","Republic of Palau" +"(U) ","PNG","(U) ","Independent State of Papua New Guinea" +"(U) ","POL","(U) ","Republic of Poland" +"(U) ","PRI","(U) ","Commonwealth of Puerto Rico" +"(U) ","PRK","(U) ","Democratic People’s Republic of Korea" +"(U) ","PRT","(U) ","Portuguese Republic" +"(U) ","PRY","(U) ","Republic of Paraguay" +"(U) ","PYF","(U) ","French Polynesia" +"(U) ","QAT","(U) ","State of Qatar" +"(U) ","REU","(U) ","Region of Reunion" +"(U) ","ROU","(U) ","Romania" +"(U) ","RUS","(U) ","Russian Federation" +"(U) ","RWA","(U) ","Republic of Rwanda" +"(U) ","SAU","(U) ","Kingdom of Saudi Arabia" +"(U) ","SDN","(U) ","Republic of the Sudan" +"(U) ","SEN","(U) ","Republic of Senegal" +"(U) ","SGP","(U) ","Republic of Singapore" +"(U) ","SGS","(U) ","South Georgia and the South Sandwich Islands" +"(U) ","SHN","(U) ","Saint Helena, Ascension, and Tristan da Cunha" +"(U) ","SLB","(U) ","Solomon Islands" +"(U) ","SLE","(U) ","Republic of Sierra Leone" +"(U) ","SLV","(U) ","Republic of El Salvador" +"(U) ","SMR","(U) ","Republic of San Marino" +"(U) ","SOM","(U) ","Federal Republic of Somalia" +"(U) ","SPM","(U) ","Territorial Collectivity of Saint Pierre and Miquelon" +"(U) ","SRB","(U) ","Republic of Serbia" +"(U) ","SSD","(U) ","Republic of South Sudan" +"(U) ","STP","(U) ","Democratic Republic of Sao Tome and Principe" +"(U) ","SUR","(U) ","Republic of Suriname" +"(U) ","SVK","(U) ","Slovak Republic" +"(U) ","SVN","(U) ","Republic of Slovenia" +"(U) ","SWE","(U) ","Kingdom of Sweden" +"(U) ","SWZ","(U) ","Kingdom of Swaziland" +"(U) ","SXM","(U) ","Sint Maarten" +"(U) ","SYC","(U) ","Republic of Seychelles" +"(U) ","SYR","(U) ","Syrian Arab Republic" +"(U) ","TCA","(U) ","Turks and Caicos Islands" +"(U) ","TCD","(U) ","Republic of Chad" +"(U) ","TGO","(U) ","Togolese Republic" +"(U) ","THA","(U) ","Kingdom of Thailand" +"(U) ","TJK","(U) ","Republic of Tajikistan" +"(U) ","TKL","(U) ","Tokelau" +"(U) ","TKM","(U) ","Turkmenistan" +"(U) ","TLS","(U) ","Democratic Republic of Timor-Leste" +"(U) ","TON","(U) ","Kingdom of Tonga" +"(U) ","TTO","(U) ","Republic of Trinidad and Tobago" +"(U) ","TUN","(U) ","Republic of Tunisia" +"(U) ","TUR","(U) ","Republic of Turkey" +"(U) ","TUV","(U) ","Tuvalu" +"(U) ","TWN","(U) ","Taiwan" +"(U) ","TZA","(U) ","United Republic of Tanzania" +"(U) ","UGA","(U) ","Republic of Uganda" +"(U) ","UKR","(U) ","Ukraine" +"(U) ","URY","(U) ","Oriental Republic of Uruguay" +"(U) ","UZB","(U) ","Republic of Uzbekistan" +"(U) ","VAT","(U) ","State of the Vatican City" +"(U) ","VCT","(U) ","Saint Vincent and the Grenadines" +"(U) ","VEN","(U) ","Bolivarian Republic of Venezuela" +"(U) ","VGB","(U) ","Virgin Islands, British" +"(U) ","VIR","(U) ","United States Virgin Islands" +"(U) ","VNM","(U) ","Socialist Republic of Vietnam" +"(U) ","VUT","(U) ","Republic of Vanuatu" +"(U) ","WLF","(U) ","Wallis and Futuna" +"(U) ","WSM","(U) ","Independent State of Samoa" +"(U) ","XAC","(U) ","Territory of Ashmore and Cartier Islands" +"(U) ","XAZ","(U) ","Entity 1" +"(U) ","XBI","(U) ","Bassas da India" +"(U) ","XBK","(U) ","Baker Island" +"(U) ","XCR","(U) ","Entity 2" +"(U) ","XCS","(U) ","Coral Sea Islands Territory" +"(U) ","XCY","(U) ","Entity 3" +"(U) ","XEU","(U) ","Europa Island" +"(U) ","XGL","(U) ","Glorioso Islands" +"(U) ","XGZ","(U) ","Gaza Strip" +"(U) ","XHO","(U) ","Howland Island" +"(U) ","XJA","(U) ","Johnston Atoll" +"(U) ","XJM","(U) ","Jan Mayen" +"(U) ","XJN","(U) ","Juan de Nova Island" +"(U) ","XJV","(U) ","Jarvis Island" +"(U) ","XKM","(U) ","Entity 4" +"(U) ","XKN","(U) ","Entity 5" +"(U) ","XKR","(U) ","Kingman Reef" +"(U) ","XKS","(U) ","Republic of Kosovo" +"(U) ","XMW","(U) ","Midway Islands" +"(U) ","XNV","(U) ","Navassa Island" +"(U) ","XPL","(U) ","Palmyra Atoll" +"(U) ","XPR","(U) ","Paracel Islands" +"(U) ","XQZ","(U) ","Akrotiri" +"(U) ","XSP","(U) ","Spratly Islands" +"(U) ","XSV","(U) ","Svalbard" +"(U) ","XTR","(U) ","Tromelin Island" +"(U) ","XWB","(U) ","West Bank" +"(U) ","XWK","(U) ","Wake Island" +"(U) ","XXD","(U) ","Dhekelia" +"(U) ","YEM","(U) ","Republic of Yemen" +"(U) ","ZAF","(U) ","Republic of South Africa" +"(U) ","ZMB","(U) ","Republic of Zambia" +"(U) ","ZWE","(U) ","Republic of Zimbabwe" +"(U) ","ACGU","(U) ","FOUR EYES" +"(U) ","AOSC","(U) ","Athens Olympics Security Coalition" +"(U) ","APFS","(U) ","African Peacekeeping Force Somalia" +"(U) ","ASEA","(U) ","Association of Southeast Asian Nations (ASEAN)" +"(U) ","AUSTRALIA_GROUP","(U) ","Australia Group" +"(U) ","BHTF","(U) ","Boko Haram Task Force" +"(U) ","BWCS","(U) ","Biological Weapons Convention States" +"(U) ","CFCK","(U) ","ROK/US Combined Forces Command, Korea" +"(U) ","CFOD","(U) ","Coalition Forces Odyssey Dawn" +"(U) ","CFUP","(U) ","Coalition Forces Unified Protector" +"(U) ","CLFC","(U) ","Combined Libya Fusion Cell" +"(U) ","CMFC","(U) ","Combined Maritime Forces Central" +"(U) ","CMFP","(U) ","Cooperative Maritime Forces Pacific" +"(U) ","CPMT","(U) ","Civilian Protection Monitoring Team for Sudan" +"(U) ","CTOC","(U) ","Countering Transnational Organized Crime" +"(U) ","CWCS","(U) ","Chemical Weapons Convention States" +"(U) ","ECTF","(U) ","European Counter-Terrorism Forces" +"(U) ","EFOR","(U) ","European Union Stabilization Forces in Bosnia" +"(U) ","EU","(U) ","European Union" +"(U) ","EUDA","(U) ","European Union DARFUR" +"(U) ","FVEY","(U) ","FIVE EYES" +"(U) ","GCCH","(U) ","Gulf Cooperation Council Headquarters" +"(U) ","GCTF","(U) ","Global Counter-Terrorism Forces" +"(U) ","GFNX","(U) ","Global Foreign Terrorist Fighter Network Exchange" +"(U) ","GMIF","(U) ","Global Maritime Interception Forces" +"(U) ","IESC","(U) ","International Events Security Coalition" +"(U) ","IRKS","(U) ","Inherent Resolve Kinetic Support" +"(U) ","ISAF","(U) ","International Security Assistance Force for Afghanistan" +"(U) ","ISSG","(U) ","International Syria Support Group" +"(U) ","KFOR","(U) ","Stabilization Forces in Kosovo" +"(U) ","MCFI","(U) ","Multinational Coalition Forces-Iraq" +"(U) ","MESF","(U) ","Middle East Stability Force" +"(U) ","MGEU","(U) ","Multinational GEOINT Europe" +"(U) ","MIFH","(U) ","Multinational Interim Force Haiti" +"(U) ","MLEC","(U) ","Multi-Lateral Enduring Contingency" +"(U) ","MNTF","(U) ","Multi-National Task Force" +"(U) ","MPFL","(U) ","Multinational Peacekeeping Forces" +"(U) ","NACT","(U) ","North African Counter-Terrorism Forces" +"(U) ","NATO","(U) ","North Atlantic Treaty Organization" +"(U) ","NATO:[a-zA-Z\-_]{1,256}","(U) ","North Atlantic Treaty Organization Special Words" +"(U) ","NCFE","(U) ","NATO CFE Treaty on Conventional Armed Forces in Europe" +"(U) ","NRDC","(U) ","NORDIC" +"(U) ","NSG","(U) ","Nuclear Suppliers' Group" +"(U) ","OSAG","(U) ","Olympic Security Advisory Group" +"(U) ","OSTY","(U) ","Open Skies Treaty" +"(U) ","PGMF","(U) ","Persian Gulf Multinational Forces" +"(U) ","RSMA","(U) ","Resolute Support Mission Afghanistan" +"(U) ","SFOR","(U) ","Stabilization Force" +"(U) ","SOFP","(U) ","Special Operations Forces Partners" +"(U) ","SPAA","(U) ","SOF Planning Activities in Afghanistan (also called "11-Eyes")" +"(U) ","TEYE","(U) ","THREE EYES" +"(U) ","UNCK","(U) ","United Nations Command, Korea" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIOpen.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIOpen.xml new file mode 100644 index 0000000000..ffe7fb6645 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIOpen.xml @@ -0,0 +1,1968 @@ + + + + urn:us:gov:ic:cvenum:ismcat:fgiopen + CVEnumISMCATFGIOpen + GENC trigraphs except USA in alphabetical order by + trigraph, followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by + tetragraph. UNKNOWN removed since GENC has it as AX1. This CVE is used by @ism:FGIsourceOpen. + + 2019-12-23T16:24:51.287Z + + IC Markings System Register and Manual Register Appendix A + GENC http://geo.aitcnet.org/NSGREG/genc + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + ABW + Aruba + + + AFG + Islamic Republic of Afghanistan + + + AGO + Republic of Angola + + + AIA + Anguilla + + + ALB + Republic of Albania + + + AND + Principality of Andorra + + + ARE + United Arab Emirates + + + ARG + Argentine Republic + + + ARM + Republic of Armenia + + + ASM + Territory of American Samoa + + + ATA + Antarctica + + + ATF + French Southern and Antarctic Lands + + + ATG + Antigua and Barbuda + + + AUS + Commonwealth of Australia + + + AUT + Republic of Austria + + + AX1 + Unknown + + + AX2 + Guantanamo Bay Naval Base + + + AX3 + Entity 6 + + + AZE + Republic of Azerbaijan + + + BDI + Republic of Burundi + + + BEL + Kingdom of Belgium + + + BEN + Republic of Benin + + + BES + Bonaire, Sint Eustatius, and Saba + + + BFA + Burkina Faso + + + BGD + People’s Republic of Bangladesh + + + BGR + Republic of Bulgaria + + + BHR + Kingdom of Bahrain + + + BHS + Commonwealth of The Bahamas + + + BIH + Bosnia and Herzegovina + + + BLM + Saint Barthelemy + + + BLR + Republic of Belarus + + + BLZ + Belize + + + BMU + Bermuda + + + BOL + Plurinational State of Bolivia + + + BRA + Federative Republic of Brazil + + + BRB + Barbados + + + BRN + Brunei Darussalam + + + BTN + Kingdom of Bhutan + + + BVT + Bouvet Island + + + BWA + Republic of Botswana + + + CAF + Central African Republic + + + CAN + Canada + + + CCK + Territory of Cocos (Keeling) Islands + + + CHE + Swiss Confederation + + + CHL + Republic of Chile + + + CHN + People’s Republic of China + + + CIV + Republic of Côte d’Ivoire + + + CMR + Republic of Cameroon + + + COD + Democratic Republic of the Congo + + + COG + Republic of the Congo + + + COK + Cook Islands + + + COL + Republic of Colombia + + + COM + Union of the Comoros + + + CPT + Clipperton Island + + + CPV + Republic of Cabo Verde + + + CRI + Republic of Costa Rica + + + CUB + Republic of Cuba + + + CUW + Curaçao + + + CXR + Territory of Christmas Island + + + CYM + Cayman Islands + + + CYP + Republic of Cyprus + + + CZE + Czech Republic + + + DEU + Federal Republic of Germany + + + DGA + Diego Garcia + + + DJI + Republic of Djibouti + + + DMA + Commonwealth of Dominica + + + DNK + Kingdom of Denmark + + + DOM + Dominican Republic + + + DZA + People’s Democratic Republic of Algeria + + + ECU + Republic of Ecuador + + + EGY + Arab Republic of Egypt + + + ERI + State of Eritrea + + + ESH + Western Sahara + + + ESP + Kingdom of Spain + + + EST + Republic of Estonia + + + ETH + Federal Democratic Republic of Ethiopia + + + FIN + Republic of Finland + + + FJI + Republic of Fiji + + + FLK + Falkland Islands (Islas Malvinas) + + + FRA + French Republic + + + FRO + Faroe Islands + + + FSM + Federated States of Micronesia + + + GAB + Gabonese Republic + + + GBR + United Kingdom of Great Britain and Northern Ireland + + + GEO + Georgia + + + GGY + Bailiwick of Guernsey + + + GHA + Republic of Ghana + + + GIB + Gibraltar + + + GIN + Republic of Guinea + + + GLP + Region of Guadeloupe + + + GMB + Republic of The Gambia + + + GNB + Republic of Guinea-Bissau + + + GNQ + Republic of Equatorial Guinea + + + GRC + Hellenic Republic + + + GRD + Grenada + + + GRL + Greenland + + + GTM + Republic of Guatemala + + + GUF + Territorial Collectivity of Guiana + + + GUM + Territory of Guam + + + GUY + Co-operative Republic of Guyana + + + HKG + Hong Kong Special Administrative Region + + + HMD + Territory of Heard Island and McDonald Islands + + + HND + Republic of Honduras + + + HRV + Republic of Croatia + + + HTI + Republic of Haiti + + + HUN + Hungary + + + IDN + Republic of Indonesia + + + IMN + Isle of Man + + + IND + Republic of India + + + IOT + British Indian Ocean Territory + + + IRL + Ireland + + + IRN + Islamic Republic of Iran + + + IRQ + Republic of Iraq + + + ISL + Republic of Iceland + + + ISR + State of Israel + + + ITA + Italian Republic + + + JAM + Jamaica + + + JEY + Bailiwick of Jersey + + + JOR + Hashemite Kingdom of Jordan + + + JPN + Japan + + + KAZ + Republic of Kazakhstan + + + KEN + Republic of Kenya + + + KGZ + Kyrgyz Republic + + + KHM + Kingdom of Cambodia + + + KIR + Republic of Kiribati + + + KNA + Federation of Saint Kitts and Nevis + + + KOR + Republic of Korea + + + KWT + State of Kuwait + + + LAO + Lao People’s Democratic Republic + + + LBN + Lebanese Republic + + + LBR + Republic of Liberia + + + LBY + Libya + + + LCA + Saint Lucia + + + LIE + Principality of Liechtenstein + + + LKA + Democratic Socialist Republic of Sri Lanka + + + LSO + Kingdom of Lesotho + + + LTU + Republic of Lithuania + + + LUX + Grand Duchy of Luxembourg + + + LVA + Republic of Latvia + + + MAC + Macau Special Administrative Region + + + MAF + Saint Martin + + + MAR + Kingdom of Morocco + + + MCO + Principality of Monaco + + + MDA + Republic of Moldova + + + MDG + Republic of Madagascar + + + MDV + Republic of Maldives + + + MEX + United Mexican States + + + MHL + Republic of the Marshall Islands + + + MKD + Republic of Macedonia + + + MLI + Republic of Mali + + + MLT + Republic of Malta + + + MMR + Union of Burma + + + MNE + Montenegro + + + MNG + Mongolia + + + MNP + Commonwealth of the Northern Mariana Islands + + + MOZ + Republic of Mozambique + + + MRT + Islamic Republic of Mauritania + + + MSR + Montserrat + + + MTQ + Territorial Collectivity of Martinique + + + MUS + Republic of Mauritius + + + MWI + Republic of Malawi + + + MYS + Malaysia + + + MYT + Department of Mayotte + + + NAM + Republic of Namibia + + + NCL + New Caledonia + + + NER + Republic of Niger + + + NFK + Territory of Norfolk Island + + + NGA + Federal Republic of Nigeria + + + NIC + Republic of Nicaragua + + + NIU + Niue + + + NLD + Kingdom of the Netherlands + + + NOR + Kingdom of Norway + + + NPL + Federal Democratic Republic of Nepal + + + NRU + Republic of Nauru + + + NZL + New Zealand + + + OMN + Sultanate of Oman + + + PAK + Islamic Republic of Pakistan + + + PAN + Republic of Panama + + + PCN + Pitcairn, Henderson, Ducie, and Oeno Islands + + + PER + Republic of Peru + + + PHL + Republic of the Philippines + + + PLW + Republic of Palau + + + PNG + Independent State of Papua New Guinea + + + POL + Republic of Poland + + + PRI + Commonwealth of Puerto Rico + + + PRK + Democratic People’s Republic of Korea + + + PRT + Portuguese Republic + + + PRY + Republic of Paraguay + + + PYF + French Polynesia + + + QAT + State of Qatar + + + REU + Region of Reunion + + + ROU + Romania + + + RUS + Russian Federation + + + RWA + Republic of Rwanda + + + SAU + Kingdom of Saudi Arabia + + + SDN + Republic of the Sudan + + + SEN + Republic of Senegal + + + SGP + Republic of Singapore + + + SGS + South Georgia and the South Sandwich Islands + + + SHN + Saint Helena, Ascension, and Tristan da Cunha + + + SLB + Solomon Islands + + + SLE + Republic of Sierra Leone + + + SLV + Republic of El Salvador + + + SMR + Republic of San Marino + + + SOM + Federal Republic of Somalia + + + SPM + Territorial Collectivity of Saint Pierre and Miquelon + + + SRB + Republic of Serbia + + + SSD + Republic of South Sudan + + + STP + Democratic Republic of Sao Tome and Principe + + + SUR + Republic of Suriname + + + SVK + Slovak Republic + + + SVN + Republic of Slovenia + + + SWE + Kingdom of Sweden + + + SWZ + Kingdom of Swaziland + + + SXM + Sint Maarten + + + SYC + Republic of Seychelles + + + SYR + Syrian Arab Republic + + + TCA + Turks and Caicos Islands + + + TCD + Republic of Chad + + + TGO + Togolese Republic + + + THA + Kingdom of Thailand + + + TJK + Republic of Tajikistan + + + TKL + Tokelau + + + TKM + Turkmenistan + + + TLS + Democratic Republic of Timor-Leste + + + TON + Kingdom of Tonga + + + TTO + Republic of Trinidad and Tobago + + + TUN + Republic of Tunisia + + + TUR + Republic of Turkey + + + TUV + Tuvalu + + + TWN + Taiwan + + + TZA + United Republic of Tanzania + + + UGA + Republic of Uganda + + + UKR + Ukraine + + + URY + Oriental Republic of Uruguay + + + UZB + Republic of Uzbekistan + + + VAT + State of the Vatican City + + + VCT + Saint Vincent and the Grenadines + + + VEN + Bolivarian Republic of Venezuela + + + VGB + Virgin Islands, British + + + VIR + United States Virgin Islands + + + VNM + Socialist Republic of Vietnam + + + VUT + Republic of Vanuatu + + + WLF + Wallis and Futuna + + + WSM + Independent State of Samoa + + + XAC + Territory of Ashmore and Cartier Islands + + + XAZ + Entity 1 + + + XBI + Bassas da India + + + XBK + Baker Island + + + XCR + Entity 2 + + + XCS + Coral Sea Islands Territory + + + XCY + Entity 3 + + + XEU + Europa Island + + + XGL + Glorioso Islands + + + XGZ + Gaza Strip + + + XHO + Howland Island + + + XJA + Johnston Atoll + + + XJM + Jan Mayen + + + XJN + Juan de Nova Island + + + XJV + Jarvis Island + + + XKM + Entity 4 + + + XKN + Entity 5 + + + XKR + Kingman Reef + + + XKS + Republic of Kosovo + + + XMW + Midway Islands + + + XNV + Navassa Island + + + XPL + Palmyra Atoll + + + XPR + Paracel Islands + + + XQZ + Akrotiri + + + XSP + Spratly Islands + + + XSV + Svalbard + + + XTR + Tromelin Island + + + XWB + West Bank + + + XWK + Wake Island + + + XXD + Dhekelia + + + YEM + Republic of Yemen + + + ZAF + Republic of South Africa + + + ZMB + Republic of Zambia + + + ZWE + Republic of Zimbabwe + + + ACGU + FOUR EYES + + + + AOSC + Athens Olympics Security Coalition + + + + APFS + African Peacekeeping Force Somalia + + + + ASEA + Association of Southeast Asian Nations (ASEAN) + + + + AUSTRALIA_GROUP + Australia Group + + + + BHTF + Boko Haram Task Force + + + + BWCS + Biological Weapons Convention States + + + + CFCK + ROK/US Combined Forces Command, Korea + + + + CFOD + Coalition Forces Odyssey Dawn + + + + CFUP + Coalition Forces Unified Protector + + + + CLFC + Combined Libya Fusion Cell + + + + CMFC + Combined Maritime Forces Central + + + + CMFP + Cooperative Maritime Forces Pacific + + + + CPMT + Civilian Protection Monitoring Team for Sudan + + + + CTOC + Countering Transnational Organized Crime + + + + CWCS + Chemical Weapons Convention States + + + + ECTF + European Counter-Terrorism Forces + + + + EFOR + European Union Stabilization Forces in Bosnia + + + + EU + European Union + + + + EUDA + European Union DARFUR + + + + FVEY + FIVE EYES + + + + GCCH + Gulf Cooperation Council Headquarters + + + + GCTF + Global Counter-Terrorism Forces + + + + GFNX + Global Foreign Terrorist Fighter Network Exchange + + + + GMIF + Global Maritime Interception Forces + + + + IESC + International Events Security Coalition + + + + IRKS + Inherent Resolve Kinetic Support + + + + ISAF + International Security Assistance Force for Afghanistan + + + + ISSG + International Syria Support Group + + + + KFOR + Stabilization Forces in Kosovo + + + + MCFI + Multinational Coalition Forces-Iraq + + + + MESF + Middle East Stability Force + + + + MGEU + Multinational GEOINT Europe + + + + MIFH + Multinational Interim Force Haiti + + + + MLEC + Multi-Lateral Enduring Contingency + + + + MNTF + Multi-National Task Force + + + + MPFL + Multinational Peacekeeping Forces + + + + NACT + North African Counter-Terrorism Forces + + + + NATO + North Atlantic Treaty Organization + + + + NATO:[a-zA-Z\-_]{1,256} + North Atlantic Treaty Organization Special Words + + + NCFE + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NRDC + NORDIC + + + + NSG + Nuclear Suppliers' Group + + + + OSAG + Olympic Security Advisory Group + + + + OSTY + Open Skies Treaty + + + + + PGMF + Persian Gulf Multinational Forces + + + + RSMA + Resolute Support Mission Afghanistan + + + + SFOR + Stabilization Force + + + + SOFP + Special Operations Forces Partners + + + + SPAA + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + TEYE + THREE EYES + + + + UNCK + United Nations Command, Korea + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIProtected.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIProtected.csv new file mode 100644 index 0000000000..9237085f42 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIProtected.csv @@ -0,0 +1,333 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","FGI","(U) ","Foreign Government Information" +"(U) ","ABW","(U) ","Aruba" +"(U) ","AFG","(U) ","Islamic Republic of Afghanistan" +"(U) ","AGO","(U) ","Republic of Angola" +"(U) ","AIA","(U) ","Anguilla" +"(U) ","ALB","(U) ","Republic of Albania" +"(U) ","AND","(U) ","Principality of Andorra" +"(U) ","ARE","(U) ","United Arab Emirates" +"(U) ","ARG","(U) ","Argentine Republic" +"(U) ","ARM","(U) ","Republic of Armenia" +"(U) ","ASM","(U) ","Territory of American Samoa" +"(U) ","ATA","(U) ","Antarctica" +"(U) ","ATF","(U) ","French Southern and Antarctic Lands" +"(U) ","ATG","(U) ","Antigua and Barbuda" +"(U) ","AUS","(U) ","Commonwealth of Australia" +"(U) ","AUT","(U) ","Republic of Austria" +"(U) ","AX2","(U) ","Guantanamo Bay Naval Base" +"(U) ","AX3","(U) ","Entity 6" +"(U) ","AZE","(U) ","Republic of Azerbaijan" +"(U) ","BDI","(U) ","Republic of Burundi" +"(U) ","BEL","(U) ","Kingdom of Belgium" +"(U) ","BEN","(U) ","Republic of Benin" +"(U) ","BES","(U) ","Bonaire, Sint Eustatius, and Saba" +"(U) ","BFA","(U) ","Burkina Faso" +"(U) ","BGD","(U) ","People’s Republic of Bangladesh" +"(U) ","BGR","(U) ","Republic of Bulgaria" +"(U) ","BHR","(U) ","Kingdom of Bahrain" +"(U) ","BHS","(U) ","Commonwealth of The Bahamas" +"(U) ","BIH","(U) ","Bosnia and Herzegovina" +"(U) ","BLM","(U) ","Saint Barthelemy" +"(U) ","BLR","(U) ","Republic of Belarus" +"(U) ","BLZ","(U) ","Belize" +"(U) ","BMU","(U) ","Bermuda" +"(U) ","BOL","(U) ","Plurinational State of Bolivia" +"(U) ","BRA","(U) ","Federative Republic of Brazil" +"(U) ","BRB","(U) ","Barbados" +"(U) ","BRN","(U) ","Brunei Darussalam" +"(U) ","BTN","(U) ","Kingdom of Bhutan" +"(U) ","BVT","(U) ","Bouvet Island" +"(U) ","BWA","(U) ","Republic of Botswana" +"(U) ","CAF","(U) ","Central African Republic" +"(U) ","CAN","(U) ","Canada" +"(U) ","CCK","(U) ","Territory of Cocos (Keeling) Islands" +"(U) ","CHE","(U) ","Swiss Confederation" +"(U) ","CHL","(U) ","Republic of Chile" +"(U) ","CHN","(U) ","People’s Republic of China" +"(U) ","CIV","(U) ","Republic of Côte d’Ivoire" +"(U) ","CMR","(U) ","Republic of Cameroon" +"(U) ","COD","(U) ","Democratic Republic of the Congo" +"(U) ","COG","(U) ","Republic of the Congo" +"(U) ","COK","(U) ","Cook Islands" +"(U) ","COL","(U) ","Republic of Colombia" +"(U) ","COM","(U) ","Union of the Comoros" +"(U) ","CPT","(U) ","Clipperton Island" +"(U) ","CPV","(U) ","Republic of Cabo Verde" +"(U) ","CRI","(U) ","Republic of Costa Rica" +"(U) ","CUB","(U) ","Republic of Cuba" +"(U) ","CUW","(U) ","Curaçao" +"(U) ","CXR","(U) ","Territory of Christmas Island" +"(U) ","CYM","(U) ","Cayman Islands" +"(U) ","CYP","(U) ","Republic of Cyprus" +"(U) ","CZE","(U) ","Czech Republic" +"(U) ","DEU","(U) ","Federal Republic of Germany" +"(U) ","DGA","(U) ","Diego Garcia" +"(U) ","DJI","(U) ","Republic of Djibouti" +"(U) ","DMA","(U) ","Commonwealth of Dominica" +"(U) ","DNK","(U) ","Kingdom of Denmark" +"(U) ","DOM","(U) ","Dominican Republic" +"(U) ","DZA","(U) ","People’s Democratic Republic of Algeria" +"(U) ","ECU","(U) ","Republic of Ecuador" +"(U) ","EGY","(U) ","Arab Republic of Egypt" +"(U) ","ERI","(U) ","State of Eritrea" +"(U) ","ESH","(U) ","Western Sahara" +"(U) ","ESP","(U) ","Kingdom of Spain" +"(U) ","EST","(U) ","Republic of Estonia" +"(U) ","ETH","(U) ","Federal Democratic Republic of Ethiopia" +"(U) ","FIN","(U) ","Republic of Finland" +"(U) ","FJI","(U) ","Republic of Fiji" +"(U) ","FLK","(U) ","Falkland Islands (Islas Malvinas)" +"(U) ","FRA","(U) ","French Republic" +"(U) ","FRO","(U) ","Faroe Islands" +"(U) ","FSM","(U) ","Federated States of Micronesia" +"(U) ","GAB","(U) ","Gabonese Republic" +"(U) ","GBR","(U) ","United Kingdom of Great Britain and Northern Ireland" +"(U) ","GEO","(U) ","Georgia" +"(U) ","GGY","(U) ","Bailiwick of Guernsey" +"(U) ","GHA","(U) ","Republic of Ghana" +"(U) ","GIB","(U) ","Gibraltar" +"(U) ","GIN","(U) ","Republic of Guinea" +"(U) ","GLP","(U) ","Region of Guadeloupe" +"(U) ","GMB","(U) ","Republic of The Gambia" +"(U) ","GNB","(U) ","Republic of Guinea-Bissau" +"(U) ","GNQ","(U) ","Republic of Equatorial Guinea" +"(U) ","GRC","(U) ","Hellenic Republic" +"(U) ","GRD","(U) ","Grenada" +"(U) ","GRL","(U) ","Greenland" +"(U) ","GTM","(U) ","Republic of Guatemala" +"(U) ","GUF","(U) ","Territorial Collectivity of Guiana" +"(U) ","GUM","(U) ","Territory of Guam" +"(U) ","GUY","(U) ","Co-operative Republic of Guyana" +"(U) ","HKG","(U) ","Hong Kong Special Administrative Region" +"(U) ","HMD","(U) ","Territory of Heard Island and McDonald Islands" +"(U) ","HND","(U) ","Republic of Honduras" +"(U) ","HRV","(U) ","Republic of Croatia" +"(U) ","HTI","(U) ","Republic of Haiti" +"(U) ","HUN","(U) ","Hungary" +"(U) ","IDN","(U) ","Republic of Indonesia" +"(U) ","IMN","(U) ","Isle of Man" +"(U) ","IND","(U) ","Republic of India" +"(U) ","IOT","(U) ","British Indian Ocean Territory" +"(U) ","IRL","(U) ","Ireland" +"(U) ","IRN","(U) ","Islamic Republic of Iran" +"(U) ","IRQ","(U) ","Republic of Iraq" +"(U) ","ISL","(U) ","Republic of Iceland" +"(U) ","ISR","(U) ","State of Israel" +"(U) ","ITA","(U) ","Italian Republic" +"(U) ","JAM","(U) ","Jamaica" +"(U) ","JEY","(U) ","Bailiwick of Jersey" +"(U) ","JOR","(U) ","Hashemite Kingdom of Jordan" +"(U) ","JPN","(U) ","Japan" +"(U) ","KAZ","(U) ","Republic of Kazakhstan" +"(U) ","KEN","(U) ","Republic of Kenya" +"(U) ","KGZ","(U) ","Kyrgyz Republic" +"(U) ","KHM","(U) ","Kingdom of Cambodia" +"(U) ","KIR","(U) ","Republic of Kiribati" +"(U) ","KNA","(U) ","Federation of Saint Kitts and Nevis" +"(U) ","KOR","(U) ","Republic of Korea" +"(U) ","KWT","(U) ","State of Kuwait" +"(U) ","LAO","(U) ","Lao People’s Democratic Republic" +"(U) ","LBN","(U) ","Lebanese Republic" +"(U) ","LBR","(U) ","Republic of Liberia" +"(U) ","LBY","(U) ","Libya" +"(U) ","LCA","(U) ","Saint Lucia" +"(U) ","LIE","(U) ","Principality of Liechtenstein" +"(U) ","LKA","(U) ","Democratic Socialist Republic of Sri Lanka" +"(U) ","LSO","(U) ","Kingdom of Lesotho" +"(U) ","LTU","(U) ","Republic of Lithuania" +"(U) ","LUX","(U) ","Grand Duchy of Luxembourg" +"(U) ","LVA","(U) ","Republic of Latvia" +"(U) ","MAC","(U) ","Macau Special Administrative Region" +"(U) ","MAF","(U) ","Saint Martin" +"(U) ","MAR","(U) ","Kingdom of Morocco" +"(U) ","MCO","(U) ","Principality of Monaco" +"(U) ","MDA","(U) ","Republic of Moldova" +"(U) ","MDG","(U) ","Republic of Madagascar" +"(U) ","MDV","(U) ","Republic of Maldives" +"(U) ","MEX","(U) ","United Mexican States" +"(U) ","MHL","(U) ","Republic of the Marshall Islands" +"(U) ","MKD","(U) ","Republic of Macedonia" +"(U) ","MLI","(U) ","Republic of Mali" +"(U) ","MLT","(U) ","Republic of Malta" +"(U) ","MMR","(U) ","Union of Burma" +"(U) ","MNE","(U) ","Montenegro" +"(U) ","MNG","(U) ","Mongolia" +"(U) ","MNP","(U) ","Commonwealth of the Northern Mariana Islands" +"(U) ","MOZ","(U) ","Republic of Mozambique" +"(U) ","MRT","(U) ","Islamic Republic of Mauritania" +"(U) ","MSR","(U) ","Montserrat" +"(U) ","MTQ","(U) ","Territorial Collectivity of Martinique" +"(U) ","MUS","(U) ","Republic of Mauritius" +"(U) ","MWI","(U) ","Republic of Malawi" +"(U) ","MYS","(U) ","Malaysia" +"(U) ","MYT","(U) ","Department of Mayotte" +"(U) ","NAM","(U) ","Republic of Namibia" +"(U) ","NCL","(U) ","New Caledonia" +"(U) ","NER","(U) ","Republic of Niger" +"(U) ","NFK","(U) ","Territory of Norfolk Island" +"(U) ","NGA","(U) ","Federal Republic of Nigeria" +"(U) ","NIC","(U) ","Republic of Nicaragua" +"(U) ","NIU","(U) ","Niue" +"(U) ","NLD","(U) ","Kingdom of the Netherlands" +"(U) ","NOR","(U) ","Kingdom of Norway" +"(U) ","NPL","(U) ","Federal Democratic Republic of Nepal" +"(U) ","NRU","(U) ","Republic of Nauru" +"(U) ","NZL","(U) ","New Zealand" +"(U) ","OMN","(U) ","Sultanate of Oman" +"(U) ","PAK","(U) ","Islamic Republic of Pakistan" +"(U) ","PAN","(U) ","Republic of Panama" +"(U) ","PCN","(U) ","Pitcairn, Henderson, Ducie, and Oeno Islands" +"(U) ","PER","(U) ","Republic of Peru" +"(U) ","PHL","(U) ","Republic of the Philippines" +"(U) ","PLW","(U) ","Republic of Palau" +"(U) ","PNG","(U) ","Independent State of Papua New Guinea" +"(U) ","POL","(U) ","Republic of Poland" +"(U) ","PRI","(U) ","Commonwealth of Puerto Rico" +"(U) ","PRK","(U) ","Democratic People’s Republic of Korea" +"(U) ","PRT","(U) ","Portuguese Republic" +"(U) ","PRY","(U) ","Republic of Paraguay" +"(U) ","PYF","(U) ","French Polynesia" +"(U) ","QAT","(U) ","State of Qatar" +"(U) ","REU","(U) ","Region of Reunion" +"(U) ","ROU","(U) ","Romania" +"(U) ","RUS","(U) ","Russian Federation" +"(U) ","RWA","(U) ","Republic of Rwanda" +"(U) ","SAU","(U) ","Kingdom of Saudi Arabia" +"(U) ","SDN","(U) ","Republic of the Sudan" +"(U) ","SEN","(U) ","Republic of Senegal" +"(U) ","SGP","(U) ","Republic of Singapore" +"(U) ","SGS","(U) ","South Georgia and the South Sandwich Islands" +"(U) ","SHN","(U) ","Saint Helena, Ascension, and Tristan da Cunha" +"(U) ","SLB","(U) ","Solomon Islands" +"(U) ","SLE","(U) ","Republic of Sierra Leone" +"(U) ","SLV","(U) ","Republic of El Salvador" +"(U) ","SMR","(U) ","Republic of San Marino" +"(U) ","SOM","(U) ","Federal Republic of Somalia" +"(U) ","SPM","(U) ","Territorial Collectivity of Saint Pierre and Miquelon" +"(U) ","SRB","(U) ","Republic of Serbia" +"(U) ","SSD","(U) ","Republic of South Sudan" +"(U) ","STP","(U) ","Democratic Republic of Sao Tome and Principe" +"(U) ","SUR","(U) ","Republic of Suriname" +"(U) ","SVK","(U) ","Slovak Republic" +"(U) ","SVN","(U) ","Republic of Slovenia" +"(U) ","SWE","(U) ","Kingdom of Sweden" +"(U) ","SWZ","(U) ","Kingdom of Swaziland" +"(U) ","SXM","(U) ","Sint Maarten" +"(U) ","SYC","(U) ","Republic of Seychelles" +"(U) ","SYR","(U) ","Syrian Arab Republic" +"(U) ","TCA","(U) ","Turks and Caicos Islands" +"(U) ","TCD","(U) ","Republic of Chad" +"(U) ","TGO","(U) ","Togolese Republic" +"(U) ","THA","(U) ","Kingdom of Thailand" +"(U) ","TJK","(U) ","Republic of Tajikistan" +"(U) ","TKL","(U) ","Tokelau" +"(U) ","TKM","(U) ","Turkmenistan" +"(U) ","TLS","(U) ","Democratic Republic of Timor-Leste" +"(U) ","TON","(U) ","Kingdom of Tonga" +"(U) ","TTO","(U) ","Republic of Trinidad and Tobago" +"(U) ","TUN","(U) ","Republic of Tunisia" +"(U) ","TUR","(U) ","Republic of Turkey" +"(U) ","TUV","(U) ","Tuvalu" +"(U) ","TWN","(U) ","Taiwan" +"(U) ","TZA","(U) ","United Republic of Tanzania" +"(U) ","UGA","(U) ","Republic of Uganda" +"(U) ","UKR","(U) ","Ukraine" +"(U) ","URY","(U) ","Oriental Republic of Uruguay" +"(U) ","UZB","(U) ","Republic of Uzbekistan" +"(U) ","VAT","(U) ","State of the Vatican City" +"(U) ","VCT","(U) ","Saint Vincent and the Grenadines" +"(U) ","VEN","(U) ","Bolivarian Republic of Venezuela" +"(U) ","VGB","(U) ","Virgin Islands, British" +"(U) ","VIR","(U) ","United States Virgin Islands" +"(U) ","VNM","(U) ","Socialist Republic of Vietnam" +"(U) ","VUT","(U) ","Republic of Vanuatu" +"(U) ","WLF","(U) ","Wallis and Futuna" +"(U) ","WSM","(U) ","Independent State of Samoa" +"(U) ","XAC","(U) ","Territory of Ashmore and Cartier Islands" +"(U) ","XAZ","(U) ","Entity 1" +"(U) ","XBI","(U) ","Bassas da India" +"(U) ","XBK","(U) ","Baker Island" +"(U) ","XCR","(U) ","Entity 2" +"(U) ","XCS","(U) ","Coral Sea Islands Territory" +"(U) ","XCY","(U) ","Entity 3" +"(U) ","XEU","(U) ","Europa Island" +"(U) ","XGL","(U) ","Glorioso Islands" +"(U) ","XGZ","(U) ","Gaza Strip" +"(U) ","XHO","(U) ","Howland Island" +"(U) ","XJA","(U) ","Johnston Atoll" +"(U) ","XJM","(U) ","Jan Mayen" +"(U) ","XJN","(U) ","Juan de Nova Island" +"(U) ","XJV","(U) ","Jarvis Island" +"(U) ","XKM","(U) ","Entity 4" +"(U) ","XKN","(U) ","Entity 5" +"(U) ","XKR","(U) ","Kingman Reef" +"(U) ","XKS","(U) ","Republic of Kosovo" +"(U) ","XMW","(U) ","Midway Islands" +"(U) ","XNV","(U) ","Navassa Island" +"(U) ","XPL","(U) ","Palmyra Atoll" +"(U) ","XPR","(U) ","Paracel Islands" +"(U) ","XQZ","(U) ","Akrotiri" +"(U) ","XSP","(U) ","Spratly Islands" +"(U) ","XSV","(U) ","Svalbard" +"(U) ","XTR","(U) ","Tromelin Island" +"(U) ","XWB","(U) ","West Bank" +"(U) ","XWK","(U) ","Wake Island" +"(U) ","XXD","(U) ","Dhekelia" +"(U) ","YEM","(U) ","Republic of Yemen" +"(U) ","ZAF","(U) ","Republic of South Africa" +"(U) ","ZMB","(U) ","Republic of Zambia" +"(U) ","ZWE","(U) ","Republic of Zimbabwe" +"(U) ","ACGU","(U) ","FOUR EYES" +"(U) ","AOSC","(U) ","Athens Olympics Security Coalition" +"(U) ","APFS","(U) ","African Peacekeeping Force Somalia" +"(U) ","ASEA","(U) ","Association of Southeast Asian Nations (ASEAN)" +"(U) ","AUSTRALIA_GROUP","(U) ","Australia Group" +"(U) ","BHTF","(U) ","Boko Haram Task Force" +"(U) ","BWCS","(U) ","Biological Weapons Convention States" +"(U) ","CFCK","(U) ","ROK/US Combined Forces Command, Korea" +"(U) ","CFOD","(U) ","Coalition Forces Odyssey Dawn" +"(U) ","CFUP","(U) ","Coalition Forces Unified Protector" +"(U) ","CLFC","(U) ","Combined Libya Fusion Cell" +"(U) ","CMFC","(U) ","Combined Maritime Forces Central" +"(U) ","CMFP","(U) ","Cooperative Maritime Forces Pacific" +"(U) ","CPMT","(U) ","Civilian Protection Monitoring Team for Sudan" +"(U) ","CTOC","(U) ","Countering Transnational Organized Crime" +"(U) ","CWCS","(U) ","Chemical Weapons Convention States" +"(U) ","ECTF","(U) ","European Counter-Terrorism Forces" +"(U) ","EFOR","(U) ","European Union Stabilization Forces in Bosnia" +"(U) ","EU","(U) ","European Union" +"(U) ","EUDA","(U) ","European Union DARFUR" +"(U) ","FVEY","(U) ","FIVE EYES" +"(U) ","GCCH","(U) ","Gulf Cooperation Council Headquarters" +"(U) ","GCTF","(U) ","Global Counter-Terrorism Forces" +"(U) ","GFNX","(U) ","Global Foreign Terrorist Fighter Network Exchange" +"(U) ","GMIF","(U) ","Global Maritime Interception Forces" +"(U) ","IESC","(U) ","International Events Security Coalition" +"(U) ","IRKS","(U) ","Inherent Resolve Kinetic Support" +"(U) ","ISAF","(U) ","International Security Assistance Force for Afghanistan" +"(U) ","ISSG","(U) ","International Syria Support Group" +"(U) ","KFOR","(U) ","Stabilization Forces in Kosovo" +"(U) ","MCFI","(U) ","Multinational Coalition Forces-Iraq" +"(U) ","MESF","(U) ","Middle East Stability Force" +"(U) ","MGEU","(U) ","Multinational GEOINT Europe" +"(U) ","MIFH","(U) ","Multinational Interim Force Haiti" +"(U) ","MLEC","(U) ","Multi-Lateral Enduring Contingency" +"(U) ","MNTF","(U) ","Multi-National Task Force" +"(U) ","MPFL","(U) ","Multinational Peacekeeping Forces" +"(U) ","NACT","(U) ","North African Counter-Terrorism Forces" +"(U) ","NATO","(U) ","North Atlantic Treaty Organization" +"(U) ","NATO:[a-zA-Z\-_]{1,256}","(U) ","North Atlantic Treaty Organization Special Words" +"(U) ","NCFE","(U) ","NATO CFE Treaty on Conventional Armed Forces in Europe" +"(U) ","NRDC","(U) ","NORDIC" +"(U) ","NSG","(U) ","Nuclear Suppliers' Group" +"(U) ","OSAG","(U) ","Olympic Security Advisory Group" +"(U) ","OSTY","(U) ","Open Skies Treaty" +"(U) ","PGMF","(U) ","Persian Gulf Multinational Forces" +"(U) ","RSMA","(U) ","Resolute Support Mission Afghanistan" +"(U) ","SFOR","(U) ","Stabilization Force" +"(U) ","SOFP","(U) ","Special Operations Forces Partners" +"(U) ","SPAA","(U) ","SOF Planning Activities in Afghanistan (also called "11-Eyes")" +"(U) ","TEYE","(U) ","THREE EYES" +"(U) ","UNCK","(U) ","United Nations Command, Korea" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIProtected.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIProtected.xml new file mode 100644 index 0000000000..17b9d5ff74 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATFGIProtected.xml @@ -0,0 +1,1970 @@ + + + + + urn:us:gov:ic:cvenum:ismcat:fgiprotected + CVEnumISMCATFGIProtected + FGI, followed by GENC trigraphs except USA in + alphabetical order by trigraph, followed by IC Markings System Register and Manual Coalition tetragraphs in + alphabetical order by tetragraph. This CVE is used by @ism:FGIsourceProtected. + + 2019-12-23T16:24:51.799Z + + IC Markings System Register and Manual Register Appendix A + GENC http://geo.aitcnet.org/NSGREG/genc + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + FGI + Foreign Government Information + + + + ABW + Aruba + + + AFG + Islamic Republic of Afghanistan + + + AGO + Republic of Angola + + + AIA + Anguilla + + + ALB + Republic of Albania + + + AND + Principality of Andorra + + + ARE + United Arab Emirates + + + ARG + Argentine Republic + + + ARM + Republic of Armenia + + + ASM + Territory of American Samoa + + + ATA + Antarctica + + + ATF + French Southern and Antarctic Lands + + + ATG + Antigua and Barbuda + + + AUS + Commonwealth of Australia + + + AUT + Republic of Austria + + + AX2 + Guantanamo Bay Naval Base + + + AX3 + Entity 6 + + + AZE + Republic of Azerbaijan + + + BDI + Republic of Burundi + + + BEL + Kingdom of Belgium + + + BEN + Republic of Benin + + + BES + Bonaire, Sint Eustatius, and Saba + + + BFA + Burkina Faso + + + BGD + People’s Republic of Bangladesh + + + BGR + Republic of Bulgaria + + + BHR + Kingdom of Bahrain + + + BHS + Commonwealth of The Bahamas + + + BIH + Bosnia and Herzegovina + + + BLM + Saint Barthelemy + + + BLR + Republic of Belarus + + + BLZ + Belize + + + BMU + Bermuda + + + BOL + Plurinational State of Bolivia + + + BRA + Federative Republic of Brazil + + + BRB + Barbados + + + BRN + Brunei Darussalam + + + BTN + Kingdom of Bhutan + + + BVT + Bouvet Island + + + BWA + Republic of Botswana + + + CAF + Central African Republic + + + CAN + Canada + + + CCK + Territory of Cocos (Keeling) Islands + + + CHE + Swiss Confederation + + + CHL + Republic of Chile + + + CHN + People’s Republic of China + + + CIV + Republic of Côte d’Ivoire + + + CMR + Republic of Cameroon + + + COD + Democratic Republic of the Congo + + + COG + Republic of the Congo + + + COK + Cook Islands + + + COL + Republic of Colombia + + + COM + Union of the Comoros + + + CPT + Clipperton Island + + + CPV + Republic of Cabo Verde + + + CRI + Republic of Costa Rica + + + CUB + Republic of Cuba + + + CUW + Curaçao + + + CXR + Territory of Christmas Island + + + CYM + Cayman Islands + + + CYP + Republic of Cyprus + + + CZE + Czech Republic + + + DEU + Federal Republic of Germany + + + DGA + Diego Garcia + + + DJI + Republic of Djibouti + + + DMA + Commonwealth of Dominica + + + DNK + Kingdom of Denmark + + + DOM + Dominican Republic + + + DZA + People’s Democratic Republic of Algeria + + + ECU + Republic of Ecuador + + + EGY + Arab Republic of Egypt + + + ERI + State of Eritrea + + + ESH + Western Sahara + + + ESP + Kingdom of Spain + + + EST + Republic of Estonia + + + ETH + Federal Democratic Republic of Ethiopia + + + FIN + Republic of Finland + + + FJI + Republic of Fiji + + + FLK + Falkland Islands (Islas Malvinas) + + + FRA + French Republic + + + FRO + Faroe Islands + + + FSM + Federated States of Micronesia + + + GAB + Gabonese Republic + + + GBR + United Kingdom of Great Britain and Northern Ireland + + + GEO + Georgia + + + GGY + Bailiwick of Guernsey + + + GHA + Republic of Ghana + + + GIB + Gibraltar + + + GIN + Republic of Guinea + + + GLP + Region of Guadeloupe + + + GMB + Republic of The Gambia + + + GNB + Republic of Guinea-Bissau + + + GNQ + Republic of Equatorial Guinea + + + GRC + Hellenic Republic + + + GRD + Grenada + + + GRL + Greenland + + + GTM + Republic of Guatemala + + + GUF + Territorial Collectivity of Guiana + + + GUM + Territory of Guam + + + GUY + Co-operative Republic of Guyana + + + HKG + Hong Kong Special Administrative Region + + + HMD + Territory of Heard Island and McDonald Islands + + + HND + Republic of Honduras + + + HRV + Republic of Croatia + + + HTI + Republic of Haiti + + + HUN + Hungary + + + IDN + Republic of Indonesia + + + IMN + Isle of Man + + + IND + Republic of India + + + IOT + British Indian Ocean Territory + + + IRL + Ireland + + + IRN + Islamic Republic of Iran + + + IRQ + Republic of Iraq + + + ISL + Republic of Iceland + + + ISR + State of Israel + + + ITA + Italian Republic + + + JAM + Jamaica + + + JEY + Bailiwick of Jersey + + + JOR + Hashemite Kingdom of Jordan + + + JPN + Japan + + + KAZ + Republic of Kazakhstan + + + KEN + Republic of Kenya + + + KGZ + Kyrgyz Republic + + + KHM + Kingdom of Cambodia + + + KIR + Republic of Kiribati + + + KNA + Federation of Saint Kitts and Nevis + + + KOR + Republic of Korea + + + KWT + State of Kuwait + + + LAO + Lao People’s Democratic Republic + + + LBN + Lebanese Republic + + + LBR + Republic of Liberia + + + LBY + Libya + + + LCA + Saint Lucia + + + LIE + Principality of Liechtenstein + + + LKA + Democratic Socialist Republic of Sri Lanka + + + LSO + Kingdom of Lesotho + + + LTU + Republic of Lithuania + + + LUX + Grand Duchy of Luxembourg + + + LVA + Republic of Latvia + + + MAC + Macau Special Administrative Region + + + MAF + Saint Martin + + + MAR + Kingdom of Morocco + + + MCO + Principality of Monaco + + + MDA + Republic of Moldova + + + MDG + Republic of Madagascar + + + MDV + Republic of Maldives + + + MEX + United Mexican States + + + MHL + Republic of the Marshall Islands + + + MKD + Republic of Macedonia + + + MLI + Republic of Mali + + + MLT + Republic of Malta + + + MMR + Union of Burma + + + MNE + Montenegro + + + MNG + Mongolia + + + MNP + Commonwealth of the Northern Mariana Islands + + + MOZ + Republic of Mozambique + + + MRT + Islamic Republic of Mauritania + + + MSR + Montserrat + + + MTQ + Territorial Collectivity of Martinique + + + MUS + Republic of Mauritius + + + MWI + Republic of Malawi + + + MYS + Malaysia + + + MYT + Department of Mayotte + + + NAM + Republic of Namibia + + + NCL + New Caledonia + + + NER + Republic of Niger + + + NFK + Territory of Norfolk Island + + + NGA + Federal Republic of Nigeria + + + NIC + Republic of Nicaragua + + + NIU + Niue + + + NLD + Kingdom of the Netherlands + + + NOR + Kingdom of Norway + + + NPL + Federal Democratic Republic of Nepal + + + NRU + Republic of Nauru + + + NZL + New Zealand + + + OMN + Sultanate of Oman + + + PAK + Islamic Republic of Pakistan + + + PAN + Republic of Panama + + + PCN + Pitcairn, Henderson, Ducie, and Oeno Islands + + + PER + Republic of Peru + + + PHL + Republic of the Philippines + + + PLW + Republic of Palau + + + PNG + Independent State of Papua New Guinea + + + POL + Republic of Poland + + + PRI + Commonwealth of Puerto Rico + + + PRK + Democratic People’s Republic of Korea + + + PRT + Portuguese Republic + + + PRY + Republic of Paraguay + + + PYF + French Polynesia + + + QAT + State of Qatar + + + REU + Region of Reunion + + + ROU + Romania + + + RUS + Russian Federation + + + RWA + Republic of Rwanda + + + SAU + Kingdom of Saudi Arabia + + + SDN + Republic of the Sudan + + + SEN + Republic of Senegal + + + SGP + Republic of Singapore + + + SGS + South Georgia and the South Sandwich Islands + + + SHN + Saint Helena, Ascension, and Tristan da Cunha + + + SLB + Solomon Islands + + + SLE + Republic of Sierra Leone + + + SLV + Republic of El Salvador + + + SMR + Republic of San Marino + + + SOM + Federal Republic of Somalia + + + SPM + Territorial Collectivity of Saint Pierre and Miquelon + + + SRB + Republic of Serbia + + + SSD + Republic of South Sudan + + + STP + Democratic Republic of Sao Tome and Principe + + + SUR + Republic of Suriname + + + SVK + Slovak Republic + + + SVN + Republic of Slovenia + + + SWE + Kingdom of Sweden + + + SWZ + Kingdom of Swaziland + + + SXM + Sint Maarten + + + SYC + Republic of Seychelles + + + SYR + Syrian Arab Republic + + + TCA + Turks and Caicos Islands + + + TCD + Republic of Chad + + + TGO + Togolese Republic + + + THA + Kingdom of Thailand + + + TJK + Republic of Tajikistan + + + TKL + Tokelau + + + TKM + Turkmenistan + + + TLS + Democratic Republic of Timor-Leste + + + TON + Kingdom of Tonga + + + TTO + Republic of Trinidad and Tobago + + + TUN + Republic of Tunisia + + + TUR + Republic of Turkey + + + TUV + Tuvalu + + + TWN + Taiwan + + + TZA + United Republic of Tanzania + + + UGA + Republic of Uganda + + + UKR + Ukraine + + + URY + Oriental Republic of Uruguay + + + UZB + Republic of Uzbekistan + + + VAT + State of the Vatican City + + + VCT + Saint Vincent and the Grenadines + + + VEN + Bolivarian Republic of Venezuela + + + VGB + Virgin Islands, British + + + VIR + United States Virgin Islands + + + VNM + Socialist Republic of Vietnam + + + VUT + Republic of Vanuatu + + + WLF + Wallis and Futuna + + + WSM + Independent State of Samoa + + + XAC + Territory of Ashmore and Cartier Islands + + + XAZ + Entity 1 + + + XBI + Bassas da India + + + XBK + Baker Island + + + XCR + Entity 2 + + + XCS + Coral Sea Islands Territory + + + XCY + Entity 3 + + + XEU + Europa Island + + + XGL + Glorioso Islands + + + XGZ + Gaza Strip + + + XHO + Howland Island + + + XJA + Johnston Atoll + + + XJM + Jan Mayen + + + XJN + Juan de Nova Island + + + XJV + Jarvis Island + + + XKM + Entity 4 + + + XKN + Entity 5 + + + XKR + Kingman Reef + + + XKS + Republic of Kosovo + + + XMW + Midway Islands + + + XNV + Navassa Island + + + XPL + Palmyra Atoll + + + XPR + Paracel Islands + + + XQZ + Akrotiri + + + XSP + Spratly Islands + + + XSV + Svalbard + + + XTR + Tromelin Island + + + XWB + West Bank + + + XWK + Wake Island + + + XXD + Dhekelia + + + YEM + Republic of Yemen + + + ZAF + Republic of South Africa + + + ZMB + Republic of Zambia + + + ZWE + Republic of Zimbabwe + + + ACGU + FOUR EYES + + + + AOSC + Athens Olympics Security Coalition + + + + APFS + African Peacekeeping Force Somalia + + + + ASEA + Association of Southeast Asian Nations (ASEAN) + + + + AUSTRALIA_GROUP + Australia Group + + + + BHTF + Boko Haram Task Force + + + + BWCS + Biological Weapons Convention States + + + + CFCK + ROK/US Combined Forces Command, Korea + + + + CFOD + Coalition Forces Odyssey Dawn + + + + CFUP + Coalition Forces Unified Protector + + + + CLFC + Combined Libya Fusion Cell + + + + CMFC + Combined Maritime Forces Central + + + + CMFP + Cooperative Maritime Forces Pacific + + + + CPMT + Civilian Protection Monitoring Team for Sudan + + + + CTOC + Countering Transnational Organized Crime + + + + CWCS + Chemical Weapons Convention States + + + + ECTF + European Counter-Terrorism Forces + + + + EFOR + European Union Stabilization Forces in Bosnia + + + + EU + European Union + + + + EUDA + European Union DARFUR + + + + FVEY + FIVE EYES + + + + GCCH + Gulf Cooperation Council Headquarters + + + + GCTF + Global Counter-Terrorism Forces + + + + GFNX + Global Foreign Terrorist Fighter Network Exchange + + + + GMIF + Global Maritime Interception Forces + + + + IESC + International Events Security Coalition + + + + IRKS + Inherent Resolve Kinetic Support + + + + ISAF + International Security Assistance Force for Afghanistan + + + + ISSG + International Syria Support Group + + + + KFOR + Stabilization Forces in Kosovo + + + + MCFI + Multinational Coalition Forces-Iraq + + + + MESF + Middle East Stability Force + + + + MGEU + Multinational GEOINT Europe + + + + MIFH + Multinational Interim Force Haiti + + + + MLEC + Multi-Lateral Enduring Contingency + + + + MNTF + Multi-National Task Force + + + + MPFL + Multinational Peacekeeping Forces + + + + NACT + North African Counter-Terrorism Forces + + + + NATO + North Atlantic Treaty Organization + + + + NATO:[a-zA-Z\-_]{1,256} + North Atlantic Treaty Organization Special Words + + + NCFE + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NRDC + NORDIC + + + + NSG + Nuclear Suppliers' Group + + + + OSAG + Olympic Security Advisory Group + + + + OSTY + Open Skies Treaty + + + + + PGMF + Persian Gulf Multinational Forces + + + + RSMA + Resolute Support Mission Afghanistan + + + + SFOR + Stabilization Force + + + + SOFP + Special Operations Forces Partners + + + + SPAA + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + TEYE + THREE EYES + + + + UNCK + United Nations Command, Korea + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATOwnerProducer.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATOwnerProducer.csv new file mode 100644 index 0000000000..e0e5a495a0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATOwnerProducer.csv @@ -0,0 +1,334 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","FGI","(U) ","Foreign Government Information" +"(U) ","ABW","(U) ","Aruba" +"(U) ","AFG","(U) ","Islamic Republic of Afghanistan" +"(U) ","AGO","(U) ","Republic of Angola" +"(U) ","AIA","(U) ","Anguilla" +"(U) ","ALB","(U) ","Republic of Albania" +"(U) ","AND","(U) ","Principality of Andorra" +"(U) ","ARE","(U) ","United Arab Emirates" +"(U) ","ARG","(U) ","Argentine Republic" +"(U) ","ARM","(U) ","Republic of Armenia" +"(U) ","ASM","(U) ","Territory of American Samoa" +"(U) ","ATA","(U) ","Antarctica" +"(U) ","ATF","(U) ","French Southern and Antarctic Lands" +"(U) ","ATG","(U) ","Antigua and Barbuda" +"(U) ","AUS","(U) ","Commonwealth of Australia" +"(U) ","AUT","(U) ","Republic of Austria" +"(U) ","AX2","(U) ","Guantanamo Bay Naval Base" +"(U) ","AX3","(U) ","Entity 6" +"(U) ","AZE","(U) ","Republic of Azerbaijan" +"(U) ","BDI","(U) ","Republic of Burundi" +"(U) ","BEL","(U) ","Kingdom of Belgium" +"(U) ","BEN","(U) ","Republic of Benin" +"(U) ","BES","(U) ","Bonaire, Sint Eustatius, and Saba" +"(U) ","BFA","(U) ","Burkina Faso" +"(U) ","BGD","(U) ","People’s Republic of Bangladesh" +"(U) ","BGR","(U) ","Republic of Bulgaria" +"(U) ","BHR","(U) ","Kingdom of Bahrain" +"(U) ","BHS","(U) ","Commonwealth of The Bahamas" +"(U) ","BIH","(U) ","Bosnia and Herzegovina" +"(U) ","BLM","(U) ","Saint Barthelemy" +"(U) ","BLR","(U) ","Republic of Belarus" +"(U) ","BLZ","(U) ","Belize" +"(U) ","BMU","(U) ","Bermuda" +"(U) ","BOL","(U) ","Plurinational State of Bolivia" +"(U) ","BRA","(U) ","Federative Republic of Brazil" +"(U) ","BRB","(U) ","Barbados" +"(U) ","BRN","(U) ","Brunei Darussalam" +"(U) ","BTN","(U) ","Kingdom of Bhutan" +"(U) ","BVT","(U) ","Bouvet Island" +"(U) ","BWA","(U) ","Republic of Botswana" +"(U) ","CAF","(U) ","Central African Republic" +"(U) ","CAN","(U) ","Canada" +"(U) ","CCK","(U) ","Territory of Cocos (Keeling) Islands" +"(U) ","CHE","(U) ","Swiss Confederation" +"(U) ","CHL","(U) ","Republic of Chile" +"(U) ","CHN","(U) ","People’s Republic of China" +"(U) ","CIV","(U) ","Republic of Côte d’Ivoire" +"(U) ","CMR","(U) ","Republic of Cameroon" +"(U) ","COD","(U) ","Democratic Republic of the Congo" +"(U) ","COG","(U) ","Republic of the Congo" +"(U) ","COK","(U) ","Cook Islands" +"(U) ","COL","(U) ","Republic of Colombia" +"(U) ","COM","(U) ","Union of the Comoros" +"(U) ","CPT","(U) ","Clipperton Island" +"(U) ","CPV","(U) ","Republic of Cabo Verde" +"(U) ","CRI","(U) ","Republic of Costa Rica" +"(U) ","CUB","(U) ","Republic of Cuba" +"(U) ","CUW","(U) ","Curaçao" +"(U) ","CXR","(U) ","Territory of Christmas Island" +"(U) ","CYM","(U) ","Cayman Islands" +"(U) ","CYP","(U) ","Republic of Cyprus" +"(U) ","CZE","(U) ","Czech Republic" +"(U) ","DEU","(U) ","Federal Republic of Germany" +"(U) ","DGA","(U) ","Diego Garcia" +"(U) ","DJI","(U) ","Republic of Djibouti" +"(U) ","DMA","(U) ","Commonwealth of Dominica" +"(U) ","DNK","(U) ","Kingdom of Denmark" +"(U) ","DOM","(U) ","Dominican Republic" +"(U) ","DZA","(U) ","People’s Democratic Republic of Algeria" +"(U) ","ECU","(U) ","Republic of Ecuador" +"(U) ","EGY","(U) ","Arab Republic of Egypt" +"(U) ","ERI","(U) ","State of Eritrea" +"(U) ","ESH","(U) ","Western Sahara" +"(U) ","ESP","(U) ","Kingdom of Spain" +"(U) ","EST","(U) ","Republic of Estonia" +"(U) ","ETH","(U) ","Federal Democratic Republic of Ethiopia" +"(U) ","FIN","(U) ","Republic of Finland" +"(U) ","FJI","(U) ","Republic of Fiji" +"(U) ","FLK","(U) ","Falkland Islands (Islas Malvinas)" +"(U) ","FRA","(U) ","French Republic" +"(U) ","FRO","(U) ","Faroe Islands" +"(U) ","FSM","(U) ","Federated States of Micronesia" +"(U) ","GAB","(U) ","Gabonese Republic" +"(U) ","GBR","(U) ","United Kingdom of Great Britain and Northern Ireland" +"(U) ","GEO","(U) ","Georgia" +"(U) ","GGY","(U) ","Bailiwick of Guernsey" +"(U) ","GHA","(U) ","Republic of Ghana" +"(U) ","GIB","(U) ","Gibraltar" +"(U) ","GIN","(U) ","Republic of Guinea" +"(U) ","GLP","(U) ","Region of Guadeloupe" +"(U) ","GMB","(U) ","Republic of The Gambia" +"(U) ","GNB","(U) ","Republic of Guinea-Bissau" +"(U) ","GNQ","(U) ","Republic of Equatorial Guinea" +"(U) ","GRC","(U) ","Hellenic Republic" +"(U) ","GRD","(U) ","Grenada" +"(U) ","GRL","(U) ","Greenland" +"(U) ","GTM","(U) ","Republic of Guatemala" +"(U) ","GUF","(U) ","Territorial Collectivity of Guiana" +"(U) ","GUM","(U) ","Territory of Guam" +"(U) ","GUY","(U) ","Co-operative Republic of Guyana" +"(U) ","HKG","(U) ","Hong Kong Special Administrative Region" +"(U) ","HMD","(U) ","Territory of Heard Island and McDonald Islands" +"(U) ","HND","(U) ","Republic of Honduras" +"(U) ","HRV","(U) ","Republic of Croatia" +"(U) ","HTI","(U) ","Republic of Haiti" +"(U) ","HUN","(U) ","Hungary" +"(U) ","IDN","(U) ","Republic of Indonesia" +"(U) ","IMN","(U) ","Isle of Man" +"(U) ","IND","(U) ","Republic of India" +"(U) ","IOT","(U) ","British Indian Ocean Territory" +"(U) ","IRL","(U) ","Ireland" +"(U) ","IRN","(U) ","Islamic Republic of Iran" +"(U) ","IRQ","(U) ","Republic of Iraq" +"(U) ","ISL","(U) ","Republic of Iceland" +"(U) ","ISR","(U) ","State of Israel" +"(U) ","ITA","(U) ","Italian Republic" +"(U) ","JAM","(U) ","Jamaica" +"(U) ","JEY","(U) ","Bailiwick of Jersey" +"(U) ","JOR","(U) ","Hashemite Kingdom of Jordan" +"(U) ","JPN","(U) ","Japan" +"(U) ","KAZ","(U) ","Republic of Kazakhstan" +"(U) ","KEN","(U) ","Republic of Kenya" +"(U) ","KGZ","(U) ","Kyrgyz Republic" +"(U) ","KHM","(U) ","Kingdom of Cambodia" +"(U) ","KIR","(U) ","Republic of Kiribati" +"(U) ","KNA","(U) ","Federation of Saint Kitts and Nevis" +"(U) ","KOR","(U) ","Republic of Korea" +"(U) ","KWT","(U) ","State of Kuwait" +"(U) ","LAO","(U) ","Lao People’s Democratic Republic" +"(U) ","LBN","(U) ","Lebanese Republic" +"(U) ","LBR","(U) ","Republic of Liberia" +"(U) ","LBY","(U) ","Libya" +"(U) ","LCA","(U) ","Saint Lucia" +"(U) ","LIE","(U) ","Principality of Liechtenstein" +"(U) ","LKA","(U) ","Democratic Socialist Republic of Sri Lanka" +"(U) ","LSO","(U) ","Kingdom of Lesotho" +"(U) ","LTU","(U) ","Republic of Lithuania" +"(U) ","LUX","(U) ","Grand Duchy of Luxembourg" +"(U) ","LVA","(U) ","Republic of Latvia" +"(U) ","MAC","(U) ","Macau Special Administrative Region" +"(U) ","MAF","(U) ","Saint Martin" +"(U) ","MAR","(U) ","Kingdom of Morocco" +"(U) ","MCO","(U) ","Principality of Monaco" +"(U) ","MDA","(U) ","Republic of Moldova" +"(U) ","MDG","(U) ","Republic of Madagascar" +"(U) ","MDV","(U) ","Republic of Maldives" +"(U) ","MEX","(U) ","United Mexican States" +"(U) ","MHL","(U) ","Republic of the Marshall Islands" +"(U) ","MKD","(U) ","Republic of Macedonia" +"(U) ","MLI","(U) ","Republic of Mali" +"(U) ","MLT","(U) ","Republic of Malta" +"(U) ","MMR","(U) ","Union of Burma" +"(U) ","MNE","(U) ","Montenegro" +"(U) ","MNG","(U) ","Mongolia" +"(U) ","MNP","(U) ","Commonwealth of the Northern Mariana Islands" +"(U) ","MOZ","(U) ","Republic of Mozambique" +"(U) ","MRT","(U) ","Islamic Republic of Mauritania" +"(U) ","MSR","(U) ","Montserrat" +"(U) ","MTQ","(U) ","Territorial Collectivity of Martinique" +"(U) ","MUS","(U) ","Republic of Mauritius" +"(U) ","MWI","(U) ","Republic of Malawi" +"(U) ","MYS","(U) ","Malaysia" +"(U) ","MYT","(U) ","Department of Mayotte" +"(U) ","NAM","(U) ","Republic of Namibia" +"(U) ","NCL","(U) ","New Caledonia" +"(U) ","NER","(U) ","Republic of Niger" +"(U) ","NFK","(U) ","Territory of Norfolk Island" +"(U) ","NGA","(U) ","Federal Republic of Nigeria" +"(U) ","NIC","(U) ","Republic of Nicaragua" +"(U) ","NIU","(U) ","Niue" +"(U) ","NLD","(U) ","Kingdom of the Netherlands" +"(U) ","NOR","(U) ","Kingdom of Norway" +"(U) ","NPL","(U) ","Federal Democratic Republic of Nepal" +"(U) ","NRU","(U) ","Republic of Nauru" +"(U) ","NZL","(U) ","New Zealand" +"(U) ","OMN","(U) ","Sultanate of Oman" +"(U) ","PAK","(U) ","Islamic Republic of Pakistan" +"(U) ","PAN","(U) ","Republic of Panama" +"(U) ","PCN","(U) ","Pitcairn, Henderson, Ducie, and Oeno Islands" +"(U) ","PER","(U) ","Republic of Peru" +"(U) ","PHL","(U) ","Republic of the Philippines" +"(U) ","PLW","(U) ","Republic of Palau" +"(U) ","PNG","(U) ","Independent State of Papua New Guinea" +"(U) ","POL","(U) ","Republic of Poland" +"(U) ","PRI","(U) ","Commonwealth of Puerto Rico" +"(U) ","PRK","(U) ","Democratic People’s Republic of Korea" +"(U) ","PRT","(U) ","Portuguese Republic" +"(U) ","PRY","(U) ","Republic of Paraguay" +"(U) ","PYF","(U) ","French Polynesia" +"(U) ","QAT","(U) ","State of Qatar" +"(U) ","REU","(U) ","Region of Reunion" +"(U) ","ROU","(U) ","Romania" +"(U) ","RUS","(U) ","Russian Federation" +"(U) ","RWA","(U) ","Republic of Rwanda" +"(U) ","SAU","(U) ","Kingdom of Saudi Arabia" +"(U) ","SDN","(U) ","Republic of the Sudan" +"(U) ","SEN","(U) ","Republic of Senegal" +"(U) ","SGP","(U) ","Republic of Singapore" +"(U) ","SGS","(U) ","South Georgia and the South Sandwich Islands" +"(U) ","SHN","(U) ","Saint Helena, Ascension, and Tristan da Cunha" +"(U) ","SLB","(U) ","Solomon Islands" +"(U) ","SLE","(U) ","Republic of Sierra Leone" +"(U) ","SLV","(U) ","Republic of El Salvador" +"(U) ","SMR","(U) ","Republic of San Marino" +"(U) ","SOM","(U) ","Federal Republic of Somalia" +"(U) ","SPM","(U) ","Territorial Collectivity of Saint Pierre and Miquelon" +"(U) ","SRB","(U) ","Republic of Serbia" +"(U) ","SSD","(U) ","Republic of South Sudan" +"(U) ","STP","(U) ","Democratic Republic of Sao Tome and Principe" +"(U) ","SUR","(U) ","Republic of Suriname" +"(U) ","SVK","(U) ","Slovak Republic" +"(U) ","SVN","(U) ","Republic of Slovenia" +"(U) ","SWE","(U) ","Kingdom of Sweden" +"(U) ","SWZ","(U) ","Kingdom of Swaziland" +"(U) ","SXM","(U) ","Sint Maarten" +"(U) ","SYC","(U) ","Republic of Seychelles" +"(U) ","SYR","(U) ","Syrian Arab Republic" +"(U) ","TCA","(U) ","Turks and Caicos Islands" +"(U) ","TCD","(U) ","Republic of Chad" +"(U) ","TGO","(U) ","Togolese Republic" +"(U) ","THA","(U) ","Kingdom of Thailand" +"(U) ","TJK","(U) ","Republic of Tajikistan" +"(U) ","TKL","(U) ","Tokelau" +"(U) ","TKM","(U) ","Turkmenistan" +"(U) ","TLS","(U) ","Democratic Republic of Timor-Leste" +"(U) ","TON","(U) ","Kingdom of Tonga" +"(U) ","TTO","(U) ","Republic of Trinidad and Tobago" +"(U) ","TUN","(U) ","Republic of Tunisia" +"(U) ","TUR","(U) ","Republic of Turkey" +"(U) ","TUV","(U) ","Tuvalu" +"(U) ","TWN","(U) ","Taiwan" +"(U) ","TZA","(U) ","United Republic of Tanzania" +"(U) ","UGA","(U) ","Republic of Uganda" +"(U) ","UKR","(U) ","Ukraine" +"(U) ","URY","(U) ","Oriental Republic of Uruguay" +"(U) ","USA","(U) ","United States of America" +"(U) ","UZB","(U) ","Republic of Uzbekistan" +"(U) ","VAT","(U) ","State of the Vatican City" +"(U) ","VCT","(U) ","Saint Vincent and the Grenadines" +"(U) ","VEN","(U) ","Bolivarian Republic of Venezuela" +"(U) ","VGB","(U) ","Virgin Islands, British" +"(U) ","VIR","(U) ","United States Virgin Islands" +"(U) ","VNM","(U) ","Socialist Republic of Vietnam" +"(U) ","VUT","(U) ","Republic of Vanuatu" +"(U) ","WLF","(U) ","Wallis and Futuna" +"(U) ","WSM","(U) ","Independent State of Samoa" +"(U) ","XAC","(U) ","Territory of Ashmore and Cartier Islands" +"(U) ","XAZ","(U) ","Entity 1" +"(U) ","XBI","(U) ","Bassas da India" +"(U) ","XBK","(U) ","Baker Island" +"(U) ","XCR","(U) ","Entity 2" +"(U) ","XCS","(U) ","Coral Sea Islands Territory" +"(U) ","XCY","(U) ","Entity 3" +"(U) ","XEU","(U) ","Europa Island" +"(U) ","XGL","(U) ","Glorioso Islands" +"(U) ","XGZ","(U) ","Gaza Strip" +"(U) ","XHO","(U) ","Howland Island" +"(U) ","XJA","(U) ","Johnston Atoll" +"(U) ","XJM","(U) ","Jan Mayen" +"(U) ","XJN","(U) ","Juan de Nova Island" +"(U) ","XJV","(U) ","Jarvis Island" +"(U) ","XKM","(U) ","Entity 4" +"(U) ","XKN","(U) ","Entity 5" +"(U) ","XKR","(U) ","Kingman Reef" +"(U) ","XKS","(U) ","Republic of Kosovo" +"(U) ","XMW","(U) ","Midway Islands" +"(U) ","XNV","(U) ","Navassa Island" +"(U) ","XPL","(U) ","Palmyra Atoll" +"(U) ","XPR","(U) ","Paracel Islands" +"(U) ","XQZ","(U) ","Akrotiri" +"(U) ","XSP","(U) ","Spratly Islands" +"(U) ","XSV","(U) ","Svalbard" +"(U) ","XTR","(U) ","Tromelin Island" +"(U) ","XWB","(U) ","West Bank" +"(U) ","XWK","(U) ","Wake Island" +"(U) ","XXD","(U) ","Dhekelia" +"(U) ","YEM","(U) ","Republic of Yemen" +"(U) ","ZAF","(U) ","Republic of South Africa" +"(U) ","ZMB","(U) ","Republic of Zambia" +"(U) ","ZWE","(U) ","Republic of Zimbabwe" +"(U) ","ACGU","(U) ","FOUR EYES" +"(U) ","AOSC","(U) ","Athens Olympics Security Coalition" +"(U) ","APFS","(U) ","African Peacekeeping Force Somalia" +"(U) ","ASEA","(U) ","Association of Southeast Asian Nations (ASEAN)" +"(U) ","AUSTRALIA_GROUP","(U) ","Australia Group" +"(U) ","BHTF","(U) ","Boko Haram Task Force" +"(U) ","BWCS","(U) ","Biological Weapons Convention States" +"(U) ","CFCK","(U) ","ROK/US Combined Forces Command, Korea" +"(U) ","CFOD","(U) ","Coalition Forces Odyssey Dawn" +"(U) ","CFUP","(U) ","Coalition Forces Unified Protector" +"(U) ","CLFC","(U) ","Combined Libya Fusion Cell" +"(U) ","CMFC","(U) ","Combined Maritime Forces Central" +"(U) ","CMFP","(U) ","Cooperative Maritime Forces Pacific" +"(U) ","CPMT","(U) ","Civilian Protection Monitoring Team for Sudan" +"(U) ","CTOC","(U) ","Countering Transnational Organized Crime" +"(U) ","CWCS","(U) ","Chemical Weapons Convention States" +"(U) ","ECTF","(U) ","European Counter-Terrorism Forces" +"(U) ","EFOR","(U) ","European Union Stabilization Forces in Bosnia" +"(U) ","EU","(U) ","European Union" +"(U) ","EUDA","(U) ","European Union DARFUR" +"(U) ","FVEY","(U) ","FIVE EYES" +"(U) ","GCCH","(U) ","Gulf Cooperation Council Headquarters" +"(U) ","GCTF","(U) ","Global Counter-Terrorism Forces" +"(U) ","GFNX","(U) ","Global Foreign Terrorist Fighter Network Exchange" +"(U) ","GMIF","(U) ","Global Maritime Interception Forces" +"(U) ","IESC","(U) ","International Events Security Coalition" +"(U) ","IRKS","(U) ","Inherent Resolve Kinetic Support" +"(U) ","ISAF","(U) ","International Security Assistance Force for Afghanistan" +"(U) ","ISSG","(U) ","International Syria Support Group" +"(U) ","KFOR","(U) ","Stabilization Forces in Kosovo" +"(U) ","MCFI","(U) ","Multinational Coalition Forces-Iraq" +"(U) ","MESF","(U) ","Middle East Stability Force" +"(U) ","MGEU","(U) ","Multinational GEOINT Europe" +"(U) ","MIFH","(U) ","Multinational Interim Force Haiti" +"(U) ","MLEC","(U) ","Multi-Lateral Enduring Contingency" +"(U) ","MNTF","(U) ","Multi-National Task Force" +"(U) ","MPFL","(U) ","Multinational Peacekeeping Forces" +"(U) ","NACT","(U) ","North African Counter-Terrorism Forces" +"(U) ","NATO","(U) ","North Atlantic Treaty Organization" +"(U) ","NATO:[a-zA-Z\-_]{1,256}","(U) ","North Atlantic Treaty Organization Special Words" +"(U) ","NCFE","(U) ","NATO CFE Treaty on Conventional Armed Forces in Europe" +"(U) ","NRDC","(U) ","NORDIC" +"(U) ","NSG","(U) ","Nuclear Suppliers' Group" +"(U) ","OSAG","(U) ","Olympic Security Advisory Group" +"(U) ","OSTY","(U) ","Open Skies Treaty" +"(U) ","PGMF","(U) ","Persian Gulf Multinational Forces" +"(U) ","RSMA","(U) ","Resolute Support Mission Afghanistan" +"(U) ","SFOR","(U) ","Stabilization Force" +"(U) ","SOFP","(U) ","Special Operations Forces Partners" +"(U) ","SPAA","(U) ","SOF Planning Activities in Afghanistan (also called "11-Eyes")" +"(U) ","TEYE","(U) ","THREE EYES" +"(U) ","UNCK","(U) ","United Nations Command, Korea" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATOwnerProducer.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATOwnerProducer.xml new file mode 100644 index 0000000000..c34ca7994f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATOwnerProducer.xml @@ -0,0 +1,1977 @@ + + + + + urn:us:gov:ic:cvenum:ismcat:ownerproducer + CVEnumISMCATOwnerProducer + + FGI, followed by GENC trigraphs in alphabetical order by trigraph, + followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. This CVE is used by @ism:ownerProducer. + + + 2019-12-23T16:24:52.427Z + + IC Markings System Register and Manual Register Appendix A + GENC http://geo.aitcnet.org/NSGREG/genc + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + FGI + Foreign Government Information + + + + ABW + Aruba + + + AFG + Islamic Republic of Afghanistan + + + AGO + Republic of Angola + + + AIA + Anguilla + + + ALB + Republic of Albania + + + AND + Principality of Andorra + + + ARE + United Arab Emirates + + + ARG + Argentine Republic + + + ARM + Republic of Armenia + + + ASM + Territory of American Samoa + + + ATA + Antarctica + + + ATF + French Southern and Antarctic Lands + + + ATG + Antigua and Barbuda + + + AUS + Commonwealth of Australia + + + AUT + Republic of Austria + + + AX2 + Guantanamo Bay Naval Base + + + AX3 + Entity 6 + + + AZE + Republic of Azerbaijan + + + BDI + Republic of Burundi + + + BEL + Kingdom of Belgium + + + BEN + Republic of Benin + + + BES + Bonaire, Sint Eustatius, and Saba + + + BFA + Burkina Faso + + + BGD + People’s Republic of Bangladesh + + + BGR + Republic of Bulgaria + + + BHR + Kingdom of Bahrain + + + BHS + Commonwealth of The Bahamas + + + BIH + Bosnia and Herzegovina + + + BLM + Saint Barthelemy + + + BLR + Republic of Belarus + + + BLZ + Belize + + + BMU + Bermuda + + + BOL + Plurinational State of Bolivia + + + BRA + Federative Republic of Brazil + + + BRB + Barbados + + + BRN + Brunei Darussalam + + + BTN + Kingdom of Bhutan + + + BVT + Bouvet Island + + + BWA + Republic of Botswana + + + CAF + Central African Republic + + + CAN + Canada + + + CCK + Territory of Cocos (Keeling) Islands + + + CHE + Swiss Confederation + + + CHL + Republic of Chile + + + CHN + People’s Republic of China + + + CIV + Republic of Côte d’Ivoire + + + CMR + Republic of Cameroon + + + COD + Democratic Republic of the Congo + + + COG + Republic of the Congo + + + COK + Cook Islands + + + COL + Republic of Colombia + + + COM + Union of the Comoros + + + CPT + Clipperton Island + + + CPV + Republic of Cabo Verde + + + CRI + Republic of Costa Rica + + + CUB + Republic of Cuba + + + CUW + Curaçao + + + CXR + Territory of Christmas Island + + + CYM + Cayman Islands + + + CYP + Republic of Cyprus + + + CZE + Czech Republic + + + DEU + Federal Republic of Germany + + + DGA + Diego Garcia + + + DJI + Republic of Djibouti + + + DMA + Commonwealth of Dominica + + + DNK + Kingdom of Denmark + + + DOM + Dominican Republic + + + DZA + People’s Democratic Republic of Algeria + + + ECU + Republic of Ecuador + + + EGY + Arab Republic of Egypt + + + ERI + State of Eritrea + + + ESH + Western Sahara + + + ESP + Kingdom of Spain + + + EST + Republic of Estonia + + + ETH + Federal Democratic Republic of Ethiopia + + + FIN + Republic of Finland + + + FJI + Republic of Fiji + + + FLK + Falkland Islands (Islas Malvinas) + + + FRA + French Republic + + + FRO + Faroe Islands + + + FSM + Federated States of Micronesia + + + GAB + Gabonese Republic + + + GBR + United Kingdom of Great Britain and Northern Ireland + + + GEO + Georgia + + + GGY + Bailiwick of Guernsey + + + GHA + Republic of Ghana + + + GIB + Gibraltar + + + GIN + Republic of Guinea + + + GLP + Region of Guadeloupe + + + GMB + Republic of The Gambia + + + GNB + Republic of Guinea-Bissau + + + GNQ + Republic of Equatorial Guinea + + + GRC + Hellenic Republic + + + GRD + Grenada + + + GRL + Greenland + + + GTM + Republic of Guatemala + + + GUF + Territorial Collectivity of Guiana + + + GUM + Territory of Guam + + + GUY + Co-operative Republic of Guyana + + + HKG + Hong Kong Special Administrative Region + + + HMD + Territory of Heard Island and McDonald Islands + + + HND + Republic of Honduras + + + HRV + Republic of Croatia + + + HTI + Republic of Haiti + + + HUN + Hungary + + + IDN + Republic of Indonesia + + + IMN + Isle of Man + + + IND + Republic of India + + + IOT + British Indian Ocean Territory + + + IRL + Ireland + + + IRN + Islamic Republic of Iran + + + IRQ + Republic of Iraq + + + ISL + Republic of Iceland + + + ISR + State of Israel + + + ITA + Italian Republic + + + JAM + Jamaica + + + JEY + Bailiwick of Jersey + + + JOR + Hashemite Kingdom of Jordan + + + JPN + Japan + + + KAZ + Republic of Kazakhstan + + + KEN + Republic of Kenya + + + KGZ + Kyrgyz Republic + + + KHM + Kingdom of Cambodia + + + KIR + Republic of Kiribati + + + KNA + Federation of Saint Kitts and Nevis + + + KOR + Republic of Korea + + + KWT + State of Kuwait + + + LAO + Lao People’s Democratic Republic + + + LBN + Lebanese Republic + + + LBR + Republic of Liberia + + + LBY + Libya + + + LCA + Saint Lucia + + + LIE + Principality of Liechtenstein + + + LKA + Democratic Socialist Republic of Sri Lanka + + + LSO + Kingdom of Lesotho + + + LTU + Republic of Lithuania + + + LUX + Grand Duchy of Luxembourg + + + LVA + Republic of Latvia + + + MAC + Macau Special Administrative Region + + + MAF + Saint Martin + + + MAR + Kingdom of Morocco + + + MCO + Principality of Monaco + + + MDA + Republic of Moldova + + + MDG + Republic of Madagascar + + + MDV + Republic of Maldives + + + MEX + United Mexican States + + + MHL + Republic of the Marshall Islands + + + MKD + Republic of Macedonia + + + MLI + Republic of Mali + + + MLT + Republic of Malta + + + MMR + Union of Burma + + + MNE + Montenegro + + + MNG + Mongolia + + + MNP + Commonwealth of the Northern Mariana Islands + + + MOZ + Republic of Mozambique + + + MRT + Islamic Republic of Mauritania + + + MSR + Montserrat + + + MTQ + Territorial Collectivity of Martinique + + + MUS + Republic of Mauritius + + + MWI + Republic of Malawi + + + MYS + Malaysia + + + MYT + Department of Mayotte + + + NAM + Republic of Namibia + + + NCL + New Caledonia + + + NER + Republic of Niger + + + NFK + Territory of Norfolk Island + + + NGA + Federal Republic of Nigeria + + + NIC + Republic of Nicaragua + + + NIU + Niue + + + NLD + Kingdom of the Netherlands + + + NOR + Kingdom of Norway + + + NPL + Federal Democratic Republic of Nepal + + + NRU + Republic of Nauru + + + NZL + New Zealand + + + OMN + Sultanate of Oman + + + PAK + Islamic Republic of Pakistan + + + PAN + Republic of Panama + + + PCN + Pitcairn, Henderson, Ducie, and Oeno Islands + + + PER + Republic of Peru + + + PHL + Republic of the Philippines + + + PLW + Republic of Palau + + + PNG + Independent State of Papua New Guinea + + + POL + Republic of Poland + + + PRI + Commonwealth of Puerto Rico + + + PRK + Democratic People’s Republic of Korea + + + PRT + Portuguese Republic + + + PRY + Republic of Paraguay + + + PYF + French Polynesia + + + QAT + State of Qatar + + + REU + Region of Reunion + + + ROU + Romania + + + RUS + Russian Federation + + + RWA + Republic of Rwanda + + + SAU + Kingdom of Saudi Arabia + + + SDN + Republic of the Sudan + + + SEN + Republic of Senegal + + + SGP + Republic of Singapore + + + SGS + South Georgia and the South Sandwich Islands + + + SHN + Saint Helena, Ascension, and Tristan da Cunha + + + SLB + Solomon Islands + + + SLE + Republic of Sierra Leone + + + SLV + Republic of El Salvador + + + SMR + Republic of San Marino + + + SOM + Federal Republic of Somalia + + + SPM + Territorial Collectivity of Saint Pierre and Miquelon + + + SRB + Republic of Serbia + + + SSD + Republic of South Sudan + + + STP + Democratic Republic of Sao Tome and Principe + + + SUR + Republic of Suriname + + + SVK + Slovak Republic + + + SVN + Republic of Slovenia + + + SWE + Kingdom of Sweden + + + SWZ + Kingdom of Swaziland + + + SXM + Sint Maarten + + + SYC + Republic of Seychelles + + + SYR + Syrian Arab Republic + + + TCA + Turks and Caicos Islands + + + TCD + Republic of Chad + + + TGO + Togolese Republic + + + THA + Kingdom of Thailand + + + TJK + Republic of Tajikistan + + + TKL + Tokelau + + + TKM + Turkmenistan + + + TLS + Democratic Republic of Timor-Leste + + + TON + Kingdom of Tonga + + + TTO + Republic of Trinidad and Tobago + + + TUN + Republic of Tunisia + + + TUR + Republic of Turkey + + + TUV + Tuvalu + + + TWN + Taiwan + + + TZA + United Republic of Tanzania + + + UGA + Republic of Uganda + + + UKR + Ukraine + + + URY + Oriental Republic of Uruguay + + + USA + United States of America + + + UZB + Republic of Uzbekistan + + + VAT + State of the Vatican City + + + VCT + Saint Vincent and the Grenadines + + + VEN + Bolivarian Republic of Venezuela + + + VGB + Virgin Islands, British + + + VIR + United States Virgin Islands + + + VNM + Socialist Republic of Vietnam + + + VUT + Republic of Vanuatu + + + WLF + Wallis and Futuna + + + WSM + Independent State of Samoa + + + XAC + Territory of Ashmore and Cartier Islands + + + XAZ + Entity 1 + + + XBI + Bassas da India + + + XBK + Baker Island + + + XCR + Entity 2 + + + XCS + Coral Sea Islands Territory + + + XCY + Entity 3 + + + XEU + Europa Island + + + XGL + Glorioso Islands + + + XGZ + Gaza Strip + + + XHO + Howland Island + + + XJA + Johnston Atoll + + + XJM + Jan Mayen + + + XJN + Juan de Nova Island + + + XJV + Jarvis Island + + + XKM + Entity 4 + + + XKN + Entity 5 + + + XKR + Kingman Reef + + + XKS + Republic of Kosovo + + + XMW + Midway Islands + + + XNV + Navassa Island + + + XPL + Palmyra Atoll + + + XPR + Paracel Islands + + + XQZ + Akrotiri + + + XSP + Spratly Islands + + + XSV + Svalbard + + + XTR + Tromelin Island + + + XWB + West Bank + + + XWK + Wake Island + + + XXD + Dhekelia + + + YEM + Republic of Yemen + + + ZAF + Republic of South Africa + + + ZMB + Republic of Zambia + + + ZWE + Republic of Zimbabwe + + + ACGU + FOUR EYES + + + + AOSC + Athens Olympics Security Coalition + + + + APFS + African Peacekeeping Force Somalia + + + + ASEA + Association of Southeast Asian Nations (ASEAN) + + + + AUSTRALIA_GROUP + Australia Group + + + + BHTF + Boko Haram Task Force + + + + BWCS + Biological Weapons Convention States + + + + CFCK + ROK/US Combined Forces Command, Korea + + + + CFOD + Coalition Forces Odyssey Dawn + + + + CFUP + Coalition Forces Unified Protector + + + + CLFC + Combined Libya Fusion Cell + + + + CMFC + Combined Maritime Forces Central + + + + CMFP + Cooperative Maritime Forces Pacific + + + + CPMT + Civilian Protection Monitoring Team for Sudan + + + + CTOC + Countering Transnational Organized Crime + + + + CWCS + Chemical Weapons Convention States + + + + ECTF + European Counter-Terrorism Forces + + + + EFOR + European Union Stabilization Forces in Bosnia + + + + EU + European Union + + + + EUDA + European Union DARFUR + + + + FVEY + FIVE EYES + + + + GCCH + Gulf Cooperation Council Headquarters + + + + GCTF + Global Counter-Terrorism Forces + + + + GFNX + Global Foreign Terrorist Fighter Network Exchange + + + + GMIF + Global Maritime Interception Forces + + + + IESC + International Events Security Coalition + + + + IRKS + Inherent Resolve Kinetic Support + + + + ISAF + International Security Assistance Force for Afghanistan + + + + ISSG + International Syria Support Group + + + + KFOR + Stabilization Forces in Kosovo + + + + MCFI + Multinational Coalition Forces-Iraq + + + + MESF + Middle East Stability Force + + + + MGEU + Multinational GEOINT Europe + + + + MIFH + Multinational Interim Force Haiti + + + + MLEC + Multi-Lateral Enduring Contingency + + + + MNTF + Multi-National Task Force + + + + MPFL + Multinational Peacekeeping Forces + + + + NACT + North African Counter-Terrorism Forces + + + + NATO + North Atlantic Treaty Organization + + + + NATO:[a-zA-Z\-_]{1,256} + North Atlantic Treaty Organization Special Words + + + NCFE + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NRDC + NORDIC + + + + NSG + Nuclear Suppliers' Group + + + + OSAG + Olympic Security Advisory Group + + + + OSTY + Open Skies Treaty + + + + + PGMF + Persian Gulf Multinational Forces + + + + RSMA + Resolute Support Mission Afghanistan + + + + SFOR + Stabilization Force + + + + SOFP + Special Operations Forces Partners + + + + SPAA + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + TEYE + THREE EYES + + + + UNCK + United Nations Command, Korea + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATRelTo.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATRelTo.csv new file mode 100644 index 0000000000..c09cd82271 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATRelTo.csv @@ -0,0 +1,333 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","USA","(U) ","United States" +"(U) ","ABW","(U) ","Aruba" +"(U) ","AFG","(U) ","Islamic Republic of Afghanistan" +"(U) ","AGO","(U) ","Republic of Angola" +"(U) ","AIA","(U) ","Anguilla" +"(U) ","ALB","(U) ","Republic of Albania" +"(U) ","AND","(U) ","Principality of Andorra" +"(U) ","ARE","(U) ","United Arab Emirates" +"(U) ","ARG","(U) ","Argentine Republic" +"(U) ","ARM","(U) ","Republic of Armenia" +"(U) ","ASM","(U) ","Territory of American Samoa" +"(U) ","ATA","(U) ","Antarctica" +"(U) ","ATF","(U) ","French Southern and Antarctic Lands" +"(U) ","ATG","(U) ","Antigua and Barbuda" +"(U) ","AUS","(U) ","Commonwealth of Australia" +"(U) ","AUT","(U) ","Republic of Austria" +"(U) ","AX2","(U) ","Guantanamo Bay Naval Base" +"(U) ","AX3","(U) ","Entity 6" +"(U) ","AZE","(U) ","Republic of Azerbaijan" +"(U) ","BDI","(U) ","Republic of Burundi" +"(U) ","BEL","(U) ","Kingdom of Belgium" +"(U) ","BEN","(U) ","Republic of Benin" +"(U) ","BES","(U) ","Bonaire, Sint Eustatius, and Saba" +"(U) ","BFA","(U) ","Burkina Faso" +"(U) ","BGD","(U) ","People’s Republic of Bangladesh" +"(U) ","BGR","(U) ","Republic of Bulgaria" +"(U) ","BHR","(U) ","Kingdom of Bahrain" +"(U) ","BHS","(U) ","Commonwealth of The Bahamas" +"(U) ","BIH","(U) ","Bosnia and Herzegovina" +"(U) ","BLM","(U) ","Saint Barthelemy" +"(U) ","BLR","(U) ","Republic of Belarus" +"(U) ","BLZ","(U) ","Belize" +"(U) ","BMU","(U) ","Bermuda" +"(U) ","BOL","(U) ","Plurinational State of Bolivia" +"(U) ","BRA","(U) ","Federative Republic of Brazil" +"(U) ","BRB","(U) ","Barbados" +"(U) ","BRN","(U) ","Brunei Darussalam" +"(U) ","BTN","(U) ","Kingdom of Bhutan" +"(U) ","BVT","(U) ","Bouvet Island" +"(U) ","BWA","(U) ","Republic of Botswana" +"(U) ","CAF","(U) ","Central African Republic" +"(U) ","CAN","(U) ","Canada" +"(U) ","CCK","(U) ","Territory of Cocos (Keeling) Islands" +"(U) ","CHE","(U) ","Swiss Confederation" +"(U) ","CHL","(U) ","Republic of Chile" +"(U) ","CHN","(U) ","People’s Republic of China" +"(U) ","CIV","(U) ","Republic of Côte d’Ivoire" +"(U) ","CMR","(U) ","Republic of Cameroon" +"(U) ","COD","(U) ","Democratic Republic of the Congo" +"(U) ","COG","(U) ","Republic of the Congo" +"(U) ","COK","(U) ","Cook Islands" +"(U) ","COL","(U) ","Republic of Colombia" +"(U) ","COM","(U) ","Union of the Comoros" +"(U) ","CPT","(U) ","Clipperton Island" +"(U) ","CPV","(U) ","Republic of Cabo Verde" +"(U) ","CRI","(U) ","Republic of Costa Rica" +"(U) ","CUB","(U) ","Republic of Cuba" +"(U) ","CUW","(U) ","Curaçao" +"(U) ","CXR","(U) ","Territory of Christmas Island" +"(U) ","CYM","(U) ","Cayman Islands" +"(U) ","CYP","(U) ","Republic of Cyprus" +"(U) ","CZE","(U) ","Czech Republic" +"(U) ","DEU","(U) ","Federal Republic of Germany" +"(U) ","DGA","(U) ","Diego Garcia" +"(U) ","DJI","(U) ","Republic of Djibouti" +"(U) ","DMA","(U) ","Commonwealth of Dominica" +"(U) ","DNK","(U) ","Kingdom of Denmark" +"(U) ","DOM","(U) ","Dominican Republic" +"(U) ","DZA","(U) ","People’s Democratic Republic of Algeria" +"(U) ","ECU","(U) ","Republic of Ecuador" +"(U) ","EGY","(U) ","Arab Republic of Egypt" +"(U) ","ERI","(U) ","State of Eritrea" +"(U) ","ESH","(U) ","Western Sahara" +"(U) ","ESP","(U) ","Kingdom of Spain" +"(U) ","EST","(U) ","Republic of Estonia" +"(U) ","ETH","(U) ","Federal Democratic Republic of Ethiopia" +"(U) ","FIN","(U) ","Republic of Finland" +"(U) ","FJI","(U) ","Republic of Fiji" +"(U) ","FLK","(U) ","Falkland Islands (Islas Malvinas)" +"(U) ","FRA","(U) ","French Republic" +"(U) ","FRO","(U) ","Faroe Islands" +"(U) ","FSM","(U) ","Federated States of Micronesia" +"(U) ","GAB","(U) ","Gabonese Republic" +"(U) ","GBR","(U) ","United Kingdom of Great Britain and Northern Ireland" +"(U) ","GEO","(U) ","Georgia" +"(U) ","GGY","(U) ","Bailiwick of Guernsey" +"(U) ","GHA","(U) ","Republic of Ghana" +"(U) ","GIB","(U) ","Gibraltar" +"(U) ","GIN","(U) ","Republic of Guinea" +"(U) ","GLP","(U) ","Region of Guadeloupe" +"(U) ","GMB","(U) ","Republic of The Gambia" +"(U) ","GNB","(U) ","Republic of Guinea-Bissau" +"(U) ","GNQ","(U) ","Republic of Equatorial Guinea" +"(U) ","GRC","(U) ","Hellenic Republic" +"(U) ","GRD","(U) ","Grenada" +"(U) ","GRL","(U) ","Greenland" +"(U) ","GTM","(U) ","Republic of Guatemala" +"(U) ","GUF","(U) ","Territorial Collectivity of Guiana" +"(U) ","GUM","(U) ","Territory of Guam" +"(U) ","GUY","(U) ","Co-operative Republic of Guyana" +"(U) ","HKG","(U) ","Hong Kong Special Administrative Region" +"(U) ","HMD","(U) ","Territory of Heard Island and McDonald Islands" +"(U) ","HND","(U) ","Republic of Honduras" +"(U) ","HRV","(U) ","Republic of Croatia" +"(U) ","HTI","(U) ","Republic of Haiti" +"(U) ","HUN","(U) ","Hungary" +"(U) ","IDN","(U) ","Republic of Indonesia" +"(U) ","IMN","(U) ","Isle of Man" +"(U) ","IND","(U) ","Republic of India" +"(U) ","IOT","(U) ","British Indian Ocean Territory" +"(U) ","IRL","(U) ","Ireland" +"(U) ","IRN","(U) ","Islamic Republic of Iran" +"(U) ","IRQ","(U) ","Republic of Iraq" +"(U) ","ISL","(U) ","Republic of Iceland" +"(U) ","ISR","(U) ","State of Israel" +"(U) ","ITA","(U) ","Italian Republic" +"(U) ","JAM","(U) ","Jamaica" +"(U) ","JEY","(U) ","Bailiwick of Jersey" +"(U) ","JOR","(U) ","Hashemite Kingdom of Jordan" +"(U) ","JPN","(U) ","Japan" +"(U) ","KAZ","(U) ","Republic of Kazakhstan" +"(U) ","KEN","(U) ","Republic of Kenya" +"(U) ","KGZ","(U) ","Kyrgyz Republic" +"(U) ","KHM","(U) ","Kingdom of Cambodia" +"(U) ","KIR","(U) ","Republic of Kiribati" +"(U) ","KNA","(U) ","Federation of Saint Kitts and Nevis" +"(U) ","KOR","(U) ","Republic of Korea" +"(U) ","KWT","(U) ","State of Kuwait" +"(U) ","LAO","(U) ","Lao People’s Democratic Republic" +"(U) ","LBN","(U) ","Lebanese Republic" +"(U) ","LBR","(U) ","Republic of Liberia" +"(U) ","LBY","(U) ","Libya" +"(U) ","LCA","(U) ","Saint Lucia" +"(U) ","LIE","(U) ","Principality of Liechtenstein" +"(U) ","LKA","(U) ","Democratic Socialist Republic of Sri Lanka" +"(U) ","LSO","(U) ","Kingdom of Lesotho" +"(U) ","LTU","(U) ","Republic of Lithuania" +"(U) ","LUX","(U) ","Grand Duchy of Luxembourg" +"(U) ","LVA","(U) ","Republic of Latvia" +"(U) ","MAC","(U) ","Macau Special Administrative Region" +"(U) ","MAF","(U) ","Saint Martin" +"(U) ","MAR","(U) ","Kingdom of Morocco" +"(U) ","MCO","(U) ","Principality of Monaco" +"(U) ","MDA","(U) ","Republic of Moldova" +"(U) ","MDG","(U) ","Republic of Madagascar" +"(U) ","MDV","(U) ","Republic of Maldives" +"(U) ","MEX","(U) ","United Mexican States" +"(U) ","MHL","(U) ","Republic of the Marshall Islands" +"(U) ","MKD","(U) ","Republic of Macedonia" +"(U) ","MLI","(U) ","Republic of Mali" +"(U) ","MLT","(U) ","Republic of Malta" +"(U) ","MMR","(U) ","Union of Burma" +"(U) ","MNE","(U) ","Montenegro" +"(U) ","MNG","(U) ","Mongolia" +"(U) ","MNP","(U) ","Commonwealth of the Northern Mariana Islands" +"(U) ","MOZ","(U) ","Republic of Mozambique" +"(U) ","MRT","(U) ","Islamic Republic of Mauritania" +"(U) ","MSR","(U) ","Montserrat" +"(U) ","MTQ","(U) ","Territorial Collectivity of Martinique" +"(U) ","MUS","(U) ","Republic of Mauritius" +"(U) ","MWI","(U) ","Republic of Malawi" +"(U) ","MYS","(U) ","Malaysia" +"(U) ","MYT","(U) ","Department of Mayotte" +"(U) ","NAM","(U) ","Republic of Namibia" +"(U) ","NCL","(U) ","New Caledonia" +"(U) ","NER","(U) ","Republic of Niger" +"(U) ","NFK","(U) ","Territory of Norfolk Island" +"(U) ","NGA","(U) ","Federal Republic of Nigeria" +"(U) ","NIC","(U) ","Republic of Nicaragua" +"(U) ","NIU","(U) ","Niue" +"(U) ","NLD","(U) ","Kingdom of the Netherlands" +"(U) ","NOR","(U) ","Kingdom of Norway" +"(U) ","NPL","(U) ","Federal Democratic Republic of Nepal" +"(U) ","NRU","(U) ","Republic of Nauru" +"(U) ","NZL","(U) ","New Zealand" +"(U) ","OMN","(U) ","Sultanate of Oman" +"(U) ","PAK","(U) ","Islamic Republic of Pakistan" +"(U) ","PAN","(U) ","Republic of Panama" +"(U) ","PCN","(U) ","Pitcairn, Henderson, Ducie, and Oeno Islands" +"(U) ","PER","(U) ","Republic of Peru" +"(U) ","PHL","(U) ","Republic of the Philippines" +"(U) ","PLW","(U) ","Republic of Palau" +"(U) ","PNG","(U) ","Independent State of Papua New Guinea" +"(U) ","POL","(U) ","Republic of Poland" +"(U) ","PRI","(U) ","Commonwealth of Puerto Rico" +"(U) ","PRK","(U) ","Democratic People’s Republic of Korea" +"(U) ","PRT","(U) ","Portuguese Republic" +"(U) ","PRY","(U) ","Republic of Paraguay" +"(U) ","PYF","(U) ","French Polynesia" +"(U) ","QAT","(U) ","State of Qatar" +"(U) ","REU","(U) ","Region of Reunion" +"(U) ","ROU","(U) ","Romania" +"(U) ","RUS","(U) ","Russian Federation" +"(U) ","RWA","(U) ","Republic of Rwanda" +"(U) ","SAU","(U) ","Kingdom of Saudi Arabia" +"(U) ","SDN","(U) ","Republic of the Sudan" +"(U) ","SEN","(U) ","Republic of Senegal" +"(U) ","SGP","(U) ","Republic of Singapore" +"(U) ","SGS","(U) ","South Georgia and the South Sandwich Islands" +"(U) ","SHN","(U) ","Saint Helena, Ascension, and Tristan da Cunha" +"(U) ","SLB","(U) ","Solomon Islands" +"(U) ","SLE","(U) ","Republic of Sierra Leone" +"(U) ","SLV","(U) ","Republic of El Salvador" +"(U) ","SMR","(U) ","Republic of San Marino" +"(U) ","SOM","(U) ","Federal Republic of Somalia" +"(U) ","SPM","(U) ","Territorial Collectivity of Saint Pierre and Miquelon" +"(U) ","SRB","(U) ","Republic of Serbia" +"(U) ","SSD","(U) ","Republic of South Sudan" +"(U) ","STP","(U) ","Democratic Republic of Sao Tome and Principe" +"(U) ","SUR","(U) ","Republic of Suriname" +"(U) ","SVK","(U) ","Slovak Republic" +"(U) ","SVN","(U) ","Republic of Slovenia" +"(U) ","SWE","(U) ","Kingdom of Sweden" +"(U) ","SWZ","(U) ","Kingdom of Swaziland" +"(U) ","SXM","(U) ","Sint Maarten" +"(U) ","SYC","(U) ","Republic of Seychelles" +"(U) ","SYR","(U) ","Syrian Arab Republic" +"(U) ","TCA","(U) ","Turks and Caicos Islands" +"(U) ","TCD","(U) ","Republic of Chad" +"(U) ","TGO","(U) ","Togolese Republic" +"(U) ","THA","(U) ","Kingdom of Thailand" +"(U) ","TJK","(U) ","Republic of Tajikistan" +"(U) ","TKL","(U) ","Tokelau" +"(U) ","TKM","(U) ","Turkmenistan" +"(U) ","TLS","(U) ","Democratic Republic of Timor-Leste" +"(U) ","TON","(U) ","Kingdom of Tonga" +"(U) ","TTO","(U) ","Republic of Trinidad and Tobago" +"(U) ","TUN","(U) ","Republic of Tunisia" +"(U) ","TUR","(U) ","Republic of Turkey" +"(U) ","TUV","(U) ","Tuvalu" +"(U) ","TWN","(U) ","Taiwan" +"(U) ","TZA","(U) ","United Republic of Tanzania" +"(U) ","UGA","(U) ","Republic of Uganda" +"(U) ","UKR","(U) ","Ukraine" +"(U) ","URY","(U) ","Oriental Republic of Uruguay" +"(U) ","UZB","(U) ","Republic of Uzbekistan" +"(U) ","VAT","(U) ","State of the Vatican City" +"(U) ","VCT","(U) ","Saint Vincent and the Grenadines" +"(U) ","VEN","(U) ","Bolivarian Republic of Venezuela" +"(U) ","VGB","(U) ","Virgin Islands, British" +"(U) ","VIR","(U) ","United States Virgin Islands" +"(U) ","VNM","(U) ","Socialist Republic of Vietnam" +"(U) ","VUT","(U) ","Republic of Vanuatu" +"(U) ","WLF","(U) ","Wallis and Futuna" +"(U) ","WSM","(U) ","Independent State of Samoa" +"(U) ","XAC","(U) ","Territory of Ashmore and Cartier Islands" +"(U) ","XAZ","(U) ","Entity 1" +"(U) ","XBI","(U) ","Bassas da India" +"(U) ","XBK","(U) ","Baker Island" +"(U) ","XCR","(U) ","Entity 2" +"(U) ","XCS","(U) ","Coral Sea Islands Territory" +"(U) ","XCY","(U) ","Entity 3" +"(U) ","XEU","(U) ","Europa Island" +"(U) ","XGL","(U) ","Glorioso Islands" +"(U) ","XGZ","(U) ","Gaza Strip" +"(U) ","XHO","(U) ","Howland Island" +"(U) ","XJA","(U) ","Johnston Atoll" +"(U) ","XJM","(U) ","Jan Mayen" +"(U) ","XJN","(U) ","Juan de Nova Island" +"(U) ","XJV","(U) ","Jarvis Island" +"(U) ","XKM","(U) ","Entity 4" +"(U) ","XKN","(U) ","Entity 5" +"(U) ","XKR","(U) ","Kingman Reef" +"(U) ","XKS","(U) ","Republic of Kosovo" +"(U) ","XMW","(U) ","Midway Islands" +"(U) ","XNV","(U) ","Navassa Island" +"(U) ","XPL","(U) ","Palmyra Atoll" +"(U) ","XPR","(U) ","Paracel Islands" +"(U) ","XQZ","(U) ","Akrotiri" +"(U) ","XSP","(U) ","Spratly Islands" +"(U) ","XSV","(U) ","Svalbard" +"(U) ","XTR","(U) ","Tromelin Island" +"(U) ","XWB","(U) ","West Bank" +"(U) ","XWK","(U) ","Wake Island" +"(U) ","XXD","(U) ","Dhekelia" +"(U) ","YEM","(U) ","Republic of Yemen" +"(U) ","ZAF","(U) ","Republic of South Africa" +"(U) ","ZMB","(U) ","Republic of Zambia" +"(U) ","ZWE","(U) ","Republic of Zimbabwe" +"(U) ","ACGU","(U) ","FOUR EYES" +"(U) ","AOSC","(U) ","Athens Olympics Security Coalition" +"(U) ","APFS","(U) ","African Peacekeeping Force Somalia" +"(U) ","ASEA","(U) ","Association of Southeast Asian Nations (ASEAN)" +"(U) ","AUSTRALIA_GROUP","(U) ","Australia Group" +"(U) ","BHTF","(U) ","Boko Haram Task Force" +"(U) ","BWCS","(U) ","Biological Weapons Convention States" +"(U) ","CFCK","(U) ","ROK/US Combined Forces Command, Korea" +"(U) ","CFOD","(U) ","Coalition Forces Odyssey Dawn" +"(U) ","CFUP","(U) ","Coalition Forces Unified Protector" +"(U) ","CLFC","(U) ","Combined Libya Fusion Cell" +"(U) ","CMFC","(U) ","Combined Maritime Forces Central" +"(U) ","CMFP","(U) ","Cooperative Maritime Forces Pacific" +"(U) ","CPMT","(U) ","Civilian Protection Monitoring Team for Sudan" +"(U) ","CTOC","(U) ","Countering Transnational Organized Crime" +"(U) ","CWCS","(U) ","Chemical Weapons Convention States" +"(U) ","ECTF","(U) ","European Counter-Terrorism Forces" +"(U) ","EFOR","(U) ","European Union Stabilization Forces in Bosnia" +"(U) ","EU","(U) ","European Union" +"(U) ","EUDA","(U) ","European Union DARFUR" +"(U) ","FVEY","(U) ","FIVE EYES" +"(U) ","GCCH","(U) ","Gulf Cooperation Council Headquarters" +"(U) ","GCTF","(U) ","Global Counter-Terrorism Forces" +"(U) ","GFNX","(U) ","Global Foreign Terrorist Fighter Network Exchange" +"(U) ","GMIF","(U) ","Global Maritime Interception Forces" +"(U) ","IESC","(U) ","International Events Security Coalition" +"(U) ","IRKS","(U) ","Inherent Resolve Kinetic Support" +"(U) ","ISAF","(U) ","International Security Assistance Force for Afghanistan" +"(U) ","ISSG","(U) ","International Syria Support Group" +"(U) ","KFOR","(U) ","Stabilization Forces in Kosovo" +"(U) ","MCFI","(U) ","Multinational Coalition Forces-Iraq" +"(U) ","MESF","(U) ","Middle East Stability Force" +"(U) ","MGEU","(U) ","Multinational GEOINT Europe" +"(U) ","MIFH","(U) ","Multinational Interim Force Haiti" +"(U) ","MLEC","(U) ","Multi-Lateral Enduring Contingency" +"(U) ","MNTF","(U) ","Multi-National Task Force" +"(U) ","MPFL","(U) ","Multinational Peacekeeping Forces" +"(U) ","NACT","(U) ","North African Counter-Terrorism Forces" +"(U) ","NATO","(U) ","North Atlantic Treaty Organization" +"(U) ","NATO:[a-zA-Z\-_]{1,256}","(U) ","North Atlantic Treaty Organization Special Words" +"(U) ","NCFE","(U) ","NATO CFE Treaty on Conventional Armed Forces in Europe" +"(U) ","NRDC","(U) ","NORDIC" +"(U) ","NSG","(U) ","Nuclear Suppliers' Group" +"(U) ","OSAG","(U) ","Olympic Security Advisory Group" +"(U) ","OSTY","(U) ","Open Skies Treaty" +"(U) ","PGMF","(U) ","Persian Gulf Multinational Forces" +"(U) ","RSMA","(U) ","Resolute Support Mission Afghanistan" +"(U) ","SFOR","(U) ","Stabilization Force" +"(U) ","SOFP","(U) ","Special Operations Forces Partners" +"(U) ","SPAA","(U) ","SOF Planning Activities in Afghanistan (also called "11-Eyes")" +"(U) ","TEYE","(U) ","THREE EYES" +"(U) ","UNCK","(U) ","United Nations Command, Korea" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATRelTo.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATRelTo.xml new file mode 100644 index 0000000000..9622396715 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATRelTo.xml @@ -0,0 +1,1971 @@ + + + + + urn:us:gov:ic:cvenum:ismcat:relto + CVEnumISMCATRelTo + + USA, followed by GENC trigraphs except USA in alphabetical order by trigraph, + followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. This CVE is used by @ism:releasableTo and @ism:displayOnlyTo. + + + 2019-12-23T16:24:52.94Z + + IC Markings System Register and Manual Register Appendix A + GENC http://geo.aitcnet.org/NSGREG/genc + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + USA + United States + + + + ABW + Aruba + + + AFG + Islamic Republic of Afghanistan + + + AGO + Republic of Angola + + + AIA + Anguilla + + + ALB + Republic of Albania + + + AND + Principality of Andorra + + + ARE + United Arab Emirates + + + ARG + Argentine Republic + + + ARM + Republic of Armenia + + + ASM + Territory of American Samoa + + + ATA + Antarctica + + + ATF + French Southern and Antarctic Lands + + + ATG + Antigua and Barbuda + + + AUS + Commonwealth of Australia + + + AUT + Republic of Austria + + + AX2 + Guantanamo Bay Naval Base + + + AX3 + Entity 6 + + + AZE + Republic of Azerbaijan + + + BDI + Republic of Burundi + + + BEL + Kingdom of Belgium + + + BEN + Republic of Benin + + + BES + Bonaire, Sint Eustatius, and Saba + + + BFA + Burkina Faso + + + BGD + People’s Republic of Bangladesh + + + BGR + Republic of Bulgaria + + + BHR + Kingdom of Bahrain + + + BHS + Commonwealth of The Bahamas + + + BIH + Bosnia and Herzegovina + + + BLM + Saint Barthelemy + + + BLR + Republic of Belarus + + + BLZ + Belize + + + BMU + Bermuda + + + BOL + Plurinational State of Bolivia + + + BRA + Federative Republic of Brazil + + + BRB + Barbados + + + BRN + Brunei Darussalam + + + BTN + Kingdom of Bhutan + + + BVT + Bouvet Island + + + BWA + Republic of Botswana + + + CAF + Central African Republic + + + CAN + Canada + + + CCK + Territory of Cocos (Keeling) Islands + + + CHE + Swiss Confederation + + + CHL + Republic of Chile + + + CHN + People’s Republic of China + + + CIV + Republic of Côte d’Ivoire + + + CMR + Republic of Cameroon + + + COD + Democratic Republic of the Congo + + + COG + Republic of the Congo + + + COK + Cook Islands + + + COL + Republic of Colombia + + + COM + Union of the Comoros + + + CPT + Clipperton Island + + + CPV + Republic of Cabo Verde + + + CRI + Republic of Costa Rica + + + CUB + Republic of Cuba + + + CUW + Curaçao + + + CXR + Territory of Christmas Island + + + CYM + Cayman Islands + + + CYP + Republic of Cyprus + + + CZE + Czech Republic + + + DEU + Federal Republic of Germany + + + DGA + Diego Garcia + + + DJI + Republic of Djibouti + + + DMA + Commonwealth of Dominica + + + DNK + Kingdom of Denmark + + + DOM + Dominican Republic + + + DZA + People’s Democratic Republic of Algeria + + + ECU + Republic of Ecuador + + + EGY + Arab Republic of Egypt + + + ERI + State of Eritrea + + + ESH + Western Sahara + + + ESP + Kingdom of Spain + + + EST + Republic of Estonia + + + ETH + Federal Democratic Republic of Ethiopia + + + FIN + Republic of Finland + + + FJI + Republic of Fiji + + + FLK + Falkland Islands (Islas Malvinas) + + + FRA + French Republic + + + FRO + Faroe Islands + + + FSM + Federated States of Micronesia + + + GAB + Gabonese Republic + + + GBR + United Kingdom of Great Britain and Northern Ireland + + + GEO + Georgia + + + GGY + Bailiwick of Guernsey + + + GHA + Republic of Ghana + + + GIB + Gibraltar + + + GIN + Republic of Guinea + + + GLP + Region of Guadeloupe + + + GMB + Republic of The Gambia + + + GNB + Republic of Guinea-Bissau + + + GNQ + Republic of Equatorial Guinea + + + GRC + Hellenic Republic + + + GRD + Grenada + + + GRL + Greenland + + + GTM + Republic of Guatemala + + + GUF + Territorial Collectivity of Guiana + + + GUM + Territory of Guam + + + GUY + Co-operative Republic of Guyana + + + HKG + Hong Kong Special Administrative Region + + + HMD + Territory of Heard Island and McDonald Islands + + + HND + Republic of Honduras + + + HRV + Republic of Croatia + + + HTI + Republic of Haiti + + + HUN + Hungary + + + IDN + Republic of Indonesia + + + IMN + Isle of Man + + + IND + Republic of India + + + IOT + British Indian Ocean Territory + + + IRL + Ireland + + + IRN + Islamic Republic of Iran + + + IRQ + Republic of Iraq + + + ISL + Republic of Iceland + + + ISR + State of Israel + + + ITA + Italian Republic + + + JAM + Jamaica + + + JEY + Bailiwick of Jersey + + + JOR + Hashemite Kingdom of Jordan + + + JPN + Japan + + + KAZ + Republic of Kazakhstan + + + KEN + Republic of Kenya + + + KGZ + Kyrgyz Republic + + + KHM + Kingdom of Cambodia + + + KIR + Republic of Kiribati + + + KNA + Federation of Saint Kitts and Nevis + + + KOR + Republic of Korea + + + KWT + State of Kuwait + + + LAO + Lao People’s Democratic Republic + + + LBN + Lebanese Republic + + + LBR + Republic of Liberia + + + LBY + Libya + + + LCA + Saint Lucia + + + LIE + Principality of Liechtenstein + + + LKA + Democratic Socialist Republic of Sri Lanka + + + LSO + Kingdom of Lesotho + + + LTU + Republic of Lithuania + + + LUX + Grand Duchy of Luxembourg + + + LVA + Republic of Latvia + + + MAC + Macau Special Administrative Region + + + MAF + Saint Martin + + + MAR + Kingdom of Morocco + + + MCO + Principality of Monaco + + + MDA + Republic of Moldova + + + MDG + Republic of Madagascar + + + MDV + Republic of Maldives + + + MEX + United Mexican States + + + MHL + Republic of the Marshall Islands + + + MKD + Republic of Macedonia + + + MLI + Republic of Mali + + + MLT + Republic of Malta + + + MMR + Union of Burma + + + MNE + Montenegro + + + MNG + Mongolia + + + MNP + Commonwealth of the Northern Mariana Islands + + + MOZ + Republic of Mozambique + + + MRT + Islamic Republic of Mauritania + + + MSR + Montserrat + + + MTQ + Territorial Collectivity of Martinique + + + MUS + Republic of Mauritius + + + MWI + Republic of Malawi + + + MYS + Malaysia + + + MYT + Department of Mayotte + + + NAM + Republic of Namibia + + + NCL + New Caledonia + + + NER + Republic of Niger + + + NFK + Territory of Norfolk Island + + + NGA + Federal Republic of Nigeria + + + NIC + Republic of Nicaragua + + + NIU + Niue + + + NLD + Kingdom of the Netherlands + + + NOR + Kingdom of Norway + + + NPL + Federal Democratic Republic of Nepal + + + NRU + Republic of Nauru + + + NZL + New Zealand + + + OMN + Sultanate of Oman + + + PAK + Islamic Republic of Pakistan + + + PAN + Republic of Panama + + + PCN + Pitcairn, Henderson, Ducie, and Oeno Islands + + + PER + Republic of Peru + + + PHL + Republic of the Philippines + + + PLW + Republic of Palau + + + PNG + Independent State of Papua New Guinea + + + POL + Republic of Poland + + + PRI + Commonwealth of Puerto Rico + + + PRK + Democratic People’s Republic of Korea + + + PRT + Portuguese Republic + + + PRY + Republic of Paraguay + + + PYF + French Polynesia + + + QAT + State of Qatar + + + REU + Region of Reunion + + + ROU + Romania + + + RUS + Russian Federation + + + RWA + Republic of Rwanda + + + SAU + Kingdom of Saudi Arabia + + + SDN + Republic of the Sudan + + + SEN + Republic of Senegal + + + SGP + Republic of Singapore + + + SGS + South Georgia and the South Sandwich Islands + + + SHN + Saint Helena, Ascension, and Tristan da Cunha + + + SLB + Solomon Islands + + + SLE + Republic of Sierra Leone + + + SLV + Republic of El Salvador + + + SMR + Republic of San Marino + + + SOM + Federal Republic of Somalia + + + SPM + Territorial Collectivity of Saint Pierre and Miquelon + + + SRB + Republic of Serbia + + + SSD + Republic of South Sudan + + + STP + Democratic Republic of Sao Tome and Principe + + + SUR + Republic of Suriname + + + SVK + Slovak Republic + + + SVN + Republic of Slovenia + + + SWE + Kingdom of Sweden + + + SWZ + Kingdom of Swaziland + + + SXM + Sint Maarten + + + SYC + Republic of Seychelles + + + SYR + Syrian Arab Republic + + + TCA + Turks and Caicos Islands + + + TCD + Republic of Chad + + + TGO + Togolese Republic + + + THA + Kingdom of Thailand + + + TJK + Republic of Tajikistan + + + TKL + Tokelau + + + TKM + Turkmenistan + + + TLS + Democratic Republic of Timor-Leste + + + TON + Kingdom of Tonga + + + TTO + Republic of Trinidad and Tobago + + + TUN + Republic of Tunisia + + + TUR + Republic of Turkey + + + TUV + Tuvalu + + + TWN + Taiwan + + + TZA + United Republic of Tanzania + + + UGA + Republic of Uganda + + + UKR + Ukraine + + + URY + Oriental Republic of Uruguay + + + UZB + Republic of Uzbekistan + + + VAT + State of the Vatican City + + + VCT + Saint Vincent and the Grenadines + + + VEN + Bolivarian Republic of Venezuela + + + VGB + Virgin Islands, British + + + VIR + United States Virgin Islands + + + VNM + Socialist Republic of Vietnam + + + VUT + Republic of Vanuatu + + + WLF + Wallis and Futuna + + + WSM + Independent State of Samoa + + + XAC + Territory of Ashmore and Cartier Islands + + + XAZ + Entity 1 + + + XBI + Bassas da India + + + XBK + Baker Island + + + XCR + Entity 2 + + + XCS + Coral Sea Islands Territory + + + XCY + Entity 3 + + + XEU + Europa Island + + + XGL + Glorioso Islands + + + XGZ + Gaza Strip + + + XHO + Howland Island + + + XJA + Johnston Atoll + + + XJM + Jan Mayen + + + XJN + Juan de Nova Island + + + XJV + Jarvis Island + + + XKM + Entity 4 + + + XKN + Entity 5 + + + XKR + Kingman Reef + + + XKS + Republic of Kosovo + + + XMW + Midway Islands + + + XNV + Navassa Island + + + XPL + Palmyra Atoll + + + XPR + Paracel Islands + + + XQZ + Akrotiri + + + XSP + Spratly Islands + + + XSV + Svalbard + + + XTR + Tromelin Island + + + XWB + West Bank + + + XWK + Wake Island + + + XXD + Dhekelia + + + YEM + Republic of Yemen + + + ZAF + Republic of South Africa + + + ZMB + Republic of Zambia + + + ZWE + Republic of Zimbabwe + + + ACGU + FOUR EYES + + + + AOSC + Athens Olympics Security Coalition + + + + APFS + African Peacekeeping Force Somalia + + + + ASEA + Association of Southeast Asian Nations (ASEAN) + + + + AUSTRALIA_GROUP + Australia Group + + + + BHTF + Boko Haram Task Force + + + + BWCS + Biological Weapons Convention States + + + + CFCK + ROK/US Combined Forces Command, Korea + + + + CFOD + Coalition Forces Odyssey Dawn + + + + CFUP + Coalition Forces Unified Protector + + + + CLFC + Combined Libya Fusion Cell + + + + CMFC + Combined Maritime Forces Central + + + + CMFP + Cooperative Maritime Forces Pacific + + + + CPMT + Civilian Protection Monitoring Team for Sudan + + + + CTOC + Countering Transnational Organized Crime + + + + CWCS + Chemical Weapons Convention States + + + + ECTF + European Counter-Terrorism Forces + + + + EFOR + European Union Stabilization Forces in Bosnia + + + + EU + European Union + + + + EUDA + European Union DARFUR + + + + FVEY + FIVE EYES + + + + GCCH + Gulf Cooperation Council Headquarters + + + + GCTF + Global Counter-Terrorism Forces + + + + GFNX + Global Foreign Terrorist Fighter Network Exchange + + + + GMIF + Global Maritime Interception Forces + + + + IESC + International Events Security Coalition + + + + IRKS + Inherent Resolve Kinetic Support + + + + ISAF + International Security Assistance Force for Afghanistan + + + + ISSG + International Syria Support Group + + + + KFOR + Stabilization Forces in Kosovo + + + + MCFI + Multinational Coalition Forces-Iraq + + + + MESF + Middle East Stability Force + + + + MGEU + Multinational GEOINT Europe + + + + MIFH + Multinational Interim Force Haiti + + + + MLEC + Multi-Lateral Enduring Contingency + + + + MNTF + Multi-National Task Force + + + + MPFL + Multinational Peacekeeping Forces + + + + NACT + North African Counter-Terrorism Forces + + + + NATO + North Atlantic Treaty Organization + + + + NATO:[a-zA-Z\-_]{1,256} + North Atlantic Treaty Organization Special Words + + + NCFE + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NRDC + NORDIC + + + + NSG + Nuclear Suppliers' Group + + + + OSAG + Olympic Security Advisory Group + + + + OSTY + Open Skies Treaty + + + + + PGMF + Persian Gulf Multinational Forces + + + + RSMA + Resolute Support Mission Afghanistan + + + + SFOR + Stabilization Force + + + + SOFP + Special Operations Forces Partners + + + + SPAA + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + TEYE + THREE EYES + + + + UNCK + United Nations Command, Korea + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATResponsibleEntity.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATResponsibleEntity.csv new file mode 100644 index 0000000000..27250d7e67 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATResponsibleEntity.csv @@ -0,0 +1,282 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","ABW","(U) ","Aruba" +"(U) ","AFG","(U) ","Islamic Republic of Afghanistan" +"(U) ","AGO","(U) ","Republic of Angola" +"(U) ","AIA","(U) ","Anguilla" +"(U) ","ALB","(U) ","Republic of Albania" +"(U) ","AND","(U) ","Principality of Andorra" +"(U) ","ARE","(U) ","United Arab Emirates" +"(U) ","ARG","(U) ","Argentine Republic" +"(U) ","ARM","(U) ","Republic of Armenia" +"(U) ","ASM","(U) ","Territory of American Samoa" +"(U) ","ATA","(U) ","Antarctica" +"(U) ","ATF","(U) ","French Southern and Antarctic Lands" +"(U) ","ATG","(U) ","Antigua and Barbuda" +"(U) ","AUS","(U) ","Commonwealth of Australia" +"(U) ","AUT","(U) ","Republic of Austria" +"(U) ","AX2","(U) ","Guantanamo Bay Naval Base" +"(U) ","AX3","(U) ","Entity 6" +"(U) ","AZE","(U) ","Republic of Azerbaijan" +"(U) ","BDI","(U) ","Republic of Burundi" +"(U) ","BEL","(U) ","Kingdom of Belgium" +"(U) ","BEN","(U) ","Republic of Benin" +"(U) ","BES","(U) ","Bonaire, Sint Eustatius, and Saba" +"(U) ","BFA","(U) ","Burkina Faso" +"(U) ","BGD","(U) ","People’s Republic of Bangladesh" +"(U) ","BGR","(U) ","Republic of Bulgaria" +"(U) ","BHR","(U) ","Kingdom of Bahrain" +"(U) ","BHS","(U) ","Commonwealth of The Bahamas" +"(U) ","BIH","(U) ","Bosnia and Herzegovina" +"(U) ","BLM","(U) ","Saint Barthelemy" +"(U) ","BLR","(U) ","Republic of Belarus" +"(U) ","BLZ","(U) ","Belize" +"(U) ","BMU","(U) ","Bermuda" +"(U) ","BOL","(U) ","Plurinational State of Bolivia" +"(U) ","BRA","(U) ","Federative Republic of Brazil" +"(U) ","BRB","(U) ","Barbados" +"(U) ","BRN","(U) ","Brunei Darussalam" +"(U) ","BTN","(U) ","Kingdom of Bhutan" +"(U) ","BVT","(U) ","Bouvet Island" +"(U) ","BWA","(U) ","Republic of Botswana" +"(U) ","CAF","(U) ","Central African Republic" +"(U) ","CAN","(U) ","Canada" +"(U) ","CCK","(U) ","Territory of Cocos (Keeling) Islands" +"(U) ","CHE","(U) ","Swiss Confederation" +"(U) ","CHL","(U) ","Republic of Chile" +"(U) ","CHN","(U) ","People’s Republic of China" +"(U) ","CIV","(U) ","Republic of Côte d’Ivoire" +"(U) ","CMR","(U) ","Republic of Cameroon" +"(U) ","COD","(U) ","Democratic Republic of the Congo" +"(U) ","COG","(U) ","Republic of the Congo" +"(U) ","COK","(U) ","Cook Islands" +"(U) ","COL","(U) ","Republic of Colombia" +"(U) ","COM","(U) ","Union of the Comoros" +"(U) ","CPT","(U) ","Clipperton Island" +"(U) ","CPV","(U) ","Republic of Cabo Verde" +"(U) ","CRI","(U) ","Republic of Costa Rica" +"(U) ","CUB","(U) ","Republic of Cuba" +"(U) ","CUW","(U) ","Curaçao" +"(U) ","CXR","(U) ","Territory of Christmas Island" +"(U) ","CYM","(U) ","Cayman Islands" +"(U) ","CYP","(U) ","Republic of Cyprus" +"(U) ","CZE","(U) ","Czech Republic" +"(U) ","DEU","(U) ","Federal Republic of Germany" +"(U) ","DGA","(U) ","Diego Garcia" +"(U) ","DJI","(U) ","Republic of Djibouti" +"(U) ","DMA","(U) ","Commonwealth of Dominica" +"(U) ","DNK","(U) ","Kingdom of Denmark" +"(U) ","DOM","(U) ","Dominican Republic" +"(U) ","DZA","(U) ","People’s Democratic Republic of Algeria" +"(U) ","ECU","(U) ","Republic of Ecuador" +"(U) ","EGY","(U) ","Arab Republic of Egypt" +"(U) ","ERI","(U) ","State of Eritrea" +"(U) ","ESH","(U) ","Western Sahara" +"(U) ","ESP","(U) ","Kingdom of Spain" +"(U) ","EST","(U) ","Republic of Estonia" +"(U) ","ETH","(U) ","Federal Democratic Republic of Ethiopia" +"(U) ","FIN","(U) ","Republic of Finland" +"(U) ","FJI","(U) ","Republic of Fiji" +"(U) ","FLK","(U) ","Falkland Islands (Islas Malvinas)" +"(U) ","FRA","(U) ","French Republic" +"(U) ","FRO","(U) ","Faroe Islands" +"(U) ","FSM","(U) ","Federated States of Micronesia" +"(U) ","GAB","(U) ","Gabonese Republic" +"(U) ","GBR","(U) ","United Kingdom of Great Britain and Northern Ireland" +"(U) ","GEO","(U) ","Georgia" +"(U) ","GGY","(U) ","Bailiwick of Guernsey" +"(U) ","GHA","(U) ","Republic of Ghana" +"(U) ","GIB","(U) ","Gibraltar" +"(U) ","GIN","(U) ","Republic of Guinea" +"(U) ","GLP","(U) ","Region of Guadeloupe" +"(U) ","GMB","(U) ","Republic of The Gambia" +"(U) ","GNB","(U) ","Republic of Guinea-Bissau" +"(U) ","GNQ","(U) ","Republic of Equatorial Guinea" +"(U) ","GRC","(U) ","Hellenic Republic" +"(U) ","GRD","(U) ","Grenada" +"(U) ","GRL","(U) ","Greenland" +"(U) ","GTM","(U) ","Republic of Guatemala" +"(U) ","GUF","(U) ","Territorial Collectivity of Guiana" +"(U) ","GUM","(U) ","Territory of Guam" +"(U) ","GUY","(U) ","Co-operative Republic of Guyana" +"(U) ","HKG","(U) ","Hong Kong Special Administrative Region" +"(U) ","HMD","(U) ","Territory of Heard Island and McDonald Islands" +"(U) ","HND","(U) ","Republic of Honduras" +"(U) ","HRV","(U) ","Republic of Croatia" +"(U) ","HTI","(U) ","Republic of Haiti" +"(U) ","HUN","(U) ","Hungary" +"(U) ","IDN","(U) ","Republic of Indonesia" +"(U) ","IMN","(U) ","Isle of Man" +"(U) ","IND","(U) ","Republic of India" +"(U) ","IOT","(U) ","British Indian Ocean Territory" +"(U) ","IRL","(U) ","Ireland" +"(U) ","IRN","(U) ","Islamic Republic of Iran" +"(U) ","IRQ","(U) ","Republic of Iraq" +"(U) ","ISL","(U) ","Republic of Iceland" +"(U) ","ISR","(U) ","State of Israel" +"(U) ","ITA","(U) ","Italian Republic" +"(U) ","JAM","(U) ","Jamaica" +"(U) ","JEY","(U) ","Bailiwick of Jersey" +"(U) ","JOR","(U) ","Hashemite Kingdom of Jordan" +"(U) ","JPN","(U) ","Japan" +"(U) ","KAZ","(U) ","Republic of Kazakhstan" +"(U) ","KEN","(U) ","Republic of Kenya" +"(U) ","KGZ","(U) ","Kyrgyz Republic" +"(U) ","KHM","(U) ","Kingdom of Cambodia" +"(U) ","KIR","(U) ","Republic of Kiribati" +"(U) ","KNA","(U) ","Federation of Saint Kitts and Nevis" +"(U) ","KOR","(U) ","Republic of Korea" +"(U) ","KWT","(U) ","State of Kuwait" +"(U) ","LAO","(U) ","Lao People’s Democratic Republic" +"(U) ","LBN","(U) ","Lebanese Republic" +"(U) ","LBR","(U) ","Republic of Liberia" +"(U) ","LBY","(U) ","Libya" +"(U) ","LCA","(U) ","Saint Lucia" +"(U) ","LIE","(U) ","Principality of Liechtenstein" +"(U) ","LKA","(U) ","Democratic Socialist Republic of Sri Lanka" +"(U) ","LSO","(U) ","Kingdom of Lesotho" +"(U) ","LTU","(U) ","Republic of Lithuania" +"(U) ","LUX","(U) ","Grand Duchy of Luxembourg" +"(U) ","LVA","(U) ","Republic of Latvia" +"(U) ","MAC","(U) ","Macau Special Administrative Region" +"(U) ","MAF","(U) ","Saint Martin" +"(U) ","MAR","(U) ","Kingdom of Morocco" +"(U) ","MCO","(U) ","Principality of Monaco" +"(U) ","MDA","(U) ","Republic of Moldova" +"(U) ","MDG","(U) ","Republic of Madagascar" +"(U) ","MDV","(U) ","Republic of Maldives" +"(U) ","MEX","(U) ","United Mexican States" +"(U) ","MHL","(U) ","Republic of the Marshall Islands" +"(U) ","MKD","(U) ","Republic of Macedonia" +"(U) ","MLI","(U) ","Republic of Mali" +"(U) ","MLT","(U) ","Republic of Malta" +"(U) ","MMR","(U) ","Union of Burma" +"(U) ","MNE","(U) ","Montenegro" +"(U) ","MNG","(U) ","Mongolia" +"(U) ","MNP","(U) ","Commonwealth of the Northern Mariana Islands" +"(U) ","MOZ","(U) ","Republic of Mozambique" +"(U) ","MRT","(U) ","Islamic Republic of Mauritania" +"(U) ","MSR","(U) ","Montserrat" +"(U) ","MTQ","(U) ","Territorial Collectivity of Martinique" +"(U) ","MUS","(U) ","Republic of Mauritius" +"(U) ","MWI","(U) ","Republic of Malawi" +"(U) ","MYS","(U) ","Malaysia" +"(U) ","MYT","(U) ","Department of Mayotte" +"(U) ","NAM","(U) ","Republic of Namibia" +"(U) ","NCL","(U) ","New Caledonia" +"(U) ","NER","(U) ","Republic of Niger" +"(U) ","NFK","(U) ","Territory of Norfolk Island" +"(U) ","NGA","(U) ","Federal Republic of Nigeria" +"(U) ","NIC","(U) ","Republic of Nicaragua" +"(U) ","NIU","(U) ","Niue" +"(U) ","NLD","(U) ","Kingdom of the Netherlands" +"(U) ","NOR","(U) ","Kingdom of Norway" +"(U) ","NPL","(U) ","Federal Democratic Republic of Nepal" +"(U) ","NRU","(U) ","Republic of Nauru" +"(U) ","NZL","(U) ","New Zealand" +"(U) ","OMN","(U) ","Sultanate of Oman" +"(U) ","PAK","(U) ","Islamic Republic of Pakistan" +"(U) ","PAN","(U) ","Republic of Panama" +"(U) ","PCN","(U) ","Pitcairn, Henderson, Ducie, and Oeno Islands" +"(U) ","PER","(U) ","Republic of Peru" +"(U) ","PHL","(U) ","Republic of the Philippines" +"(U) ","PLW","(U) ","Republic of Palau" +"(U) ","PNG","(U) ","Independent State of Papua New Guinea" +"(U) ","POL","(U) ","Republic of Poland" +"(U) ","PRI","(U) ","Commonwealth of Puerto Rico" +"(U) ","PRK","(U) ","Democratic People’s Republic of Korea" +"(U) ","PRT","(U) ","Portuguese Republic" +"(U) ","PRY","(U) ","Republic of Paraguay" +"(U) ","PYF","(U) ","French Polynesia" +"(U) ","QAT","(U) ","State of Qatar" +"(U) ","REU","(U) ","Region of Reunion" +"(U) ","ROU","(U) ","Romania" +"(U) ","RUS","(U) ","Russian Federation" +"(U) ","RWA","(U) ","Republic of Rwanda" +"(U) ","SAU","(U) ","Kingdom of Saudi Arabia" +"(U) ","SDN","(U) ","Republic of the Sudan" +"(U) ","SEN","(U) ","Republic of Senegal" +"(U) ","SGP","(U) ","Republic of Singapore" +"(U) ","SGS","(U) ","South Georgia and the South Sandwich Islands" +"(U) ","SHN","(U) ","Saint Helena, Ascension, and Tristan da Cunha" +"(U) ","SLB","(U) ","Solomon Islands" +"(U) ","SLE","(U) ","Republic of Sierra Leone" +"(U) ","SLV","(U) ","Republic of El Salvador" +"(U) ","SMR","(U) ","Republic of San Marino" +"(U) ","SOM","(U) ","Federal Republic of Somalia" +"(U) ","SPM","(U) ","Territorial Collectivity of Saint Pierre and Miquelon" +"(U) ","SRB","(U) ","Republic of Serbia" +"(U) ","SSD","(U) ","Republic of South Sudan" +"(U) ","STP","(U) ","Democratic Republic of Sao Tome and Principe" +"(U) ","SUR","(U) ","Republic of Suriname" +"(U) ","SVK","(U) ","Slovak Republic" +"(U) ","SVN","(U) ","Republic of Slovenia" +"(U) ","SWE","(U) ","Kingdom of Sweden" +"(U) ","SWZ","(U) ","Kingdom of Swaziland" +"(U) ","SXM","(U) ","Sint Maarten" +"(U) ","SYC","(U) ","Republic of Seychelles" +"(U) ","SYR","(U) ","Syrian Arab Republic" +"(U) ","TCA","(U) ","Turks and Caicos Islands" +"(U) ","TCD","(U) ","Republic of Chad" +"(U) ","TGO","(U) ","Togolese Republic" +"(U) ","THA","(U) ","Kingdom of Thailand" +"(U) ","TJK","(U) ","Republic of Tajikistan" +"(U) ","TKL","(U) ","Tokelau" +"(U) ","TKM","(U) ","Turkmenistan" +"(U) ","TLS","(U) ","Democratic Republic of Timor-Leste" +"(U) ","TON","(U) ","Kingdom of Tonga" +"(U) ","TTO","(U) ","Republic of Trinidad and Tobago" +"(U) ","TUN","(U) ","Republic of Tunisia" +"(U) ","TUR","(U) ","Republic of Turkey" +"(U) ","TUV","(U) ","Tuvalu" +"(U) ","TWN","(U) ","Taiwan" +"(U) ","TZA","(U) ","United Republic of Tanzania" +"(U) ","UGA","(U) ","Republic of Uganda" +"(U) ","UKR","(U) ","Ukraine" +"(U) ","URY","(U) ","Oriental Republic of Uruguay" +"(U) ","USA","(U) ","United States of America" +"(U) ","UZB","(U) ","Republic of Uzbekistan" +"(U) ","VAT","(U) ","State of the Vatican City" +"(U) ","VCT","(U) ","Saint Vincent and the Grenadines" +"(U) ","VEN","(U) ","Bolivarian Republic of Venezuela" +"(U) ","VGB","(U) ","Virgin Islands, British" +"(U) ","VIR","(U) ","United States Virgin Islands" +"(U) ","VNM","(U) ","Socialist Republic of Vietnam" +"(U) ","VUT","(U) ","Republic of Vanuatu" +"(U) ","WLF","(U) ","Wallis and Futuna" +"(U) ","WSM","(U) ","Independent State of Samoa" +"(U) ","XAC","(U) ","Territory of Ashmore and Cartier Islands" +"(U) ","XAZ","(U) ","Entity 1" +"(U) ","XBI","(U) ","Bassas da India" +"(U) ","XBK","(U) ","Baker Island" +"(U) ","XCR","(U) ","Entity 2" +"(U) ","XCS","(U) ","Coral Sea Islands Territory" +"(U) ","XCY","(U) ","Entity 3" +"(U) ","XEU","(U) ","Europa Island" +"(U) ","XGL","(U) ","Glorioso Islands" +"(U) ","XGZ","(U) ","Gaza Strip" +"(U) ","XHO","(U) ","Howland Island" +"(U) ","XJA","(U) ","Johnston Atoll" +"(U) ","XJM","(U) ","Jan Mayen" +"(U) ","XJN","(U) ","Juan de Nova Island" +"(U) ","XJV","(U) ","Jarvis Island" +"(U) ","XKM","(U) ","Entity 4" +"(U) ","XKN","(U) ","Entity 5" +"(U) ","XKR","(U) ","Kingman Reef" +"(U) ","XKS","(U) ","Republic of Kosovo" +"(U) ","XMW","(U) ","Midway Islands" +"(U) ","XNV","(U) ","Navassa Island" +"(U) ","XPL","(U) ","Palmyra Atoll" +"(U) ","XPR","(U) ","Paracel Islands" +"(U) ","XQZ","(U) ","Akrotiri" +"(U) ","XSP","(U) ","Spratly Islands" +"(U) ","XSV","(U) ","Svalbard" +"(U) ","XTR","(U) ","Tromelin Island" +"(U) ","XWB","(U) ","West Bank" +"(U) ","XWK","(U) ","Wake Island" +"(U) ","XXD","(U) ","Dhekelia" +"(U) ","YEM","(U) ","Republic of Yemen" +"(U) ","ZAF","(U) ","Republic of South Africa" +"(U) ","ZMB","(U) ","Republic of Zambia" +"(U) ","ZWE","(U) ","Republic of Zimbabwe" +"(U) ","NATO","(U) ","North Atlantic Treaty Organization" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATResponsibleEntity.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATResponsibleEntity.xml new file mode 100644 index 0000000000..f42174e47d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATResponsibleEntity.xml @@ -0,0 +1,1713 @@ + + + + urn:us:gov:ic:cvenum:ismcat:responsibleentity + CVEnumISMCATResponsibleEntity + + GENC trigraphs in alphabetical order by trigraph, plus the NATO tetragraph. + + + 2019-12-23T16:24:53.406Z + + IC Markings System Register and Manual Register Appendix A + GENC http://geo.aitcnet.org/NSGREG/genc + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + ABW + Aruba + + + AFG + Islamic Republic of Afghanistan + + + AGO + Republic of Angola + + + AIA + Anguilla + + + ALB + Republic of Albania + + + AND + Principality of Andorra + + + ARE + United Arab Emirates + + + ARG + Argentine Republic + + + ARM + Republic of Armenia + + + ASM + Territory of American Samoa + + + ATA + Antarctica + + + ATF + French Southern and Antarctic Lands + + + ATG + Antigua and Barbuda + + + AUS + Commonwealth of Australia + + + AUT + Republic of Austria + + + AX2 + Guantanamo Bay Naval Base + + + AX3 + Entity 6 + + + AZE + Republic of Azerbaijan + + + BDI + Republic of Burundi + + + BEL + Kingdom of Belgium + + + BEN + Republic of Benin + + + BES + Bonaire, Sint Eustatius, and Saba + + + BFA + Burkina Faso + + + BGD + People’s Republic of Bangladesh + + + BGR + Republic of Bulgaria + + + BHR + Kingdom of Bahrain + + + BHS + Commonwealth of The Bahamas + + + BIH + Bosnia and Herzegovina + + + BLM + Saint Barthelemy + + + BLR + Republic of Belarus + + + BLZ + Belize + + + BMU + Bermuda + + + BOL + Plurinational State of Bolivia + + + BRA + Federative Republic of Brazil + + + BRB + Barbados + + + BRN + Brunei Darussalam + + + BTN + Kingdom of Bhutan + + + BVT + Bouvet Island + + + BWA + Republic of Botswana + + + CAF + Central African Republic + + + CAN + Canada + + + CCK + Territory of Cocos (Keeling) Islands + + + CHE + Swiss Confederation + + + CHL + Republic of Chile + + + CHN + People’s Republic of China + + + CIV + Republic of Côte d’Ivoire + + + CMR + Republic of Cameroon + + + COD + Democratic Republic of the Congo + + + COG + Republic of the Congo + + + COK + Cook Islands + + + COL + Republic of Colombia + + + COM + Union of the Comoros + + + CPT + Clipperton Island + + + CPV + Republic of Cabo Verde + + + CRI + Republic of Costa Rica + + + CUB + Republic of Cuba + + + CUW + Curaçao + + + CXR + Territory of Christmas Island + + + CYM + Cayman Islands + + + CYP + Republic of Cyprus + + + CZE + Czech Republic + + + DEU + Federal Republic of Germany + + + DGA + Diego Garcia + + + DJI + Republic of Djibouti + + + DMA + Commonwealth of Dominica + + + DNK + Kingdom of Denmark + + + DOM + Dominican Republic + + + DZA + People’s Democratic Republic of Algeria + + + ECU + Republic of Ecuador + + + EGY + Arab Republic of Egypt + + + ERI + State of Eritrea + + + ESH + Western Sahara + + + ESP + Kingdom of Spain + + + EST + Republic of Estonia + + + ETH + Federal Democratic Republic of Ethiopia + + + FIN + Republic of Finland + + + FJI + Republic of Fiji + + + FLK + Falkland Islands (Islas Malvinas) + + + FRA + French Republic + + + FRO + Faroe Islands + + + FSM + Federated States of Micronesia + + + GAB + Gabonese Republic + + + GBR + United Kingdom of Great Britain and Northern Ireland + + + GEO + Georgia + + + GGY + Bailiwick of Guernsey + + + GHA + Republic of Ghana + + + GIB + Gibraltar + + + GIN + Republic of Guinea + + + GLP + Region of Guadeloupe + + + GMB + Republic of The Gambia + + + GNB + Republic of Guinea-Bissau + + + GNQ + Republic of Equatorial Guinea + + + GRC + Hellenic Republic + + + GRD + Grenada + + + GRL + Greenland + + + GTM + Republic of Guatemala + + + GUF + Territorial Collectivity of Guiana + + + GUM + Territory of Guam + + + GUY + Co-operative Republic of Guyana + + + HKG + Hong Kong Special Administrative Region + + + HMD + Territory of Heard Island and McDonald Islands + + + HND + Republic of Honduras + + + HRV + Republic of Croatia + + + HTI + Republic of Haiti + + + HUN + Hungary + + + IDN + Republic of Indonesia + + + IMN + Isle of Man + + + IND + Republic of India + + + IOT + British Indian Ocean Territory + + + IRL + Ireland + + + IRN + Islamic Republic of Iran + + + IRQ + Republic of Iraq + + + ISL + Republic of Iceland + + + ISR + State of Israel + + + ITA + Italian Republic + + + JAM + Jamaica + + + JEY + Bailiwick of Jersey + + + JOR + Hashemite Kingdom of Jordan + + + JPN + Japan + + + KAZ + Republic of Kazakhstan + + + KEN + Republic of Kenya + + + KGZ + Kyrgyz Republic + + + KHM + Kingdom of Cambodia + + + KIR + Republic of Kiribati + + + KNA + Federation of Saint Kitts and Nevis + + + KOR + Republic of Korea + + + KWT + State of Kuwait + + + LAO + Lao People’s Democratic Republic + + + LBN + Lebanese Republic + + + LBR + Republic of Liberia + + + LBY + Libya + + + LCA + Saint Lucia + + + LIE + Principality of Liechtenstein + + + LKA + Democratic Socialist Republic of Sri Lanka + + + LSO + Kingdom of Lesotho + + + LTU + Republic of Lithuania + + + LUX + Grand Duchy of Luxembourg + + + LVA + Republic of Latvia + + + MAC + Macau Special Administrative Region + + + MAF + Saint Martin + + + MAR + Kingdom of Morocco + + + MCO + Principality of Monaco + + + MDA + Republic of Moldova + + + MDG + Republic of Madagascar + + + MDV + Republic of Maldives + + + MEX + United Mexican States + + + MHL + Republic of the Marshall Islands + + + MKD + Republic of Macedonia + + + MLI + Republic of Mali + + + MLT + Republic of Malta + + + MMR + Union of Burma + + + MNE + Montenegro + + + MNG + Mongolia + + + MNP + Commonwealth of the Northern Mariana Islands + + + MOZ + Republic of Mozambique + + + MRT + Islamic Republic of Mauritania + + + MSR + Montserrat + + + MTQ + Territorial Collectivity of Martinique + + + MUS + Republic of Mauritius + + + MWI + Republic of Malawi + + + MYS + Malaysia + + + MYT + Department of Mayotte + + + NAM + Republic of Namibia + + + NCL + New Caledonia + + + NER + Republic of Niger + + + NFK + Territory of Norfolk Island + + + NGA + Federal Republic of Nigeria + + + NIC + Republic of Nicaragua + + + NIU + Niue + + + NLD + Kingdom of the Netherlands + + + NOR + Kingdom of Norway + + + NPL + Federal Democratic Republic of Nepal + + + NRU + Republic of Nauru + + + NZL + New Zealand + + + OMN + Sultanate of Oman + + + PAK + Islamic Republic of Pakistan + + + PAN + Republic of Panama + + + PCN + Pitcairn, Henderson, Ducie, and Oeno Islands + + + PER + Republic of Peru + + + PHL + Republic of the Philippines + + + PLW + Republic of Palau + + + PNG + Independent State of Papua New Guinea + + + POL + Republic of Poland + + + PRI + Commonwealth of Puerto Rico + + + PRK + Democratic People’s Republic of Korea + + + PRT + Portuguese Republic + + + PRY + Republic of Paraguay + + + PYF + French Polynesia + + + QAT + State of Qatar + + + REU + Region of Reunion + + + ROU + Romania + + + RUS + Russian Federation + + + RWA + Republic of Rwanda + + + SAU + Kingdom of Saudi Arabia + + + SDN + Republic of the Sudan + + + SEN + Republic of Senegal + + + SGP + Republic of Singapore + + + SGS + South Georgia and the South Sandwich Islands + + + SHN + Saint Helena, Ascension, and Tristan da Cunha + + + SLB + Solomon Islands + + + SLE + Republic of Sierra Leone + + + SLV + Republic of El Salvador + + + SMR + Republic of San Marino + + + SOM + Federal Republic of Somalia + + + SPM + Territorial Collectivity of Saint Pierre and Miquelon + + + SRB + Republic of Serbia + + + SSD + Republic of South Sudan + + + STP + Democratic Republic of Sao Tome and Principe + + + SUR + Republic of Suriname + + + SVK + Slovak Republic + + + SVN + Republic of Slovenia + + + SWE + Kingdom of Sweden + + + SWZ + Kingdom of Swaziland + + + SXM + Sint Maarten + + + SYC + Republic of Seychelles + + + SYR + Syrian Arab Republic + + + TCA + Turks and Caicos Islands + + + TCD + Republic of Chad + + + TGO + Togolese Republic + + + THA + Kingdom of Thailand + + + TJK + Republic of Tajikistan + + + TKL + Tokelau + + + TKM + Turkmenistan + + + TLS + Democratic Republic of Timor-Leste + + + TON + Kingdom of Tonga + + + TTO + Republic of Trinidad and Tobago + + + TUN + Republic of Tunisia + + + TUR + Republic of Turkey + + + TUV + Tuvalu + + + TWN + Taiwan + + + TZA + United Republic of Tanzania + + + UGA + Republic of Uganda + + + UKR + Ukraine + + + URY + Oriental Republic of Uruguay + + + USA + United States of America + + + UZB + Republic of Uzbekistan + + + VAT + State of the Vatican City + + + VCT + Saint Vincent and the Grenadines + + + VEN + Bolivarian Republic of Venezuela + + + VGB + Virgin Islands, British + + + VIR + United States Virgin Islands + + + VNM + Socialist Republic of Vietnam + + + VUT + Republic of Vanuatu + + + WLF + Wallis and Futuna + + + WSM + Independent State of Samoa + + + XAC + Territory of Ashmore and Cartier Islands + + + XAZ + Entity 1 + + + XBI + Bassas da India + + + XBK + Baker Island + + + XCR + Entity 2 + + + XCS + Coral Sea Islands Territory + + + XCY + Entity 3 + + + XEU + Europa Island + + + XGL + Glorioso Islands + + + XGZ + Gaza Strip + + + XHO + Howland Island + + + XJA + Johnston Atoll + + + XJM + Jan Mayen + + + XJN + Juan de Nova Island + + + XJV + Jarvis Island + + + XKM + Entity 4 + + + XKN + Entity 5 + + + XKR + Kingman Reef + + + XKS + Republic of Kosovo + + + XMW + Midway Islands + + + XNV + Navassa Island + + + XPL + Palmyra Atoll + + + XPR + Paracel Islands + + + XQZ + Akrotiri + + + XSP + Spratly Islands + + + XSV + Svalbard + + + XTR + Tromelin Island + + + XWB + West Bank + + + XWK + Wake Island + + + XXD + Dhekelia + + + YEM + Republic of Yemen + + + ZAF + Republic of South Africa + + + ZMB + Republic of Zambia + + + ZWE + Republic of Zimbabwe + + + + + NATO + North Atlantic Treaty Organization + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATTetragraph.csv b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATTetragraph.csv new file mode 100644 index 0000000000..af3e4a87fd --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATTetragraph.csv @@ -0,0 +1,54 @@ +"ValueClassification","Value","DescriptionClassification","Description" +"(U) ","ACGU","(U) ","FOUR EYES" +"(U) ","AOSC","(U) ","Athens Olympics Security Coalition" +"(U) ","APFS","(U) ","African Peacekeeping Force Somalia" +"(U) ","ASEA","(U) ","Association of Southeast Asian Nations (ASEAN)" +"(U) ","AUSTRALIA_GROUP","(U) ","Australia Group" +"(U) ","BHTF","(U) ","Boko Haram Task Force" +"(U) ","BWCS","(U) ","Biological Weapons Convention States" +"(U) ","CFCK","(U) ","ROK/US Combined Forces Command, Korea" +"(U) ","CFOD","(U) ","Coalition Forces Odyssey Dawn" +"(U) ","CFUP","(U) ","Coalition Forces Unified Protector" +"(U) ","CLFC","(U) ","Combined Libya Fusion Cell" +"(U) ","CMFC","(U) ","Combined Maritime Forces Central" +"(U) ","CMFP","(U) ","Cooperative Maritime Forces Pacific" +"(U) ","CPMT","(U) ","Civilian Protection Monitoring Team for Sudan" +"(U) ","CTOC","(U) ","Countering Transnational Organized Crime" +"(U) ","CWCS","(U) ","Chemical Weapons Convention States" +"(U) ","ECTF","(U) ","European Counter-Terrorism Forces" +"(U) ","EFOR","(U) ","European Union Stabilization Forces in Bosnia" +"(U) ","EU","(U) ","European Union" +"(U) ","EUDA","(U) ","European Union DARFUR" +"(U) ","FVEY","(U) ","FIVE EYES" +"(U) ","GCCH","(U) ","Gulf Cooperation Council Headquarters" +"(U) ","GCTF","(U) ","Global Counter-Terrorism Forces" +"(U) ","GFNX","(U) ","Global Foreign Terrorist Fighter Network Exchange" +"(U) ","GMIF","(U) ","Global Maritime Interception Forces" +"(U) ","IESC","(U) ","International Events Security Coalition" +"(U) ","IRKS","(U) ","Inherent Resolve Kinetic Support" +"(U) ","ISAF","(U) ","International Security Assistance Force for Afghanistan" +"(U) ","ISSG","(U) ","International Syria Support Group" +"(U) ","KFOR","(U) ","Stabilization Forces in Kosovo" +"(U) ","MCFI","(U) ","Multinational Coalition Forces-Iraq" +"(U) ","MESF","(U) ","Middle East Stability Force" +"(U) ","MGEU","(U) ","Multinational GEOINT Europe" +"(U) ","MIFH","(U) ","Multinational Interim Force Haiti" +"(U) ","MLEC","(U) ","Multi-Lateral Enduring Contingency" +"(U) ","MNTF","(U) ","Multi-National Task Force" +"(U) ","MPFL","(U) ","Multinational Peacekeeping Forces" +"(U) ","NACT","(U) ","North African Counter-Terrorism Forces" +"(U) ","NATO","(U) ","North Atlantic Treaty Organization" +"(U) ","NATO:[a-zA-Z\-_]{1,256}","(U) ","North Atlantic Treaty Organization Special Words" +"(U) ","NCFE","(U) ","NATO CFE Treaty on Conventional Armed Forces in Europe" +"(U) ","NRDC","(U) ","NORDIC" +"(U) ","NSG","(U) ","Nuclear Suppliers' Group" +"(U) ","OSAG","(U) ","Olympic Security Advisory Group" +"(U) ","OSTY","(U) ","Open Skies Treaty" +"(U) ","PGMF","(U) ","Persian Gulf Multinational Forces" +"(U) ","RSMA","(U) ","Resolute Support Mission Afghanistan" +"(U) ","SFOR","(U) ","Stabilization Force" +"(U) ","SOFP","(U) ","Special Operations Forces Partners" +"(U) ","SPAA","(U) ","SOF Planning Activities in Afghanistan (also called "11-Eyes")" +"(U) ","TEYE","(U) ","THREE EYES" +"(U) ","UNCK","(U) ","United Nations Command, Korea" + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATTetragraph.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATTetragraph.xml new file mode 100644 index 0000000000..352da55056 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/ISMCAT/CVEnumISMCATTetragraph.xml @@ -0,0 +1,295 @@ + + + + + urn:us:gov:ic:cvenum:ismcat:tetragraph + CVEnumISMCATTetragraph + + IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. + + + 2019-12-23T16:24:53.834Z + + IC Markings System Register and Manual Register Appendix A + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + ACGU + FOUR EYES + + + + AOSC + Athens Olympics Security Coalition + + + + APFS + African Peacekeeping Force Somalia + + + + ASEA + Association of Southeast Asian Nations (ASEAN) + + + + AUSTRALIA_GROUP + Australia Group + + + + BHTF + Boko Haram Task Force + + + + BWCS + Biological Weapons Convention States + + + + CFCK + ROK/US Combined Forces Command, Korea + + + + CFOD + Coalition Forces Odyssey Dawn + + + + CFUP + Coalition Forces Unified Protector + + + + CLFC + Combined Libya Fusion Cell + + + + CMFC + Combined Maritime Forces Central + + + + CMFP + Cooperative Maritime Forces Pacific + + + + CPMT + Civilian Protection Monitoring Team for Sudan + + + + CTOC + Countering Transnational Organized Crime + + + + CWCS + Chemical Weapons Convention States + + + + ECTF + European Counter-Terrorism Forces + + + + EFOR + European Union Stabilization Forces in Bosnia + + + + EU + European Union + + + + EUDA + European Union DARFUR + + + + FVEY + FIVE EYES + + + + GCCH + Gulf Cooperation Council Headquarters + + + + GCTF + Global Counter-Terrorism Forces + + + + GFNX + Global Foreign Terrorist Fighter Network Exchange + + + + GMIF + Global Maritime Interception Forces + + + + IESC + International Events Security Coalition + + + + IRKS + Inherent Resolve Kinetic Support + + + + ISAF + International Security Assistance Force for Afghanistan + + + + ISSG + International Syria Support Group + + + + KFOR + Stabilization Forces in Kosovo + + + + MCFI + Multinational Coalition Forces-Iraq + + + + MESF + Middle East Stability Force + + + + MGEU + Multinational GEOINT Europe + + + + MIFH + Multinational Interim Force Haiti + + + + MLEC + Multi-Lateral Enduring Contingency + + + + MNTF + Multi-National Task Force + + + + MPFL + Multinational Peacekeeping Forces + + + + NACT + North African Counter-Terrorism Forces + + + + NATO + North Atlantic Treaty Organization + + + + NATO:[a-zA-Z\-_]{1,256} + North Atlantic Treaty Organization Special Words + + + NCFE + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NRDC + NORDIC + + + + NSG + Nuclear Suppliers' Group + + + + OSAG + Olympic Security Advisory Group + + + + OSTY + Open Skies Treaty + + + + + PGMF + Persian Gulf Multinational Forces + + + + RSMA + Resolute Support Mission Afghanistan + + + + SFOR + Stabilization Force + + + + SOFP + Special Operations Forces Partners + + + + SPAA + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + TEYE + THREE EYES + + + + UNCK + United Nations Command, Korea + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/LIC/CVEnumLicLicense.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/LIC/CVEnumLicLicense.xml new file mode 100644 index 0000000000..09876ff5b1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/LIC/CVEnumLicLicense.xml @@ -0,0 +1,34 @@ + + + + + + urn:us:gov:ic:cvenum:lic:license + CVEnumLicLicense + URNs for Data Sphere + license agreements. + + 2010-05-30T16:52:00-04:00 + + IC License Agreements. + + + Office of the IC CIO + ic-standards-support@iarpa.gov + + + + + + osc1 + OSC-CommercialOpenSource1 + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/MN/CVEnumMNIssue.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/MN/CVEnumMNIssue.xml new file mode 100644 index 0000000000..bc9ffcc23e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/MN/CVEnumMNIssue.xml @@ -0,0 +1,71 @@ + + + + + + + urn:us:gov:ic:cvenum:mn:issue + + CVEnumMNIssue + + All currently identified values for Issue. + + 2017-04-17 + + IC-CIO + + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + CN + Crime and Narcotics + + + CST + Cyber, Science, and Technology + + + DI + Defense Issues + + + ET + Economics, Trade, and Threat Finance + + + EI + Environment and Infrastructure + + + HND + Health and Natural Disasters + + + IC + Intelligence and Counterintelligence + + + PSI + Political and Societal Issues + + + THS + Terrorism and Homeland Security + + + WPW + Weapons Proliferation and WMD + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/MN/CVEnumMNRegion.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/MN/CVEnumMNRegion.xml new file mode 100644 index 0000000000..e864404c7a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/MN/CVEnumMNRegion.xml @@ -0,0 +1,119 @@ + + + + + + + urn:us:gov:ic:cvenum:mn:region + CVEnumMNRegion + All + currently identified values for Region. This list was originally derived from the + GIMMEE Mission Need Region list. + + 2015-06-03 + + IC-CIO + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + AFce + Africa, Central + + + AFea + Africa, East + + + AFno + Africa, North + + + AFso + Africa, Southern + + + AFwe + Africa, West + + + AMca + Americas, Caribbean + + + AMce + Americas, Central + + + AMno + Americas, North + + + AMso + Americas, South + + + AMan + Americas, Antarctica + + + ASea + Asia, East + + + ASse + Asia, South East + + + ASso + Asia, South + + + EAca + Eurasia, Caucasus + + + EAce + Eurasia, Central + + + EAru + Eurasia, Russia + + + EUba + Europe, Balkans + + + EUce + Europe, Central + + + EUno + Europe, North + + + EUso + Europe, South + + + MEme + Middle East + + + OCoc + Oceania + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/NTK/CVEnumNTKAccessPolicy.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/NTK/CVEnumNTKAccessPolicy.xml new file mode 100644 index 0000000000..7cffb1f0b7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/NTK/CVEnumNTKAccessPolicy.xml @@ -0,0 +1,75 @@ + + + + + + urn:us:gov:ic:cvenum:ntk:accesspolicy + CVEnumNTKAccessPolicy + NTK access policy + names. All NTK enterprise access policy URNs start with ‘urn:us:gov:ic:aces:ntk:’. Values in this CVE + correspond to the terminating portion of NTK access policy URNs. + + 2010-05-30T16:52:00-04:00 + + NTK ACES + + + Office of the IC CIO + ic-standards-support@iarpa.gov + + + + + + urn:us:gov:ic:aces:ntk:xd + Exclusive Distibution + + + urn:us:gov:ic:aces:ntk:ico + Intelligence Community Only + + + urn:us:gov:ic:aces:ntk:license + License + + + urn:us:gov:ic:aces:ntk:mn + Mission Need Profile + + + urn:us:gov:ic:aces:ntk:nd + No Distribution + + + urn:us:gov:ic:aces:ntk:oc + Originator Controlled + + + urn:us:gov:ic:aces:ntk:permissive + Permissive group/individual access + + + urn:us:gov:ic:aces:ntk:propin:1 + PROPIN for US Government Employees + + + urn:us:gov:ic:aces:ntk:propin:2 + Explicit PROPIN + + + urn:us:gov:ic:aces:ntk:propin:([A-Za-z][A-Za-z0-9\-_.;,():+]{1,64}) + Regex for extension of PROPIN with non-IC CIO + access policy URN. + + + urn:us:gov:ic:aces:ntk:restrictive + Restrictive group access + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/NTK/CVEnumNTKProfileDes.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/NTK/CVEnumNTKProfileDes.xml new file mode 100644 index 0000000000..bebb157b9c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/NTK/CVEnumNTKProfileDes.xml @@ -0,0 +1,42 @@ + + + + + + urn:us:gov:ic:cvenum:ntk:profiledes + CVEnumNTKProfileDes + NTK profile des + names. All NTK enterprise profile des URNs start with ‘urn:us:gov:ic:ntk:profile’. Values in this CVE + correspond to the terminating portion of NTK profile des URNs. + + 2015-09-04T10:54:00-04:00 + + NTK DES + + + Office of the IC CIO + ic-standards-support@iarpa.gov + + + + + + urn:us:gov:ic:ntk:profile:agencydissem + Agency Dissem + + + urn:us:gov:ic:ntk:profile:datasphere + Data Sphere + + + urn:us:gov:ic:ntk:profile:grp-ind + Group and Individual + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumAuditRoutingOrg.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumAuditRoutingOrg.xml new file mode 100644 index 0000000000..590f2b60a5 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumAuditRoutingOrg.xml @@ -0,0 +1,1186 @@ + + + + + urn:us:gov:ic:cvenum:usagency:auditRoutingOrganization + CVEnumAuditRoutingOrg + All ICAS approved values for organization to which Audit Records are routed. + It is also just the concatenation of CVEnumAuditRoutingUnique.xml and CVEnumUSAgencyAcronym.xml. + + 2019-12-23T16:24:49.107Z + + ICAS + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + + + USAFRICOM + + United States Africa Command (Type: COCOM) + + + + USCENTCOM + + United States Central Command (Type: COCOM) + + + + USCYBERCOM + + United States Strategic Command, US Cyber Command (Type: COCOM) + + + + USEUCOM + + United States European Command (Type: COCOM) + + + + USFK + + United States Pacific Command, US Forces Korea (Type: COCOM) + + + + USNORTHCOM + + United States Northern Command (Type: COCOM) + + + + USPACOM + + United States Pacific Command (Type: COCOM) + + + + USSOCOM + + United States Special Operations Command (Type: COCOM) + + + + USSOUTHCOM + + United States Southern Command (Type: COCOM) + + + + USSTRATCOM + + United States Strategic Command (Type: COCOM) + + + + USTRANSCOM + + United States Transportation Command (Type: COCOM) + + + + DARPA + + Defense Advanced Research Projects Agency (Type: DOD) + + + + DISA + + Defense Information Systems Agency (Type: DOD) + + + + DODCIO + + Assistant Secretary of Defense for Networks and Information Integration and DoD Chief Information Officer (Type: DOD) + + + + DODIG + + Department of Defense Inspector General (Type: DOD) + + + + DODIO + + Assistant to the Secretary of Defense for Intelligence Oversight (Type: DOD) + + + + DSS + + Defense Security Service (Type: DOD) + + + + DTRA + + Defense Threat-Reduction Agency (Type: DOD) + + + + JCS + + Office of the Joint Chiefs of Staff (Type: DOD) + + + + JIDA + + Joint Improvised-Threat Defeat Agency (Type: DOD) + + + + MDA + + Missile Defense Agency (Type: DOD) + + + + OUSDATL + + Office of the Undersecretary of Defense (Acquisition, Technology and Logistics) (Type: DOD) + + + + OUSDI + + Office of the Undersecretary of Defense (Intelligence) (Type: DOD) + + + + INA + + United States Department of Homeland Security, Office of Intelligence and Analysis (Type: IC) + + + + TSA + + United States Department of Homeland Security, Transportation Security Administration (Type: IC) + + + + + ABMC + American Battle Monuments Commission + + + ACCESS + Architectural and Transportation Barriers Compliance Board + + + ACFR + Administrative Committee of the Federal Register + + + ACHP + Advisory Council on Historic Preservation + + + ACUS + Administrative Conference of the United States + + + ADF + African Development Foundation + + + AMICC + Arthritis and Musculoskeletal Interagency Coordinating Committee + + + AMTRAK + National Railroad Passenger Corporation + + + ARC + Appalachian Regional Commission + + + ARCTIC + Arctic Research Commission + + + BBG + Broadcasting Board of Governors + + + BMGS + Barry M. Goldwater Scholarship and Excellence in Education Foundation + + + CAOC + Chief Acquisition Officers Council + + + CCJJ + Coordinating Council on Juvenile Justice and Delinquency Prevention + + + CCR + Commission on Civil Rights + + + CEA + United States Council of Economic Advisers + + + CFA + Commission of Fine Arts + + + CFI + Committee on Foreign Investments in the United States + + + CFOC + Chief Financial Officers Council + + + CFTC + Commodity Futures Trading Commission + + + CHCOC + Chief Human Capital Officers Council + + + CIA + Central Intelligence Agency + + + CIOC + Chief Information Officers Council + + + CIRF + Commission on International Religious Freedom + + + CITA + Committee for the Implementation of Textile Agreements + + + CNCS + Corporation for National and Community Service + + + COMP + Office of Compliance + + + CPSC + Consumer Product Safety Commission + + + CSAC + Citizens' Stamp Advisory Committee + + + CSHIB + Chemical Safety and Hazard Investigation Board + + + CSOSA + Court Services and Offender Supervision Agency for the District of Columbia + + + DEA + Drug Enforcement Administration + + + DENALI + Denali Commission + + + DHS + Department of Homeland Security + + + DIA + Defense Intelligence Agency + + + DNFSB + Defense Nuclear Facilities Safety Board + + + DNI + Office of the Director of National Intelligence + + + DOC + Department of Commerce + + + DOD + Department of Defense + + + DOE + Department of Energy + + + DOI + Department of the Interior + + + DOJ + Department of Justice + + + DOL + Department of Labor + + + DOT + Department of Transportation + + + DRBC + Delaware River Basin Commission + + + EAC + United States Election Assistance Commission + + + ED + Department of Education + + + EEOC + Equal Employment Opportunity Commission + + + EIBUS + Export-Import Bank of the United States + + + EOP + Executive Office of the President + + + EPA + Environmental Protection Agency + + + ESC + Endangered Species Committee + + + FAC + Federal Advisory Committees + + + FASAB + Federal Accounting Standards Advisory Board + + + FBI + Federal Bureau of Investigation + + + FCA + Farm Credit Administration + + + FCC + Federal Communications Commission + + + FCIC + Financial Crisis Inquiry Commission + + + FCSIC + Farm Credit System Insurance Corporation + + + FDIC + Federal Deposit Insurance Corporation + + + FEB + Federal Executive Boards + + + FEC + Federal Election Commission + + + FERC + Federal Energy Regulatory Commission + + + FFB + Federal Financing Bank + + + FFIEC + Federal Financial Institutions Examination Council + + + FGDC + Federal Geographic Data Committee + + + FHRA + Federal Housing Finance Agency + + + FICE + Federal Interagency Committee on Education + + + FICMNEW + Federal Interagency Committee for the Management of Noxious and Exotic Weeds + + + FICSP + Federal Interagency Council on Statistical Policy + + + FLCTT + Federal Laboratory Consortium for Technology Transfer + + + FLICC + Federal Library and Information Center Committee + + + FLRA + Federal Labor Relations Authority + + + FMC + Federal Maritime Commission + + + FMCS + Federal Mediation and Conciliation Service + + + FMSHRC + Federal Mine Safety and Health Review Commission + + + FRS + Federal Reserve System + + + FRTIB + Federal Retirement Thrift Investment Board + + + FTC + Federal Trade Commission + + + GSA + General Services Administration + + + HELSINKI + Commission on Security and Cooperation in Europe + + + HHS + Department of Health and Human Services + + + HMM + United States Holocaust Memorial Museum + + + HSTSF + Harry S. Truman Scholarship Foundation + + + HUD + Department of Housing and Urban Development + + + IACB + Indian Arts and Crafts Board + + + IADRWG + Interagency Alternative Dispute Resolution Working Group + + + IAF + Inter-American Foundation + + + IBB + International Broadcasting Bureau + + + ICH + Interagency Council on Homelessness + + + ICPRB + Interstate Commission on the Potomac River Basin + + + IMCNHCC + Illinois and Michigan Canal National Heritage Corridor Commission + + + IMLS + Institute of Museum and Library Services + + + ITC + United States International Trade Commission + + + JBEA + Joint Board for the Enrollment of Actuaries + + + JFSP + Joint Fire Science Program + + + JMMFF + James Madison Memorial Fellowship Foundation + + + JUSFC + Japan-United States Friendship Commission + + + JWFFSB + J. William Fulbright Foreign Scholarship Board + + + LSC + Legal Services Corporation + + + MBCC + Migratory Bird Conservation Commission + + + MCC + Millennium Challenge Corporation + + + MKUF + Morris K. Udall Foundation: Scholarship and Excellence in National Environmental Policy + + + MMC + Marine Mammal Commission + + + MRC + Mississippi River Commission + + + MSPB + Merit Systems Protection Board + + + NARA + National Archives and Records Administration + + + NASA + National Aeronautics and Space Administration + + + NBCFM + National Bipartisan Commission on the Future of Medicare + + + NCD + National Council on Disability + + + NCFRR + National Commission on Fiscal Responsibility and Reform + + + NCPC + National Capital Planning Commission + + + NCUA + National Credit Union Administration + + + NEA + National Endowment for the Arts + + + NEH + National Endowment for the Humanities + + + NGA + National Geospatial-Intelligence Agency + + + NIGC + National Indian Gaming Commission + + + NLRB + National Labor Relations Board + + + NMB + National Mediation Board + + + NPF + National Park Foundation + + + NPPC + Northwest Power Planning Council + + + NRC + Nuclear Regulatory Commission + + + NRO + National Reconnaissance Office + + + NSA + National Security Agency + + + NSF + National Science Foundation + + + NTSB + National Transportation Safety Board + + + NWTRB + Nuclear Waste Technical Review Board + + + OGE + Office of Government Ethics + + + OMB + Office of Management and Budget + + + ONCIX + Office of the National Counterintelligence Executive + + + OPIC + Overseas Private Investment Corporation + + + OPM + Office of Personnel Management + + + OSC + Office of Special Counsel + + + OSHRC + Occupational Safety and Health Review Commission + + + OVP + Office of the Vice President + + + PBGC + Pension Benefit Guaranty Corporation + + + PCC + Panama Canal Commission + + + PEACE + Peace Corps + + + PRC + Postal Regulatory Commission + + + PRESIDIO + Presidio Trust + + + RISC + Regulatory Information Service Center + + + RRB + Railroad Retirement Board + + + SBA + Small Business Administration + + + SEC + Securities and Exchange Commission + + + SJI + State Justice Institute + + + SMITH + Smithsonian Institution + + + SRBC + Susquehanna River Basin Commission + + + SSA + Social Security Administration + + + SSAB + Social Security Advisory Board + + + SSS + Selective Service System + + + STATE + Department of State + + + TAP + Taxpayer Advocacy Panel + + + TDA + U.S. Trade and Development Agency + + + TREAS + Department of the Treasury + + + TVA + Tennessee Valley Authority + + + USA + US Army + + + USAF + US Air Force + + + USAID + United States Agency for International Development + + + USAOC + U.S. AbilityOne Commission + + + USCG + US Coast Guard + + + USDA + Department of Agriculture + + + USIP + United States Institute of Peace + + + USMC + US Marine Corps + + + USN + US Navy + + + USPS + United States Postal Service + + + USTR + United States Office of the Trade Representative + + + USUN + United States Mission to the United Nations + + + VA + Department of Veterans Affairs + + + VDNC + Veterans Day National Committee + + + VEF + Vietnam Educational Foundation + + + WHCPS + White House Commission on Presidential Scholars: Presidential Scholars Program + + + WHMO + White House Military Office + + + + AOC + Architect of the Capitol + + + CBO + Congressional Budget Office + + + CRS + Congressional Research Service + + + GAO + Government Accountability Office + + + GPO + Government Printing Office + + + H-ADM + Committee on House Administration + + + H-AGR + House Committee on Agriculture + + + H-APP + House Committee on Appropriations + + + H-ARM + House Armed Services Committee + + + H-BUD + House Committee on the Budget + + + H-CAO + House Office of the Chief Administrative Officer + + + H-CHAP + House Office of the Chaplain + + + H-CLRK + House Office of the Clerk + + + H-EC + House Committee on Ethics + + + H-EDW + House Education and the Workforce Committee + + + H-E_C + House Energy and Commerce Committee + + + H-FIN + House Committee on Financial Services + + + H-FOR + House Committee on Foreign Affairs + + + H-HIST + House Office of the Historian + + + H-HLS + House Committee on Homeland Security + + + H-JUD + House Judiciary Committee + + + H-LDRS + House Leadership + + + H-LRC + House Office of the Law Revision Counsel + + + H-NAT + House Committee on Natural Resources + + + H-OGR + House Committee on Oversight and Government Reform + + + H-OIG + House Office of the Inspector General + + + H-OLC + House Office of the Legislative Counsel + + + H-PAR + House Office of the Parliamentarian + + + H-RUL + House Committee on Rules + + + H-SAA + House Office of the Sergeant at Arms + + + H-SCI + House Committee on Science, Space, and Technology + + + H-SMB + House Committee on Small Business + + + H-T_I + House Transportation and Infrastructure Committee + + + H-VET + House Committee on Veterans’ Affairs + + + H-W_M + House Committee on Ways and Means + + + HPSCI + House Permanent Select Committee on Intelligence + + + J-JCP + Joint Committee on Printing + + + J-JCT + Joint Committee on Taxation + + + J-JEC + Joint Economic Committee + + + JCLDS + Joint Committee on the Library + + + LOC + Library of Congress + + + MACPAC + Medicaid and CHIP Payment and Access Commission + + + MedPAC + Medicare Payment Advisory Commission + + + OWLC + Open World Leadership Center + + + S-AGE + Senate Special Committee on Aging + + + S-AGR + Senate Committee on Agriculture, Nutrition, and Forestry + + + S-APP + Senate Committee on Appropriations + + + S-ARM + Senate Committee on Armed Services + + + S-BNK + Senate Committee on Banking, Housing, and Urban Affairs + + + S-BUD + Senate Budget Committee + + + S-CHAP + Senate Office of the Chaplain + + + S-COE + Senate Select Committee on Ethics + + + S-CST + Senate Committee on Commerce, Science, and Transportation + + + S-ENR + Senate Committee on Energy and Natural Resources + + + S-EPW + Senate Committee on Environment and Public Works + + + S-FIN + Senate Committee on Finance + + + S-FOR + Senate Committee on Foreign Relations + + + S-HELP + Senate Committee on Health, Education, Labor, and Pensions + + + S-HSG + Senate Committee on Homeland Security and Governmental Affairs + + + S-IND + Senate Committee on Indian Affairs + + + S-JUD + Senate + Committee on the Judiciary + + + S-LDRS + Senate Leadership + + + S-MAJSEC + Senate Office of the Secretary for the Majority + + + S-MINSEC + Senate Office of the Secretary for the Minority + + + S-PAR + Senate Office of the Parliamentarian + + + S-R_A + Senate Committee on Rules and Administration + + + S-SAA + Senate Office of the Sergeant at Arms + + + S-SEC + Office of the Secretary of the Senate + + + S-SMB + Senate Committee on Small Business and Entrepreneurship + + + S-VET + Senate Committee on Veterans’ Affairs + + + SCPS + Stennis Center for Public Service + + + SSCI + Senate Select Committee on Intelligence + + + USBG + U.S. Botanic Garden + + + USCO + Copyright Office + + + USCP + U.S. Capitol Police + + + + OtherUSG + Other United State Federal Government + + + SLT + State, Local, Tribal Government + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumAuditRoutingUnique.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumAuditRoutingUnique.xml new file mode 100644 index 0000000000..92df18566b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumAuditRoutingUnique.xml @@ -0,0 +1,209 @@ + + + + + urn:us:gov:ic:cvenum:usagency:auditRoutingUnique + CVEnumAuditRoutingUnique + All ICAS approved values for organization to which Audit Records are routed + that are not already in USAgency CVE. + + 2019-12-23T16:24:49.553Z + + ICAS + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + + USAFRICOM + + United States Africa Command (Type: COCOM) + + + + + USCENTCOM + + United States Central Command (Type: COCOM) + + + + + USCYBERCOM + + United States Strategic Command, US Cyber Command (Type: COCOM) + + + + + USEUCOM + + United States European Command (Type: COCOM) + + + + + USFK + + United States Pacific Command, US Forces Korea (Type: COCOM) + + + + + USNORTHCOM + + United States Northern Command (Type: COCOM) + + + + + USPACOM + + United States Pacific Command (Type: COCOM) + + + + + USSOCOM + + United States Special Operations Command (Type: COCOM) + + + + + USSOUTHCOM + + United States Southern Command (Type: COCOM) + + + + + USSTRATCOM + + United States Strategic Command (Type: COCOM) + + + + + USTRANSCOM + + United States Transportation Command (Type: COCOM) + + + + + DARPA + + Defense Advanced Research Projects Agency (Type: DOD) + + + + + DISA + + Defense Information Systems Agency (Type: DOD) + + + + + DODCIO + + Assistant Secretary of Defense for Networks and Information Integration and DoD Chief Information Officer (Type: DOD) + + + + + DODIG + + Department of Defense Inspector General (Type: DOD) + + + + + DODIO + + Assistant to the Secretary of Defense for Intelligence Oversight (Type: DOD) + + + + + DSS + + Defense Security Service (Type: DOD) + + + + + DTRA + + Defense Threat-Reduction Agency (Type: DOD) + + + + + JCS + + Office of the Joint Chiefs of Staff (Type: DOD) + + + + + JIDA + + Joint Improvised-Threat Defeat Agency (Type: DOD) + + + + + MDA + + Missile Defense Agency (Type: DOD) + + + + + OUSDATL + + Office of the Undersecretary of Defense (Acquisition, Technology and Logistics) (Type: DOD) + + + + + OUSDI + + Office of the Undersecretary of Defense (Intelligence) (Type: DOD) + + + + + INA + + United States Department of Homeland Security, Office of Intelligence and Analysis (Type: IC) + + + + + TSA + + United States Department of Homeland Security, Transportation Security Administration (Type: IC) + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumUSAgencyAcronym.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumUSAgencyAcronym.xml new file mode 100644 index 0000000000..38c73e555d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumUSAgencyAcronym.xml @@ -0,0 +1,1031 @@ + + + + urn:us:gov:ic:cvenum:usagency:agencyacronym + CVEnumUSAgencyAcronym + All valid acronyms for use with USA publishing organizations/agencies/Cabinet + Offices. + 2019-12-23T16:24:49.941Z + + IC-CIO + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + ABMC + American Battle Monuments Commission + + + ACCESS + Architectural and Transportation Barriers Compliance Board + + + ACFR + Administrative Committee of the Federal Register + + + ACHP + Advisory Council on Historic Preservation + + + ACUS + Administrative Conference of the United States + + + ADF + African Development Foundation + + + AMICC + Arthritis and Musculoskeletal Interagency Coordinating Committee + + + AMTRAK + National Railroad Passenger Corporation + + + ARC + Appalachian Regional Commission + + + ARCTIC + Arctic Research Commission + + + BBG + Broadcasting Board of Governors + + + BMGS + Barry M. Goldwater Scholarship and Excellence in Education Foundation + + + CAOC + Chief Acquisition Officers Council + + + CCJJ + Coordinating Council on Juvenile Justice and Delinquency Prevention + + + CCR + Commission on Civil Rights + + + CEA + United States Council of Economic Advisers + + + CFA + Commission of Fine Arts + + + CFI + Committee on Foreign Investments in the United States + + + CFOC + Chief Financial Officers Council + + + CFTC + Commodity Futures Trading Commission + + + CHCOC + Chief Human Capital Officers Council + + + CIA + Central Intelligence Agency + + + CIOC + Chief Information Officers Council + + + CIRF + Commission on International Religious Freedom + + + CITA + Committee for the Implementation of Textile Agreements + + + CNCS + Corporation for National and Community Service + + + COMP + Office of Compliance + + + CPSC + Consumer Product Safety Commission + + + CSAC + Citizens' Stamp Advisory Committee + + + CSHIB + Chemical Safety and Hazard Investigation Board + + + CSOSA + Court Services and Offender Supervision Agency for the District of Columbia + + + DEA + Drug Enforcement Administration + + + DENALI + Denali Commission + + + DHS + Department of Homeland Security + + + DIA + Defense Intelligence Agency + + + DNFSB + Defense Nuclear Facilities Safety Board + + + DNI + Office of the Director of National Intelligence + + + DOC + Department of Commerce + + + DOD + Department of Defense + + + DOE + Department of Energy + + + DOI + Department of the Interior + + + DOJ + Department of Justice + + + DOL + Department of Labor + + + DOT + Department of Transportation + + + DRBC + Delaware River Basin Commission + + + EAC + United States Election Assistance Commission + + + ED + Department of Education + + + EEOC + Equal Employment Opportunity Commission + + + EIBUS + Export-Import Bank of the United States + + + EOP + Executive Office of the President + + + EPA + Environmental Protection Agency + + + ESC + Endangered Species Committee + + + FAC + Federal Advisory Committees + + + FASAB + Federal Accounting Standards Advisory Board + + + FBI + Federal Bureau of Investigation + + + FCA + Farm Credit Administration + + + FCC + Federal Communications Commission + + + FCIC + Financial Crisis Inquiry Commission + + + FCSIC + Farm Credit System Insurance Corporation + + + FDIC + Federal Deposit Insurance Corporation + + + FEB + Federal Executive Boards + + + FEC + Federal Election Commission + + + FERC + Federal Energy Regulatory Commission + + + FFB + Federal Financing Bank + + + FFIEC + Federal Financial Institutions Examination Council + + + FGDC + Federal Geographic Data Committee + + + FHRA + Federal Housing Finance Agency + + + FICE + Federal Interagency Committee on Education + + + FICMNEW + Federal Interagency Committee for the Management of Noxious and Exotic Weeds + + + FICSP + Federal Interagency Council on Statistical Policy + + + FLCTT + Federal Laboratory Consortium for Technology Transfer + + + FLICC + Federal Library and Information Center Committee + + + FLRA + Federal Labor Relations Authority + + + FMC + Federal Maritime Commission + + + FMCS + Federal Mediation and Conciliation Service + + + FMSHRC + Federal Mine Safety and Health Review Commission + + + FRS + Federal Reserve System + + + FRTIB + Federal Retirement Thrift Investment Board + + + FTC + Federal Trade Commission + + + GSA + General Services Administration + + + HELSINKI + Commission on Security and Cooperation in Europe + + + HHS + Department of Health and Human Services + + + HMM + United States Holocaust Memorial Museum + + + HSTSF + Harry S. Truman Scholarship Foundation + + + HUD + Department of Housing and Urban Development + + + IACB + Indian Arts and Crafts Board + + + IADRWG + Interagency Alternative Dispute Resolution Working Group + + + IAF + Inter-American Foundation + + + IBB + International Broadcasting Bureau + + + ICH + Interagency Council on Homelessness + + + ICPRB + Interstate Commission on the Potomac River Basin + + + IMCNHCC + Illinois and Michigan Canal National Heritage Corridor Commission + + + IMLS + Institute of Museum and Library Services + + + ITC + United States International Trade Commission + + + JBEA + Joint Board for the Enrollment of Actuaries + + + JFSP + Joint Fire Science Program + + + JMMFF + James Madison Memorial Fellowship Foundation + + + JUSFC + Japan-United States Friendship Commission + + + JWFFSB + J. William Fulbright Foreign Scholarship Board + + + LSC + Legal Services Corporation + + + MBCC + Migratory Bird Conservation Commission + + + MCC + Millennium Challenge Corporation + + + MKUF + Morris K. Udall Foundation: Scholarship and Excellence in National Environmental Policy + + + MMC + Marine Mammal Commission + + + MRC + Mississippi River Commission + + + MSPB + Merit Systems Protection Board + + + NARA + National Archives and Records Administration + + + NASA + National Aeronautics and Space Administration + + + NBCFM + National Bipartisan Commission on the Future of Medicare + + + NCD + National Council on Disability + + + NCFRR + National Commission on Fiscal Responsibility and Reform + + + NCPC + National Capital Planning Commission + + + NCUA + National Credit Union Administration + + + NEA + National Endowment for the Arts + + + NEH + National Endowment for the Humanities + + + NGA + National Geospatial-Intelligence Agency + + + NIGC + National Indian Gaming Commission + + + NLRB + National Labor Relations Board + + + NMB + National Mediation Board + + + NPF + National Park Foundation + + + NPPC + Northwest Power Planning Council + + + NRC + Nuclear Regulatory Commission + + + NRO + National Reconnaissance Office + + + NSA + National Security Agency + + + NSF + National Science Foundation + + + NTSB + National Transportation Safety Board + + + NWTRB + Nuclear Waste Technical Review Board + + + OGE + Office of Government Ethics + + + OMB + Office of Management and Budget + + + ONCIX + Office of the National Counterintelligence Executive + + + OPIC + Overseas Private Investment Corporation + + + OPM + Office of Personnel Management + + + OSC + Office of Special Counsel + + + OSHRC + Occupational Safety and Health Review Commission + + + OVP + Office of the Vice President + + + PBGC + Pension Benefit Guaranty Corporation + + + PCC + Panama Canal Commission + + + PEACE + Peace Corps + + + PRC + Postal Regulatory Commission + + + PRESIDIO + Presidio Trust + + + RISC + Regulatory Information Service Center + + + RRB + Railroad Retirement Board + + + SBA + Small Business Administration + + + SEC + Securities and Exchange Commission + + + SJI + State Justice Institute + + + SMITH + Smithsonian Institution + + + SRBC + Susquehanna River Basin Commission + + + SSA + Social Security Administration + + + SSAB + Social Security Advisory Board + + + SSS + Selective Service System + + + STATE + Department of State + + + TAP + Taxpayer Advocacy Panel + + + TDA + U.S. Trade and Development Agency + + + TREAS + Department of the Treasury + + + TVA + Tennessee Valley Authority + + + USA + US Army + + + USAF + US Air Force + + + USAID + United States Agency for International Development + + + USAOC + U.S. AbilityOne Commission + + + USCG + US Coast Guard + + + USDA + Department of Agriculture + + + USIP + United States Institute of Peace + + + USMC + US Marine Corps + + + USN + US Navy + + + USPS + United States Postal Service + + + USTR + United States Office of the Trade Representative + + + USUN + United States Mission to the United Nations + + + VA + Department of Veterans Affairs + + + VDNC + Veterans Day National Committee + + + VEF + Vietnam Educational Foundation + + + WHCPS + White House Commission on Presidential Scholars: Presidential Scholars Program + + + WHMO + White House Military Office + + + + AOC + Architect of the Capitol + + + CBO + Congressional Budget Office + + + CRS + Congressional Research Service + + + GAO + Government Accountability Office + + + GPO + Government Printing Office + + + H-ADM + Committee on House Administration + + + H-AGR + House Committee on Agriculture + + + H-APP + House Committee on Appropriations + + + H-ARM + House Armed Services Committee + + + H-BUD + House Committee on the Budget + + + H-CAO + House Office of the Chief Administrative Officer + + + H-CHAP + House Office of the Chaplain + + + H-CLRK + House Office of the Clerk + + + H-EC + House Committee on Ethics + + + H-EDW + House Education and the Workforce Committee + + + H-E_C + House Energy and Commerce Committee + + + H-FIN + House Committee on Financial Services + + + H-FOR + House Committee on Foreign Affairs + + + H-HIST + House Office of the Historian + + + H-HLS + House Committee on Homeland Security + + + H-JUD + House Judiciary Committee + + + H-LDRS + House Leadership + + + H-LRC + House Office of the Law Revision Counsel + + + H-NAT + House Committee on Natural Resources + + + H-OGR + House Committee on Oversight and Government Reform + + + H-OIG + House Office of the Inspector General + + + H-OLC + House Office of the Legislative Counsel + + + H-PAR + House Office of the Parliamentarian + + + H-RUL + House Committee on Rules + + + H-SAA + House Office of the Sergeant at Arms + + + H-SCI + House Committee on Science, Space, and Technology + + + H-SMB + House Committee on Small Business + + + H-T_I + House Transportation and Infrastructure Committee + + + H-VET + House Committee on Veterans’ Affairs + + + H-W_M + House Committee on Ways and Means + + + HPSCI + House Permanent Select Committee on Intelligence + + + J-JCP + Joint Committee on Printing + + + J-JCT + Joint Committee on Taxation + + + J-JEC + Joint Economic Committee + + + JCLDS + Joint Committee on the Library + + + LOC + Library of Congress + + + MACPAC + Medicaid and CHIP Payment and Access Commission + + + MedPAC + Medicare Payment Advisory Commission + + + OWLC + Open World Leadership Center + + + S-AGE + Senate Special Committee on Aging + + + S-AGR + Senate Committee on Agriculture, Nutrition, and Forestry + + + S-APP + Senate Committee on Appropriations + + + S-ARM + Senate Committee on Armed Services + + + S-BNK + Senate Committee on Banking, Housing, and Urban Affairs + + + S-BUD + Senate Budget Committee + + + S-CHAP + Senate Office of the Chaplain + + + S-COE + Senate Select Committee on Ethics + + + S-CST + Senate Committee on Commerce, Science, and Transportation + + + S-ENR + Senate Committee on Energy and Natural Resources + + + S-EPW + Senate Committee on Environment and Public Works + + + S-FIN + Senate Committee on Finance + + + S-FOR + Senate Committee on Foreign Relations + + + S-HELP + Senate Committee on Health, Education, Labor, and Pensions + + + S-HSG + Senate Committee on Homeland Security and Governmental Affairs + + + S-IND + Senate Committee on Indian Affairs + + + S-JUD + Senate + Committee on the Judiciary + + + S-LDRS + Senate Leadership + + + S-MAJSEC + Senate Office of the Secretary for the Majority + + + S-MINSEC + Senate Office of the Secretary for the Minority + + + S-PAR + Senate Office of the Parliamentarian + + + S-R_A + Senate Committee on Rules and Administration + + + S-SAA + Senate Office of the Sergeant at Arms + + + S-SEC + Office of the Secretary of the Senate + + + S-SMB + Senate Committee on Small Business and Entrepreneurship + + + S-VET + Senate Committee on Veterans’ Affairs + + + SCPS + Stennis Center for Public Service + + + SSCI + Senate Select Committee on Intelligence + + + USBG + U.S. Botanic Garden + + + USCO + Copyright Office + + + USCP + U.S. Capitol Police + + + + OtherUSG + Other United State Federal Government + + + SLT + State, Local, Tribal Government + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumUSGOVAgencyAcronym.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumUSGOVAgencyAcronym.xml new file mode 100644 index 0000000000..3afcea24fa --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/CVE/USAgency/CVEnumUSGOVAgencyAcronym.xml @@ -0,0 +1,720 @@ + + + + urn:us:gov:ic:cvenum:usagency:usgovagencyacronym + CVEnumUSGOVAgencyAcronym + All valid acronyms for use with US Government Offices. + This list is only the agencies within the Executive Branches of the US Government. + 2019-12-23T16:24:50.415Z + + IC-CIO + + Office IC CIO + ic-standards-support@iarpa.gov + + + + + + ABMC + American Battle Monuments Commission + + + ACCESS + Architectural and Transportation Barriers Compliance Board + + + ACFR + Administrative Committee of the Federal Register + + + ACHP + Advisory Council on Historic Preservation + + + ACUS + Administrative Conference of the United States + + + ADF + African Development Foundation + + + AMICC + Arthritis and Musculoskeletal Interagency Coordinating Committee + + + AMTRAK + National Railroad Passenger Corporation + + + ARC + Appalachian Regional Commission + + + ARCTIC + Arctic Research Commission + + + BBG + Broadcasting Board of Governors + + + BMGS + Barry M. Goldwater Scholarship and Excellence in Education Foundation + + + CAOC + Chief Acquisition Officers Council + + + CCJJ + Coordinating Council on Juvenile Justice and Delinquency Prevention + + + CCR + Commission on Civil Rights + + + CEA + United States Council of Economic Advisers + + + CFA + Commission of Fine Arts + + + CFI + Committee on Foreign Investments in the United States + + + CFOC + Chief Financial Officers Council + + + CFTC + Commodity Futures Trading Commission + + + CHCOC + Chief Human Capital Officers Council + + + CIA + Central Intelligence Agency + + + CIOC + Chief Information Officers Council + + + CIRF + Commission on International Religious Freedom + + + CITA + Committee for the Implementation of Textile Agreements + + + CNCS + Corporation for National and Community Service + + + COMP + Office of Compliance + + + CPSC + Consumer Product Safety Commission + + + CSAC + Citizens' Stamp Advisory Committee + + + CSHIB + Chemical Safety and Hazard Investigation Board + + + CSOSA + Court Services and Offender Supervision Agency for the District of Columbia + + + DEA + Drug Enforcement Administration + + + DENALI + Denali Commission + + + DHS + Department of Homeland Security + + + DIA + Defense Intelligence Agency + + + DNFSB + Defense Nuclear Facilities Safety Board + + + DNI + Office of the Director of National Intelligence + + + DOC + Department of Commerce + + + DOD + Department of Defense + + + DOE + Department of Energy + + + DOI + Department of the Interior + + + DOJ + Department of Justice + + + DOL + Department of Labor + + + DOT + Department of Transportation + + + DRBC + Delaware River Basin Commission + + + EAC + United States Election Assistance Commission + + + ED + Department of Education + + + EEOC + Equal Employment Opportunity Commission + + + EIBUS + Export-Import Bank of the United States + + + EOP + Executive Office of the President + + + EPA + Environmental Protection Agency + + + ESC + Endangered Species Committee + + + FAC + Federal Advisory Committees + + + FASAB + Federal Accounting Standards Advisory Board + + + FBI + Federal Bureau of Investigation + + + FCA + Farm Credit Administration + + + FCC + Federal Communications Commission + + + FCIC + Financial Crisis Inquiry Commission + + + FCSIC + Farm Credit System Insurance Corporation + + + FDIC + Federal Deposit Insurance Corporation + + + FEB + Federal Executive Boards + + + FEC + Federal Election Commission + + + FERC + Federal Energy Regulatory Commission + + + FFB + Federal Financing Bank + + + FFIEC + Federal Financial Institutions Examination Council + + + FGDC + Federal Geographic Data Committee + + + FHRA + Federal Housing Finance Agency + + + FICE + Federal Interagency Committee on Education + + + FICMNEW + Federal Interagency Committee for the Management of Noxious and Exotic Weeds + + + FICSP + Federal Interagency Council on Statistical Policy + + + FLCTT + Federal Laboratory Consortium for Technology Transfer + + + FLICC + Federal Library and Information Center Committee + + + FLRA + Federal Labor Relations Authority + + + FMC + Federal Maritime Commission + + + FMCS + Federal Mediation and Conciliation Service + + + FMSHRC + Federal Mine Safety and Health Review Commission + + + FRS + Federal Reserve System + + + FRTIB + Federal Retirement Thrift Investment Board + + + FTC + Federal Trade Commission + + + GSA + General Services Administration + + + HELSINKI + Commission on Security and Cooperation in Europe + + + HHS + Department of Health and Human Services + + + HMM + United States Holocaust Memorial Museum + + + HSTSF + Harry S. Truman Scholarship Foundation + + + HUD + Department of Housing and Urban Development + + + IACB + Indian Arts and Crafts Board + + + IADRWG + Interagency Alternative Dispute Resolution Working Group + + + IAF + Inter-American Foundation + + + IBB + International Broadcasting Bureau + + + ICH + Interagency Council on Homelessness + + + ICPRB + Interstate Commission on the Potomac River Basin + + + IMCNHCC + Illinois and Michigan Canal National Heritage Corridor Commission + + + IMLS + Institute of Museum and Library Services + + + ITC + United States International Trade Commission + + + JBEA + Joint Board for the Enrollment of Actuaries + + + JFSP + Joint Fire Science Program + + + JMMFF + James Madison Memorial Fellowship Foundation + + + JUSFC + Japan-United States Friendship Commission + + + JWFFSB + J. William Fulbright Foreign Scholarship Board + + + LSC + Legal Services Corporation + + + MBCC + Migratory Bird Conservation Commission + + + MCC + Millennium Challenge Corporation + + + MKUF + Morris K. Udall Foundation: Scholarship and Excellence in National Environmental Policy + + + MMC + Marine Mammal Commission + + + MRC + Mississippi River Commission + + + MSPB + Merit Systems Protection Board + + + NARA + National Archives and Records Administration + + + NASA + National Aeronautics and Space Administration + + + NBCFM + National Bipartisan Commission on the Future of Medicare + + + NCD + National Council on Disability + + + NCFRR + National Commission on Fiscal Responsibility and Reform + + + NCPC + National Capital Planning Commission + + + NCUA + National Credit Union Administration + + + NEA + National Endowment for the Arts + + + NEH + National Endowment for the Humanities + + + NGA + National Geospatial-Intelligence Agency + + + NIGC + National Indian Gaming Commission + + + NLRB + National Labor Relations Board + + + NMB + National Mediation Board + + + NPF + National Park Foundation + + + NPPC + Northwest Power Planning Council + + + NRC + Nuclear Regulatory Commission + + + NRO + National Reconnaissance Office + + + NSA + National Security Agency + + + NSF + National Science Foundation + + + NTSB + National Transportation Safety Board + + + NWTRB + Nuclear Waste Technical Review Board + + + OGE + Office of Government Ethics + + + OMB + Office of Management and Budget + + + ONCIX + Office of the National Counterintelligence Executive + + + OPIC + Overseas Private Investment Corporation + + + OPM + Office of Personnel Management + + + OSC + Office of Special Counsel + + + OSHRC + Occupational Safety and Health Review Commission + + + OVP + Office of the Vice President + + + PBGC + Pension Benefit Guaranty Corporation + + + PCC + Panama Canal Commission + + + PEACE + Peace Corps + + + PRC + Postal Regulatory Commission + + + PRESIDIO + Presidio Trust + + + RISC + Regulatory Information Service Center + + + RRB + Railroad Retirement Board + + + SBA + Small Business Administration + + + SEC + Securities and Exchange Commission + + + SJI + State Justice Institute + + + SMITH + Smithsonian Institution + + + SRBC + Susquehanna River Basin Commission + + + SSA + Social Security Administration + + + SSAB + Social Security Advisory Board + + + SSS + Selective Service System + + + STATE + Department of State + + + TAP + Taxpayer Advocacy Panel + + + TDA + U.S. Trade and Development Agency + + + TREAS + Department of the Treasury + + + TVA + Tennessee Valley Authority + + + USA + US Army + + + USAF + US Air Force + + + USAID + United States Agency for International Development + + + USAOC + U.S. AbilityOne Commission + + + USCG + US Coast Guard + + + USDA + Department of Agriculture + + + USIP + United States Institute of Peace + + + USMC + US Marine Corps + + + USN + US Navy + + + USPS + United States Postal Service + + + USTR + United States Office of the Trade Representative + + + USUN + United States Mission to the United Nations + + + VA + Department of Veterans Affairs + + + VDNC + Veterans Day National Committee + + + VEF + Vietnam Educational Foundation + + + WHCPS + White House Commission on Presidential Scholars: Presidential Scholars Program + + + WHMO + White House Military Office + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/DesIsmXml.pdf b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/DesIsmXml.pdf new file mode 100644 index 0000000000..c3a3c46ea6 Binary files /dev/null and b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/DesIsmXml.pdf differ diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ARH/IC-ARH.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ARH/IC-ARH.xsd new file mode 100644 index 0000000000..91c18ed3f8 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ARH/IC-ARH.xsd @@ -0,0 +1,185 @@ + + + + + Intelligence Community Technical Specification + XML Data Encoding Specification for Access Rights and Handling (ARH.XML) + + + + Notices + + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + + Description + + W3C XML Schema for the XML Data Encoding Specification + for Access Rights and Handling (ARH.XML). + + + + Introduction + + This XML Schema file is one component of the XML Data Encoding + Specification (DES). Please see the document titled + + XML Data Encoding Specification for Access Rights and Handling + + for a complete description of the encoding as well as list + of all components. + + + It is envisioned that this schema or its components, as well as other + parts of the DES may be overridden for localized implementations. + Therefore, permission to use, copy, modify and distribute this XML + Schema and the other parts of the DES for any purpose is hereby + granted in perpetuity. + + + Please reference the preceding two paragraphs in all copies or + variations. The developers make no representation about the + suitability of the schema or DES for any purpose. It is provided + "as is" without expressed or implied warranty. + + + If you modify this XML Schema in any way label your schema + as a variant of ARH.XML. + + + Please direct all questions, bug reports,or suggestions for changes + to the points of contact identified in the document referenced above. + + + + Implementation Notes + The document elements for ARH are: + + + arh:ExternalSecurity + + + arh:Security + + + + + + Creators + Office of the Director of National Intelligence + Intelligence Community Chief Information Officer + + + + + + + + + Used for expressing the + access rights and handling information for a data object that is present in the + same instant document or is the instance document containing this element. + + + + + + + + + Used for expressing the + access rights and handling information for a data object that is external to + instant document containing this element. + + + + + + + + The version number of the DES + + + + + + + + A type for expressing the + access rights and handling information for a data object that is internal to + instant document or the instance document itself. + + + + + + + + + + + + + A type for expressing the + access rights and handling information for a data object that is external to + instant document. + + + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an external document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. + + + + + + + + + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.rnc new file mode 100644 index 0000000000..5a039e2a75 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.rnc @@ -0,0 +1 @@ +CVEnumISM25X.att = attribute CVEnumISM25X { "AEA" | "NATO" | "NATO-AEA" | "25X1" | "25X1-EO-12951" | "25X2" | "25X3" | "25X4" | "25X5" | "25X6" | "25X7" | "25X8" | "25X9" | "50X1" | "50X1-HUM" | "50X2" | "50X2-WMD" | "50X3" | "50X4" | "50X5" | "50X6" | "50X7" | "50X8" | "50X9" } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.rng new file mode 100644 index 0000000000..b89f5fd249 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.rng @@ -0,0 +1,31 @@ + + + + + AEA + NATO + NATO-AEA + 25X1 + 25X1-EO-12951 + 25X2 + 25X3 + 25X4 + 25X5 + 25X6 + 25X7 + 25X8 + 25X9 + 50X1 + 50X1-HUM + 50X2 + 50X2-WMD + 50X3 + 50X4 + 50X5 + 50X6 + 50X7 + 50X8 + 50X9 + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd new file mode 100644 index 0000000000..3054b1345f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISM25X.xsd @@ -0,0 +1,281 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISM25X Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISM25X.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized authority block declass date/event exemptions. This CVE is used by @ism:declassException. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISM25X.xml + + + + + + + + When using a source document that contains portions of Restricted Data (RD) + or Formerly Restricted Data (FRD) where the RD/FRD source document(s) + do not have declassification instructions, the derivatively classified + document shall not contain a declassification date or event on the + Declassify On line. The following shall be annotated on the Declassify On + line: "Not Applicable or (N/A) to RD/FRD portions" and + "See source list for NSI portions" separated by a period. + The source list must include the declassification instruction + for each of the source documents classified under E.O. 13526 and + shall not appear in the classification authority block + + + + + + + Since NATO information is not to be declassified or downgraded without the prior consent + of NATO, the “Declassify on” line of documents that commingle information classified by + NATO and U.S. classified NSI, will read “N/A to NATO portions. + See source list for NSI portions.” + The NSI source list will appear beneath the classification authority block + in a manner that clearly identifies it as separate and distinct. + + + + + + + Handles special case of BOTH NATO and AEA as a single exemption. + + + + + + + Reveal the identity of a confidential + human source, a human intelligence source, + a relationship with an intelligence or security + service of a foreign government or + international organization, or a non-human + intelligence source; or impair the + effectiveness of an intelligence method + currently in use, available for use, or under + development. + + + + + + + "25X1, EO 12951" (prescribed by the DNI for use on information described in E.O. 12951, + Release of Imagery Acquired by Space-Based National Intelligence Reconnaissance Systems) + + + + + + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + + + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + + + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + + + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + + + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + + + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + + + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + + + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + + + + The ISCAP has authorized use of this code in the FBI’s + classification guidance (which results in a 75-year classification + period) for any agency sourcing/reusing the information. + + + + + + + When the information clearly and + demonstrably could be expected to + reveal the identity of a confidential + human source or a human intelligence + source. + + + + + + + Reveal information that would assist + in the development, production, or use of + weapons of mass destruction. + + + + + + + When the information clearly and + demonstrably could reveal key design + concepts of weapons of mass + destruction. + + + + + + + Reveal information that would + impair U.S. cryptologic systems or activities. + + + + + + + Reveal information that would + impair the application of state-of-the-art + technology within a U.S. weapon system. + + + + + + + Reveal formally named or numbered + U.S. military war plans that remain in effect, + or reveal operational or tactical elements of + prior plans that are contained in such active + plans; + + + + + + Reveal information, including foreign + government information, that would cause + serious harm to relations between the United + States and a foreign government, or to + ongoing diplomatic activities of the United + States + + + + + + + Reveal information that would + impair the current ability of United States + Government officials to protect the President, + Vice President, and other protectees for + whom protection services, in the interest of + the national security, are authorized. + + + + + + + Reveal information that would + seriously impair current national security + emergency preparedness plans or reveal + current vulnerabilities of systems, + installations, or infrastructures relating to the + national security. + + + + + + + Violate a statute, treaty, or + international agreement that does not permit + the automatic or unilateral declassification of + information at 25 years. + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rnc new file mode 100644 index 0000000000..7b76481c6d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rnc @@ -0,0 +1 @@ +CVEnumISMatomicEnergyMarkings.att = attribute CVEnumISMatomicEnergyMarkings { list { "RD"?, "RD-CNWDI"?, "RD-SG-((14)|(15)|(18)|(20))"?, "FRD"?, "FRD-SG-((14)|(15)|(18)|(20))"?, "DCNI"?, "UCNI"?, "TFNI"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rng new file mode 100644 index 0000000000..ed90f3737e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.rng @@ -0,0 +1,31 @@ + + + + + + RD + + + RD-CNWDI + + + RD-SG-((14)|(15)|(18)|(20)) + + + FRD + + + FRD-SG-((14)|(15)|(18)|(20)) + + + DCNI + + + UCNI + + + TFNI + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd new file mode 100644 index 0000000000..840b812ed1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAtomicEnergyMarkings.xsd @@ -0,0 +1,85 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMatomicEnergyMarkings Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMatomicEnergyMarkings.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Atomic Energy information markings from the published register. This CVE is used by @ism:atomicEnergyMarkings. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMatomicEnergyMarkings.xml + + + + + + + + + RD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + + + FRD-SIGMA-#, # represents the SIGMA number which may be 14, 15, 18, or 20. + + + + + + + + + RESTRICTED DATA + + + + + RD-CRITICAL NUCLEAR WEAPON DESIGN INFORMATION + + + + + FORMERLY RESTRICTED DATA + + + + + DoD CONTROLLED NUCLEAR INFORMATION + + + + + DoE CONTROLLED NUCLEAR INFORMATION + + + + + TRANSCLASSIFIED FOREIGN NUCLEAR INFORMATION + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAttributes.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAttributes.rnc new file mode 100644 index 0000000000..597bdef5e1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAttributes.rnc @@ -0,0 +1 @@ +CVEnumISMAttributes.att = attribute CVEnumISMAttributes { list { "compliesWith"?, "classification"?, "ownerProducer"?, "SCIcontrols"?, "SARIdentifier"?, "atomicEnergyMarkings"?, "disseminationControls"?, "FGIsourceOpen"?, "FGIsourceProtected"?, "hasApproximateMarkings"?, "releasableTo"?, "displayOnlyTo"?, "nonICmarkings"?, "classifiedBy"?, "derivativelyClassifiedBy"?, "classificationReason"?, "nonUSControls"?, "derivedFrom"?, "declassDate"?, "declassEvent"?, "declassException"?, "resourceElement"?, "excludeFromRollup"?, "createDate"?, "compilationReason"?, "noAggregation"?, "noticeType"?, "externalNotice"?, "DESVersion"?, "ISMCATCESVersion"?, "noticeDate"?, "noticeReason"?, "exemptFrom"?, "unregisteredNoticeType"?, "pocType"?, "joint"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAttributes.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAttributes.rng new file mode 100644 index 0000000000..5c1ca77726 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMAttributes.rng @@ -0,0 +1,115 @@ + + + + + + compliesWith + + + classification + + + ownerProducer + + + SCIcontrols + + + SARIdentifier + + + atomicEnergyMarkings + + + disseminationControls + + + FGIsourceOpen + + + FGIsourceProtected + + + hasApproximateMarkings + + + releasableTo + + + displayOnlyTo + + + nonICmarkings + + + classifiedBy + + + derivativelyClassifiedBy + + + classificationReason + + + nonUSControls + + + derivedFrom + + + declassDate + + + declassEvent + + + declassException + + + resourceElement + + + excludeFromRollup + + + createDate + + + compilationReason + + + noAggregation + + + noticeType + + + externalNotice + + + DESVersion + + + ISMCATCESVersion + + + noticeDate + + + noticeReason + + + exemptFrom + + + unregisteredNoticeType + + + pocType + + + joint + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.rnc new file mode 100644 index 0000000000..d955ee7173 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.rnc @@ -0,0 +1 @@ +CVEnumISMClassificationAll.att = attribute CVEnumISMClassificationAll { "R" | "C" | "S" | "TS" | "U" } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.rng new file mode 100644 index 0000000000..f8c114e2f0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.rng @@ -0,0 +1,12 @@ + + + + + R + C + S + TS + U + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd new file mode 100644 index 0000000000..386d857aa5 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationAll.xsd @@ -0,0 +1,54 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMClassificationAll Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMClassificationAll.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid classification marks. This CVE is used by @ism:classification. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMClassificationAll.xml + + + + + + + RESTRICTED + + + + + CONFIDENTIAL + + + + + SECRET + + + + + TOP SECRET + + + + + UNCLASSIFIED + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.rnc new file mode 100644 index 0000000000..82ab497f1a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.rnc @@ -0,0 +1 @@ +CVEnumISMClassificationUS.att = attribute CVEnumISMClassificationUS { "TS" | "S" | "C" | "U" } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.rng new file mode 100644 index 0000000000..51f401b64d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMClassificationUS.rng @@ -0,0 +1,11 @@ + + + + + TS + S + C + U + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.rnc new file mode 100644 index 0000000000..cdcaa2e079 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.rnc @@ -0,0 +1 @@ +CVEnumISMCompliesWith.att = attribute CVEnumISMCompliesWith { list { "USGov"?, "USIC"?, "USDOD"?, "OtherAuthority"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.rng new file mode 100644 index 0000000000..5c59a9aaf6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.rng @@ -0,0 +1,19 @@ + + + + + + USGov + + + USIC + + + USDOD + + + OtherAuthority + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd new file mode 100644 index 0000000000..14151b4ad2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMCompliesWith.xsd @@ -0,0 +1,68 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCompliesWith Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCompliesWith.xml CVE it is based on, instead of here. + + + + + + + + (U) ISM rule sets documents may comply + with. This CVE is used by @ism:compliesWith. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCompliesWith.xml + + + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Federal Government. This is the minimum set of rules + for US documents to adhere to, and all US documents should claim compliance with + USGov. For example, a US Intelligence Community document should claim + ism:compliesWith="USGov USIC". + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Intelligence Community. Documents that claim compliance + with USIC MUST also claim compliance with USGov. + + + + + Document claims compliance with all rules encoded in ISM for + documents produced by the US Department of Defense. Documents that claim compliance + with USDOD MUST also claim compliance with USGov. + + + + + Document claims compliance with an authority other than the + USGov, USIC, or USDOD. This token is not allowed if the ism:ownerProducer contains + USA. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.rnc new file mode 100644 index 0000000000..4b813e2950 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.rnc @@ -0,0 +1 @@ +CVEnumISMDissem.att = attribute CVEnumISMDissem { list { "RS"?, "FOUO"?, "OC"?, "OC-USGOV"?, "IMC"?, "NF"?, "PR"?, "REL"?, "RELIDO"?, "EYES"?, "DSEN"?, "FISA"?, "DISPLAYONLY"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.rng new file mode 100644 index 0000000000..998276672f --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.rng @@ -0,0 +1,46 @@ + + + + + + RS + + + FOUO + + + OC + + + OC-USGOV + + + IMC + + + NF + + + PR + + + REL + + + RELIDO + + + EYES + + + DSEN + + + FISA + + + DISPLAYONLY + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd new file mode 100644 index 0000000000..5150a33bfa --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMDissem.xsd @@ -0,0 +1,102 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMDissem Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMDissem.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Dissemination controls from the published register. This CVE is used by @ism:disseminationControls. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMDissem.xml + + + + + + + RISK SENSITIVE + + + + + FOR OFFICIAL USE ONLY + + + + + ORIGINATOR CONTROLLED + + + + + ORIGINATOR CONTROLLED US GOVERNMENT + + + + + CONTROLLED IMAGERY + + + + + NOT RELEASABLE TO FOREIGN NATIONALS + + + + + CAUTION-PROPRIETARY INFORMATION INVOLVED + + + + + AUTHORIZED FOR RELEASE TO + + + + + RELEASABLE BY INFORMATION DISCLOSURE OFFICIAL + + + + + EYES ONLY + + + + + DEA SENSITIVE + + + + + FOREIGN INTELLIGENCE SURVEILLANCE ACT + + + + + AUTHORIZED FOR DISPLAY BUT NOT RELEASE TO + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMElements.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMElements.rnc new file mode 100644 index 0000000000..d555615e52 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMElements.rnc @@ -0,0 +1 @@ +CVEnumISMElements.att = attribute CVEnumISMElements { "Notice" | "NoticeText" | "NoticeList" | "NoticeExternal" | "NoticeExternalList" } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMElements.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMElements.rng new file mode 100644 index 0000000000..8700c53342 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMElements.rng @@ -0,0 +1,12 @@ + + + + + Notice + NoticeText + NoticeList + NoticeExternal + NoticeExternalList + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.rnc new file mode 100644 index 0000000000..b775c1bf8b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.rnc @@ -0,0 +1 @@ +CVEnumISMExemptFrom.att = attribute CVEnumISMExemptFrom { list { "IC_710_MANDATORY_FDR"?, "DOD_DISTRO_STATEMENT"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.rng new file mode 100644 index 0000000000..7feed70235 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.rng @@ -0,0 +1,13 @@ + + + + + + IC_710_MANDATORY_FDR + + + DOD_DISTRO_STATEMENT + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd new file mode 100644 index 0000000000..76cf142a18 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMExemptFrom.xsd @@ -0,0 +1,53 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMExemptFrom Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMExemptFrom.xml CVE it is based on, instead of here. + + + + + + + + (U) Current rule set names that documents may comply + with. This CVE is used by @ism:exemptFrom. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMExemptFrom.xml + + + + + + + Document claims exemption from ICD-710 rules mandating the + use of Foreign Disclosure and Release markings that have been encoded in ISM. + Currently, the requirement for FD&R is only mandatory for Disseminated Analytic + Product; however, it is strongly encouraged otherwise. + + + + + Document claims exemption from the rules in DoD5230.24 + requiring DoD Distribution Statements that have been encoded into + ISM. + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.rnc new file mode 100644 index 0000000000..4ec9adf589 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.rnc @@ -0,0 +1 @@ +CVEnumISMNonIC.att = attribute CVEnumISMNonIC { list { "DS"?, "XD"?, "ND"?, "SBU"?, "SBU-NF"?, "LES"?, "LES-NF"?, "SSI"?, "NNPI"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.rng new file mode 100644 index 0000000000..88f1a85d8c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.rng @@ -0,0 +1,34 @@ + + + + + + DS + + + XD + + + ND + + + SBU + + + SBU-NF + + + LES + + + LES-NF + + + SSI + + + NNPI + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd new file mode 100644 index 0000000000..c117114aee --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonIC.xsd @@ -0,0 +1,82 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNonIC Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNonIC.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid Non-IC markings from the published register. This CVE is used by @ism:nonICmarkings. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNonIC.xml + + + + + + + LIMITED DISTRIBUTION + + + + + EXCLUSIVE DISTRIBUTION + + + + + NO DISTRIBUTION + + + + + SENSITIVE BUT UNCLASSIFIED + + + + + SENSITIVE BUT UNCLASSIFIED NOFORN + + + + + LAW ENFORCEMENT SENSITIVE + + + + + LAW ENFORCEMENT SENSITIVE NOFORN + + + + + SENSITIVE SECURITY INFORMATION + + + + + NAVAL NUCLEAR PROPULSION INFORMATION + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.rnc new file mode 100644 index 0000000000..5575b70bd4 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.rnc @@ -0,0 +1 @@ +CVEnumISMNonUSControls.att = attribute CVEnumISMNonUSControls { list { "ATOMAL"?, "BOHEMIA"?, "BALK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.rng new file mode 100644 index 0000000000..616324cc7b --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.rng @@ -0,0 +1,16 @@ + + + + + + ATOMAL + + + BOHEMIA + + + BALK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd new file mode 100644 index 0000000000..11eaef1fbe --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNonUSControls.xsd @@ -0,0 +1,52 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNonUSControls Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNonUSControls.xml CVE it is based on, instead of here. + + + + + + + + (U) NonUS Control markings supported by ISM. This CVE is used by @ism:nonUSControls. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNonUSControls.xml + + + + + + + NATO Atomal mark + + + + + NATO Bohemia mark + + + + + NATO Balk mark + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.rnc new file mode 100644 index 0000000000..fddcaaab0d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.rnc @@ -0,0 +1 @@ +CVEnumISMNotice.att = attribute CVEnumISMNotice { list { "FISA"?, "IMC"?, "CNWDI"?, "RD"?, "FRD"?, "DS"?, "LES"?, "LES-NF"?, "DSEN"?, "DoD-Dist-A"?, "DoD-Dist-B"?, "DoD-Dist-C"?, "DoD-Dist-D"?, "DoD-Dist-E"?, "DoD-Dist-F"?, "DoD-Dist-X"?, "US-Person"?, "pre13526ORCON"?, "POC"?, "COMSEC"?, "SSI"?, "RSEN"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.rng new file mode 100644 index 0000000000..31402d3f6a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.rng @@ -0,0 +1,73 @@ + + + + + + FISA + + + IMC + + + CNWDI + + + RD + + + FRD + + + DS + + + LES + + + LES-NF + + + DSEN + + + DoD-Dist-A + + + DoD-Dist-B + + + DoD-Dist-C + + + DoD-Dist-D + + + DoD-Dist-E + + + DoD-Dist-F + + + DoD-Dist-X + + + US-Person + + + pre13526ORCON + + + POC + + + COMSEC + + + SSI + + + RSEN + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd new file mode 100644 index 0000000000..75a2833dce --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMNotice.xsd @@ -0,0 +1,147 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMNotice Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMNotice.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized Notice values. This CVE is used by @ism:noticeType. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMNotice.xml + + + + + + + FISA Warning statement + + + + + IMCON Warning statement + + + + + Controled Nuclear Weapon Design Information Warning statement + + + + + RD Warning statement + + + + + FRD Warning statement + + + + + LIMDIS caveat + + + + + LES Notice + + + + + LES-NF Notice + + + + + DSEN Notice + + + + + DoD Distribution statement A from DoD Directive 5230.24 + + + + + DoD Distribution statement B from DoD Directive 5230.24 + + + + + DoD Distribution statement C from DoD Directive 5230.24 + + + + + DoD Distribution statement D from DoD Directive 5230.24 + + + + + DoD Distribution statement E from DoD Directive 5230.24 + + + + + DoD Distribution statement F from DoD Directive 5230.24 + + + + + DoD Distribution statement X from DoD Directive 5230.24 + + + + + US Person info Notice + + + + + Indicates that an instance document must abide by rules pertaining to ORIGINATOR CONTROLLED data issued prior to Executive Order 13526. + + + + + Indicates that the contents of this notice specify the contact information for a required point-of-contact. + + + + + COMSEC Notice + + + + + Indicates that this is the notice for Sensitive Security Information + + + + + Risk Sensitive Notice + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.rnc new file mode 100644 index 0000000000..80811d13d3 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.rnc @@ -0,0 +1 @@ +CVEnumISMPocType.att = attribute CVEnumISMPocType { list { "ICD-710"?, "DoD-Dist-B"?, "DoD-Dist-C"?, "DoD-Dist-D"?, "DoD-Dist-E"?, "DoD-Dist-F"?, "DoD-Dist-X"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.rng new file mode 100644 index 0000000000..6625413124 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.rng @@ -0,0 +1,28 @@ + + + + + + ICD-710 + + + DoD-Dist-B + + + DoD-Dist-C + + + DoD-Dist-D + + + DoD-Dist-E + + + DoD-Dist-F + + + DoD-Dist-X + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd new file mode 100644 index 0000000000..7ec80cce46 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMPocType.xsd @@ -0,0 +1,72 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMPocType Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMPocType.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently authorized types for ISM-related points-of-contact. This CVE is used by @ism:pocType. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMPocType.xml + + + + + + + Point-of-contact for an ICD-710 notice. + + + + + DoD Distribution statement B from DoD Directive 5230.24 + + + + + DoD Distribution statement C from DoD Directive 5230.24 + + + + + DoD Distribution statement D from DoD Directive 5230.24 + + + + + DoD Distribution statement E from DoD Directive 5230.24 + + + + + DoD Distribution statement F from DoD Directive 5230.24 + + + + + DoD Distribution statement X from DoD Directive 5230.24 + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.rnc new file mode 100644 index 0000000000..88b7e9a917 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.rnc @@ -0,0 +1 @@ +CVEnumISMSAR.att = attribute CVEnumISMSAR { list { } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.rng new file mode 100644 index 0000000000..2b4e39cf48 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.rng @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd new file mode 100644 index 0000000000..9516b478e7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSAR.xsd @@ -0,0 +1,36 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMSAR Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMSAR.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid SAR controls from the published register. This CVE is used by @ism:SARIdentifier. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMSAR.xml + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.rnc new file mode 100644 index 0000000000..ef764a4722 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.rnc @@ -0,0 +1 @@ +CVEnumISMSCIControls.att = attribute CVEnumISMSCIControls { list { "HCS"?, "HCS-O"?, "HCS-P"?, "RSV"?, "SI"?, "SI-EU"?, "SI-G"?, "SI-NK"?, "TK"?, "TK-BLFH"?, "TK-IDIT"?, "TK-KAND"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.rng new file mode 100644 index 0000000000..42f9deb6ef --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.rng @@ -0,0 +1,43 @@ + + + + + + HCS + + + HCS-O + + + HCS-P + + + RSV + + + SI + + + SI-EU + + + SI-G + + + SI-NK + + + TK + + + TK-BLFH + + + TK-IDIT + + + TK-KAND + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd new file mode 100644 index 0000000000..c46fedbdf1 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/CVEGenerated/CVEnumISMSCIControls.xsd @@ -0,0 +1,97 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMSCIControls Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMSCIControls.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently valid SCI controls from the published register. This CVE is used by @ism:SCIcontrols. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMSCIControls.xml + + + + + + + HCS + + + + + HCS-O + + + + + HCS-P + + + + + RESERVE + + + + + SPECIAL INTELLIGENCE + + + + + ECRU + + + + + SI-GAMMA + + + + + NONBOOK + + + + + TALENT KEYHOLE + + + + + BLUEFISH + + + + + IDITAROD + + + + + KANDIK + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/IC-ISM.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/IC-ISM.xsd new file mode 100644 index 0000000000..af26f7cb2a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISM/IC-ISM.xsd @@ -0,0 +1,1596 @@ + + + + + + Intelligence Community + Technical Specification XML Data Encoding Specification for Information Security + Marking Metadata (ISM.XML) + + + Notices + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + Description + W3C XML Schema for the XML Data + Encoding Specification Intelligence Community Metadata Standard for Information + Security Marking (ISM.XML). + + + Introduction + This XML Schema file is one + component of the XML Data Encoding Specification (DES). Please see the document + titled + XML Data Encoding + Specification for Information Security Marking Metadata + for a complete description of the encoding as well as a list of all + components. + This schema and its components, + as well as other parts of the DES may be overridden for localized implementations. + Therefore, permission to use, copy, modify, and distribute this XML Schema and the + other parts of the DES for any purpose is hereby granted in perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or DES for any purpose. It is provided “as is” + without expressed or implied warranty. + If you modify this XML Schema in + any way, label your schema as a variant of ISM.XML. + Please direct all questions, bug + reports, and suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + + The IC ISM schema is not a + standalone construct; it should be imported into a parent XML schema. + Refer to the + XML Data Encoding + Specification for Information Security Marking Metadata + Data Encoding Specification (ISM.XML DES) for an explanation of the + relationships of the IC ISM attributes and the associated controlled + vocabularies. The Intelligence Community Markings System Register and Manual + provide additional business rules (that may be classified) not provided in this + schema or the associated documentation. + The IC ISM attributes are + intended to support all Intelligence Community Markings System Register and + Manual markings. However, the attribute values are NOT intended to be verbatim + pieces of portion marks and banners. Instead, the values should be interpreted + by XSLT stylesheets or other formatting specifications to produce the required + portion marks and banners. + The controlled vocabularies + containing the required values for populating the attributes are described in + the ISM.XML DES. + Attribute group + "SecurityAttributesGroup" should be referenced in the attribute definition list + of any element that REQUIRES security metadata. + Attribute group + "SecurityAttributesOptionGroup" may be referenced in the attribute definition + list of any element for which security metadata may be appropriate but is not + required (such as, an individual cell of a table). + Elements declared in this + specification are conveniences to developers of Schema. Their use is not + required but was determined to be helpful for many Schemas that would otherwise + have to declare these simple elements. Schema developers are free to implement + their own versions of these elements. + This file provides an + XML-based schema for specification of metadata for classification and controls + markings. The goal of the IC ISM XML Schema is to provide a common set of XML + attributes for implementing security-based metadata throughout the IC. The IC + ISM XML Schema provides markup for the tokens that are used to format the + Intelligence Community Markings System Register and Manual markings. + The IC ISM XML Schema may + be incorporated into organizational XML-based schemas by (a) declaring the IC + ISM namespace and (b) inserting an "import" statement: + <xsd:schema xmlns="...my namespace name..." targetNamespace="...my + namespace name..." xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:ism="urn:us:gov:ic:ism"> ... <xsd:import + namespace="urn:us:gov:ic:ism schemaLocation="IC-ISM.xsd" /> + + + + + Creators + Office of the Director of + National Intelligence Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Applicable atomic energy + information markings for a document or portion + This attribute is used at + both resource and portion levels. The permissible values for this simple type + are defined in the ISM Atomic Energy Markings CVE: + CVEnumISMAtomicEnergyMarkings.xml. + + + + + + + + The highest level of + classification applicable to the containing document or portion + The Classification element + is always used in conjunction with the Owner Producer element. Taken together, + the two elements specify the classification category (TS, S, C, R, or U) and the + type of classification (US, non-US, or Joint). This attribute is used to render + portion marks and security banners. + This attribute is used at + both resource and portion levels. The permissible values for this simple type + are defined in the ISM Classification All CVE: + CVEnumISMClassificationAll.xml + + + + + + + + One or more reason + indicators or explanatory text describing the basis for an original + classification decision + This attribute corresponds + to the “Reason” line of a document’s classification authority block, and it is + only used, and only allowed, when classification is the result of an original + classification decision. It is used primarily at the resource level. + + + + + + + + + + + + + The identity, by name or + personal identifier and position title, of the original classification authority + for a document + This attribute corresponds + to the “Classified By” line of a resource’s classification authority block. It + is used primarily at the resource level. + + + + + + + + + + + + + The reason that the + classification of the document is more restrictive than the simple roll-up of + the marked portions of the document + This attribute is an + indicator that there is not accidental over-classification of the document. + Users must exercise special care beyond that indicated by the portion marks when + using this information. + + + + + + + + + + + + + The ISM rule sets a document + complies with + This attribute is used at + the resource level. The permissible values for this simple type are defined in + the ISM Complies With CVE: CVEnumISMCompliesWith.xml + + + + + + + + The date when ISM metadata + was added or updated + This date is used by some + constraint rules to determine if ISM markings are valid. For example, this date + is used to check deprecation of some marks. + + + + + + + + + + + The specific date when the + resource is subject to automatic declassification procedures if not properly + exempted from automatic declassification + This attribute corresponds + to the “Declassify On” line of a resource’s classification authority block. It + is used primarily at the resource level. + + + + + + + + + + + A description of an event + upon which the information shall be subject to automatic declassification + procedures if not properly exempted from automatic declassification A + description of an event upon which the information shall be automatically + declassified if not properly exempted from automatic declassification. + This attribute corresponds + to the “Declassify On” line of a resource’s classification authority block. It + is used primarily at the resource level. + + + + + + + + + + + + + The exemption from automatic + declassification that is claimed for a document + This element is used in + conjunction with the Declassification Date or Declassification Event, and it + corresponds to the “Declassify On” line of a resource’s classification authority + block. It is used primarily at the resource level. The permissible values for + this attribute are defined in the ISM N25X CVE: CVEnumISMN25X.xml. + ISOO Guidance: + @declassException should be a SINGLE value giving the longest + protection. + + + + + + + + The identity, by name or + personal identifier, of the derivative classification authority + This attribute corresponds + to the “Classified By” line of a resource’s classification authority block, and + it is used primarily at the resource level. + + + + + + + + + + + + + A citation of the + authoritative source or sources of the classification markings used in a + derivative classification decision for a classified document + This attribute corresponds + to the “Derived From” line of a document’s classification authority block, and + it is used primarily at the resource level. + ISOO Guidance: The source of + derivative classification. (1) The derivative classifier shall concisely + identify the source document or the classification guide on the ‘‘Derived From’’ + line, including the agency and, where available, the office of origin, and the + date of the source or guide. An example might appear as: Derived From: Memo, + ‘‘Funding Problems,’’ October 20, 2008, Office of Administration, Department of + Good Works or Derived From: CG No. 1, Department of Good Works, dated October + 20, 2008 (i) When a document is classified derivatively on the basis of more + than one source document or classification guide, the ‘‘Derived From’’ line + shall appear as: Derived From: Multiple Sources (ii) The derivative classifier + shall include a listing of the source materials on, or attached to, each + derivatively classified document. + + + + + + + + + + + + + The version number of the + DES. + If there are multiple + @ism:DESVersion attributes specified in an instance document, the first one in + document order is the one that will apply to the entire document. + + + + + + + + The set of countries and/or + international organizations associated with a “Display Only To” + marking + The “Display Only To” + marking indicates that a document is authorized for foreign viewing by + appropriate affiliates of approved countries and/or international organizations + without providing the foreign recipient with a copy for retention in any medium + (physical or electronic). + This attribute is used at + both the resource and the portion levels. The permissible values for this + attribute are defined in the ISM Rel To CVE: CVEnumISMRelTo.xml. + + + + + + + + Applicable dissemination + control markings for a document or portion + This attribute is rendered + in portion marks and banners. The permissible values for this attribute are + defined in the ISM Dissemination CVE: CVEnumISMDissem.xml + + + + + + + + An indicator that an + element’s ISM attributes do not contribute to the “rollup” classification of the + document + @ism:excludeFromRollup is + most often used when providing the security attributes of a referenced or + linked-to resource. This attribute provides a mechanism to assert a + more-restrictive classification of a resource pointed to by a link or reference + without impacting the document’s resource markings. + + + + + + + + + + + Specific exemptions within + an ISM rule set that are claimed for a document + This attribute is used on + the resource node of a document in conjunction with @compliesWith. The + permissible values for this simple type are defined in the ISM Exempt From CVE: + CVEnumISMExemptFrom.xml + + + + + + + + The set of countries and/or + international organizations whose information is derivatively sourced in a + document when the source of the information is not concealed (also used for + cases when the source is unknown) + FGI markings protect + foreign-owned or foreign-produced information and are applied based on sharing + agreements or arrangements with the source country or organization. + This attribute is used at + both the resource and the portion levels. The permissible values for this + attribute are defined in the ISM FGI Open CVE: CVEnumISMFGIOpen.xml. Note: the + value “UNKNOWN” is allowed in cases where the source of the information is not + known. + + + + + + + + The set of countries and/or + international organizations whose information is derivatively sourced in a + document when the source of the information must be concealed + This attribute has specific + rules concerning its usage: + PROTECTED SPACES — Within + protected internal organizational spaces, this attribute may be used to maintain + a formal record of the foreign country or countries and/or registered + international organization(s) that are the non-disclosable owner(s) and/or + producer(s) of information which is categorized as foreign government + information according to Security Markings Program guidelines. If the data + element is employed in this manner, then additional measures must be taken prior + to dissemination of the resource to shared spaces so that any indications of the + non-disclosable owner(s) and/or producer(s) of information within the resource + are eliminated. In all cases, the corresponding portion marking or banner + marking should be compliant with Security Markings Program guidelines for FGI + when the source must be concealed. In other words, even if the data element is + being employed within protected internal organizational spaces to maintain a + formal record of the non-disclosable owner(s) and/or producer(s) within an XML + resource, if the resource is rendered for display within the protected internal + organizational spaces in any format by a stylesheet or as a result of any other + transformation process, then the non-disclosable owner(s) and/or producer(s) + should not be included in the corresponding portion marking or banner + marking. + SHARED SPACES — Within + shared spaces, the data element serves only to indicate the presence of FGI; in + this case, this element’s value will always be “FGI”. The data element may also + be employed in this manner within protected internal organizational + spaces. + Permissible values for this + attribute are defined in the ISM FGI Protected CVE: CVEnumISMFGIProtected.xml. + Note: the value “FGI” is permitted in the case outlined for “shared + spaces”. + + + + + + + + When true, indicates the ISM + markings specified are estimated (e.g. system high). + + + + + + + + The version number of the + ISMCAT CES used in the document + If there are multiple + @ISMCATCESVersion attributes specified in an instance document, the first one in + document order is the one that will apply to the entire document. + + + + + + + + The group of Information + Security Marking attributes for use on a notice element without + externalNotice + + + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element adding optional + externalNotice + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element adding required + externalNotice=true + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance + document. + + + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance + document. + + + + + + + + + + + + + An attribute group to be + used on the root node of a schema implementing ISM. ISM being entirely + attributes based groups such as this are the only way to specify required + use. + + + + + + + + + + An attribute group to be + used on the root node of a schema implementing ISM. ISM being entirely + attributes based groups such as this are the only way to specify required use. + This group has all the attributes as optional. This group could be used in a + schema where many element may be the root node. When the element is acting as + the root element it should have attributes used similar to + ISMRootNodeAttributeGroup. + + + + + + + + + + A long string, less than or equal to 32000 characters. + + + + + + + + + + + + + + + + + + + When true, an indicator that there is no classification + by compilation across any combination of portions extracted from the document. + + + + + + + + One or more indicators of an + expansion or limitation on the distribution of a document or portion originating + from non-intelligence components + This attribute is used at + both the resource and the portion levels, and it is rendered in portion marks + and security banners. The permissible values for this attribute are defined in + the ISM Non-IC CVE: CVEnumISMNonIC.xml + + + + + + + + One or more indicators of an + expansion or limitation on the distribution of a document or portion originating + from non-US components (foreign government or international + organization). + This attribute is used at + both the resource and the portion levels, and it is rendered in portion marks + and security banners. The permissible values for this attribute are defined in + the ISM Non-US Controls CVE: CVEnumISMNonUSControls.xml + + + + + + + + Base type for Notices. Does + not include any attributes. + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText + + + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText for use when the notice refers to something + external. + + + + + + + + + + + + + A single Notice that may + consist of 1 or more NoticeText + + + + + + + + A single Notice that may + consist of 1 or more NoticeText for use when the notice refers to something + external. + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + attributes 'classification' and 'ownerProducer' is required. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + Security on the notice is optional. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + attributes 'classification' and 'ownerProducer' is required and the notice is + for something external to the object. + + + + + + + + + + The group of Information + Security Marking attributes for use on a notice element in which the use of + Security on the notice is optional and the notice is for something external to + the object. + + + + + + + + + + + A date associated with a + notice (for example, the DoD Distribution notice date) + + + + + + + + + + + + + A list of Notices + + + + + + + + + + + + + + A list of Notices + + + + + + + + + + + + + A reason associated with a + notice (for example, the DoD Distribution reason) + + + + + + + + + + + + + The actual text of a + notice. + + + + + + + + + + + + + + + An indicator that the + containing element contains a security-related notice. This attribute is used to + categorize which of the required notices is specified in the element. These + categories include those described in the Intelligence Community Markings System + Register and Manual, as well as additional well-defined and formally recognized + security notice types described in other directives, such as US-Person and DoD + Distribution. The element could contain any structure that the implementing + schema defines, and rendering details are relegated to the implementing schema. + The permissible values for this attribute are defined in the ISM Notice CVE: + CVEnumISMNotice.xml + + + + + + + + An indicator that an element + contains a security-related notice for information NOT contained in + document + This flag allows for a + notice to exist in a document without the data that would normally require the + notice. For example, a document could contain a FISA notice without FISA data + present. Source citations are a common use case for this attribute. + + + + + + + + + + + The set of national + governments and/or international organizations that have purview over the + containing classification marking + This element is always used + in conjunction with the Classification element. Taken together, the two elements + specify the classification category (TS, S, C, R, or U) and the type of + classification (US, non-US, or Joint). The permissable values for this attribute + are defined in the ISMCAT Owner Producer CVE: + CVEnumISMCATOwnerProducer.xml. + + + + + + + + When true, an indicator that + entities in the @ism:ownerProducer attribute are JOINT owners of the + data + + + + + + + + An attribute group to be + used on the element that represents an entity that can be designated as a + point-of-contact. This node may be a single person or an organization. + + + + + + + + + Indicates that the element + specifies a point-of-contact (POC) and the methods with which to contact that + individual. As certain POCs are required for different reasons (ICD-710 + compliance, DoD Distribution statements, etc), the values for this attribute + specify the reason(s) why the POC is provided. + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + country or countries and/or international organization(s) to which classified + information may be released based on the determination of an originator in + accordance with established foreign disclosure procedures. This element is used + in conjunction with the Dissemination Controls element. It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMRelTo.xml + + + + + + + + This attribute is used to + designate which element has the ISM attributes representing the classification + for the entire resource. Every document must have at least one element with this + indicator as true. It should be rare that a document has more than one. Mainly + this would occur in some sort of aggregation schema. In the aggregation case, + the first @resourceElement attribute in XML document order is the one used for + all constraint rules. + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. Implementing Schemas might use this on the + Root node or any other node. + + + + + + + + + + + An attribute group to be + used on the element that represents the resource node of an instance document. + This node's ISM attributes would be used to generate banner marks and the E.O. + 13526 classification authority block. Implementing Schemas might use this on the + Root node or any other node. This group has all the attributes as optional. It + could be used in a schema where many nodes may be the resource element. When the + element is acting as the resource element it should have attributes used similar + to ResourceNodeAttributeGroup. + + + + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying the + defense or intelligence programs for which special access is required. It is + manifested in portion marks and security banners. PERMISSIBLE VALUES The + permissible values for this attribute are defined in the Controlled Value + Enumeration: CVEnumISMSAR.xml + + + + + + + + This attribute is used at + both the resource and the portion levels. One or more indicators identifying + sensitive compartmented information control system(s). It is manifested in + portion marks and security banners. PERMISSIBLE VALUES The permissible values + for this attribute are defined in the Controlled Value Enumeration: + CVEnumISMSCIControls.xml + + + + + + + + The group of Information + Security Marking attributes in which the use of attributes 'classification' and + 'ownerProducer' is required. + + + This group is to be + contrasted with group 'SecurityAttributesOptionGroup' in which use of those + attributes is optional. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The group of Information + Security Marking attributes in which the use of attributes 'classification' and + 'ownerProducer' is optional. This group is to be contrasted with group + 'SecurityAttributesGroup' in which use of these attributes is + required. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A short string, less than or equal to 256 characters. + + + + + + + + + + + + + + + + + + + A notice that is of a + category that is not described in the Intelligence Community Markings System + Register and Manual and/or is not sufficiently defined to be represented in the + Controlled Value Enumeration CVEnumISMNotice.xml. This attribute can be used by + specifications that import ISM to represent a wider variety of security-related + notices. + + + + + + + + + + + + + + Include all of the generated CVE + types applicable. + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 2016-SEP + 2016-02-17 + ODNI/IC CIO/IAD + + The schema change logs will no longer be maintained as of the 2016-SEP release. + The existing change logs will only serve as legacy information. + For changes to schema as of and after 2016-SEP, reference the change history in the DES. + + + + 12 + 2013-05-20 + ODNI/OCIO/ME/D&I + + + Decoupled + the specification from the country code CVEs. Created a new + ISMCAT specification that can rev independently of + ISM. + + + + + 11 + 2013-02-15 + ODNI/OCIO/ME/D&I + + + Added joint + attribute for signifying that multiple values in the + ownerProducer attribute are both producers of the + portion/document. + Added + attribute for joint ownership. [artf13902]. + + + + + 9 + 2012-3-19 + ODNI/OCIO/ME/D&I + + + Changed + DESVersion attribute from xsd:int to ShortStringType. + Changed + declaration of NoticeText to be simple content. + [artf12153]. + + + + + 8 + 2011-12-22 + Sun, ODNI/OCIO/ICEA + + + Added + unique namespaces to generated CVE schema fragments. + Removed + CVEGenerated schema import from and moved schema fragment + imports directly to the base ISM schema. + + + + + 7 + 2011-08-10 + Colbert, ODNI/OCIO/ICEA + + + Added a + complex type for NoticeList + + + + + 7 + 2011-07-14 + + + Colbert, + ODNI/OCIO/ICEA + Gilsenan, + ODNI/OCIO/ICEA + + + + + Renamed + @ism:notice to @ism:noticeType + Removed + @ism:ORCONPOC and @ism:noticePOC. They're replaced with the new + @ism:pocType attribute, which indicates that an element + specifies a point-of-contact's name and contact + method. + + + + + 7 + 2011-07-07 + + + Colbert, + ODNI/OCIO/ICEA + Gilsenan, + ODNI/OCIO/ICEA + + + + + Added + version information to the header + Removed + ACCM attribute + + + + + 7 + 2011-06-10 + Hansen, ODNI/OCIO/ICEA + + + Removed + @fixed="true" from the resourceElement attribute definition in + the ISMResourceNodeAttributeGroup and + ISMResourceNodeAttributeOptionGroup + + + + + 7 + 2011-05-11 + Colbert, ODNI/OCIO/ICEA + + + Added + ORCONPOC attribute and POCAttributeGroup + + + + + 7 + 2011-04-26 + Colbert, ODNI/OCIO/ICEA + + + Added + String types LongStringType, ShortStringType, + LongStringWithSecurityType, and + ShortStringWithSecurityType + Added + attribute unregisteredNoticeType and included it in + ISMNoticeAttributeGroup + + + + + 7 + 2011-04-22 + Colbert, ODNI/OCIO/ICEA + + + Explicitly + declared minOccurs and maxOccurs where appropriate. + + + + + 7 + 2011-04-19 + Hodges, ODNI/OCIO/ICEA + + + (CR 2010-4) + Add ISMNoticeAttributeGroup to hold the Notice specific + attributes and changed the NoticeAttribute groups to reference + it. ISMResourceAttributeGroup also added and Resource specific + attributes have been removed from the ResourceAttribute groups + and the new group added. + + + + + 7 + 2011-04-15 + Colbert, ODNI/OCIO/ICEA + + + Add + elements NoticeList, Notice, and NoticeText + + + + + 6 + 2011-01-27 + ODNI/OCIO/ICEA + + + Add + ACCM + + + + + 5 + 2010-09-25 + ODNI/OCIO/ICEA + + + Add + atomicEnergyMarkings + Remove + typeOfExemptedSource and dateOfExemptedSource + Add + ResourceNodeAttributeOptionGroup + Add + ISMRootNodeAttributeOptionGroup + + + + + 4 + 2010-06-01 + ODNI OCIO ICIS + + + Add DoD + Distro statements + Add NATO + refactor + Add Use of + Generated CVE schema types + + + + + 3 + 2010-01-22 + ODNI OCIO ICIS + + + (CR + 2010-02) Add notice attribute, NoticeAttributesGroup and + NoticeAttributesOptionGroup + Final + review before signature 2010-06-06 + Remove comment about LES not being in the Register + since it is now in the register. + Correct NoticeAttributesOptionGroup to have + SecurityAttributesOptionGroup so that NoteInline in PUBS + works correctly. + + + + + + + 2 + 2009-12-01 + ODNI OCIO ICIS + + + (CR + 2009-09) Added "compilationReason" to allow capturing + information about the reason that the document or portion bears + a more restrictive classification than the data would appear to + support. + (CR + 2009-07) Point to CVE files for enumeration values. + (CR + 2009-22) Change declassException and typeOfExemptedSource to + NMTOKEN. + (CR + 2009-16) Add ability to specify DES Version. + (CR + 2009-05) Add createDate, excludeFromRollup, resourceElement to + allow ISM rules to be independent of implementing + schema. + (CR + 2009-05) Add ISMRootNodeAttributeGroup and + ResourceNodeAttributeGroup. + + + + + 2.1 + 2008-08-19 + ODNI OCIO ICIS + Updated to support IC Standard for Information Security Marking + Metadata (2007-500-2) + Added + "DerivativelyClassifiedBy" to allow capturing information about + a derivative classifier separate from an original + classifier + + + + + 2.0 + 2004-04-30 + IC MWG + Updated to support changes to the CAPCO Register and + Implementation Manual. + Added + "ownerProducer" as a required attribute for entity + "SecurityAttributes" and as an optional attribute for entity + "SecurityAttributesOption." Purpose is to provide a single + method for specification of US, non-US, and joint + classifications. + Changed the + enumerated list that is the declared value of attribute + "classification" in order to accommodate non-US + classifications. + Added + optional attribute "SARIdentifier" as a separate container for + DoD/DoE special-access-required nicknames, codewords, or + trigraph/ digraph to support elevation of SAR to the same level + as SCI controls. + Added + optional attributes "classifiedBy" and "classificationReason" to + support generation of EO 12958 classification/declassification + blocks. + Changed the + declared value of "derivedFrom" to CDATA to allow the titles and + dates of source documents or classification guides to be + specified. + Replaced + the single attribute "declassification" with distinct attri- + butes for date-determined and event-determined declassification + and for the 25X declassification exceptions. + Added + attributes "typeOfExemptedSource" and "dateOfExemptedSource" for + use in specifying that one or more sources was marked OADR, X1 + through X8, or X-Foreign Relations. + Added + attribute "declassManualReview" for use in forcing "MR" to + appear in header and footer banners (regardless of whether any + caveats in the portions would necessitate manual + review). + + + + + 1.0 + 2002-07-05 + IC MWG + Released as a registered, production XML entity set + + + + + + + + Formal CVE Change + List + + Change History + + + Version + Date + By + Description + + + + + 7 + 2011-07-18 + Colbert, ODNI/OCIO/ICEA + + + Added + pocType + + + + + 7 + 2011-01-27 + ODNI/OCIO/ICEA + + + Remove ACCM + as attribute and move its values to nonICmarkings + + + + + 6 + 2011-01-27 + ODNI/OCIO/ICEA + + + Add + ACCM + + + + + 5 + 2010-09-25 + ODNI/OCIO/ICEA + + + Add + atomicEnergyMarkings + Remove + typeOfExemptedSource + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rnc new file mode 100644 index 0000000000..60bc85fe55 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rnc @@ -0,0 +1 @@ +CVEnumISMCATFGIOpen.att = attribute CVEnumISMCATFGIOpen { list { "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX1"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rng new file mode 100644 index 0000000000..8f1e7d09c2 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.rng @@ -0,0 +1,1000 @@ + + + + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX1 + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd new file mode 100644 index 0000000000..80f841305c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIOpen.xsd @@ -0,0 +1,1702 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATFGIOpen Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATFGIOpen.xml CVE it is based on, instead of here. + + + + + + + + (U) GENC trigraphs except USA in alphabetical order by + trigraph, followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by + tetragraph. UNKNOWN removed since GENC has it as AX1. This CVE is used by @ism:FGIsourceOpen. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATFGIOpen.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Unknown + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rnc new file mode 100644 index 0000000000..8ab655fd85 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rnc @@ -0,0 +1 @@ +CVEnumISMCATFGIProtected.att = attribute CVEnumISMCATFGIProtected { list { "FGI"?, "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rng new file mode 100644 index 0000000000..89d252e1db --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.rng @@ -0,0 +1,1000 @@ + + + + + + FGI + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd new file mode 100644 index 0000000000..e63199ac8a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATFGIProtected.xsd @@ -0,0 +1,1702 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATFGIProtected Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATFGIProtected.xml CVE it is based on, instead of here. + + + + + + + + (U) FGI, followed by GENC trigraphs except USA in + alphabetical order by trigraph, followed by IC Markings System Register and Manual Coalition tetragraphs in + alphabetical order by tetragraph. This CVE is used by @ism:FGIsourceProtected. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATFGIProtected.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Foreign Government Information + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rnc new file mode 100644 index 0000000000..d3bee95262 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rnc @@ -0,0 +1 @@ +CVEnumISMCATOwnerProducer.att = attribute CVEnumISMCATOwnerProducer { list { "FGI"?, "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "USA"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rng new file mode 100644 index 0000000000..2c387b9454 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.rng @@ -0,0 +1,1003 @@ + + + + + + FGI + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + USA + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd new file mode 100644 index 0000000000..1e6cc1a8c6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATOwnerProducer.xsd @@ -0,0 +1,1708 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATOwnerProducer Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATOwnerProducer.xml CVE it is based on, instead of here. + + + + + + + + (U) + FGI, followed by GENC trigraphs in alphabetical order by trigraph, + followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. This CVE is used by @ism:ownerProducer. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATOwnerProducer.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + Foreign Government Information + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + United States of America + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rnc new file mode 100644 index 0000000000..e135b64f6e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rnc @@ -0,0 +1 @@ +CVEnumISMCATRelTo.att = attribute CVEnumISMCATRelTo { list { "USA"?, "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rng new file mode 100644 index 0000000000..99191df62d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.rng @@ -0,0 +1,1000 @@ + + + + + + USA + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd new file mode 100644 index 0000000000..b934353aab --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATRelTo.xsd @@ -0,0 +1,1703 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATRelTo Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATRelTo.xml CVE it is based on, instead of here. + + + + + + + + (U) + USA, followed by GENC trigraphs except USA in alphabetical order by trigraph, + followed by IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. This CVE is used by @ism:releasableTo and @ism:displayOnlyTo. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATRelTo.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + United States + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rnc new file mode 100644 index 0000000000..eed948a42e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rnc @@ -0,0 +1 @@ +CVEnumISMCATResponsibleEntity.att = attribute CVEnumISMCATResponsibleEntity { list { "ABW"?, "AFG"?, "AGO"?, "AIA"?, "ALB"?, "AND"?, "ARE"?, "ARG"?, "ARM"?, "ASM"?, "ATA"?, "ATF"?, "ATG"?, "AUS"?, "AUT"?, "AX2"?, "AX3"?, "AZE"?, "BDI"?, "BEL"?, "BEN"?, "BES"?, "BFA"?, "BGD"?, "BGR"?, "BHR"?, "BHS"?, "BIH"?, "BLM"?, "BLR"?, "BLZ"?, "BMU"?, "BOL"?, "BRA"?, "BRB"?, "BRN"?, "BTN"?, "BVT"?, "BWA"?, "CAF"?, "CAN"?, "CCK"?, "CHE"?, "CHL"?, "CHN"?, "CIV"?, "CMR"?, "COD"?, "COG"?, "COK"?, "COL"?, "COM"?, "CPT"?, "CPV"?, "CRI"?, "CUB"?, "CUW"?, "CXR"?, "CYM"?, "CYP"?, "CZE"?, "DEU"?, "DGA"?, "DJI"?, "DMA"?, "DNK"?, "DOM"?, "DZA"?, "ECU"?, "EGY"?, "ERI"?, "ESH"?, "ESP"?, "EST"?, "ETH"?, "FIN"?, "FJI"?, "FLK"?, "FRA"?, "FRO"?, "FSM"?, "GAB"?, "GBR"?, "GEO"?, "GGY"?, "GHA"?, "GIB"?, "GIN"?, "GLP"?, "GMB"?, "GNB"?, "GNQ"?, "GRC"?, "GRD"?, "GRL"?, "GTM"?, "GUF"?, "GUM"?, "GUY"?, "HKG"?, "HMD"?, "HND"?, "HRV"?, "HTI"?, "HUN"?, "IDN"?, "IMN"?, "IND"?, "IOT"?, "IRL"?, "IRN"?, "IRQ"?, "ISL"?, "ISR"?, "ITA"?, "JAM"?, "JEY"?, "JOR"?, "JPN"?, "KAZ"?, "KEN"?, "KGZ"?, "KHM"?, "KIR"?, "KNA"?, "KOR"?, "KWT"?, "LAO"?, "LBN"?, "LBR"?, "LBY"?, "LCA"?, "LIE"?, "LKA"?, "LSO"?, "LTU"?, "LUX"?, "LVA"?, "MAC"?, "MAF"?, "MAR"?, "MCO"?, "MDA"?, "MDG"?, "MDV"?, "MEX"?, "MHL"?, "MKD"?, "MLI"?, "MLT"?, "MMR"?, "MNE"?, "MNG"?, "MNP"?, "MOZ"?, "MRT"?, "MSR"?, "MTQ"?, "MUS"?, "MWI"?, "MYS"?, "MYT"?, "NAM"?, "NCL"?, "NER"?, "NFK"?, "NGA"?, "NIC"?, "NIU"?, "NLD"?, "NOR"?, "NPL"?, "NRU"?, "NZL"?, "OMN"?, "PAK"?, "PAN"?, "PCN"?, "PER"?, "PHL"?, "PLW"?, "PNG"?, "POL"?, "PRI"?, "PRK"?, "PRT"?, "PRY"?, "PYF"?, "QAT"?, "REU"?, "ROU"?, "RUS"?, "RWA"?, "SAU"?, "SDN"?, "SEN"?, "SGP"?, "SGS"?, "SHN"?, "SLB"?, "SLE"?, "SLV"?, "SMR"?, "SOM"?, "SPM"?, "SRB"?, "SSD"?, "STP"?, "SUR"?, "SVK"?, "SVN"?, "SWE"?, "SWZ"?, "SXM"?, "SYC"?, "SYR"?, "TCA"?, "TCD"?, "TGO"?, "THA"?, "TJK"?, "TKL"?, "TKM"?, "TLS"?, "TON"?, "TTO"?, "TUN"?, "TUR"?, "TUV"?, "TWN"?, "TZA"?, "UGA"?, "UKR"?, "URY"?, "USA"?, "UZB"?, "VAT"?, "VCT"?, "VEN"?, "VGB"?, "VIR"?, "VNM"?, "VUT"?, "WLF"?, "WSM"?, "XAC"?, "XAZ"?, "XBI"?, "XBK"?, "XCR"?, "XCS"?, "XCY"?, "XEU"?, "XGL"?, "XGZ"?, "XHO"?, "XJA"?, "XJM"?, "XJN"?, "XJV"?, "XKM"?, "XKN"?, "XKR"?, "XKS"?, "XMW"?, "XNV"?, "XPL"?, "XPR"?, "XQZ"?, "XSP"?, "XSV"?, "XTR"?, "XWB"?, "XWK"?, "XXD"?, "YEM"?, "ZAF"?, "ZMB"?, "ZWE"?, "NATO"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rng new file mode 100644 index 0000000000..439b16d63d --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.rng @@ -0,0 +1,847 @@ + + + + + + ABW + + + AFG + + + AGO + + + AIA + + + ALB + + + AND + + + ARE + + + ARG + + + ARM + + + ASM + + + ATA + + + ATF + + + ATG + + + AUS + + + AUT + + + AX2 + + + AX3 + + + AZE + + + BDI + + + BEL + + + BEN + + + BES + + + BFA + + + BGD + + + BGR + + + BHR + + + BHS + + + BIH + + + BLM + + + BLR + + + BLZ + + + BMU + + + BOL + + + BRA + + + BRB + + + BRN + + + BTN + + + BVT + + + BWA + + + CAF + + + CAN + + + CCK + + + CHE + + + CHL + + + CHN + + + CIV + + + CMR + + + COD + + + COG + + + COK + + + COL + + + COM + + + CPT + + + CPV + + + CRI + + + CUB + + + CUW + + + CXR + + + CYM + + + CYP + + + CZE + + + DEU + + + DGA + + + DJI + + + DMA + + + DNK + + + DOM + + + DZA + + + ECU + + + EGY + + + ERI + + + ESH + + + ESP + + + EST + + + ETH + + + FIN + + + FJI + + + FLK + + + FRA + + + FRO + + + FSM + + + GAB + + + GBR + + + GEO + + + GGY + + + GHA + + + GIB + + + GIN + + + GLP + + + GMB + + + GNB + + + GNQ + + + GRC + + + GRD + + + GRL + + + GTM + + + GUF + + + GUM + + + GUY + + + HKG + + + HMD + + + HND + + + HRV + + + HTI + + + HUN + + + IDN + + + IMN + + + IND + + + IOT + + + IRL + + + IRN + + + IRQ + + + ISL + + + ISR + + + ITA + + + JAM + + + JEY + + + JOR + + + JPN + + + KAZ + + + KEN + + + KGZ + + + KHM + + + KIR + + + KNA + + + KOR + + + KWT + + + LAO + + + LBN + + + LBR + + + LBY + + + LCA + + + LIE + + + LKA + + + LSO + + + LTU + + + LUX + + + LVA + + + MAC + + + MAF + + + MAR + + + MCO + + + MDA + + + MDG + + + MDV + + + MEX + + + MHL + + + MKD + + + MLI + + + MLT + + + MMR + + + MNE + + + MNG + + + MNP + + + MOZ + + + MRT + + + MSR + + + MTQ + + + MUS + + + MWI + + + MYS + + + MYT + + + NAM + + + NCL + + + NER + + + NFK + + + NGA + + + NIC + + + NIU + + + NLD + + + NOR + + + NPL + + + NRU + + + NZL + + + OMN + + + PAK + + + PAN + + + PCN + + + PER + + + PHL + + + PLW + + + PNG + + + POL + + + PRI + + + PRK + + + PRT + + + PRY + + + PYF + + + QAT + + + REU + + + ROU + + + RUS + + + RWA + + + SAU + + + SDN + + + SEN + + + SGP + + + SGS + + + SHN + + + SLB + + + SLE + + + SLV + + + SMR + + + SOM + + + SPM + + + SRB + + + SSD + + + STP + + + SUR + + + SVK + + + SVN + + + SWE + + + SWZ + + + SXM + + + SYC + + + SYR + + + TCA + + + TCD + + + TGO + + + THA + + + TJK + + + TKL + + + TKM + + + TLS + + + TON + + + TTO + + + TUN + + + TUR + + + TUV + + + TWN + + + TZA + + + UGA + + + UKR + + + URY + + + USA + + + UZB + + + VAT + + + VCT + + + VEN + + + VGB + + + VIR + + + VNM + + + VUT + + + WLF + + + WSM + + + XAC + + + XAZ + + + XBI + + + XBK + + + XCR + + + XCS + + + XCY + + + XEU + + + XGL + + + XGZ + + + XHO + + + XJA + + + XJM + + + XJN + + + XJV + + + XKM + + + XKN + + + XKR + + + XKS + + + XMW + + + XNV + + + XPL + + + XPR + + + XQZ + + + XSP + + + XSV + + + XTR + + + XWB + + + XWK + + + XXD + + + YEM + + + ZAF + + + ZMB + + + ZWE + + + NATO + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.xsd new file mode 100644 index 0000000000..b94ac253d3 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATResponsibleEntity.xsd @@ -0,0 +1,1439 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATResponsibleEntity Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATResponsibleEntity.xml CVE it is based on, instead of here. + + + + + + + + (U) + GENC trigraphs in alphabetical order by trigraph, plus the NATO tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATResponsibleEntity.xml + + + + + + + Aruba + + + + + Islamic Republic of Afghanistan + + + + + Republic of Angola + + + + + Anguilla + + + + + Republic of Albania + + + + + Principality of Andorra + + + + + United Arab Emirates + + + + + Argentine Republic + + + + + Republic of Armenia + + + + + Territory of American Samoa + + + + + Antarctica + + + + + French Southern and Antarctic Lands + + + + + Antigua and Barbuda + + + + + Commonwealth of Australia + + + + + Republic of Austria + + + + + Guantanamo Bay Naval Base + + + + + Entity 6 + + + + + Republic of Azerbaijan + + + + + Republic of Burundi + + + + + Kingdom of Belgium + + + + + Republic of Benin + + + + + Bonaire, Sint Eustatius, and Saba + + + + + Burkina Faso + + + + + People’s Republic of Bangladesh + + + + + Republic of Bulgaria + + + + + Kingdom of Bahrain + + + + + Commonwealth of The Bahamas + + + + + Bosnia and Herzegovina + + + + + Saint Barthelemy + + + + + Republic of Belarus + + + + + Belize + + + + + Bermuda + + + + + Plurinational State of Bolivia + + + + + Federative Republic of Brazil + + + + + Barbados + + + + + Brunei Darussalam + + + + + Kingdom of Bhutan + + + + + Bouvet Island + + + + + Republic of Botswana + + + + + Central African Republic + + + + + Canada + + + + + Territory of Cocos (Keeling) Islands + + + + + Swiss Confederation + + + + + Republic of Chile + + + + + People’s Republic of China + + + + + Republic of Côte d’Ivoire + + + + + Republic of Cameroon + + + + + Democratic Republic of the Congo + + + + + Republic of the Congo + + + + + Cook Islands + + + + + Republic of Colombia + + + + + Union of the Comoros + + + + + Clipperton Island + + + + + Republic of Cabo Verde + + + + + Republic of Costa Rica + + + + + Republic of Cuba + + + + + Curaçao + + + + + Territory of Christmas Island + + + + + Cayman Islands + + + + + Republic of Cyprus + + + + + Czech Republic + + + + + Federal Republic of Germany + + + + + Diego Garcia + + + + + Republic of Djibouti + + + + + Commonwealth of Dominica + + + + + Kingdom of Denmark + + + + + Dominican Republic + + + + + People’s Democratic Republic of Algeria + + + + + Republic of Ecuador + + + + + Arab Republic of Egypt + + + + + State of Eritrea + + + + + Western Sahara + + + + + Kingdom of Spain + + + + + Republic of Estonia + + + + + Federal Democratic Republic of Ethiopia + + + + + Republic of Finland + + + + + Republic of Fiji + + + + + Falkland Islands (Islas Malvinas) + + + + + French Republic + + + + + Faroe Islands + + + + + Federated States of Micronesia + + + + + Gabonese Republic + + + + + United Kingdom of Great Britain and Northern Ireland + + + + + Georgia + + + + + Bailiwick of Guernsey + + + + + Republic of Ghana + + + + + Gibraltar + + + + + Republic of Guinea + + + + + Region of Guadeloupe + + + + + Republic of The Gambia + + + + + Republic of Guinea-Bissau + + + + + Republic of Equatorial Guinea + + + + + Hellenic Republic + + + + + Grenada + + + + + Greenland + + + + + Republic of Guatemala + + + + + Territorial Collectivity of Guiana + + + + + Territory of Guam + + + + + Co-operative Republic of Guyana + + + + + Hong Kong Special Administrative Region + + + + + Territory of Heard Island and McDonald Islands + + + + + Republic of Honduras + + + + + Republic of Croatia + + + + + Republic of Haiti + + + + + Hungary + + + + + Republic of Indonesia + + + + + Isle of Man + + + + + Republic of India + + + + + British Indian Ocean Territory + + + + + Ireland + + + + + Islamic Republic of Iran + + + + + Republic of Iraq + + + + + Republic of Iceland + + + + + State of Israel + + + + + Italian Republic + + + + + Jamaica + + + + + Bailiwick of Jersey + + + + + Hashemite Kingdom of Jordan + + + + + Japan + + + + + Republic of Kazakhstan + + + + + Republic of Kenya + + + + + Kyrgyz Republic + + + + + Kingdom of Cambodia + + + + + Republic of Kiribati + + + + + Federation of Saint Kitts and Nevis + + + + + Republic of Korea + + + + + State of Kuwait + + + + + Lao People’s Democratic Republic + + + + + Lebanese Republic + + + + + Republic of Liberia + + + + + Libya + + + + + Saint Lucia + + + + + Principality of Liechtenstein + + + + + Democratic Socialist Republic of Sri Lanka + + + + + Kingdom of Lesotho + + + + + Republic of Lithuania + + + + + Grand Duchy of Luxembourg + + + + + Republic of Latvia + + + + + Macau Special Administrative Region + + + + + Saint Martin + + + + + Kingdom of Morocco + + + + + Principality of Monaco + + + + + Republic of Moldova + + + + + Republic of Madagascar + + + + + Republic of Maldives + + + + + United Mexican States + + + + + Republic of the Marshall Islands + + + + + Republic of Macedonia + + + + + Republic of Mali + + + + + Republic of Malta + + + + + Union of Burma + + + + + Montenegro + + + + + Mongolia + + + + + Commonwealth of the Northern Mariana Islands + + + + + Republic of Mozambique + + + + + Islamic Republic of Mauritania + + + + + Montserrat + + + + + Territorial Collectivity of Martinique + + + + + Republic of Mauritius + + + + + Republic of Malawi + + + + + Malaysia + + + + + Department of Mayotte + + + + + Republic of Namibia + + + + + New Caledonia + + + + + Republic of Niger + + + + + Territory of Norfolk Island + + + + + Federal Republic of Nigeria + + + + + Republic of Nicaragua + + + + + Niue + + + + + Kingdom of the Netherlands + + + + + Kingdom of Norway + + + + + Federal Democratic Republic of Nepal + + + + + Republic of Nauru + + + + + New Zealand + + + + + Sultanate of Oman + + + + + Islamic Republic of Pakistan + + + + + Republic of Panama + + + + + Pitcairn, Henderson, Ducie, and Oeno Islands + + + + + Republic of Peru + + + + + Republic of the Philippines + + + + + Republic of Palau + + + + + Independent State of Papua New Guinea + + + + + Republic of Poland + + + + + Commonwealth of Puerto Rico + + + + + Democratic People’s Republic of Korea + + + + + Portuguese Republic + + + + + Republic of Paraguay + + + + + French Polynesia + + + + + State of Qatar + + + + + Region of Reunion + + + + + Romania + + + + + Russian Federation + + + + + Republic of Rwanda + + + + + Kingdom of Saudi Arabia + + + + + Republic of the Sudan + + + + + Republic of Senegal + + + + + Republic of Singapore + + + + + South Georgia and the South Sandwich Islands + + + + + Saint Helena, Ascension, and Tristan da Cunha + + + + + Solomon Islands + + + + + Republic of Sierra Leone + + + + + Republic of El Salvador + + + + + Republic of San Marino + + + + + Federal Republic of Somalia + + + + + Territorial Collectivity of Saint Pierre and Miquelon + + + + + Republic of Serbia + + + + + Republic of South Sudan + + + + + Democratic Republic of Sao Tome and Principe + + + + + Republic of Suriname + + + + + Slovak Republic + + + + + Republic of Slovenia + + + + + Kingdom of Sweden + + + + + Kingdom of Swaziland + + + + + Sint Maarten + + + + + Republic of Seychelles + + + + + Syrian Arab Republic + + + + + Turks and Caicos Islands + + + + + Republic of Chad + + + + + Togolese Republic + + + + + Kingdom of Thailand + + + + + Republic of Tajikistan + + + + + Tokelau + + + + + Turkmenistan + + + + + Democratic Republic of Timor-Leste + + + + + Kingdom of Tonga + + + + + Republic of Trinidad and Tobago + + + + + Republic of Tunisia + + + + + Republic of Turkey + + + + + Tuvalu + + + + + Taiwan + + + + + United Republic of Tanzania + + + + + Republic of Uganda + + + + + Ukraine + + + + + Oriental Republic of Uruguay + + + + + United States of America + + + + + Republic of Uzbekistan + + + + + State of the Vatican City + + + + + Saint Vincent and the Grenadines + + + + + Bolivarian Republic of Venezuela + + + + + Virgin Islands, British + + + + + United States Virgin Islands + + + + + Socialist Republic of Vietnam + + + + + Republic of Vanuatu + + + + + Wallis and Futuna + + + + + Independent State of Samoa + + + + + Territory of Ashmore and Cartier Islands + + + + + Entity 1 + + + + + Bassas da India + + + + + Baker Island + + + + + Entity 2 + + + + + Coral Sea Islands Territory + + + + + Entity 3 + + + + + Europa Island + + + + + Glorioso Islands + + + + + Gaza Strip + + + + + Howland Island + + + + + Johnston Atoll + + + + + Jan Mayen + + + + + Juan de Nova Island + + + + + Jarvis Island + + + + + Entity 4 + + + + + Entity 5 + + + + + Kingman Reef + + + + + Republic of Kosovo + + + + + Midway Islands + + + + + Navassa Island + + + + + Palmyra Atoll + + + + + Paracel Islands + + + + + Akrotiri + + + + + Spratly Islands + + + + + Svalbard + + + + + Tromelin Island + + + + + West Bank + + + + + Wake Island + + + + + Dhekelia + + + + + Republic of Yemen + + + + + Republic of South Africa + + + + + Republic of Zambia + + + + + Republic of Zimbabwe + + + + + North Atlantic Treaty Organization + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rnc b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rnc new file mode 100644 index 0000000000..ec4f2038b0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rnc @@ -0,0 +1 @@ +CVEnumISMCATTetragraph.att = attribute CVEnumISMCATTetragraph { list { "ACGU"?, "AOSC"?, "APFS"?, "ASEA"?, "AUSTRALIA_GROUP"?, "BHTF"?, "BWCS"?, "CFCK"?, "CFOD"?, "CFUP"?, "CLFC"?, "CMFC"?, "CMFP"?, "CPMT"?, "CTOC"?, "CWCS"?, "ECTF"?, "EFOR"?, "EU"?, "EUDA"?, "FVEY"?, "GCCH"?, "GCTF"?, "GFNX"?, "GMIF"?, "IESC"?, "IRKS"?, "ISAF"?, "ISSG"?, "KFOR"?, "MCFI"?, "MESF"?, "MGEU"?, "MIFH"?, "MLEC"?, "MNTF"?, "MPFL"?, "NACT"?, "NATO"?, "NATO:[a-zA-Z\-_]{1,256}"?, "NCFE"?, "NRDC"?, "NSG"?, "OSAG"?, "OSTY"?, "PGMF"?, "RSMA"?, "SFOR"?, "SOFP"?, "SPAA"?, "TEYE"?, "UNCK"? } } \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rng b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rng new file mode 100644 index 0000000000..bc2274be67 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.rng @@ -0,0 +1,163 @@ + + + + + + ACGU + + + AOSC + + + APFS + + + ASEA + + + AUSTRALIA_GROUP + + + BHTF + + + BWCS + + + CFCK + + + CFOD + + + CFUP + + + CLFC + + + CMFC + + + CMFP + + + CPMT + + + CTOC + + + CWCS + + + ECTF + + + EFOR + + + EU + + + EUDA + + + FVEY + + + GCCH + + + GCTF + + + GFNX + + + GMIF + + + IESC + + + IRKS + + + ISAF + + + ISSG + + + KFOR + + + MCFI + + + MESF + + + MGEU + + + MIFH + + + MLEC + + + MNTF + + + MPFL + + + NACT + + + NATO + + + NATO:[a-zA-Z\-_]{1,256} + + + NCFE + + + NRDC + + + NSG + + + OSAG + + + OSTY + + + PGMF + + + RSMA + + + SFOR + + + SOFP + + + SPAA + + + TEYE + + + UNCK + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.xsd new file mode 100644 index 0000000000..a1f87dc4db --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/CVEGenerated/CVEnumISMCATTetragraph.xsd @@ -0,0 +1,307 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumISMCATTetragraph Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumISMCATTetragraph.xml CVE it is based on, instead of here. + + + + + + + + (U) + IC Markings System Register and Manual Coalition tetragraphs in alphabetical order by tetragraph. + + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumISMCATTetragraph.xml + + + + + + + + + North Atlantic Treaty Organization Special Words + + + + + + + + + FOUR EYES + + + + + Athens Olympics Security Coalition + + + + + African Peacekeeping Force Somalia + + + + + Association of Southeast Asian Nations (ASEAN) + + + + + Australia Group + + + + + Boko Haram Task Force + + + + + Biological Weapons Convention States + + + + + ROK/US Combined Forces Command, Korea + + + + + Coalition Forces Odyssey Dawn + + + + + Coalition Forces Unified Protector + + + + + Combined Libya Fusion Cell + + + + + Combined Maritime Forces Central + + + + + Cooperative Maritime Forces Pacific + + + + + Civilian Protection Monitoring Team for Sudan + + + + + Countering Transnational Organized Crime + + + + + Chemical Weapons Convention States + + + + + European Counter-Terrorism Forces + + + + + European Union Stabilization Forces in Bosnia + + + + + European Union + + + + + European Union DARFUR + + + + + FIVE EYES + + + + + Gulf Cooperation Council Headquarters + + + + + Global Counter-Terrorism Forces + + + + + Global Foreign Terrorist Fighter Network Exchange + + + + + Global Maritime Interception Forces + + + + + International Events Security Coalition + + + + + Inherent Resolve Kinetic Support + + + + + International Security Assistance Force for Afghanistan + + + + + International Syria Support Group + + + + + Stabilization Forces in Kosovo + + + + + Multinational Coalition Forces-Iraq + + + + + Middle East Stability Force + + + + + Multinational GEOINT Europe + + + + + Multinational Interim Force Haiti + + + + + Multi-Lateral Enduring Contingency + + + + + Multi-National Task Force + + + + + Multinational Peacekeeping Forces + + + + + North African Counter-Terrorism Forces + + + + + North Atlantic Treaty Organization + + + + + NATO CFE Treaty on Conventional Armed Forces in Europe + + + + + NORDIC + + + + + Nuclear Suppliers' Group + + + + + Olympic Security Advisory Group + + + + + Open Skies Treaty + + + + + Persian Gulf Multinational Forces + + + + + Resolute Support Mission Afghanistan + + + + + Stabilization Force + + + + + Special Operations Forces Partners + + + + + SOF Planning Activities in Afghanistan (also called "11-Eyes") + + + + + THREE EYES + + + + + United Nations Command, Korea + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/SchemaGuideSchema.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/SchemaGuideSchema.xsd new file mode 100644 index 0000000000..418f0a2b85 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/SchemaGuideSchema.xsd @@ -0,0 +1,113 @@ + + + + + Intelligence Community + Technical Specification XML CVE Encoding Specification for ISM Country Codes and Tetragraphs (ISMCAT.XML) + SchemaGuide + + + + Notices + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + + Description + W3C XML Schema used to + facilitate generation of the SchemaGuide for the XML Data Encoding Specification for + CVE Encoding Specification for ISM Country Codes and Tetragraphs (ISMCAT.XML). + + + Introduction + This XML Schema file is only + used to produce the schemaGuide for the XML CVE Encoding Specification (CES). + Please see the document titled + XML CVE Encoding Specification + for ISM Country Codes and Tetragraphs + for a complete description of the encoding as well as list of all + components. + It is envisioned that this + schema or its components, as well as other parts of the CES may be overridden for + localized implementations. Therefore, permission to use, copy, modify and distribute + this XML Schema and the other parts of the CES for any purpose is hereby granted in + perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or CES for any purpose. It is provided "as is" + without expressed or implied warranty. + If you modify this XML Schema + in any way label your schema as a variant of ISMCAT.XML. + Please direct all questions, + bug reports, or suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + ISMCAT.XML is a collection of 5 + CVEs + + CVEnumISMCATFGIOpen + + CVEnumISMCATFGIProtected + + CVEnumISMCATOwnerProducer + + + CVEnumISMCATRelTo + + + CVEnumISMCATResponsibleEntity + + + ISMCAT.XML also contains the Tetragraph Taxonomy schema (Taxonomy.xsd) for + mapping Tetragraphs to their memberships. + An ISMCAT.XML Taxonomy instance is an + instance starting with the Tetragraphs root element: + + A Tetragraphs + + + + + Creators + Office of the Director of + National Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/Tetragraph.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/Tetragraph.xsd new file mode 100644 index 0000000000..55d1c06f8e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/ISMCAT/Tetragraph.xsd @@ -0,0 +1,181 @@ + + + + + + Intelligence Community + Technical Specification XML Taxonomy Encoding Specification for Countries and Tetragraphs (CATT.TES) + SchemaGuide + + + Notices + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + + Description + W3C XML Schema used to + facilitate generation of the SchemaGuide for the XML Taxonomy Encoding Specification for + Countries and Tetragraphs (CATT.TES). + + + Introduction + This XML Schema file is only + used to produce the schemaGuide for the XML CVE Encoding Specification (CES). + Please see the document titled + XML CVE Encoding Specification + for ISM Country Codes and Tetragraphs + for a complete description of the encoding as well as list of all + components. + It is envisioned that this + schema or its components, as well as other parts of the CES may be overridden for + localized implementations. Therefore, permission to use, copy, modify and distribute + this XML Schema and the other parts of the CES for any purpose is hereby granted in + perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or TES for any purpose. It is provided "as is" + without expressed or implied warranty. + If you modify this XML Schema + in any way label your schema as a variant of ISMCAT.XML. + Please direct all questions, + bug reports, or suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + An ISMCAT.XML Taxonomy instance is an + instance starting with the Tetragraphs root element: + + A Tetragraphs + + + + + Creators + Office of the Director of + National Intelligence Intelligence Community Chief Information Officer + + + + + + + + + + + + + + This element holds the list of Tetragraphs and their mappings. + + + + + + + + + + + + + + + + This element group captures the countries that are associated with + the tetragraph specified. + + + + + + + + + + + + + + + + + + + + Decomposition is the breaking down of a tetragraph into its component countries for the purposes of rollup. An example is decomposing FVEY into the five member countries. This decomposition allows + a portion marked RELEASABLE TO USA, GBR and another portion marked RELEASEABLE TO USA, FVEY to rollup to RELEASABLE TO USA, GBR. If FVEY was not decomposable the rollup would have to have been NF. + Decomposable "Maybe" represents the case where the decision to decompose rests at the local FDO and is neither allowed nor prohibited for the Enterprise. NA is "Not Applicable" and is applied to deprecated + tetragraphs. + + + + + + + + + + + + + + The Tetragraph token for which this grouping relates. + + + + + + + + + + + + + + + A country that has membership in or association with the tetragraph. + + + + + + + + + + + + + + + + + + + + + + The version of this specification. + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/LIC/CVEGenerated/CVEnumLicLicense.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/LIC/CVEGenerated/CVEnumLicLicense.xsd new file mode 100644 index 0000000000..08e62f05cd --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/LIC/CVEGenerated/CVEnumLicLicense.xsd @@ -0,0 +1,43 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumLicLicense Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumLicLicense.xml CVE it is based on, instead of here. + + + + + + + + (U) URNs for Data Sphere + license agreements. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumLicLicense.xml + + + + + + + OSC-CommercialOpenSource1 + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/LIC/LIC.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/LIC/LIC.xsd new file mode 100644 index 0000000000..b22d033be7 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/LIC/LIC.xsd @@ -0,0 +1,117 @@ + + + + + + + CVE Encoding Specification for License + + + + Notices + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + Description + W3C XML Schema for the XML CVE Encoding Specification + for License (LIC.XML). + + + Introduction + This XML Schema file is one component of the XML CVE + Encoding Specification (CES). Please see the document titled XML CVE Encoding Specification for License + for a complete description of the encoding as well as list of all components. + This schema and its components, as well as other parts + of the CES, may be overridden for localized implementations. Permission to use, copy, modify and distribute + this XML Schema and the other parts of the CES for any purpose is hereby granted in perpetuity. + Please reference the preceding two paragraphs in all + copies or variations. The developers make no representation about the suitability of the schema or CES for + any purpose. It is provided "as is" without expressed or implied warranty. + If you modify this XML Schema in any way, label your + schema as a variant of LIC.XML. + Please direct all questions, bug reports, and + suggestions for changes to the points of contact identified in the document referenced above. + + + + Implementation Notes + No implementation notes at this time. + + + + Creators + Intelligence Community Chief Information + Officer + + + + + + + + + + + + + The version identifier for the CES + + + + + + + + + + + + + + An element limited to allowable License + values. + + + + + + + + An attribute limited to allowable License. + + + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 2015-AUG + 2015-07-04 + ODNI/OCIO + Initial release of this module + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/CVEGenerated/CVEnumMNIssue.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/CVEGenerated/CVEnumMNIssue.xsd new file mode 100644 index 0000000000..2a5f247ce0 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/CVEGenerated/CVEnumMNIssue.xsd @@ -0,0 +1,79 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumMNIssue Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumMNIssue.xml CVE it is based on, instead of here. + + + + + + + + (U) All currently identified values for Issue. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumMNIssue.xml + + + + + + + Crime and Narcotics + + + + + Cyber, Science, and Technology + + + + + Defense Issues + + + + + Economics, Trade, and Threat Finance + + + + + Environment and Infrastructure + + + + + Health and Natural Disasters + + + + + Intelligence and Counterintelligence + + + + + Political and Societal Issues + + + + + Terrorism and Homeland Security + + + + + Weapons Proliferation and WMD + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/CVEGenerated/CVEnumMNRegion.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/CVEGenerated/CVEnumMNRegion.xsd new file mode 100644 index 0000000000..7f9069431a --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/CVEGenerated/CVEnumMNRegion.xsd @@ -0,0 +1,141 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumMNRegion Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumMNRegion.xml CVE it is based on, instead of here. + + + + + + + + (U) All + currently identified values for Region. This list was originally derived from the + GIMMEE Mission Need Region list. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumMNRegion.xml + + + + + + + Africa, Central + + + + + Africa, East + + + + + Africa, North + + + + + Africa, Southern + + + + + Africa, West + + + + + Americas, Caribbean + + + + + Americas, Central + + + + + Americas, North + + + + + Americas, South + + + + + Americas, Antarctica + + + + + Asia, East + + + + + Asia, South East + + + + + Asia, South + + + + + Eurasia, Caucasus + + + + + Eurasia, Central + + + + + Eurasia, Russia + + + + + Europe, Balkans + + + + + Europe, Central + + + + + Europe, North + + + + + Europe, South + + + + + Middle East + + + + + Oceania + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/MN.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/MN.xsd new file mode 100644 index 0000000000..339f57f2bc --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/MN/MN.xsd @@ -0,0 +1,150 @@ + + + + + + + Intelligence Community Technical Specification XML CVE + Encoding Specification for Mission Need (MN.XML) + + + + Notices + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + Description + W3C XML Schema for the XML CVE Encoding Specification + for Mission Need (MN.XML). + + + Introduction + + This XML Schema file is one component of the XML CVE + Encoding Specification (CES). Please see the document titled XML CVE Encoding Specification for Mission + Need for a complete description of the encoding as well as list of all + components. + + This schema and its components, as well as other parts + of the CES, may be overridden for localized implementations. Permission to use, copy, modify and distribute + this XML Schema and the other parts of the CES for any purpose is hereby granted in perpetuity. + + Please reference the preceding two paragraphs in all + copies or variations. The developers make no representation about the suitability of the schema or CES for + any purpose. It is provided "as is" without expressed or implied warranty. + + If you modify this XML Schema in any way, label your + schema as a variant of MN.XML. + + Please direct all questions, bug reports, and + suggestions for changes to the points of contact identified in the document referenced above. + + + + Implementation Notes + No implementation notes at this time. + + + + Creators + Office of the Director of National Intelligence + Intelligence Community Chief Information Officer + + + + + + + + + + + + + + The version number of the CES + + + + + + + + + + + + + + An element limited to allowable Region. + + + + + + + + An attribute limited to allowable Region. + + + + + + + + An element limited to allowable Issue. + + + + + + + + An attribute limited to allowable Issue. + + + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 2017-MAY + 2017-05-12 + ODNI/IC CIO/IAD + + The schema change logs will no longer be maintained as of the 2017-MAY release. + The existing change logs will only serve as legacy information. + For changes to schema as of and after 2017-MAY, reference the change history in the CES. + + + + 2015-AUG + 2015-07-04 + ODNI/OCIO/ICEA + Initial release of this module + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/CVEGenerated/CVEnumNTKAccessPolicy.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/CVEGenerated/CVEnumNTKAccessPolicy.xsd new file mode 100644 index 0000000000..fe5694fdaf --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/CVEGenerated/CVEnumNTKAccessPolicy.xsd @@ -0,0 +1,95 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumNTKAccessPolicy Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumNTKAccessPolicy.xml CVE it is based on, instead of here. + + + + + + + + (U) NTK access policy + names. All NTK enterprise access policy URNs start with ‘urn:us:gov:ic:aces:ntk:’. Values in this CVE + correspond to the terminating portion of NTK access policy URNs. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumNTKAccessPolicy.xml + + + + + + + + + Regex for extension of PROPIN with non-IC CIO + access policy URN. + + + + + + + + + Exclusive Distibution + + + + + Intelligence Community Only + + + + + License + + + + + Mission Need Profile + + + + + No Distribution + + + + + Originator Controlled + + + + + Permissive group/individual access + + + + + PROPIN for US Government Employees + + + + + Explicit PROPIN + + + + + Restrictive group access + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/CVEGenerated/CVEnumNTKProfileDes.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/CVEGenerated/CVEnumNTKProfileDes.xsd new file mode 100644 index 0000000000..acd094581c --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/CVEGenerated/CVEnumNTKProfileDes.xsd @@ -0,0 +1,46 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumNTKProfileDes Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumNTKProfileDes.xml CVE it is based on, instead of here. + + + + + + + + (U) NTK profile des + names. All NTK enterprise profile des URNs start with ‘urn:us:gov:ic:ntk:profile’. Values in this CVE + correspond to the terminating portion of NTK profile des URNs. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumNTKProfileDes.xml + + + + + + + Agency Dissem + + + + + Data Sphere + + + + + Group and Individual + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/IC-NTK.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/IC-NTK.xsd new file mode 100644 index 0000000000..c5e6a92e56 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/NTK/IC-NTK.xsd @@ -0,0 +1,509 @@ + + + + + + Intelligence Community Technical Specification XML + Data Encoding Specification for Need-To-Know Metadata (NTK.XML) + + + + Notices + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + + Description + W3C XML Schema for the XML Data Encoding + Specification for intelligence Need-To-Know metadata (NTK.XML). + + + Introduction + This XML Schema file is one component of the XML + Data Encoding Specification (DES). Please see the document titled + XML Data Encoding Specification For Need-To-Know + Metadata + for a complete description of the encoding as well as list of all components. + It is envisioned that this schema or its components, + as well as other parts of the DES may be overridden for localized implementations. Therefore, permission + to use, copy, modify and distribute this XML Schema and the other parts of the DES for any purpose is + hereby granted in perpetuity. + Please reference the preceding two paragraphs in all + copies or variations. The developers make no representation about the suitability of the schema or DES + for any purpose. It is provided "as is" without expressed or implied warranty. + If you modify this XML Schema in any way label your + schema as a variant of NTK.XML. + Please direct all questions, bug reports,or + suggestions for changes to the points of contact identified in the document referenced above. + + + Implementation Notes + The document element for NTK is ntk:Access. However, the NTK schema is not a + standalone construct; it should be imported into a parent XML schema. + + + Creators + Office of the Director of National Intelligence + Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + A way of describing a formalized Need to Know + required for a document. NTK requires being inside a schema that implements ISM therefore some + element in the implementing schema MUST have ism:ISMRootNodeAttributeGroup and + ism:ResourceNodeAttributeGroup since both of those are required for a valid ISM implementation. In + addition the root node of the implementing schema must have ntk:NTKRootNodeAttributeGroup + specified. + + + + + + + + A way of describing a formalized Need to Know + required for an EXTERNAL document. NTK requires being inside a schema that implements ISM therefore + some element in the implementing schema MUST have ism:ISMRootNodeAttributeGroup and + ism:ResourceNodeAttributeGroup since both of those are required for a valid ISM implementation. In + addition the root node of the implementing schema must have ntk:NTKRootNodeAttributeGroup + specified. + + + + + + + + An access policy name followed by 1 or more + values representing a profile that a user wanting access to the document must meet. Logic for the + profile list being boolean AND vs OR is Access Policy defined. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A list of words, codes and/or + phrases: a lexicon. + + + + + + + + + + + + + + + + + + + + + + + + + The version number of the DES + + + + + + + + + + + + + + A unique XML identifier used to assign an XML + unique identifier to an element, such as a paragraph, note or table. + + + + + + + + A cross-reference to a unique identifier used to + point from one element to one or more other elements. The value of the attribute must be one or more + XML unique identifiers that are the value(s) of id attribute(s) elsewhere in the document. + + + + + + + + + + + + + + + + + + + The value of this element references the NTK + profile. This value should be represented by an IC-ID, however, is not currently restrict to an + IC-ID type so that legacy systems do not break during the transition to a complete restriction to + IC-ID. + + + + + + + + + + + A user-defined property used to provide + contextual meaning to the ntk:AccessProfileValue + + + + + + + + A logical grouping indicating that all included + access policies are required. + + + + + + + + + + + + + + + A logical grouping indicating that one of the + included access policies is required. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Used to give the identifying string for the + vocabulary type being defined. + + + + + + + Used to identify the source to be used by + the vocabulary type as the system or list that holds the collection/pool of values. + + + + + + + Used to identify the version of the source + for this vocbulary type being defined. + + + + + + + + + + + + + + + Used for portion marking access requirements. + The format consists of a series of namespace-prefixed key-value pair sets. The '#' character is used + to delimit between a series of access requirements which are all required and a series of + requirements in which only one is required. The format of an access requirement consists of a + namespace-prefix followed by sets of key-value pairs. The '|' character is used to separate the + key-value pairs and the '^' character is used to join keys with their values. The characters '^', + '|', and '#' are not allowed in namespace-prefixes, keys, and values. Multiple namespace-prefixed + sets can be used. + For example: + ntk:access="namespace1|key1^value1|key2^value1|key2^value2 # namespace2|key1^value1 + namespace3|key1^value1" + ntk:access="# namespace1|key1^value1 namespace2|key1^value1|key2^value2" + ntk:access="namespace1|key1^value1|key2^val2 namespace1|key1^value3 #" + + + + + + + + + + + + + + + + + + + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 2015-AUG + 2015-06-05 + ODNI/IC CIO/IAD + + + Removed ntk:isAbstract attribute. + + + + + 2015-AUG + 2015-05-29 + ODNI/IC CIO/IAD + + + DESVersion restriction regex updated. + + + + + 2015-AUG + 2015-3-9 + ODNI/IC CIO/IAD + + + Reduced elements with ISM to + only the root and AccessProfile elements. + Removed Group and Individual + constructs from NTK so that only AccessProfile is available. + + + + + 10 + 2013-7-25 + ODNI/OCIO/ME/D&I + + + Added a Profile + element. + + + + + 9 + 2012-2-4 + ODNI/OCIO/ME/D&I + + + Added "AND" logic to NTK Access + element and access attribute. + + + + + 7 + 2012-5-28 + ODNI/OCIO/ME/D&I + + + Updated NTK attribute to use a + schema restriction regex instead of schematron rule NTK-ID-00005 + [artf12287]. + + + + + 7 + 2012-4-06 + ODNI/OCIO/ME/D&I + + + Add NTK attribute for use on + portions [artf12287]. + + + + + 7 + 2012-3-19 + ODNI/OCIO/ME/D&I + + + Changed DESVersion attribute + from xsd:int to ism:ShortStringType. + Changed declaration of + AccessProfileValueType to be simple content. [artf12153]. + + + + + 6 + 2011-12-13 + Hodges, ODNI/OCIO/ICEA + + + Extracting out attributes and + elements to move towards NIEM compliance + + + + + 5 + 2011-07-07 + Colbert, ODNI/OCIO/ICEA + + + Added version information to + header + + + + + 4 + 2011-04-22 + Colbert, ODNI/OCIO/ICEA + + + Explicitly declared minOccurs + and maxOccurs where appropriate. + + + + + 3 + 2011-01-31 + Sun, ODNI/OCIO/ICEA + + + (CR 2011-01) Remove unused ddms + namespace declaration + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/Taxonomy/Taxonomy.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/Taxonomy/Taxonomy.xsd new file mode 100644 index 0000000000..bc8bb6d263 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/Taxonomy/Taxonomy.xsd @@ -0,0 +1,139 @@ + + + + + Intelligence Community Technical Specification + XML Taxonomy Common components Taxonomy schema + + + + Notices + + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + + Description + + W3C XML Schema fragment for use in taxonomies. + + + + Implementation Notes + + No implementation notes at this time. + + + + Creators + Office of the Director of National Intelligence + Intelligence Community Chief Information Officer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumAuditRoutingOrg.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumAuditRoutingOrg.xsd new file mode 100644 index 0000000000..91f807439e --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumAuditRoutingOrg.xsd @@ -0,0 +1,1459 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumAuditRoutingOrg Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumAuditRoutingOrg.xml CVE it is based on, instead of here. + + + + + + + + (U) All ICAS approved values for organization to which Audit Records are routed. + It is also just the concatenation of CVEnumAuditRoutingUnique.xml and CVEnumUSAgencyAcronym.xml. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumAuditRoutingOrg.xml + + + + + + + + United States Africa Command (Type: COCOM) + + + + + + + United States Central Command (Type: COCOM) + + + + + + + United States Strategic Command, US Cyber Command (Type: COCOM) + + + + + + + United States European Command (Type: COCOM) + + + + + + + United States Pacific Command, US Forces Korea (Type: COCOM) + + + + + + + United States Northern Command (Type: COCOM) + + + + + + + United States Pacific Command (Type: COCOM) + + + + + + + United States Special Operations Command (Type: COCOM) + + + + + + + United States Southern Command (Type: COCOM) + + + + + + + United States Strategic Command (Type: COCOM) + + + + + + + United States Transportation Command (Type: COCOM) + + + + + + + Defense Advanced Research Projects Agency (Type: DOD) + + + + + + + Defense Information Systems Agency (Type: DOD) + + + + + + + Assistant Secretary of Defense for Networks and Information Integration and DoD Chief Information Officer (Type: DOD) + + + + + + + Department of Defense Inspector General (Type: DOD) + + + + + + + Assistant to the Secretary of Defense for Intelligence Oversight (Type: DOD) + + + + + + + Defense Security Service (Type: DOD) + + + + + + + Defense Threat-Reduction Agency (Type: DOD) + + + + + + + Office of the Joint Chiefs of Staff (Type: DOD) + + + + + + + Joint Improvised-Threat Defeat Agency (Type: DOD) + + + + + + + Missile Defense Agency (Type: DOD) + + + + + + + Office of the Undersecretary of Defense (Acquisition, Technology and Logistics) (Type: DOD) + + + + + + + Office of the Undersecretary of Defense (Intelligence) (Type: DOD) + + + + + + + United States Department of Homeland Security, Office of Intelligence and Analysis (Type: IC) + + + + + + + United States Department of Homeland Security, Transportation Security Administration (Type: IC) + + + + + + American Battle Monuments Commission + + + + + Architectural and Transportation Barriers Compliance Board + + + + + Administrative Committee of the Federal Register + + + + + Advisory Council on Historic Preservation + + + + + Administrative Conference of the United States + + + + + African Development Foundation + + + + + Arthritis and Musculoskeletal Interagency Coordinating Committee + + + + + National Railroad Passenger Corporation + + + + + Appalachian Regional Commission + + + + + Arctic Research Commission + + + + + Broadcasting Board of Governors + + + + + Barry M. Goldwater Scholarship and Excellence in Education Foundation + + + + + Chief Acquisition Officers Council + + + + + Coordinating Council on Juvenile Justice and Delinquency Prevention + + + + + Commission on Civil Rights + + + + + United States Council of Economic Advisers + + + + + Commission of Fine Arts + + + + + Committee on Foreign Investments in the United States + + + + + Chief Financial Officers Council + + + + + Commodity Futures Trading Commission + + + + + Chief Human Capital Officers Council + + + + + Central Intelligence Agency + + + + + Chief Information Officers Council + + + + + Commission on International Religious Freedom + + + + + Committee for the Implementation of Textile Agreements + + + + + Corporation for National and Community Service + + + + + Office of Compliance + + + + + Consumer Product Safety Commission + + + + + Citizens' Stamp Advisory Committee + + + + + Chemical Safety and Hazard Investigation Board + + + + + Court Services and Offender Supervision Agency for the District of Columbia + + + + + Drug Enforcement Administration + + + + + Denali Commission + + + + + Department of Homeland Security + + + + + Defense Intelligence Agency + + + + + Defense Nuclear Facilities Safety Board + + + + + Office of the Director of National Intelligence + + + + + Department of Commerce + + + + + Department of Defense + + + + + Department of Energy + + + + + Department of the Interior + + + + + Department of Justice + + + + + Department of Labor + + + + + Department of Transportation + + + + + Delaware River Basin Commission + + + + + United States Election Assistance Commission + + + + + Department of Education + + + + + Equal Employment Opportunity Commission + + + + + Export-Import Bank of the United States + + + + + Executive Office of the President + + + + + Environmental Protection Agency + + + + + Endangered Species Committee + + + + + Federal Advisory Committees + + + + + Federal Accounting Standards Advisory Board + + + + + Federal Bureau of Investigation + + + + + Farm Credit Administration + + + + + Federal Communications Commission + + + + + Financial Crisis Inquiry Commission + + + + + Farm Credit System Insurance Corporation + + + + + Federal Deposit Insurance Corporation + + + + + Federal Executive Boards + + + + + Federal Election Commission + + + + + Federal Energy Regulatory Commission + + + + + Federal Financing Bank + + + + + Federal Financial Institutions Examination Council + + + + + Federal Geographic Data Committee + + + + + Federal Housing Finance Agency + + + + + Federal Interagency Committee on Education + + + + + Federal Interagency Committee for the Management of Noxious and Exotic Weeds + + + + + Federal Interagency Council on Statistical Policy + + + + + Federal Laboratory Consortium for Technology Transfer + + + + + Federal Library and Information Center Committee + + + + + Federal Labor Relations Authority + + + + + Federal Maritime Commission + + + + + Federal Mediation and Conciliation Service + + + + + Federal Mine Safety and Health Review Commission + + + + + Federal Reserve System + + + + + Federal Retirement Thrift Investment Board + + + + + Federal Trade Commission + + + + + General Services Administration + + + + + Commission on Security and Cooperation in Europe + + + + + Department of Health and Human Services + + + + + United States Holocaust Memorial Museum + + + + + Harry S. Truman Scholarship Foundation + + + + + Department of Housing and Urban Development + + + + + Indian Arts and Crafts Board + + + + + Interagency Alternative Dispute Resolution Working Group + + + + + Inter-American Foundation + + + + + International Broadcasting Bureau + + + + + Interagency Council on Homelessness + + + + + Interstate Commission on the Potomac River Basin + + + + + Illinois and Michigan Canal National Heritage Corridor Commission + + + + + Institute of Museum and Library Services + + + + + United States International Trade Commission + + + + + Joint Board for the Enrollment of Actuaries + + + + + Joint Fire Science Program + + + + + James Madison Memorial Fellowship Foundation + + + + + Japan-United States Friendship Commission + + + + + J. William Fulbright Foreign Scholarship Board + + + + + Legal Services Corporation + + + + + Migratory Bird Conservation Commission + + + + + Millennium Challenge Corporation + + + + + Morris K. Udall Foundation: Scholarship and Excellence in National Environmental Policy + + + + + Marine Mammal Commission + + + + + Mississippi River Commission + + + + + Merit Systems Protection Board + + + + + National Archives and Records Administration + + + + + National Aeronautics and Space Administration + + + + + National Bipartisan Commission on the Future of Medicare + + + + + National Council on Disability + + + + + National Commission on Fiscal Responsibility and Reform + + + + + National Capital Planning Commission + + + + + National Credit Union Administration + + + + + National Endowment for the Arts + + + + + National Endowment for the Humanities + + + + + National Geospatial-Intelligence Agency + + + + + National Indian Gaming Commission + + + + + National Labor Relations Board + + + + + National Mediation Board + + + + + National Park Foundation + + + + + Northwest Power Planning Council + + + + + Nuclear Regulatory Commission + + + + + National Reconnaissance Office + + + + + National Security Agency + + + + + National Science Foundation + + + + + National Transportation Safety Board + + + + + Nuclear Waste Technical Review Board + + + + + Office of Government Ethics + + + + + Office of Management and Budget + + + + + Office of the National Counterintelligence Executive + + + + + Overseas Private Investment Corporation + + + + + Office of Personnel Management + + + + + Office of Special Counsel + + + + + Occupational Safety and Health Review Commission + + + + + Office of the Vice President + + + + + Pension Benefit Guaranty Corporation + + + + + Panama Canal Commission + + + + + Peace Corps + + + + + Postal Regulatory Commission + + + + + Presidio Trust + + + + + Regulatory Information Service Center + + + + + Railroad Retirement Board + + + + + Small Business Administration + + + + + Securities and Exchange Commission + + + + + State Justice Institute + + + + + Smithsonian Institution + + + + + Susquehanna River Basin Commission + + + + + Social Security Administration + + + + + Social Security Advisory Board + + + + + Selective Service System + + + + + Department of State + + + + + Taxpayer Advocacy Panel + + + + + U.S. Trade and Development Agency + + + + + Department of the Treasury + + + + + Tennessee Valley Authority + + + + + US Army + + + + + US Air Force + + + + + United States Agency for International Development + + + + + U.S. AbilityOne Commission + + + + + US Coast Guard + + + + + Department of Agriculture + + + + + United States Institute of Peace + + + + + US Marine Corps + + + + + US Navy + + + + + United States Postal Service + + + + + United States Office of the Trade Representative + + + + + United States Mission to the United Nations + + + + + Department of Veterans Affairs + + + + + Veterans Day National Committee + + + + + Vietnam Educational Foundation + + + + + White House Commission on Presidential Scholars: Presidential Scholars Program + + + + + White House Military Office + + + + + Architect of the Capitol + + + + + Congressional Budget Office + + + + + Congressional Research Service + + + + + Government Accountability Office + + + + + Government Printing Office + + + + + Committee on House Administration + + + + + House Committee on Agriculture + + + + + House Committee on Appropriations + + + + + House Armed Services Committee + + + + + House Committee on the Budget + + + + + House Office of the Chief Administrative Officer + + + + + House Office of the Chaplain + + + + + House Office of the Clerk + + + + + House Committee on Ethics + + + + + House Education and the Workforce Committee + + + + + House Energy and Commerce Committee + + + + + House Committee on Financial Services + + + + + House Committee on Foreign Affairs + + + + + House Office of the Historian + + + + + House Committee on Homeland Security + + + + + House Judiciary Committee + + + + + House Leadership + + + + + House Office of the Law Revision Counsel + + + + + House Committee on Natural Resources + + + + + House Committee on Oversight and Government Reform + + + + + House Office of the Inspector General + + + + + House Office of the Legislative Counsel + + + + + House Office of the Parliamentarian + + + + + House Committee on Rules + + + + + House Office of the Sergeant at Arms + + + + + House Committee on Science, Space, and Technology + + + + + House Committee on Small Business + + + + + House Transportation and Infrastructure Committee + + + + + House Committee on Veterans’ Affairs + + + + + House Committee on Ways and Means + + + + + House Permanent Select Committee on Intelligence + + + + + Joint Committee on Printing + + + + + Joint Committee on Taxation + + + + + Joint Economic Committee + + + + + Joint Committee on the Library + + + + + Library of Congress + + + + + Medicaid and CHIP Payment and Access Commission + + + + + Medicare Payment Advisory Commission + + + + + Open World Leadership Center + + + + + Senate Special Committee on Aging + + + + + Senate Committee on Agriculture, Nutrition, and Forestry + + + + + Senate Committee on Appropriations + + + + + Senate Committee on Armed Services + + + + + Senate Committee on Banking, Housing, and Urban Affairs + + + + + Senate Budget Committee + + + + + Senate Office of the Chaplain + + + + + Senate Select Committee on Ethics + + + + + Senate Committee on Commerce, Science, and Transportation + + + + + Senate Committee on Energy and Natural Resources + + + + + Senate Committee on Environment and Public Works + + + + + Senate Committee on Finance + + + + + Senate Committee on Foreign Relations + + + + + Senate Committee on Health, Education, Labor, and Pensions + + + + + Senate Committee on Homeland Security and Governmental Affairs + + + + + Senate Committee on Indian Affairs + + + + + Senate + Committee on the Judiciary + + + + + Senate Leadership + + + + + Senate Office of the Secretary for the Majority + + + + + Senate Office of the Secretary for the Minority + + + + + Senate Office of the Parliamentarian + + + + + Senate Committee on Rules and Administration + + + + + Senate Office of the Sergeant at Arms + + + + + Office of the Secretary of the Senate + + + + + Senate Committee on Small Business and Entrepreneurship + + + + + Senate Committee on Veterans’ Affairs + + + + + Stennis Center for Public Service + + + + + Senate Select Committee on Intelligence + + + + + U.S. Botanic Garden + + + + + Copyright Office + + + + + U.S. Capitol Police + + + + + Other United State Federal Government + + + + + State, Local, Tribal Government + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumAuditRoutingUnique.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumAuditRoutingUnique.xsd new file mode 100644 index 0000000000..ef9c7a08c6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumAuditRoutingUnique.xsd @@ -0,0 +1,213 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumAuditRoutingUnique Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumAuditRoutingUnique.xml CVE it is based on, instead of here. + + + + + + + + (U) All ICAS approved values for organization to which Audit Records are routed + that are not already in USAgency CVE. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumAuditRoutingUnique.xml + + + + + + + + United States Africa Command (Type: COCOM) + + + + + + + United States Central Command (Type: COCOM) + + + + + + + United States Strategic Command, US Cyber Command (Type: COCOM) + + + + + + + United States European Command (Type: COCOM) + + + + + + + United States Pacific Command, US Forces Korea (Type: COCOM) + + + + + + + United States Northern Command (Type: COCOM) + + + + + + + United States Pacific Command (Type: COCOM) + + + + + + + United States Special Operations Command (Type: COCOM) + + + + + + + United States Southern Command (Type: COCOM) + + + + + + + United States Strategic Command (Type: COCOM) + + + + + + + United States Transportation Command (Type: COCOM) + + + + + + + Defense Advanced Research Projects Agency (Type: DOD) + + + + + + + Defense Information Systems Agency (Type: DOD) + + + + + + + Assistant Secretary of Defense for Networks and Information Integration and DoD Chief Information Officer (Type: DOD) + + + + + + + Department of Defense Inspector General (Type: DOD) + + + + + + + Assistant to the Secretary of Defense for Intelligence Oversight (Type: DOD) + + + + + + + Defense Security Service (Type: DOD) + + + + + + + Defense Threat-Reduction Agency (Type: DOD) + + + + + + + Office of the Joint Chiefs of Staff (Type: DOD) + + + + + + + Joint Improvised-Threat Defeat Agency (Type: DOD) + + + + + + + Missile Defense Agency (Type: DOD) + + + + + + + Office of the Undersecretary of Defense (Acquisition, Technology and Logistics) (Type: DOD) + + + + + + + Office of the Undersecretary of Defense (Intelligence) (Type: DOD) + + + + + + + United States Department of Homeland Security, Office of Intelligence and Analysis (Type: IC) + + + + + + + United States Department of Homeland Security, Transportation Security Administration (Type: IC) + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumUSAgencyAcronym.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumUSAgencyAcronym.xsd new file mode 100644 index 0000000000..78c1b00c76 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumUSAgencyAcronym.xsd @@ -0,0 +1,1276 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumUSAgencyAcronym Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumUSAgencyAcronym.xml CVE it is based on, instead of here. + + + + + + + + (U) All valid acronyms for use with USA publishing organizations/agencies/Cabinet + Offices. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumUSAgencyAcronym.xml + + + + + + + American Battle Monuments Commission + + + + + Architectural and Transportation Barriers Compliance Board + + + + + Administrative Committee of the Federal Register + + + + + Advisory Council on Historic Preservation + + + + + Administrative Conference of the United States + + + + + African Development Foundation + + + + + Arthritis and Musculoskeletal Interagency Coordinating Committee + + + + + National Railroad Passenger Corporation + + + + + Appalachian Regional Commission + + + + + Arctic Research Commission + + + + + Broadcasting Board of Governors + + + + + Barry M. Goldwater Scholarship and Excellence in Education Foundation + + + + + Chief Acquisition Officers Council + + + + + Coordinating Council on Juvenile Justice and Delinquency Prevention + + + + + Commission on Civil Rights + + + + + United States Council of Economic Advisers + + + + + Commission of Fine Arts + + + + + Committee on Foreign Investments in the United States + + + + + Chief Financial Officers Council + + + + + Commodity Futures Trading Commission + + + + + Chief Human Capital Officers Council + + + + + Central Intelligence Agency + + + + + Chief Information Officers Council + + + + + Commission on International Religious Freedom + + + + + Committee for the Implementation of Textile Agreements + + + + + Corporation for National and Community Service + + + + + Office of Compliance + + + + + Consumer Product Safety Commission + + + + + Citizens' Stamp Advisory Committee + + + + + Chemical Safety and Hazard Investigation Board + + + + + Court Services and Offender Supervision Agency for the District of Columbia + + + + + Drug Enforcement Administration + + + + + Denali Commission + + + + + Department of Homeland Security + + + + + Defense Intelligence Agency + + + + + Defense Nuclear Facilities Safety Board + + + + + Office of the Director of National Intelligence + + + + + Department of Commerce + + + + + Department of Defense + + + + + Department of Energy + + + + + Department of the Interior + + + + + Department of Justice + + + + + Department of Labor + + + + + Department of Transportation + + + + + Delaware River Basin Commission + + + + + United States Election Assistance Commission + + + + + Department of Education + + + + + Equal Employment Opportunity Commission + + + + + Export-Import Bank of the United States + + + + + Executive Office of the President + + + + + Environmental Protection Agency + + + + + Endangered Species Committee + + + + + Federal Advisory Committees + + + + + Federal Accounting Standards Advisory Board + + + + + Federal Bureau of Investigation + + + + + Farm Credit Administration + + + + + Federal Communications Commission + + + + + Financial Crisis Inquiry Commission + + + + + Farm Credit System Insurance Corporation + + + + + Federal Deposit Insurance Corporation + + + + + Federal Executive Boards + + + + + Federal Election Commission + + + + + Federal Energy Regulatory Commission + + + + + Federal Financing Bank + + + + + Federal Financial Institutions Examination Council + + + + + Federal Geographic Data Committee + + + + + Federal Housing Finance Agency + + + + + Federal Interagency Committee on Education + + + + + Federal Interagency Committee for the Management of Noxious and Exotic Weeds + + + + + Federal Interagency Council on Statistical Policy + + + + + Federal Laboratory Consortium for Technology Transfer + + + + + Federal Library and Information Center Committee + + + + + Federal Labor Relations Authority + + + + + Federal Maritime Commission + + + + + Federal Mediation and Conciliation Service + + + + + Federal Mine Safety and Health Review Commission + + + + + Federal Reserve System + + + + + Federal Retirement Thrift Investment Board + + + + + Federal Trade Commission + + + + + General Services Administration + + + + + Commission on Security and Cooperation in Europe + + + + + Department of Health and Human Services + + + + + United States Holocaust Memorial Museum + + + + + Harry S. Truman Scholarship Foundation + + + + + Department of Housing and Urban Development + + + + + Indian Arts and Crafts Board + + + + + Interagency Alternative Dispute Resolution Working Group + + + + + Inter-American Foundation + + + + + International Broadcasting Bureau + + + + + Interagency Council on Homelessness + + + + + Interstate Commission on the Potomac River Basin + + + + + Illinois and Michigan Canal National Heritage Corridor Commission + + + + + Institute of Museum and Library Services + + + + + United States International Trade Commission + + + + + Joint Board for the Enrollment of Actuaries + + + + + Joint Fire Science Program + + + + + James Madison Memorial Fellowship Foundation + + + + + Japan-United States Friendship Commission + + + + + J. William Fulbright Foreign Scholarship Board + + + + + Legal Services Corporation + + + + + Migratory Bird Conservation Commission + + + + + Millennium Challenge Corporation + + + + + Morris K. Udall Foundation: Scholarship and Excellence in National Environmental Policy + + + + + Marine Mammal Commission + + + + + Mississippi River Commission + + + + + Merit Systems Protection Board + + + + + National Archives and Records Administration + + + + + National Aeronautics and Space Administration + + + + + National Bipartisan Commission on the Future of Medicare + + + + + National Council on Disability + + + + + National Commission on Fiscal Responsibility and Reform + + + + + National Capital Planning Commission + + + + + National Credit Union Administration + + + + + National Endowment for the Arts + + + + + National Endowment for the Humanities + + + + + National Geospatial-Intelligence Agency + + + + + National Indian Gaming Commission + + + + + National Labor Relations Board + + + + + National Mediation Board + + + + + National Park Foundation + + + + + Northwest Power Planning Council + + + + + Nuclear Regulatory Commission + + + + + National Reconnaissance Office + + + + + National Security Agency + + + + + National Science Foundation + + + + + National Transportation Safety Board + + + + + Nuclear Waste Technical Review Board + + + + + Office of Government Ethics + + + + + Office of Management and Budget + + + + + Office of the National Counterintelligence Executive + + + + + Overseas Private Investment Corporation + + + + + Office of Personnel Management + + + + + Office of Special Counsel + + + + + Occupational Safety and Health Review Commission + + + + + Office of the Vice President + + + + + Pension Benefit Guaranty Corporation + + + + + Panama Canal Commission + + + + + Peace Corps + + + + + Postal Regulatory Commission + + + + + Presidio Trust + + + + + Regulatory Information Service Center + + + + + Railroad Retirement Board + + + + + Small Business Administration + + + + + Securities and Exchange Commission + + + + + State Justice Institute + + + + + Smithsonian Institution + + + + + Susquehanna River Basin Commission + + + + + Social Security Administration + + + + + Social Security Advisory Board + + + + + Selective Service System + + + + + Department of State + + + + + Taxpayer Advocacy Panel + + + + + U.S. Trade and Development Agency + + + + + Department of the Treasury + + + + + Tennessee Valley Authority + + + + + US Army + + + + + US Air Force + + + + + United States Agency for International Development + + + + + U.S. AbilityOne Commission + + + + + US Coast Guard + + + + + Department of Agriculture + + + + + United States Institute of Peace + + + + + US Marine Corps + + + + + US Navy + + + + + United States Postal Service + + + + + United States Office of the Trade Representative + + + + + United States Mission to the United Nations + + + + + Department of Veterans Affairs + + + + + Veterans Day National Committee + + + + + Vietnam Educational Foundation + + + + + White House Commission on Presidential Scholars: Presidential Scholars Program + + + + + White House Military Office + + + + + Architect of the Capitol + + + + + Congressional Budget Office + + + + + Congressional Research Service + + + + + Government Accountability Office + + + + + Government Printing Office + + + + + Committee on House Administration + + + + + House Committee on Agriculture + + + + + House Committee on Appropriations + + + + + House Armed Services Committee + + + + + House Committee on the Budget + + + + + House Office of the Chief Administrative Officer + + + + + House Office of the Chaplain + + + + + House Office of the Clerk + + + + + House Committee on Ethics + + + + + House Education and the Workforce Committee + + + + + House Energy and Commerce Committee + + + + + House Committee on Financial Services + + + + + House Committee on Foreign Affairs + + + + + House Office of the Historian + + + + + House Committee on Homeland Security + + + + + House Judiciary Committee + + + + + House Leadership + + + + + House Office of the Law Revision Counsel + + + + + House Committee on Natural Resources + + + + + House Committee on Oversight and Government Reform + + + + + House Office of the Inspector General + + + + + House Office of the Legislative Counsel + + + + + House Office of the Parliamentarian + + + + + House Committee on Rules + + + + + House Office of the Sergeant at Arms + + + + + House Committee on Science, Space, and Technology + + + + + House Committee on Small Business + + + + + House Transportation and Infrastructure Committee + + + + + House Committee on Veterans’ Affairs + + + + + House Committee on Ways and Means + + + + + House Permanent Select Committee on Intelligence + + + + + Joint Committee on Printing + + + + + Joint Committee on Taxation + + + + + Joint Economic Committee + + + + + Joint Committee on the Library + + + + + Library of Congress + + + + + Medicaid and CHIP Payment and Access Commission + + + + + Medicare Payment Advisory Commission + + + + + Open World Leadership Center + + + + + Senate Special Committee on Aging + + + + + Senate Committee on Agriculture, Nutrition, and Forestry + + + + + Senate Committee on Appropriations + + + + + Senate Committee on Armed Services + + + + + Senate Committee on Banking, Housing, and Urban Affairs + + + + + Senate Budget Committee + + + + + Senate Office of the Chaplain + + + + + Senate Select Committee on Ethics + + + + + Senate Committee on Commerce, Science, and Transportation + + + + + Senate Committee on Energy and Natural Resources + + + + + Senate Committee on Environment and Public Works + + + + + Senate Committee on Finance + + + + + Senate Committee on Foreign Relations + + + + + Senate Committee on Health, Education, Labor, and Pensions + + + + + Senate Committee on Homeland Security and Governmental Affairs + + + + + Senate Committee on Indian Affairs + + + + + Senate + Committee on the Judiciary + + + + + Senate Leadership + + + + + Senate Office of the Secretary for the Majority + + + + + Senate Office of the Secretary for the Minority + + + + + Senate Office of the Parliamentarian + + + + + Senate Committee on Rules and Administration + + + + + Senate Office of the Sergeant at Arms + + + + + Office of the Secretary of the Senate + + + + + Senate Committee on Small Business and Entrepreneurship + + + + + Senate Committee on Veterans’ Affairs + + + + + Stennis Center for Public Service + + + + + Senate Select Committee on Intelligence + + + + + U.S. Botanic Garden + + + + + Copyright Office + + + + + U.S. Capitol Police + + + + + Other United State Federal Government + + + + + State, Local, Tribal Government + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumUSGOVAgencyAcronym.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumUSGOVAgencyAcronym.xsd new file mode 100644 index 0000000000..1497645b33 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/CVEGenerated/CVEnumUSGOVAgencyAcronym.xsd @@ -0,0 +1,890 @@ + + + + + The W3C XML Schema fragment encoding types for CVEnumUSGOVAgencyAcronym Version 2.1 controlled vocabulary enumerations. This file is generated, so edits should be made to the CVEnumUSGOVAgencyAcronym.xml CVE it is based on, instead of here. + + + + + + + + (U) All valid acronyms for use with US Government Offices. + This list is only the agencies within the Executive Branches of the US Government. + PERMISSIBLE VALUES + + The permissible values for this simple type are defined in the Controlled Value Enumeration: + + CVEnumUSGOVAgencyAcronym.xml + + + + + + + American Battle Monuments Commission + + + + + Architectural and Transportation Barriers Compliance Board + + + + + Administrative Committee of the Federal Register + + + + + Advisory Council on Historic Preservation + + + + + Administrative Conference of the United States + + + + + African Development Foundation + + + + + Arthritis and Musculoskeletal Interagency Coordinating Committee + + + + + National Railroad Passenger Corporation + + + + + Appalachian Regional Commission + + + + + Arctic Research Commission + + + + + Broadcasting Board of Governors + + + + + Barry M. Goldwater Scholarship and Excellence in Education Foundation + + + + + Chief Acquisition Officers Council + + + + + Coordinating Council on Juvenile Justice and Delinquency Prevention + + + + + Commission on Civil Rights + + + + + United States Council of Economic Advisers + + + + + Commission of Fine Arts + + + + + Committee on Foreign Investments in the United States + + + + + Chief Financial Officers Council + + + + + Commodity Futures Trading Commission + + + + + Chief Human Capital Officers Council + + + + + Central Intelligence Agency + + + + + Chief Information Officers Council + + + + + Commission on International Religious Freedom + + + + + Committee for the Implementation of Textile Agreements + + + + + Corporation for National and Community Service + + + + + Office of Compliance + + + + + Consumer Product Safety Commission + + + + + Citizens' Stamp Advisory Committee + + + + + Chemical Safety and Hazard Investigation Board + + + + + Court Services and Offender Supervision Agency for the District of Columbia + + + + + Drug Enforcement Administration + + + + + Denali Commission + + + + + Department of Homeland Security + + + + + Defense Intelligence Agency + + + + + Defense Nuclear Facilities Safety Board + + + + + Office of the Director of National Intelligence + + + + + Department of Commerce + + + + + Department of Defense + + + + + Department of Energy + + + + + Department of the Interior + + + + + Department of Justice + + + + + Department of Labor + + + + + Department of Transportation + + + + + Delaware River Basin Commission + + + + + United States Election Assistance Commission + + + + + Department of Education + + + + + Equal Employment Opportunity Commission + + + + + Export-Import Bank of the United States + + + + + Executive Office of the President + + + + + Environmental Protection Agency + + + + + Endangered Species Committee + + + + + Federal Advisory Committees + + + + + Federal Accounting Standards Advisory Board + + + + + Federal Bureau of Investigation + + + + + Farm Credit Administration + + + + + Federal Communications Commission + + + + + Financial Crisis Inquiry Commission + + + + + Farm Credit System Insurance Corporation + + + + + Federal Deposit Insurance Corporation + + + + + Federal Executive Boards + + + + + Federal Election Commission + + + + + Federal Energy Regulatory Commission + + + + + Federal Financing Bank + + + + + Federal Financial Institutions Examination Council + + + + + Federal Geographic Data Committee + + + + + Federal Housing Finance Agency + + + + + Federal Interagency Committee on Education + + + + + Federal Interagency Committee for the Management of Noxious and Exotic Weeds + + + + + Federal Interagency Council on Statistical Policy + + + + + Federal Laboratory Consortium for Technology Transfer + + + + + Federal Library and Information Center Committee + + + + + Federal Labor Relations Authority + + + + + Federal Maritime Commission + + + + + Federal Mediation and Conciliation Service + + + + + Federal Mine Safety and Health Review Commission + + + + + Federal Reserve System + + + + + Federal Retirement Thrift Investment Board + + + + + Federal Trade Commission + + + + + General Services Administration + + + + + Commission on Security and Cooperation in Europe + + + + + Department of Health and Human Services + + + + + United States Holocaust Memorial Museum + + + + + Harry S. Truman Scholarship Foundation + + + + + Department of Housing and Urban Development + + + + + Indian Arts and Crafts Board + + + + + Interagency Alternative Dispute Resolution Working Group + + + + + Inter-American Foundation + + + + + International Broadcasting Bureau + + + + + Interagency Council on Homelessness + + + + + Interstate Commission on the Potomac River Basin + + + + + Illinois and Michigan Canal National Heritage Corridor Commission + + + + + Institute of Museum and Library Services + + + + + United States International Trade Commission + + + + + Joint Board for the Enrollment of Actuaries + + + + + Joint Fire Science Program + + + + + James Madison Memorial Fellowship Foundation + + + + + Japan-United States Friendship Commission + + + + + J. William Fulbright Foreign Scholarship Board + + + + + Legal Services Corporation + + + + + Migratory Bird Conservation Commission + + + + + Millennium Challenge Corporation + + + + + Morris K. Udall Foundation: Scholarship and Excellence in National Environmental Policy + + + + + Marine Mammal Commission + + + + + Mississippi River Commission + + + + + Merit Systems Protection Board + + + + + National Archives and Records Administration + + + + + National Aeronautics and Space Administration + + + + + National Bipartisan Commission on the Future of Medicare + + + + + National Council on Disability + + + + + National Commission on Fiscal Responsibility and Reform + + + + + National Capital Planning Commission + + + + + National Credit Union Administration + + + + + National Endowment for the Arts + + + + + National Endowment for the Humanities + + + + + National Geospatial-Intelligence Agency + + + + + National Indian Gaming Commission + + + + + National Labor Relations Board + + + + + National Mediation Board + + + + + National Park Foundation + + + + + Northwest Power Planning Council + + + + + Nuclear Regulatory Commission + + + + + National Reconnaissance Office + + + + + National Security Agency + + + + + National Science Foundation + + + + + National Transportation Safety Board + + + + + Nuclear Waste Technical Review Board + + + + + Office of Government Ethics + + + + + Office of Management and Budget + + + + + Office of the National Counterintelligence Executive + + + + + Overseas Private Investment Corporation + + + + + Office of Personnel Management + + + + + Office of Special Counsel + + + + + Occupational Safety and Health Review Commission + + + + + Office of the Vice President + + + + + Pension Benefit Guaranty Corporation + + + + + Panama Canal Commission + + + + + Peace Corps + + + + + Postal Regulatory Commission + + + + + Presidio Trust + + + + + Regulatory Information Service Center + + + + + Railroad Retirement Board + + + + + Small Business Administration + + + + + Securities and Exchange Commission + + + + + State Justice Institute + + + + + Smithsonian Institution + + + + + Susquehanna River Basin Commission + + + + + Social Security Administration + + + + + Social Security Advisory Board + + + + + Selective Service System + + + + + Department of State + + + + + Taxpayer Advocacy Panel + + + + + U.S. Trade and Development Agency + + + + + Department of the Treasury + + + + + Tennessee Valley Authority + + + + + US Army + + + + + US Air Force + + + + + United States Agency for International Development + + + + + U.S. AbilityOne Commission + + + + + US Coast Guard + + + + + Department of Agriculture + + + + + United States Institute of Peace + + + + + US Marine Corps + + + + + US Navy + + + + + United States Postal Service + + + + + United States Office of the Trade Representative + + + + + United States Mission to the United Nations + + + + + Department of Veterans Affairs + + + + + Veterans Day National Committee + + + + + Vietnam Educational Foundation + + + + + White House Commission on Presidential Scholars: Presidential Scholars Program + + + + + White House Military Office + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/USAgency.xsd b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/USAgency.xsd new file mode 100644 index 0000000000..fa3efc2edf --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/Schema/USAgency/USAgency.xsd @@ -0,0 +1,195 @@ + + + + + + Intelligence Community + Technical Specification CVE Encoding Specification for US Agency Acronyms + (USAgency.CES) + + + + Notices + Distribution Notice: + This document has been approved for Public Release and is available for use without restriction. + + + + + Description + W3C XML Schema for the CVE + Encoding Specification for US Agency Acronyms (USAgency.CES). + + + Introduction + This XML Schema file is one + component of the CVE Encoding Specification (CES). Please see the document titled + CVE Encoding + Specification for US Agency Acronyms + for a complete description of the encoding as well as list of all + components. + It is envisioned that this + schema or its components, as well as other parts of the CES may be overridden for + localized implementations. Therefore, permission to use, copy, modify and distribute + this XML Schema and the other parts of the CES for any purpose is hereby granted in + perpetuity. + Please reference the preceding + two paragraphs in all copies or variations. The developers make no representation + about the suitability of the schema or CES for any purpose. It is provided "as is" + without expressed or implied warranty. + If you modify this XML Schema + in any way label your schema as a variant of USAgency.CES. + Please direct all questions, + bug reports,or suggestions for changes to the points of contact identified in the + document referenced above. + + + Implementation Notes + No implementation notes at this + time. + + + Creators + Office of the Director of + National Intelligence Intelligence Community Chief Information Officer + + + + + + + + + + + + + The version number of the specification. + This attribute is intended for processing systems to determine the appropriate versions of + Schema, Schematron, and CVE values for validation and interpretation of an instance document. + + If there are multiple of this attribute + specified in an instance document, the first one in document order is the one that will + apply to the entire document. Document order is + defined in https://www.w3.org/TR/xpath-datamodel/#document-order + + + + + + + + + + + + + + An element limited to + allowable agency acronyms for USA. + + + + + + + + An attribute limited to + allowable agency acronyms for USA. + + + + + + + + An element limited to + allowable agency acronyms for USA. + + + + + + + + An attribute limited to + allowable agency acronyms for USA. + + + + + + + Formal Change List + + Change History + + + Version + Date + By + Description + + + + + 1 + 2013-05-07 + Clay, ODNI/CIO/ME/DIA + + + Initial + release of this module + + + + + 2014-SEP + 2014-09-16 + Hodges, ODNI/CIO/ME + + + No change + to XSD. + + + + + 2015-FEB + 2015-02-23 + ODNI/IAD + + + No change + to XSD. + + + + + 2016-SEP + 2016-02-17 + ODNI/IC CIO/IAD + + + The schema + change logs will no longer be maintained as of the 2016-SEP + release. The existing change logs will only serve as legacy + information. For changes to schema as of and after 2016-SEP, + reference the change history in the CES. + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-ClassDeclass.xsl b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-ClassDeclass.xsl new file mode 100644 index 0000000000..402a4f86ac --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-ClassDeclass.xsl @@ -0,0 +1,604 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | + + + + + + + + + + + + + + + + + + + + + + ( WARNING! This document does not contain a required overall classification marking. ) + + + + + ( WARNING! This document contains overall markings for both an unclassified and a classified document. ) + + + + + ( WARNING! This document does not contain required markings for either an originally or derivatively classified document. ) + + + + + + + + + ( WARNING! This document contains markings for both an originally and derivatively classified document. ) + + + + + ( WARNING! The reason for the classification decision should be specified for an originally classified document. ) + + + + + ( WARNING! This document does not contain required declassification instructions or markings. ) + + + + + ( WARNING! A declassification date or event should be specified for a document with a 25X or 50X declassification exemption, unless the document has a declassification exemption of 25X1-human, 50X1-HUM, 50X2-WMD, AEA, or NATO. ) + + + + + + + Not Applicable to RD/FRD/TFNI portions. See source list for NSI portions. + + + Not Applicable to NATO portions. See source list for NSI portions. + + + Not Applicable to RD/FRD/TFNI and NATO portions. See source list for NSI portions. + + + + + + + + + , + + + + + + + + , + + + or + + + + + + + , + + Date of Source: + + + + + + + , + + Source marked + + + + + + + + + + + + + + , + + Source marked + + + + + + + + + + + , Date of Source: + + + + + + + + + + ( WARNING! The exempted source marking should be included when the date of exempted source is specified. ) + + + ( WARNING! The date of exempted source marking should be included when the exempted source marking is specified. ) + + + + + + ( WARNING! This document contains both a declassification date and a declassification exemption of 25X1-human. ) + + + + + ( WARNING! This document contains both a declassification event and a declassification exemption of 25X1-human. ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Classified by: + + + + + Classified by: + + + + Derived from: + + + + + + + + + + + + + + + + + + + + + + + + + + + Reason: + + + + + + + + + + + + + + + + + + + + + + + Declassify on: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-PortionMark.xsl b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-PortionMark.xsl new file mode 100644 index 0000000000..23fe20afd5 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-PortionMark.xsl @@ -0,0 +1,1136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + //JOINT + + + + + + + + + + + + + // + + + + + + + + + + + + + + + + + + + + //CTS + + + //NS + + + //NC + + + //NR + + + //NU + + + + + + + // + + + + + + + + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + + // + + + FGI + + + + + + + + + + + + + + + + + + + + // + + + + + + + + /BALK + + + + /BOHEMIA + + + + + + + + // + + + + + + + /ATOMAL + + + + + + + + //SAR- + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + + + + + + + + //FGI + + + + + + + + + + + + + + + + + + + //FGI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + REL + + + REL TO + + + + + + + + + + + + + + + + + + + + EYES + + + + EYES ONLY + + + + + + + + DISPLAY ONLY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ALPHA BRAVO CHARLIE + DELTA ECHO FOX + GULF HOTEL INDIGO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -SG + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ( + + + + + + + + + + + + + + + + + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-SecurityBanner.xsl b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-SecurityBanner.xsl new file mode 100644 index 0000000000..78791757f6 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/IC-ISM-SecurityBanner.xsl @@ -0,0 +1,1387 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + //FGI + + + // + JOINT + + + + + + + + + + + + + + + //FGI + + + // + + + + + + + + + + + + + + + + + + //COSMIC TOP SECRET + //NATO SECRET + //NATO RESTRICTED + //NATO CONFIDENTIAL + //NATO UNCLASSIFIED + + + + + + // + + + + + + + + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + + // + + + FGI + + + + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + /BALK + + + + /BOHEMIA + + + + + + + + + //SAR- + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + /ATOMAL + + + + + + + + + + + + + + + + + //FGI + + + + + + + + + + + + + + + + + + + //FGI + + + + + + + + + // + + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + //MR + + + + + + + + // + + + + + + + + 01 + + + + + + + + + 01 + + + + + + + + + // + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -SIGMA + + + + + + + - + + + + + + DOD UCNI + DOE UCNI + + + + + + + + + DOD UCNI + DOE UCNI + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SIGMA + + + + RD-SIGMA + + + + FRD-SIGMA + + + + + + + + + + + + + + + + + + + + RD-SIGMA + + + + FRD-SIGMA + + + + + + + + + + + + + + + + + + + + + - + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RSEN + ORCON + IMCON + NOFORN + PROPIN + + + + + + REL + + + + + RELEASABLE TO + + + REL TO + + + + + + + + + + + + + + + + + + + + + + + EYES + + + + + + + + + EYES ONLY + + + + + + + + + LACONIC + DEA SENSITIVE + + DISPLAY ONLY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SPECAT + SENSITIVE INFORMATION + LIMDIS + EXDIS + NODIS + SBU NOFORN + LES NOFORN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ALPHA BRAVO CHARLIE + DELTA ECHO FOX + GULF HOTEL INDIGO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TOP SECRET + SECRET + CONFIDENTIAL + RESTRICTED + UNCLASSIFIED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/nacs.xml b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/nacs.xml new file mode 100644 index 0000000000..0e4012d797 --- /dev/null +++ b/six/modules/c++/six.sidd/conf/schema/SIDD_V3.0.0_ISM-v201609/external/ISM-v201609/XSL/ISM/nacs.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/six/modules/c++/six.sidd/framework.h b/six/modules/c++/six.sidd/framework.h index fe7b7b0744..ce6097d0f7 100644 --- a/six/modules/c++/six.sidd/framework.h +++ b/six/modules/c++/six.sidd/framework.h @@ -3,11 +3,13 @@ // We're building in Visual Studio ... used to control where we get a little bit of config info #define NITRO_PCH 1 +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined #pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified #pragma warning(disable: 4514) // '...': unreferenced inline function has been removed +#pragma warning(disable: 5264) // '...': '...' variable is not used #pragma warning(disable: 26812) // The enum type '...' is unscoped. Prefer '...' over '...' (Enum.3). diff --git a/six/modules/c++/six.sidd/include/six/sidd/DerivedClassification.h b/six/modules/c++/six.sidd/include/six/sidd/DerivedClassification.h index de44993ba3..9d713435c9 100644 --- a/six/modules/c++/six.sidd/include/six/sidd/DerivedClassification.h +++ b/six/modules/c++/six.sidd/include/six/sidd/DerivedClassification.h @@ -19,8 +19,9 @@ * see . * */ -#ifndef __SIX_DERIVED_CLASSIFICATION_H__ -#define __SIX_DERIVED_CLASSIFICATION_H__ +#ifndef SIX_six_sidd_DerivedClassificaton_h_INCLUDED_ +#define SIX_six_sidd_DerivedClassificaton_h_INCLUDED_ +#pragma once #include @@ -39,6 +40,7 @@ namespace sidd * * SIDD 1.0 uses IC ISM v4 * SIDD 2.0 uses IC ISM v13 + * SIDD 3.0 uses IC ISM v201609 * * Compiler-generated copy constructor and assignment operator are sufficient */ @@ -261,4 +263,4 @@ struct DerivedClassification: public Classification }; } } -#endif +#endif // SIX_six_sidd_DerivedClassificaton_h_INCLUDED_ diff --git a/six/modules/c++/six.sidd/include/six/sidd/DerivedData.h b/six/modules/c++/six.sidd/include/six/sidd/DerivedData.h index 818c3572ab..91dd9a95cf 100644 --- a/six/modules/c++/six.sidd/include/six/sidd/DerivedData.h +++ b/six/modules/c++/six.sidd/include/six/sidd/DerivedData.h @@ -19,8 +19,11 @@ * see . * */ -#ifndef __SIX_DERIVED_DATA_H__ -#define __SIX_DERIVED_DATA_H__ +#ifndef SIX_six_sidd_DerivedData_h_INCLUDED_ +#define SIX_six_sidd_DerivedData_h_INCLUDED_ +#pragma once + +#include #include #include @@ -342,4 +345,4 @@ struct DerivedData: public Data }; } } -#endif +#endif // SIX_six_sidd_DerivedData_h_INCLUDED_ diff --git a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLControl.h b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLControl.h index f5a55bfec9..abc832deef 100644 --- a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLControl.h +++ b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLControl.h @@ -22,6 +22,9 @@ #ifndef __SIX_DERIVED_XML_CONTROL_H__ #define __SIX_DERIVED_XML_CONTROL_H__ +#include +#include + #include #include @@ -29,8 +32,42 @@ namespace six { + +// Emphasize that this is for SIDD 3.0.0 +namespace sidd300 +{ + // We have to support two ISM versions with SIDD 3.0 :-( + enum class ISMVersion + { + v201609, // the "newer" version; default + v13, // the "original" version + + current = v201609 + }; + std::string to_string(ISMVersion); // "v201609" or "v13" + + ISMVersion get(ISMVersion defaultIfNotSet); // overloaded on ISMVersion + std::optional set(ISMVersion); // returns previous value, if any + std::optional getISMVersion(); + std::optional clearISMVersion(); // returns previous value, if any + + std::vector find_SIDD_schema_V_files(const std::vector& schemaPaths); +} + namespace sidd { + // six.sidd only currently supports -- + // SIDD 1.0.0 + // SIDD 2.0.0 + // SIDD 3.0.0 + enum class Version + { + v100, + v200, + v300, + }; + std::string to_string(Version); // "v100", "v200", "v300" + /*! * \class DerivedXMLControl * \brief Turns an DerivedData object into XML and vice versa @@ -54,6 +91,9 @@ struct DerivedXMLControl : public XMLControl static std::unique_ptr getParser_(const std::string& strVersion); // for unit-testing + std::unique_ptr fromXML(const xml::lite::Document&, std::optional) const; + std::unique_ptr toXML(const Data&, std::optional) const; + protected: /*! * Returns a new allocated DOM document, created from the DerivedData* @@ -67,9 +107,12 @@ struct DerivedXMLControl : public XMLControl virtual Data* fromXMLImpl(const xml::lite::Document* doc); virtual std::unique_ptr fromXMLImpl(const xml::lite::Document&) const override; + virtual std::unique_ptr validateXMLImpl(const xml::lite::Document&, + const std::vector&, logging::Logger&) const override; + private: std::unique_ptr - getParser(const std::string& strVersion) const; + getParser(Version version, std::optional) const; }; } } diff --git a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser.h b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser.h index f6b8ccc863..6e21d63ec8 100644 --- a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser.h +++ b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser.h @@ -67,11 +67,6 @@ struct DerivedXMLParser : public six::XMLParser DerivedXMLParser(const std::string& version, std::unique_ptr&&, logging::Logger&); -#if !CODA_OSS_cpp17 - DerivedXMLParser(const std::string& version, - mem::auto_ptr comParser, - logging::Logger* log = nullptr, bool ownLog = false); -#endif virtual void parseDerivedClassificationFromXML( const xml::lite::Element* classificationElem, @@ -130,18 +125,22 @@ struct DerivedXMLParser : public six::XMLParser const std::vector& values, const std::string& uri = "", bool setIfEmpty = false); + static void setAttributeList(xml::lite::Element&, const std::string& attributeName, const std::vector& values, const xml::lite::Uri&, + bool setIfEmpty = false); static void setAttributeIfNonEmpty(XMLElem element, const std::string& name, const std::string& value, const std::string& uri = ""); + static void setAttributeIfNonEmpty(xml::lite::Element&, const std::string& name, const std::string& value, const xml::lite::Uri&); static void setAttributeIfNonEmpty(XMLElem element, const std::string& name, six::BooleanType value, const std::string& uri = ""); + static void setAttributeIfNonEmpty(xml::lite::Element&, const std::string& name, six::BooleanType value, const xml::lite::Uri&); static void setAttributeIfNonNull(XMLElem element, @@ -217,7 +216,7 @@ struct DerivedXMLParser : public six::XMLParser DownstreamReprocessing* downstreamReproc) const; void parseDownstreamReprocessingFromXML(const xml::lite::Element&, DownstreamReprocessing&) const; Remap* parseRemapChoiceFromXML(const xml::lite::Element* remapInformationElem) const; - mem::auto_ptr parseSingleLUT(const xml::lite::Element* elem) const; + std::unique_ptr parseSingleLUT(const xml::lite::Element* elem) const; void parseDisplayFromXML(const xml::lite::Element* displayElem, Display* display) const; virtual void parseMeasurementFromXML(const xml::lite::Element* measurementElem, Measurement* measurement) const; diff --git a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser100.h b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser100.h index 99665e87e1..4de6f8ea67 100644 --- a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser100.h +++ b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser100.h @@ -29,7 +29,7 @@ namespace six { namespace sidd { -class DerivedXMLParser100 : public DerivedXMLParser +class DerivedXMLParser100 final : public DerivedXMLParser { public: DerivedXMLParser100(logging::Logger* log = nullptr, @@ -73,9 +73,6 @@ class DerivedXMLParser100 : public DerivedXMLParser XMLElem parent = nullptr) const; private: - static const char VERSION[]; - static const char SI_COMMON_URI[]; - static const char ISM_URI[]; XMLElem convertGeographicTargetToXML(const GeographicAndTarget& g, XMLElem parent = nullptr) const; diff --git a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser200.h b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser200.h index 618bfbb33e..b282d71123 100644 --- a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser200.h +++ b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser200.h @@ -20,8 +20,9 @@ * */ -#ifndef __SIX_SIDD_DERIVED_XML_PARSER_200_H__ -#define __SIX_SIDD_DERIVED_XML_PARSER_200_H__ +#ifndef SIX_six_sidd_DerivedXMLParser200_h_INCLUDED_ +#define SIX_six_sidd_DerivedXMLParser200_h_INCLUDED_ +#pragma once #include #include @@ -30,7 +31,7 @@ namespace six { namespace sidd { -struct DerivedXMLParser200 : public DerivedXMLParser +struct DerivedXMLParser200 final : public DerivedXMLParser { DerivedXMLParser200(logging::Logger* log = nullptr, bool ownLog = false); @@ -61,7 +62,7 @@ struct DerivedXMLParser200 : public DerivedXMLParser const GeoDataBase&, xml::lite::Element& parent); static xml::lite::Element& convertDerivedClassificationToXML(const DerivedXMLParser&, - const DerivedClassification&, xml::lite::Element& parent); + const DerivedClassification&, const xml::lite::Uri& ismUri, xml::lite::Element& parent); static xml::lite::Element& convertMeasurementToXML(const DerivedXMLParser&, const Measurement&, xml::lite::Element& parent); @@ -120,9 +121,6 @@ struct DerivedXMLParser200 : public DerivedXMLParser XMLElem parent = nullptr) const override; private: - static const char VERSION[]; - static const char SI_COMMON_URI[]; - static const char ISM_URI[]; static xml::lite::Element& convertLookupTableToXML(const DerivedXMLParser&, const std::string& name, const LookupTable&, xml::lite::Element& parent); @@ -194,10 +192,10 @@ struct DerivedXMLParser200 : public DerivedXMLParser void parseLookupTableFromXML(const xml::lite::Element* lookupElem, LookupTable& lookupTable) const; - mem::auto_ptr parseSingleLUT(const xml::lite::Element* elem, + std::unique_ptr parseSingleLUT(const xml::lite::Element* elem, size_t size) const; }; } } -#endif +#endif // SIX_six_sidd_DerivedXMLParser200_h_INCLUDED_ diff --git a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser300.h b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser300.h index bd5ccdf792..9eeeb5ef36 100644 --- a/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser300.h +++ b/six/modules/c++/six.sidd/include/six/sidd/DerivedXMLParser300.h @@ -26,6 +26,7 @@ #include #include +#include namespace six { @@ -34,7 +35,7 @@ namespace sidd struct DerivedXMLParser300 final : public DerivedXMLParser { //DerivedXMLParser300(std::unique_ptr&&); - DerivedXMLParser300(logging::Logger&); + DerivedXMLParser300(logging::Logger&, six::sidd300::ISMVersion); DerivedXMLParser300(const DerivedXMLParser300&) = delete; DerivedXMLParser300& operator=(const DerivedXMLParser300&) = delete; DerivedXMLParser300(DerivedXMLParser300&&) = delete; @@ -46,7 +47,18 @@ struct DerivedXMLParser300 final : public DerivedXMLParser DerivedData* fromXML(const xml::lite::Document* doc) const override; std::unique_ptr fromXML(const xml::lite::Document&) const override; + six::sidd300::ISMVersion getISMVersion() const + { + return mISMVersion; + } + void setISMVersion(six::sidd300::ISMVersion value) + { + mISMVersion = value; + } + private: + six::sidd300::ISMVersion mISMVersion = six::sidd300::ISMVersion::current; + XMLElem convertDerivedClassificationToXML(const DerivedClassification&, XMLElem parent = nullptr) const override; void parseDerivedClassificationFromXML(const xml::lite::Element* classificationElem, DerivedClassification&) const override; diff --git a/six/modules/c++/six.sidd/include/six/sidd/Utilities.h b/six/modules/c++/six.sidd/include/six/sidd/Utilities.h index e44b9843f6..91b495b486 100644 --- a/six/modules/c++/six.sidd/include/six/sidd/Utilities.h +++ b/six/modules/c++/six.sidd/include/six/sidd/Utilities.h @@ -43,13 +43,13 @@ class Utilities // for all projection types static scene::SideOfTrack getSideOfTrack(const DerivedData* derived); - static mem::auto_ptr + static std::unique_ptr getSceneGeometry(const DerivedData* derived); - static mem::auto_ptr + static std::unique_ptr getGridGeometry(const DerivedData* derived); - static mem::auto_ptr + static std::unique_ptr getGridECEFTransform(const DerivedData* derived); static void setProductValues(Poly2D timeCOAPoly, PolyXYZ arpPoly, @@ -71,7 +71,7 @@ class Utilities static std::pair convertDualPolarization(six::DualPolarizationType pol); - static mem::auto_ptr + static std::unique_ptr getProjectionModel(const DerivedData* data); @@ -81,7 +81,7 @@ class Utilities * * \return mock DerivedData object */ - static mem::auto_ptr createFakeDerivedData(); + static std::unique_ptr createFakeDerivedData(); static std::unique_ptr createFakeDerivedData(const std::string& strVersion); @@ -95,7 +95,7 @@ class Utilities * * \return Data representation of 'xmlStr' */ - static mem::auto_ptr parseData( + static std::unique_ptr parseData( ::io::InputStream& xmlStream, const std::vector& schemaPaths, logging::Logger& log); @@ -112,7 +112,7 @@ class Utilities * * \return Data representation of the contents of 'pathname' */ - static mem::auto_ptr parseDataFromFile( + static std::unique_ptr parseDataFromFile( const std::string& pathname, const std::vector& schemaPaths, logging::Logger& log); @@ -128,7 +128,7 @@ class Utilities * * \return Data representation of 'xmlStr' */ - static mem::auto_ptr parseDataFromString( + static std::unique_ptr parseDataFromString( const std::string& xmlStr, const std::vector& schemaPaths, logging::Logger& log); diff --git a/six/modules/c++/six.sidd/six.sidd.vcxproj b/six/modules/c++/six.sidd/six.sidd.vcxproj index fae805383d..5f170397e3 100644 --- a/six/modules/c++/six.sidd/six.sidd.vcxproj +++ b/six/modules/c++/six.sidd/six.sidd.vcxproj @@ -15,6 +15,7 @@ Win32Proj {DDC587C2-53BA-44A9-94E7-07BE52AF3D0B} six + 10.0 @@ -63,6 +64,7 @@ ProgramDatabase Guard EnableAllWarnings + stdc11 @@ -87,6 +89,7 @@ true AdvancedVectorExtensions2 MultiThreadedDLL + stdc11 @@ -128,6 +131,9 @@ + + conf\schema\SIDD_schema_V3.0.0.xsd + @@ -169,6 +175,12 @@ {62aad4dd-35ba-41a0-8263-1f4dfd755689} + + + true + true + + diff --git a/six/modules/c++/six.sidd/six.sidd.vcxproj.filters b/six/modules/c++/six.sidd/six.sidd.vcxproj.filters index 87a7b687f3..94760dee6c 100644 --- a/six/modules/c++/six.sidd/six.sidd.vcxproj.filters +++ b/six/modules/c++/six.sidd/six.sidd.vcxproj.filters @@ -192,4 +192,9 @@ Source Files + + + Resource Files + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/source/DerivedClassification.cpp b/six/modules/c++/six.sidd/source/DerivedClassification.cpp index 9ce412f753..5c0eb865ae 100644 --- a/six/modules/c++/six.sidd/source/DerivedClassification.cpp +++ b/six/modules/c++/six.sidd/source/DerivedClassification.cpp @@ -90,7 +90,7 @@ void DerivedClassification::setSecurity(const std::string& prefix, if (declassDate.get() != nullptr) { std::string declassDateStr; - declassDate->format("%Y%m%d", declassDateStr); + declassDate->format("%Y%m%d", declassDateStr); // note: timezone is explicitly excluded in ISM-201609 str::trim(declassDateStr); security.getDeclassificationDate().set(declassDateStr); diff --git a/six/modules/c++/six.sidd/source/DerivedXMLControl.cpp b/six/modules/c++/six.sidd/source/DerivedXMLControl.cpp index 1569940db7..3c9c0de56b 100644 --- a/six/modules/c++/six.sidd/source/DerivedXMLControl.cpp +++ b/six/modules/c++/six.sidd/source/DerivedXMLControl.cpp @@ -23,6 +23,11 @@ #include #include +#include +#include +#include + +#include #include @@ -34,7 +39,7 @@ namespace { -std::string normalizeVersion(const std::string& strVersion) +six::sidd::Version normalizeVersion(const std::string& strVersion) { std::vector versionParts; six::XMLControl::splitVersion(strVersion, versionParts); @@ -48,10 +53,36 @@ std::string normalizeVersion(const std::string& strVersion) #pragma warning(push) #pragma warning(disable: 4365) // '...': conversion from '...' to '...', signed/unsigned mismatch #endif - return str::join(versionParts, ""); + const auto normalizedVersion = str::join(versionParts, ""); #if _MSC_VER #pragma warning(pop) #endif + + // six.sidd only currently supports -- + // SIDD 1.0.0 + // SIDD 2.0.0 + // SIDD 3.0.0 + if (normalizedVersion == "100") + { + return six::sidd::Version::v100; + } + if (normalizedVersion == "200") + { + return six::sidd::Version::v200; + } + if (normalizedVersion == "300") + { + return six::sidd::Version::v300; + } + + if (normalizedVersion == "110") + { + throw except::Exception(Ctxt( + "SIDD Version 1.1.0 does not exist. Did you mean 2.0.0 instead?" + )); + } + + throw except::Exception(Ctxt("Unsupported SIDD Version: " + strVersion)); } } @@ -59,11 +90,23 @@ namespace six { namespace sidd { + std::string to_string(Version siddVersion) + { + switch (siddVersion) + { + case Version::v100: return "v100"; + case Version::v200: return "v200"; + case Version::v300: return "v300"; + default: break; + } + throw std::logic_error("Unkown 'Version' value."); + } + const six::DataType DerivedXMLControl::dataType = six::DataType::DERIVED; -DerivedXMLControl::DerivedXMLControl(logging::Logger* log, bool ownLog) : XMLControl(log, ownLog) { } -DerivedXMLControl::DerivedXMLControl(std::unique_ptr&& log) : XMLControl(std::move(log)) { } -DerivedXMLControl::DerivedXMLControl(logging::Logger& log) : XMLControl(log) { } +DerivedXMLControl::DerivedXMLControl(logging::Logger* log, bool ownLog) : XMLControl(log, ownLog) {} +DerivedXMLControl::DerivedXMLControl(std::unique_ptr&& log) : XMLControl(std::move(log)) {} +DerivedXMLControl::DerivedXMLControl(logging::Logger& log) : XMLControl(log) {} Data* DerivedXMLControl::fromXMLImpl(const xml::lite::Document* doc) { @@ -72,7 +115,190 @@ Data* DerivedXMLControl::fromXMLImpl(const xml::lite::Document* doc) } std::unique_ptr DerivedXMLControl::fromXMLImpl(const xml::lite::Document& doc) const { - return getParser(getVersionFromURI(&doc))->fromXML(doc); + const auto ismVersion = six::sidd300::get(six::sidd300::ISMVersion::current); + return fromXML(doc, ismVersion); +} +std::unique_ptr DerivedXMLControl::fromXML(const xml::lite::Document& doc, std::optional ismVersion) const +{ + const auto siddVersion= normalizeVersion(getVersionFromURI(&doc)); + return getParser(siddVersion, ismVersion)->fromXML(doc); +} + +// Is this SIDD 3.0 XML? +static bool has_sidd300_attribute(const xml::lite::Element& element) +{ + static const xml::lite::Uri sidd300("urn:SIDD:3.0.0"); + const auto predicate = [&](const auto& attribute) { + const xml::lite::Uri uriValue(attribute.getValue()); + return (uriValue == sidd300) && (attribute.getLocalName() == "xmlns"); + }; + auto&& attributes = element.getAttributes(); + return std::any_of(attributes.begin(), attributes.end(), predicate); +} + +static bool is_sidd300(const xml::lite::Document& doc) +{ + auto&& rootElement = getRootElement(doc); + + // In the XML: + if (rootElement.getLocalName() != "SIDD") + { + return false; + } + + return has_sidd300_attribute(rootElement); +} + +// Return the ISM Uri, if any +static auto has_ism_attribute(const xml::lite::Element& element) +{ + static const xml::lite::Uri xmlns("http://www.w3.org/2000/xmlns/"); + static const xml::lite::Uri ism_201609("urn:us:gov:ic:ism:201609"); + static const xml::lite::Uri ism_13("urn:us:gov:ic:ism:13"); + + // In the XML (SIDD or XSD): <... xmlns:ism="urn:us:gov:ic:ism:201609" ...> + xml::lite::Uri retval; + const auto predicate = [&](const auto& attribute) { + xml::lite::Uri uri; + attribute.getUri(uri); + if (uri != xmlns) + return false; + + const xml::lite::Uri uriValue(attribute.getValue()); + if ((uriValue == ism_201609) || (uriValue == ism_13)) + { + retval = uriValue; + return true; + } + return false; + }; + + auto&& attributes = element.getAttributes(); + std::ignore = std::any_of(attributes.begin(), attributes.end(), predicate); // using `retval`, not the result of any_of() + return retval; +} + +// Is this the XSD for the ISM of interest? +static auto xsd_has_ism(const std::filesystem::path& xsd, const xml::lite::Uri& xml_ism) +{ + if (xml_ism.empty()) + { + throw std::invalid_argument("'xml_ism' is empty()"); + } + + io::FileInputStream xsdStream(xsd); + six::MinidomParser xsdParser; + xsdParser.parse(xsdStream); + auto&& rootElement = getRootElement(getDocument(xsdParser)); + + // In the XSD: + if (!has_sidd300_attribute(rootElement)) + { + return false; + } + + // In the XSD: + const auto uriValue = has_ism_attribute(rootElement); + return uriValue == xml_ism; +} + +static auto find_SIDD_xsd_files(const std::vector& xsdFiles) +{ + // Parsing each XSD can be time-consuming; use a few heuristics to try to minmize. + std::vector retval; + for (auto&& xsd : xsdFiles) + { + static const std::string SIDD_schema_prefix = "SIDD_schema_V"; // e.g., "SIDD_schema_V3.0.0" + if (str::starts_with(xsd.stem().string(), SIDD_schema_prefix)) + { + // We could remove this entry from `xsdFiles` too, but 1) it's an added complication, and + // 2) make this routine less thread-friendly. + retval.push_back(xsd); + } + } + return retval; +} + +static auto get_SIX_SIDD300_schema_dir() +{ + // If this enviroment variable is set, assume the caller as worked everything out. + static const std::string envName = "SIX_SIDD300_SCHEMA_DIR"; // a single directory, not a search path + + static const sys::OS os; + std::string result; + os.getEnvIfSet(envName, result); // Don't cache this result; it could change while running. + return std::filesystem::path(result); +} + +// Try to find a XSD which can validate this XML; this is needed for SIDD 3.0 +// because we have to support two versions of ISM. +static auto find_xsd_path(const xml::lite::Element& rootElement, const std::vector& schemaPaths) +{ + // In the XML: + const auto xml_ism = has_ism_attribute(rootElement); + if (xml_ism.empty()) + { + return std::filesystem::path{}; + } + + // Process the schemaPaths one at a time to avoid traversing so many directories at once. + for (auto&& schemaPath : schemaPaths) + { + const std::vector schemaPaths_{ schemaPath }; // use one path at a time + const auto xsd_files = xml::lite::Validator::loadSchemas(schemaPaths_); + + // Try anything that looks like a SIDD schema first; this is to avoid + // loading XSDs that "obviously" won't work. + const auto sidd_xsd_files = find_SIDD_xsd_files(xsd_files); + for (auto&& xsd : sidd_xsd_files) + { + if (xsd_has_ism(xsd, xml_ism)) + { + return xsd; + } + } + + // Yeah, this will do some of the above over again ... does it matter? + for (auto&& xsd : xsd_files) + { + if (xsd_has_ism(xsd, xml_ism)) + { + return xsd; + } + } + } + + return std::filesystem::path{}; +} + +std::unique_ptr DerivedXMLControl::validateXMLImpl(const xml::lite::Document& doc, + const std::vector& schemaPaths_, logging::Logger& log) const +{ + auto schemaPaths = schemaPaths_; + + // If this enviroment variable is set, assume the caller as worked everything out ... + auto result = get_SIX_SIDD300_schema_dir(); + if (!result.empty() && is_sidd300(doc)) + { + // ... but only for SIDD 3.0 XML + schemaPaths.clear(); + schemaPaths.emplace_back(std::move(result)); + return validateXMLImpl_(doc, schemaPaths, log); + } + + // Otherwise (i.e., not very special SIDD 3.0 case, above), try to find the XSD which will vallidate this XML. + // This is needed because downstream code finds all the XSDs in the schemaPaths; that normally wouldn't + // be a problem but there are now two SIDD 3.0 XSDs: one for ISM-v13 and another for ISM-v201609. + // Both claim to be SIDD 3.0, but that "can't" be the case; by finding a corresponding XSD up-front + // errors from validateXMLImpl_() are (hopefully) eliminated (other than real validation errors, of course). + const auto path = find_xsd_path(getRootElement(doc), schemaPaths_); + if (!path.empty()) + { + // We now know this is a good path, put it at the beginning of the search path so that + // subsequent validation will use it first. + schemaPaths.insert(schemaPaths.begin(), path.parent_path()); + } + return validateXMLImpl_(doc, schemaPaths, log); } xml::lite::Document* DerivedXMLControl::toXMLImpl(const Data* data) @@ -82,53 +308,151 @@ xml::lite::Document* DerivedXMLControl::toXMLImpl(const Data* data) } std::unique_ptr DerivedXMLControl::toXMLImpl(const Data& data) const { - if (data.getDataType() != DataType::DERIVED) + const auto ismVersion = six::sidd300::get(six::sidd300::ISMVersion::current); + return toXML(data, ismVersion); +} +std::unique_ptr DerivedXMLControl::toXML(const Data& data, std::optional ismVersion) const +{ + if (data.getDataType() == DataType::DERIVED) { - throw except::Exception(Ctxt("Data must be SIDD")); + if (auto pDerivedData = dynamic_cast(&data)) + { + const auto siddVersion = normalizeVersion(data.getVersion()); + auto parser = getParser(siddVersion, ismVersion); + return parser->toXML(*pDerivedData); + } } - - auto parser = getParser(data.getVersion()); - return parser->toXML(dynamic_cast(data)); + throw except::Exception(Ctxt("Data must be SIDD")); } std::unique_ptr -DerivedXMLControl::getParser(const std::string& strVersion) const -{ - const std::string normalizedVersion = normalizeVersion(strVersion); - +DerivedXMLControl::getParser(Version normalizedVersion, std::optional ismVersion) const +{ // six.sidd only currently supports -- // SIDD 1.0.0 // SIDD 2.0.0 // SIDD 3.0.0 - if (normalizedVersion == "100") + if (normalizedVersion == Version::v100) { return std::make_unique(mLog); } - if (normalizedVersion == "200") + if (normalizedVersion == Version::v200) { return std::make_unique(mLog); } - if (normalizedVersion == "300") + if (normalizedVersion == Version::v300) { - return std::make_unique(getLogger()); + if (!ismVersion.has_value()) + { + throw except::Exception(Ctxt("Must specify ISMVersion for SIDD 3.0.0")); + } + return std::make_unique(getLogger(), *ismVersion); } - if (normalizedVersion == "110") + throw except::Exception(Ctxt("Unsupported SIDD Version: " + to_string(normalizedVersion))); +} + +std::unique_ptr DerivedXMLControl::getParser_(const std::string& strVersion) +{ + const auto siddVersion = normalizeVersion(strVersion); + const auto ismVersion = six::sidd300::get(six::sidd300::ISMVersion::current); + return DerivedXMLControl().getParser(siddVersion, ismVersion); +} + +} +} + +// Percolating ISMVersion everywhere is a nusiance as several APIs will be touched, even if it is +// to add a default parameter. Doing that doesn't make much sense for an arbitrary +// `XMLControl` class (the base class for `DerivedXMLControl`)), and even here (in SIDD) it +// only makes sense for SIDD 3.0. Yes, this is a bit messy too; but it stops (or slows) +// ISMVersion from spreading too much. +// +// Try to make this easy for clients by providing several ways to access this functionality ... +// while trying not to make things messier than they already are. + +static std::optional getISMVersionFromEnv() +{ + static const std::string envName = "SIX_SIDD300_ISM_VERSION"; // set to `201609` or `13` + + static const sys::OS os; + std::string result; + if (os.getEnvIfSet(envName, result)) // Don't cache this result; it could change while running. { - throw except::Exception(Ctxt( - "SIDD Version 1.1.0 does not exist. " - "Did you mean 2.0.0 instead?" - )); + if (result == "13") + { + return six::sidd300::ISMVersion::v13; + } + if (result == "201609") + { + return six::sidd300::ISMVersion::v201609; + } } - throw except::Exception(Ctxt("Unsupported SIDD Version: " + strVersion)); + return std::optional{}; } -std::unique_ptr DerivedXMLControl::getParser_(const std::string& strVersion) +static std::optional s_setISMVersion; +std::optional six::sidd300::getISMVersion() { - return DerivedXMLControl().getParser(strVersion); -} + // Try the environment variable first as that can be managed outside of C++ + const auto ismVersionFromEnv = getISMVersionFromEnv(); + if (ismVersionFromEnv.has_value()) + { + return *ismVersionFromEnv; + } + // Then our global (static) variable; normally this won't be set + return s_setISMVersion; +} +six::sidd300::ISMVersion six::sidd300::get(ISMVersion defaultIfNotSet) +{ + // Try getting something from the runtime enviroment ... + const auto ismVersion = getISMVersion(); + if (ismVersion.has_value()) + { + return *ismVersion; + } + // ... nothing; use the the default value + return defaultIfNotSet; +} +std::optional six::sidd300::set(ISMVersion value) // returns previous value, if any +{ + auto retval = s_setISMVersion; + s_setISMVersion = value; + return retval; } +std::optional six::sidd300::clearISMVersion() // returns previous value, if any +{ + auto retval = s_setISMVersion; + s_setISMVersion.reset(); + return retval; +} + +std::string six::sidd300::to_string(ISMVersion value) +{ + switch (value) + { + case ISMVersion::v201609: return "v201609"; + case ISMVersion::v13: return "v13"; + default: break; + } + throw std::invalid_argument("Unknown 'ISMVersion' value."); +}; + +// Find all the XSDs that look like they may be SIDD schemas, e.g., SIDD_schema_V3.0.0.xsd +std::vector six::sidd300::find_SIDD_schema_V_files(const std::vector& schemaPaths_) +{ + auto schemaPaths = schemaPaths_; + // If this enviroment variable is set, assume the caller as worked everything out ... + auto result = six::sidd::get_SIX_SIDD300_schema_dir(); + if (!result.empty()) + { + schemaPaths.clear(); + schemaPaths.push_back(std::move(result)); + } + + const auto xsd_files = xml::lite::Validator::loadSchemas(schemaPaths); + return six::sidd::find_SIDD_xsd_files(xsd_files); } diff --git a/six/modules/c++/six.sidd/source/DerivedXMLParser.cpp b/six/modules/c++/six.sidd/source/DerivedXMLParser.cpp index 1242c7284f..34594a106c 100644 --- a/six/modules/c++/six.sidd/source/DerivedXMLParser.cpp +++ b/six/modules/c++/six.sidd/source/DerivedXMLParser.cpp @@ -56,17 +56,6 @@ DerivedXMLParser::DerivedXMLParser(const std::string& strVersion, logging::Logger& log) : XMLParser(versionToURI(strVersion), false, log), mCommon(std::move(comParser)) { } -#if !CODA_OSS_cpp17 -DerivedXMLParser::DerivedXMLParser( - const std::string& strVersion, - mem::auto_ptr comParser, - logging::Logger* log, - bool ownLog) : - DerivedXMLParser(strVersion, std::unique_ptr(comParser.release()), log, ownLog) -{ -} -#endif - void DerivedXMLParser::getAttributeList( const xml::lite::Attributes& attributes, const std::string& attributeName, @@ -209,6 +198,11 @@ void DerivedXMLParser::setAttributeList( setAttribute(element, attributeName, value, uri); } } +void DerivedXMLParser::setAttributeList(xml::lite::Element& element, const std::string& attributeName, const std::vector& values, const xml::lite::Uri& uri, + bool setIfEmpty) +{ + setAttributeList(&element, attributeName, values, uri.value, setIfEmpty); +} void DerivedXMLParser::setAttributeIfNonEmpty(XMLElem element, const std::string& name, @@ -220,6 +214,16 @@ void DerivedXMLParser::setAttributeIfNonEmpty(XMLElem element, setAttribute(element, name, value, uri); } } +void DerivedXMLParser::setAttributeIfNonEmpty(xml::lite::Element& element, + const std::string& name, + const std::string& value, + const xml::lite::Uri& uri) +{ + if (!value.empty()) + { + setAttribute(element, name, value, uri); + } +} void DerivedXMLParser::setAttributeIfNonEmpty(XMLElem element, const std::string& name, @@ -231,6 +235,16 @@ void DerivedXMLParser::setAttributeIfNonEmpty(XMLElem element, setAttribute(element, name, value == BooleanType::IS_TRUE ? "true" : "false", uri); } } +void DerivedXMLParser::setAttributeIfNonEmpty(xml::lite::Element& element, + const std::string& name, + BooleanType value, + const xml::lite::Uri& uri) +{ + if (!Init::isUndefined(value)) + { + setAttribute(element, name, value == BooleanType::IS_TRUE ? "true" : "false", uri); + } +} void DerivedXMLParser::setAttributeIfNonNull(XMLElem element, const std::string& name, @@ -482,7 +496,7 @@ Remap* DerivedXMLParser::parseRemapChoiceFromXML( } } -mem::auto_ptr DerivedXMLParser::parseSingleLUT(const xml::lite::Element* elem) const +std::unique_ptr DerivedXMLParser::parseSingleLUT(const xml::lite::Element* elem) const { //get size attribute const auto size = str::toType(const_cast(elem)->attribute("size")); @@ -490,7 +504,7 @@ mem::auto_ptr DerivedXMLParser::parseSingleLUT(const xml::lite::Element* el std::string lutStr = ""; parseString(elem, lutStr); std::vector lutVals = str::split(lutStr, " "); - mem::auto_ptr lut(new LUT(size, sizeof(short))); + std::unique_ptr lut(new LUT(size, sizeof(short))); for (size_t ii = 0; ii < lutVals.size(); ++ii) { diff --git a/six/modules/c++/six.sidd/source/DerivedXMLParser100.cpp b/six/modules/c++/six.sidd/source/DerivedXMLParser100.cpp index 89a5f1aaa1..93d658e891 100644 --- a/six/modules/c++/six.sidd/source/DerivedXMLParser100.cpp +++ b/six/modules/c++/six.sidd/source/DerivedXMLParser100.cpp @@ -34,9 +34,13 @@ namespace six { namespace sidd { -const char DerivedXMLParser100::VERSION[] = "1.0.0"; -const char DerivedXMLParser100::SI_COMMON_URI[] = "urn:SICommon:0.1"; -const char DerivedXMLParser100::ISM_URI[] = "urn:us:gov:ic:ism"; +const char VERSION[] = "1.0.0"; +const char SI_COMMON_URI[] = "urn:SICommon:0.1"; +const char ISM_URI[] = "urn:us:gov:ic:ism"; +inline static xml::lite::Uri getISMUri() +{ + return xml::lite::Uri(ISM_URI); +} DerivedXMLParser100::DerivedXMLParser100(logging::Logger* log, bool ownLog) : @@ -175,116 +179,110 @@ XMLElem DerivedXMLParser100::convertDerivedClassificationToXML( const DerivedClassification& classification, XMLElem parent) const { - XMLElem classElem = newElement("Classification", parent); + XMLElem classElem_ = newElement("Classification", parent); + auto& classElem = *classElem_; common().addParameters("SecurityExtension", classification.securityExtensions, - classElem); + classElem_); //! from ism:ISMRootNodeAttributeGroup // SIDD 1.0 is tied to IC-ISM v4 - setAttribute(classElem, "DESVersion", "4", ISM_URI); + setAttribute(classElem_, "DESVersion", "4", ISM_URI); + + const auto ismUri = getISMUri(); //! from ism:ResourceNodeAttributeGroup - setAttribute(classElem, "resourceElement", "true", ISM_URI); + setAttribute(classElem, "resourceElement", "true", ismUri); setAttribute(classElem, "createDate", - classification.createDate.format("%Y-%m-%d"), ISM_URI); + classification.createDate.format("%Y-%m-%d"), ismUri); // optional - setAttributeList(classElem, "compliesWith", classification.compliesWith, - ISM_URI); + setAttributeList(classElem, "compliesWith", classification.compliesWith, ismUri); //! from ism:SecurityAttributesGroup // -- referenced in ism::ResourceNodeAttributeGroup - setAttribute(classElem, "classification", classification.classification, - ISM_URI); - setAttributeList(classElem, "ownerProducer", classification.ownerProducer, - ISM_URI, true); + setAttribute(classElem, "classification", classification.classification, ismUri); + setAttributeList(classElem, "ownerProducer", classification.ownerProducer, ismUri, true); // optional - setAttributeList(classElem, "SCIcontrols", classification.sciControls, - ISM_URI); + setAttributeList(classElem, "SCIcontrols", classification.sciControls, ismUri); // optional - setAttributeList(classElem, "SARIdentifier", classification.sarIdentifier, - ISM_URI); + setAttributeList(classElem, "SARIdentifier", classification.sarIdentifier, ismUri); // optional setAttributeList(classElem, "disseminationControls", classification.disseminationControls, - ISM_URI); + ismUri); // optional - setAttributeList(classElem, "FGIsourceOpen", classification.fgiSourceOpen, - ISM_URI); + setAttributeList(classElem, "FGIsourceOpen", classification.fgiSourceOpen, ismUri); // optional setAttributeList(classElem, "FGIsourceProtected", classification.fgiSourceProtected, - ISM_URI); + ismUri); // optional - setAttributeList(classElem, "releasableTo", classification.releasableTo, - ISM_URI); + setAttributeList(classElem, "releasableTo", classification.releasableTo, ismUri); // optional - setAttributeList(classElem, "nonICmarkings", classification.nonICMarkings, - ISM_URI); + setAttributeList(classElem, "nonICmarkings", classification.nonICMarkings, ismUri); // optional setAttributeIfNonEmpty(classElem, "classifiedBy", classification.classifiedBy, - ISM_URI); + ismUri); // optional setAttributeIfNonEmpty(classElem, "compilationReason", classification.compilationReason, - ISM_URI); + ismUri); // optional setAttributeIfNonEmpty(classElem, "derivativelyClassifiedBy", classification.derivativelyClassifiedBy, - ISM_URI); + ismUri); // optional setAttributeIfNonEmpty(classElem, "classificationReason", classification.classificationReason, - ISM_URI); + ismUri); // optional - setAttributeList(classElem, "nonUSControls", classification.nonUSControls, - ISM_URI); + setAttributeList(classElem, "nonUSControls", classification.nonUSControls, ismUri); // optional setAttributeIfNonEmpty(classElem, "derivedFrom", classification.derivedFrom, - ISM_URI); + ismUri); // optional if (classification.declassDate.get()) { setAttributeIfNonEmpty( classElem, "declassDate", classification.declassDate->format("%Y-%m-%d"), - ISM_URI); + ismUri); } // optional setAttributeIfNonEmpty(classElem, "declassEvent", classification.declassEvent, - ISM_URI); + ismUri); // optional setAttributeIfNonEmpty(classElem, "declassException", classification.declassException, - ISM_URI); + ismUri); // optional setAttributeIfNonEmpty(classElem, "typeOfExemptedSource", classification.exemptedSourceType, - ISM_URI); + ismUri); // optional if (classification.exemptedSourceDate.get()) { setAttributeIfNonEmpty( classElem, "dateOfExemptedSource", classification.exemptedSourceDate->format("%Y-%m-%d"), - ISM_URI); + ismUri); } - return classElem; + return classElem_; } std::unique_ptr DerivedXMLParser100::fromXML(const xml::lite::Document& doc) const { @@ -342,7 +340,7 @@ DerivedXMLParser100::toXML(const DerivedData* derived) const root->setNamespacePrefix("", getDefaultURI()); root->setNamespacePrefix("si", xml::lite::Uri(SI_COMMON_URI)); root->setNamespacePrefix("sfa", xml::lite::Uri(SFA_URI)); - root->setNamespacePrefix("ism", xml::lite::Uri(ISM_URI)); + root->setNamespacePrefix("ism", getISMUri()); return doc; } diff --git a/six/modules/c++/six.sidd/source/DerivedXMLParser200.cpp b/six/modules/c++/six.sidd/source/DerivedXMLParser200.cpp index d492ee5295..de52840aa5 100644 --- a/six/modules/c++/six.sidd/source/DerivedXMLParser200.cpp +++ b/six/modules/c++/six.sidd/source/DerivedXMLParser200.cpp @@ -113,9 +113,12 @@ ProjectionType DerivedXMLParser200::getProjectionType(const xml::lite::Element& } -const char DerivedXMLParser200::VERSION[] = "2.0.0"; -const char DerivedXMLParser200::SI_COMMON_URI[] = "urn:SICommon:1.0"; -const char DerivedXMLParser200::ISM_URI[] = "urn:us:gov:ic:ism:13"; +const char VERSION[] = "2.0.0"; +const char SI_COMMON_URI[] = "urn:SICommon:1.0"; +inline static xml::lite::Uri getISMUri() +{ + return xml::lite::Uri("urn:us:gov:ic:ism:13"); +} DerivedXMLParser200::DerivedXMLParser200(logging::Logger* log, bool ownLog) : @@ -301,7 +304,7 @@ xml::lite::Document* DerivedXMLParser200::toXML(const DerivedData* derived) cons root->setNamespacePrefix("", getDefaultURI()); root->setNamespacePrefix("si", xml::lite::Uri(SI_COMMON_URI)); root->setNamespacePrefix("sfa", xml::lite::Uri(SFA_URI)); - root->setNamespacePrefix("ism", xml::lite::Uri(ISM_URI)); + root->setNamespacePrefix("ism", getISMUri()); return doc; } @@ -894,162 +897,153 @@ XMLElem DerivedXMLParser200::convertDerivedClassificationToXML( XMLElem parent) const { assert(parent != nullptr); - return &convertDerivedClassificationToXML(*this, classification, *parent); + return &convertDerivedClassificationToXML(*this, classification, getISMUri(), *parent); } xml::lite::Element& DerivedXMLParser200::convertDerivedClassificationToXML(const DerivedXMLParser& parser, - const DerivedClassification& classification, xml::lite::Element& parent) + const DerivedClassification& classification, const xml::lite::Uri& ismUri, xml::lite::Element& parent) { - auto& classElem_ = parser.newElement("Classification", parent); - auto classElem = &classElem_; + auto& classElem = parser.newElement("Classification", parent); + auto classElem_ = &classElem; parser.common().addParameters("SecurityExtension", classification.securityExtensions, - classElem); + classElem_); //! from ism:ISMRootNodeAttributeGroup // SIDD 2.0 is tied to IC-ISM v13 - parser.setAttribute(classElem, "DESVersion", "13", ISM_URI); + parser.setAttribute(classElem, "DESVersion", "13", ismUri); // So far as I can tell this should just be 1 - parser.setAttribute(classElem, "ISMCATCESVersion", "1", ISM_URI); + parser.setAttribute(classElem, "ISMCATCESVersion", "1", ismUri); //! from ism:ResourceNodeAttributeGroup - parser.setAttribute(classElem, "resourceElement", "true", ISM_URI); + parser.setAttribute(classElem, "resourceElement", "true", ismUri); parser.setAttribute(classElem, "createDate", - classification.createDate.format("%Y-%m-%d"), ISM_URI); + classification.createDate.format("%Y-%m-%d"), ismUri); // note that timezone is explicitly prohibited // required (was optional in SIDD 1.0) - parser.setAttributeList(classElem, "compliesWith", classification.compliesWith, - ISM_URI); + parser.setAttributeList(classElem, "compliesWith", classification.compliesWith, ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "exemptFrom", classification.exemptFrom, - ISM_URI); + ismUri); //! from ism:SecurityAttributesGroup // -- referenced in ism::ResourceNodeAttributeGroup - parser.setAttribute(classElem, "classification", classification.classification, - ISM_URI); - parser.setAttributeList(classElem, "ownerProducer", classification.ownerProducer, - ISM_URI, true); + parser.setAttribute(classElem, "classification", classification.classification, ismUri); + parser.setAttributeList(classElem, "ownerProducer", classification.ownerProducer, ismUri, true); // optional - parser.setAttributeIfNonEmpty(classElem, "joint", classification.joint, ISM_URI); + parser.setAttributeIfNonEmpty(classElem, "joint", classification.joint, ismUri); // optional - parser.setAttributeList(classElem, "SCIcontrols", classification.sciControls, - ISM_URI); + parser.setAttributeList(classElem, "SCIcontrols", classification.sciControls, ismUri); // optional - parser.setAttributeList(classElem, "SARIdentifier", classification.sarIdentifier, - ISM_URI); + parser.setAttributeList(classElem, "SARIdentifier", classification.sarIdentifier, ismUri); // optional parser.setAttributeList(classElem, "atomicEnergyMarkings", classification.atomicEnergyMarkings, - ISM_URI); + ismUri); // optional parser.setAttributeList(classElem, "disseminationControls", classification.disseminationControls, - ISM_URI); + ismUri); // optional parser.setAttributeList(classElem, "displayOnlyTo", classification.displayOnlyTo, - ISM_URI); + ismUri); // optional - parser.setAttributeList(classElem, "FGIsourceOpen", classification.fgiSourceOpen, - ISM_URI); + parser.setAttributeList(classElem, "FGIsourceOpen", classification.fgiSourceOpen, ismUri); // optional parser.setAttributeList(classElem, "FGIsourceProtected", classification.fgiSourceProtected, - ISM_URI); + ismUri); // optional - parser.setAttributeList(classElem, "releasableTo", classification.releasableTo, - ISM_URI); + parser.setAttributeList(classElem, "releasableTo", classification.releasableTo, ismUri); // optional - parser.setAttributeList(classElem, "nonICmarkings", classification.nonICMarkings, - ISM_URI); + parser.setAttributeList(classElem, "nonICmarkings", classification.nonICMarkings, ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "classifiedBy", classification.classifiedBy, - ISM_URI); + ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "compilationReason", classification.compilationReason, - ISM_URI); + ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "derivativelyClassifiedBy", classification.derivativelyClassifiedBy, - ISM_URI); + ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "classificationReason", classification.classificationReason, - ISM_URI); + ismUri); // optional - parser.setAttributeList(classElem, "nonUSControls", classification.nonUSControls, - ISM_URI); + parser.setAttributeList(classElem, "nonUSControls", classification.nonUSControls, ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "derivedFrom", classification.derivedFrom, - ISM_URI); + ismUri); // optional if (classification.declassDate.get()) { parser.setAttributeIfNonEmpty( classElem, "declassDate", - classification.declassDate->format("%Y-%m-%d"), - ISM_URI); + classification.declassDate->format("%Y-%m-%d"), // note: timezone is explicitly excluded in ISM-201609 + ismUri); } // optional parser.setAttributeIfNonEmpty(classElem, "declassEvent", classification.declassEvent, - ISM_URI); + ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "declassException", classification.declassException, - ISM_URI); + ismUri); //! from ism:NoticeAttributesGroup // optional parser.setAttributeIfNonEmpty(classElem, "noticeType", classification.noticeType, - ISM_URI); + ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "noticeReason", classification.noticeReason, - ISM_URI); + ismUri); // optional if (classification.noticeDate.get()) { parser.setAttributeIfNonEmpty( classElem, "noticeDate", classification.noticeDate->format("%Y-%m-%d"), - ISM_URI); + ismUri); } // optional parser.setAttributeIfNonEmpty(classElem, "unregisteredNoticeType", classification.unregisteredNoticeType, - ISM_URI); + ismUri); // optional parser.setAttributeIfNonEmpty(classElem, "externalNotice", classification.externalNotice, - ISM_URI); + ismUri); - return classElem_; + return classElem; } xml::lite::Element& DerivedXMLParser200::convertLookupTableToXML(const DerivedXMLParser& parser, @@ -2106,13 +2100,13 @@ std::unique_ptr DerivedXMLParser200::parseSingleLUT(const std::string& lutS } return lut; } -mem::auto_ptr DerivedXMLParser200::parseSingleLUT(const xml::lite::Element* elem, +std::unique_ptr DerivedXMLParser200::parseSingleLUT(const xml::lite::Element* elem, size_t size) const { std::string lutStr = ""; parseString(elem, lutStr); auto result = parseSingleLUT(lutStr, size); - return mem::auto_ptr(result.release()); + return std::unique_ptr(result.release()); } XMLElem DerivedXMLParser200::createLUT(const std::string& name, const LUT *lut, diff --git a/six/modules/c++/six.sidd/source/DerivedXMLParser300.cpp b/six/modules/c++/six.sidd/source/DerivedXMLParser300.cpp index a658e63fd2..b5751945c1 100644 --- a/six/modules/c++/six.sidd/source/DerivedXMLParser300.cpp +++ b/six/modules/c++/six.sidd/source/DerivedXMLParser300.cpp @@ -24,6 +24,7 @@ #include #include +#include #include @@ -40,16 +41,56 @@ namespace sidd { static const char VERSION[] = "3.0.0"; static const char SI_COMMON_URI[] = "urn:SICommon:1.0"; -static const char ISM_URI[] = "urn:us:gov:ic:ism:13"; + +// There is a need to support two different versions of ISM with SIDD 3.0 :-( +inline static auto getISM_201609_Uri() +{ + return xml::lite::Uri("urn:us:gov:ic:ism:201609"); +} +inline static auto getISM_13_Uri() +{ + return xml::lite::Uri("urn:us:gov:ic:ism:13"); +} +inline static xml::lite::Uri getISMUri(six::sidd300::ISMVersion ismVersion) +{ + switch (ismVersion) + { + case six::sidd300::ISMVersion::v201609: return getISM_201609_Uri(); + case six::sidd300::ISMVersion::v13: return getISM_13_Uri(); + default: break; + } + + throw std::logic_error("Unhandled 'six::sidd::ISMVersion' case."); +} + +inline static auto getDESVersion(six::sidd300::ISMVersion ismVersion) // TODO: should this value be fixed? +{ + // SIDD 3.0 is tied to IC-ISM v201609 ... well, except that we need to support v13 too. + switch (ismVersion) + { + case six::sidd300::ISMVersion::v201609: return "201609"; // note that the specification also allows for "201609-" + case six::sidd300::ISMVersion::v13: return "13"; + default: break; + } + throw std::logic_error("Unhandled 'ISMVersion' case."); +} +static void setDESVersion(xml::lite::Element& classElem, six::sidd300::ISMVersion ismVersion) +{ + //! from ism:ISMRootNodeAttributeGroup + classElem.attribute("DESVersion") = getDESVersion(ismVersion); +} //DerivedXMLParser300::DerivedXMLParser300(std::unique_ptr&& log) : // DerivedXMLParser(VERSION, // std::make_unique(versionToURI(VERSION), false, SI_COMMON_URI, *log), // std::move(log)) { } -DerivedXMLParser300::DerivedXMLParser300(logging::Logger& log) : +DerivedXMLParser300::DerivedXMLParser300(logging::Logger& log, six::sidd300::ISMVersion ismVersion) : DerivedXMLParser(VERSION, std::make_unique(versionToURI(VERSION), false, SI_COMMON_URI, log), - log) { } + log) + { + mISMVersion = ismVersion; + } DerivedData* DerivedXMLParser300::fromXML( const xml::lite::Document* doc) const @@ -215,7 +256,7 @@ xml::lite::Document* DerivedXMLParser300::toXML(const DerivedData* derived) cons root->setNamespacePrefix("", getDefaultURI()); root->setNamespacePrefix("si", xml::lite::Uri(SI_COMMON_URI)); root->setNamespacePrefix("sfa", xml::lite::Uri(SFA_URI)); - root->setNamespacePrefix("ism", xml::lite::Uri(ISM_URI)); + root->setNamespacePrefix("ism", getISMUri(mISMVersion)); return doc; } @@ -790,7 +831,12 @@ XMLElem DerivedXMLParser300::convertDerivedClassificationToXML( XMLElem parent) const { assert(parent != nullptr); - return & DerivedXMLParser200::convertDerivedClassificationToXML(*this, classification, *parent); + + const auto ismUri = getISMUri(mISMVersion); + auto& classElem = DerivedXMLParser200::convertDerivedClassificationToXML(*this, classification, ismUri, *parent); + setDESVersion(classElem, mISMVersion); + + return &classElem; } XMLElem DerivedXMLParser300::convertMeasurementToXML(const Measurement* measurement, diff --git a/six/modules/c++/six.sidd/source/Utilities.cpp b/six/modules/c++/six.sidd/source/Utilities.cpp index 20f2da5e37..9698b49bcc 100644 --- a/six/modules/c++/six.sidd/source/Utilities.cpp +++ b/six/modules/c++/six.sidd/source/Utilities.cpp @@ -22,6 +22,7 @@ #include "six/sidd/Utilities.h" #include +#include #include @@ -98,7 +99,7 @@ static six::Vector3 latLonToECEF(const six::sidd::PolynomialProjection& projecti return scene::Utilities::latLonToECEF(lla); } -mem::auto_ptr Utilities::getSceneGeometry( +std::unique_ptr Utilities::getSceneGeometry( const DerivedData* derived) { const double centerTime = getCenterTime(*derived); @@ -146,7 +147,7 @@ mem::auto_ptr Utilities::getSceneGeometry( { // In this case there are no image plane row/col vectors, so we want // to use a different constructor - mem::auto_ptr geom( + std::unique_ptr geom( new scene::SceneGeometry(arpVel, arpPos, refPt)); return geom; } @@ -156,12 +157,12 @@ mem::auto_ptr Utilities::getSceneGeometry( Ctxt("Cylindrical projection not yet supported")); } - mem::auto_ptr geom( + std::unique_ptr geom( new scene::SceneGeometry(arpVel, arpPos, refPt, rowVec, colVec)); return geom; } -mem::auto_ptr Utilities::getGridECEFTransform( +std::unique_ptr Utilities::getGridECEFTransform( const DerivedData* derived) { if (!derived->measurement->projection->isMeasurable()) @@ -175,7 +176,7 @@ mem::auto_ptr Utilities::getGridECEFTransform( dynamic_cast( derived->measurement->projection.get()); - mem::auto_ptr transform; + std::unique_ptr transform; switch ((int)p->projectionType) { @@ -251,7 +252,7 @@ mem::auto_ptr Utilities::getGridECEFTransform( return transform; } -mem::auto_ptr Utilities::getGridGeometry( +std::unique_ptr Utilities::getGridGeometry( const DerivedData* derived) { if (!derived->measurement->projection->isMeasurable()) @@ -265,7 +266,7 @@ mem::auto_ptr Utilities::getGridGeometry( dynamic_cast( derived->measurement->projection.get()); - mem::auto_ptr geom; + std::unique_ptr geom; // Only currently have an implementation for PGD switch ((int)p->projectionType) @@ -465,19 +466,19 @@ std::pair return pols; } -mem::auto_ptr Utilities::getProjectionModel( +std::unique_ptr Utilities::getProjectionModel( const DerivedData* data) { const int lookDir = getSideOfTrack(data); scene::Errors errors; ::getErrors(*data, errors); - mem::auto_ptr geom(getSceneGeometry(data)); + std::unique_ptr geom(getSceneGeometry(data)); const six::ProjectionType gridType = data->measurement->projection->projectionType; - mem::auto_ptr projModel; + std::unique_ptr projModel; switch (gridType) { case six::ProjectionType::PLANE: @@ -534,18 +535,47 @@ TReturn Utilities_parseData(::io::InputStream& xmlStream, const TSchemaPaths& sc auto data(six::parseData(xmlRegistry, xmlStream, schemaPaths, log)); return TReturn(static_cast(data.release())); } -mem::auto_ptr Utilities::parseData(::io::InputStream& xmlStream, +std::unique_ptr Utilities::parseData(::io::InputStream& xmlStream, const std::vector& schemaPaths, logging::Logger& log) { - return Utilities_parseData>(xmlStream, schemaPaths, log); + return Utilities_parseData>(xmlStream, schemaPaths, log); +} + +static void prependISMSchemaPaths(const std::vector* &pSchemaPaths, + std::vector& adjustedSchemaPaths) +{ + if (pSchemaPaths == nullptr) + { + return; + } + + // Get directories for XSDs that appear to be SIDD schemas + const auto xsd_files = six::sidd300::find_SIDD_schema_V_files(*pSchemaPaths); + std::set xsd_dirs; // easy way to make directories unique + for (auto&& xsd : xsd_files) + { + xsd_dirs.insert(xsd.parent_path().string()); + } + for (const auto& dir : xsd_dirs) + { + adjustedSchemaPaths.push_back(dir); + } + + // Include all the original schema paths; these will be AFTER the adjusted paths, above + adjustedSchemaPaths.insert(adjustedSchemaPaths.end(), pSchemaPaths->begin(), pSchemaPaths->end()); + + pSchemaPaths = &adjustedSchemaPaths; } + std::unique_ptr Utilities::parseData(::io::InputStream& xmlStream, const std::vector* pSchemaPaths, logging::Logger& log) { + std::vector adjustedSchemaPaths; // keep in-scope + prependISMSchemaPaths(pSchemaPaths, adjustedSchemaPaths); return Utilities_parseData>(xmlStream, pSchemaPaths, log); } -mem::auto_ptr Utilities::parseDataFromFile(const std::string& pathname, +std::unique_ptr Utilities::parseDataFromFile(const std::string& pathname, const std::vector& schemaPaths, logging::Logger& log) { io::FileInputStream inStream(pathname); @@ -561,7 +591,7 @@ std::unique_ptr Utilities::parseDataFromFile(const std::filesystem: return parseData(inStream, pSchemaPaths, *logger); } -mem::auto_ptr Utilities::parseDataFromString(const std::string& xmlStr_, +std::unique_ptr Utilities::parseDataFromString(const std::string& xmlStr_, const std::vector& schemaPaths_, logging::Logger& log) { const auto xmlStr = str::EncodedStringView(xmlStr_).u8string(); @@ -571,7 +601,7 @@ mem::auto_ptr Utilities::parseDataFromString(const std::string& xml [](const std::string& s) { return s; }); auto result = parseDataFromString(xmlStr, &schemaPaths, &log); - return mem::auto_ptr(result.release()); + return std::unique_ptr(result.release()); } std::unique_ptr Utilities::parseDataFromString(const std::u8string& xmlStr, const std::vector* pSchemaPaths, logging::Logger* pLogger) @@ -603,6 +633,9 @@ std::u8string Utilities::toXMLString(const DerivedData& data, logging::NullLogger nullLogger; logging::Logger* const pLogger_ = (pLogger == nullptr) ? &nullLogger : pLogger; + std::vector adjustedSchemaPaths; // keep in-scope + prependISMSchemaPaths(pSchemaPaths, adjustedSchemaPaths); + return ::six::toValidXMLString(data, pSchemaPaths, pLogger_, &xmlRegistry); } @@ -686,7 +719,14 @@ static void initProductCreation(six::sidd::ProductCreation& productCreation, con productCreation.productCreationExtensions.push_back(parameter); productCreation.classification.securityExtensions.push_back(parameter); - productCreation.classification.desVersion = 234; + if (strVersion != "3.0.0") + { + productCreation.classification.desVersion = 234; // existing code + } + else + { + productCreation.classification.desVersion = 201609; // SIDD 3.0 + } productCreation.classification.createDate = six::DateTime(); productCreation.classification.classification = "U"; @@ -702,8 +742,7 @@ static void initProductCreation(six::sidd::ProductCreation& productCreation, con productCreation.classification.ownerProducer.push_back("AIA"); productCreation.classification.sciControls.push_back("HCS"); productCreation.classification.sciControls.push_back("SI"); - productCreation.classification.sarIdentifier.push_back("EU"); - productCreation.classification.sarIdentifier.push_back("BC"); + productCreation.classification.sarIdentifier.push_back("EU BC"); productCreation.classification.disseminationControls.push_back("FOUO"); productCreation.classification.disseminationControls.push_back("IMC"); productCreation.classification.fgiSourceOpen.push_back("AIA"); @@ -1108,9 +1147,10 @@ static void initProductProcessing(six::sidd::ProductProcessing& processing) processing.processingModules.push_back(module); } -static void populateData(six::sidd::DerivedData& siddData, const std::string& strVersion, - const std::string& lutType = "Mono") +static void populateData(six::sidd::DerivedData& siddData, const std::string& lutType = "Mono") { + const auto strVersion = siddData.getVersion(); + constexpr bool smallImage = true; siddData.setVersion(strVersion); @@ -1264,7 +1304,7 @@ static void update_for_SIDD_300(DerivedData& data) // n.b., much of this was add ProcTxRcvPolarization polarization{ PolarizationSequenceType::UNKNOWN, PolarizationSequenceType::UNKNOWN }; data.exploitationFeatures->product[0].polarization.push_back(polarization); // TODO: this was added before SIDD 3.0.0 - populateData(data, "3.0.0"); + populateData(data); } static std::unique_ptr createFakeDerivedData_(const std::string& strVersion) @@ -1381,9 +1421,9 @@ std::unique_ptr Utilities::createFakeDerivedData(const std::string& } throw std::invalid_argument("strVersion = '" + strVersion + "' is not supported."); } -mem::auto_ptr Utilities::createFakeDerivedData() +std::unique_ptr Utilities::createFakeDerivedData() { - return mem::auto_ptr(createFakeDerivedData_("").release()); + return std::unique_ptr(createFakeDerivedData_("").release()); } } diff --git a/six/modules/c++/six.sidd/tests/sample_xml/sidd300.xml b/six/modules/c++/six.sidd/tests/sample_xml/sidd300.xml index fb9e04a356..013aa1e14a 100644 --- a/six/modules/c++/six.sidd/tests/sample_xml/sidd300.xml +++ b/six/modules/c++/six.sidd/tests/sample_xml/sidd300.xml @@ -1,4 +1,4 @@ - + ProcessorName @@ -6,7 +6,16 @@ Ypsilanti, MI Profile - + sample ProductName diff --git a/six/modules/c++/six.sidd/tests/sample_xml/sidd300_ISM-v13.xml b/six/modules/c++/six.sidd/tests/sample_xml/sidd300_ISM-v13.xml new file mode 100644 index 0000000000..79c68ada07 --- /dev/null +++ b/six/modules/c++/six.sidd/tests/sample_xml/sidd300_ISM-v13.xml @@ -0,0 +1,578 @@ + + + + ProcessorName + 2021-11-22T21:06:12.691000Z + Ypsilanti, MI + Profile + + + sample + + ProductName + Unclassified + The product's type + sample + + + RGB24I + 3 + + + + 1DLUT + + LUT Name + + 5 + 3 + + + + + Some predefined Filter + + + LAGRANGE + + + CONVOLUTION + + + + + + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + + + + + Some custom Filter + + + + 0 + 1.5 + 3 + 4.5 + 6 + 7.5 + + + + CORRELATION + + + + LAGRANGE + + Some custom Filter + + + + 0 + 1.5 + 3 + 4.5 + 6 + 7.5 + + + + CORRELATION + + + Some predefined Filter + + + LAGRANGE + + + CONVOLUTION + + + + + + + + Some predefined Filter + + + LAGRANGE + + + CONVOLUTION + + + Some custom Filter + + + + 0 + 1.5 + 3 + 4.5 + 6 + 7.5 + + + + CORRELATION + + + + ARBITRARY + + + + + Some custom Filter + + + + 0 + 1.5 + 3 + 4.5 + 6 + 7.5 + + + + CORRELATION + + + + + ABSOLUTE + Some source profile + Some display profile + Some ICC profile + + + + AUTO + 1 + + 0.20000000000000001 + 0.80000000000000004 + 0.10000000000000001 + 0.10000000000000001 + + + + TTC Name + + TTC DB + + + + val + + + WGS_84 + + + 1 + 0 + + + 2 + 3 + + + 3 + 6 + + + 4 + 9 + + + + + 23 + 34 + + + 23 + 35 + + + 23 + 36 + + + + GeoValue + + 36.5 + 99.870000000000005 + + + + + + + + 0 + 0 + 0 + + + 0 + 0 + + + + 0 + 0 + + + 1 + + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + 2 + 2 + + + + 0 + + + 0 + + + 0 + + + + + 1 + 2 + + + 3 + 4 + + + 5 + 6 + + + 3 + 2 + + + 3 + 1 + + + 3 + 0 + + + + + + + Sensor Name + + SPOTLIGHT + RMID + + 2021-11-22T21:06:12.691000Z + 2021-11-22T21:06:12.691000Z + 0 + + 0 + 0 + + + + 5 + 10 + + + 9 + 3 + + + + V + OTHER_RcvPolarization + 1.3700000000000001 + + + + 1.2 + 3.3999999999999999 + 5.5999999999999996 + 7.7999999999999998 + 9.0999999999999996 + Parameter + + + + 1.5 + 3.7000000000000002 + + + 10.130000000000001 + 50.899999999999999 + + 3.79 + 8.1099999999999994 + Parameter + + + + + 0 + 0 + + 0 + + UNKNOWN + UNKNOWN + + 58.332000000000001 + Parameter + + + + + + 1 + 2 + + + 1.3999999999999999 + 2.8999999999999999 + + + 1.3999999999999999 + 2.8999999999999999 + + + 1.3999999999999999 + 2.8999999999999999 + + + 1.3999999999999999 + 2.8999999999999999 + + + + Processing Event + 2021-11-22T21:06:12.691000Z + Value + + + + + 0.12 + 0.72999999999999998 + 9.8399999999999999 + + + + ECF + 1.1000000000000001 + 1.1000000000000001 + 1.1000000000000001 + 1.1000000000000001 + 1.1000000000000001 + 1.1000000000000001 + + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + + + 48.170000000000002 + 113.965 + + + + 43.5 + 1111.0999999999999 + 85 + + 123 + 0.029999999999999999 + + + + 0.0028900000000000002 + 777 + + 0 + 98.700000000000003 + + + + 1.2 + 77632 + 0.071999999999999995 + + 48.159999999999997 + 113.964 + + + + + 1.23 + 4.56 + 7.89 + + + 12.34 + 56.78 + + + 123.4 + 567.8 + + + + + Error StatisticsParameterValue + + + + + ABSOLUTE + + 0 + + + + 0 + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + 1 + 2 + + 42 + -83 + + + + UTM + World Geodetic System 1984 + World Geodetic System 1984 + Mean Sea Level + Mean Sea Level + 0 + 15 + + + 3 + + 4 + 5 + + + 6 + 7 + + + -32768 + + + + Value + + Value + Value + + + + + + Annotation identifier + + + CS Name + + + Spheroid + 69.030000000000001 + 71.472999999999999 + + + + Prime Meridian + 11.109999999999999 + + Unit + + Axis 1 + + + + 2.3999999999999999 + 3.5 + 4.5499999999999998 + 5.7569999999999997 + + + + + \ No newline at end of file diff --git a/six/modules/c++/six.sidd/unittests/test_read_sidd_legend.cpp b/six/modules/c++/six.sidd/unittests/test_read_sidd_legend.cpp index 4a25d1a754..391a4d162c 100644 --- a/six/modules/c++/six.sidd/unittests/test_read_sidd_legend.cpp +++ b/six/modules/c++/six.sidd/unittests/test_read_sidd_legend.cpp @@ -72,7 +72,7 @@ static six::LatLonCorners makeUpCornersFromDMS() return corners; } -static mem::auto_ptr +static std::unique_ptr mockupDerivedData(const types::RowCol& dims) { six::PixelType pixelType = six::PixelType::MONO8I; @@ -84,7 +84,7 @@ mockupDerivedData(const types::RowCol& dims) addExploitationFeatures(1); six::sidd::DerivedData* siddData = siddBuilder.steal(); - mem::auto_ptr siddDataScoped(siddData); + std::unique_ptr siddDataScoped(siddData); setExtent(*siddData, dims); siddData->setImageCorners(makeUpCornersFromDMS()); diff --git a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp index 9db33593d0..d56fe85fcf 100644 --- a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp +++ b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp @@ -41,43 +41,37 @@ #pragma warning(disable: 4459) // declaration of '...' hides global declaration #endif -static std::filesystem::path argv0() -{ - static const sys::OS os; - static const auto retval = os.getSpecialEnv("0"); - return retval; -} - static inline std::filesystem::path six_sidd_relative_path() { return std::filesystem::path("six") / "modules" / "c++" / "six.sidd"; } -static std::filesystem::path sample_xml_relative_path(const std::filesystem::path& filename) -{ - return six_sidd_relative_path() / "tests" / "sample_xml" / filename; -} static std::filesystem::path schema_relative_path() { - return six_sidd_relative_path() / "conf" / "schema"; + return six_sidd_relative_path() / "conf" / "schema"; // .../conf/schema } static std::filesystem::path get_sample_xml_path(const std::filesystem::path& filename) { - const auto root_dir = six::testing::buildRootDir(argv0()); - return root_dir / sample_xml_relative_path(filename); + static const auto modulePath = six_sidd_relative_path() / "tests" / "sample_xml"; + return sys::test::findGITModuleFile("six", modulePath, filename); } static std::vector getSchemaPaths() { - const auto root_dir = six::testing::buildRootDir(argv0()); - return std::vector { (root_dir / schema_relative_path()) }; + static const auto xsdPath = sys::test::findGITModuleFile("six", schema_relative_path(), "SICommonTypes_V1.0.xsd"); + static const auto rootSchemaDir = xsdPath.parent_path(); // ".../conf/Schema" + return std::vector { rootSchemaDir }; } static std::unique_ptr test_assert_round_trip(const std::string& testName, const six::sidd::DerivedData& derivedData, const std::vector* pSchemaPaths) { - auto strXML = six::sidd::Utilities::toXMLString(derivedData, pSchemaPaths); + const auto strXML = six::sidd::Utilities::toXMLString(derivedData, pSchemaPaths); TEST_ASSERT_FALSE(strXML.empty()); + + const auto xml_ = str::EncodedStringView(strXML).native(); // for debugging + TEST_ASSERT_FALSE(xml_.empty()); + return six::sidd::Utilities::parseDataFromString(strXML, pSchemaPaths); } @@ -93,28 +87,28 @@ inline static const six::UnmodeledS* get_Unmodeled(const six::sidd::DerivedData& } } -static void test_createFakeDerivedData_(const std::string& testName, const std::string& strVersion) +static void test_createFakeDerivedData_(const std::string& testName, const std::string& strVersion, bool validate) { const auto pFakeDerivedData = six::sidd::Utilities::createFakeDerivedData(strVersion); auto Unmodeled = get_Unmodeled(*pFakeDerivedData, strVersion); TEST_ASSERT_NULL(Unmodeled); // not part of the fake data, only added in SIDD 3.0 - // NULL schemaPaths, no validation - auto pDerivedData = test_assert_round_trip(testName , *pFakeDerivedData, nullptr /*pSchemaPaths*/); - Unmodeled = get_Unmodeled(*pDerivedData, strVersion); - TEST_ASSERT_NULL(Unmodeled); // not part of the fake data, only added in SIDD 3.0 - - // validate XML against schema const auto schemaPaths = getSchemaPaths(); - pDerivedData = test_assert_round_trip(testName , *pFakeDerivedData, &schemaPaths); + const std::vector* pSchemaPaths = validate ? & schemaPaths: nullptr; // NULL schemaPaths, no validation + + auto pDerivedData = test_assert_round_trip(testName, *pFakeDerivedData, pSchemaPaths); Unmodeled = get_Unmodeled(*pDerivedData, strVersion); TEST_ASSERT_NULL(Unmodeled); // not part of the fake data, only added in SIDD 3.0 } - TEST_CASE(test_createFakeDerivedData) { - test_createFakeDerivedData_(testName, "2.0.0"); - test_createFakeDerivedData_(testName, "3.0.0"); + test_createFakeDerivedData_(testName, "2.0.0", false /*validate*/); + test_createFakeDerivedData_(testName, "3.0.0", false /*validate*/); +} +TEST_CASE(test_createFakeDerivedData_validate) +{ + test_createFakeDerivedData_(testName, "2.0.0", true /*validate*/); + test_createFakeDerivedData_(testName, "3.0.0", true /*validate*/); } static void test_assert_unmodeled_(const std::string& testName, const six::UnmodeledS& Unmodeled) @@ -144,38 +138,44 @@ static void test_assert_unmodeled(const std::string& testName, const six::sidd:: test_assert_unmodeled_(testName, *Unmodeled); } -static void test_read_sidd_xml(const std::string& testName, const std::filesystem::path& path) +static void test_read_sidd_xml(const std::string& testName, const std::filesystem::path& path, + const std::vector* pSchemaPaths) { const auto pathname = get_sample_xml_path(path); - // NULL schemaPaths, no validation - auto pDerivedData = six::sidd::Utilities::parseDataFromFile(pathname, nullptr /*pSchemaPaths*/); + auto pDerivedData = six::sidd::Utilities::parseDataFromFile(pathname, pSchemaPaths); test_assert_unmodeled(testName, *pDerivedData); - pDerivedData = test_assert_round_trip(testName , *pDerivedData, nullptr /*pSchemaPaths*/); + pDerivedData = test_assert_round_trip(testName, *pDerivedData, pSchemaPaths); test_assert_unmodeled(testName, *pDerivedData); +} +static void test_read_sidd_xml(const std::string& testName, const std::filesystem::path& path) +{ + const std::vector* pSchemaPaths = nullptr; // NULL schemaPaths, no validation + test_read_sidd_xml(testName, path, pSchemaPaths); // validate XML against schema const auto schemaPaths = getSchemaPaths(); - pDerivedData = six::sidd::Utilities::parseDataFromFile(pathname, &schemaPaths); - test_assert_unmodeled(testName, *pDerivedData); - - pDerivedData = test_assert_round_trip(testName, *pDerivedData, &schemaPaths); - test_assert_unmodeled(testName, *pDerivedData); + test_read_sidd_xml(testName, path, &schemaPaths); } - TEST_CASE(test_read_sidd200_xml) { test_read_sidd_xml(testName, "sidd200.xml"); } - TEST_CASE(test_read_sidd300_xml) { test_read_sidd_xml(testName, "sidd300.xml"); } +TEST_CASE(test_read_sidd300_v13_xml) +{ + test_read_sidd_xml(testName, "sidd300_ISM-v13.xml"); +} + TEST_MAIN( TEST_CHECK(test_createFakeDerivedData); + TEST_CHECK(test_createFakeDerivedData_validate); TEST_CHECK(test_read_sidd200_xml); TEST_CHECK(test_read_sidd300_xml); + TEST_CHECK(test_read_sidd300_v13_xml); ) diff --git a/six/modules/c++/six/framework.h b/six/modules/c++/six/framework.h index cac469dbf0..af45cb1f25 100644 --- a/six/modules/c++/six/framework.h +++ b/six/modules/c++/six/framework.h @@ -3,11 +3,13 @@ // We're building in Visual Studio ... used to control where we get a little bit of config info #define NITRO_PCH 1 +#pragma warning(disable: 4619) // #pragma warning: there is no warning number '...' #pragma warning(disable: 4668) // '...' is not defined as a preprocessor macro, replacing with '...' for '...' #pragma warning(disable: 4820) // '...': '...' bytes padding added after data member '...' #pragma warning(disable: 4710) // '...': function not inlined #pragma warning(disable: 5045) // Compiler will insert Spectre mitigation for memory load if / Qspectre switch specified #pragma warning(disable: 4514) // '...': unreferenced inline function has been removed +#pragma warning(disable: 5264) // '...': '...' variable is not used #pragma warning(disable: 26812) // The enum type '...' is unscoped. Prefer '...' over '...' (Enum.3). diff --git a/six/modules/c++/six/include/six/ByteProvider.h b/six/modules/c++/six/include/six/ByteProvider.h index 63b3bca38c..541abc3d71 100644 --- a/six/modules/c++/six/include/six/ByteProvider.h +++ b/six/modules/c++/six/include/six/ByteProvider.h @@ -66,11 +66,9 @@ class ByteProvider : public nitf::ByteProvider ByteProvider(const six::NITFHeaderCreator& headerCreator, const std::vector& schemaPaths, const std::vector& desBuffers); -#if !CODA_OSS_cpp17 - ByteProvider(mem::auto_ptr headerCreator, + ByteProvider(const std::unique_ptr& headerCreator, const std::vector& schemaPaths, const std::vector& desBuffers); -#endif /*! * Populates the writer Options from given parameters @@ -147,11 +145,9 @@ class ByteProvider : public nitf::ByteProvider void initialize(const six::NITFHeaderCreator& headerCreator, const std::vector& schemaPaths, const std::vector& desBuffers); -#if !CODA_OSS_cpp17 - void initialize(mem::auto_ptr headerCreator, + void initialize(const std::unique_ptr& headerCreator, const std::vector& schemaPaths, const std::vector& desBuffers); -#endif protected: /*! * Default constructor. Client code must call initialize() to diff --git a/six/modules/c++/six/include/six/Container.h b/six/modules/c++/six/include/six/Container.h index e42a8fed1b..b8c2c723ab 100644 --- a/six/modules/c++/six/include/six/Container.h +++ b/six/modules/c++/six/include/six/Container.h @@ -91,19 +91,12 @@ class Container * */ void addData(std::unique_ptr&& data); -#if !CODA_OSS_cpp17 - void addData(mem::auto_ptr data); -#endif - /*! * Same as above but also supports passing in a legend. Only valid for * derived data. */ void addData(std::unique_ptr&& data, std::unique_ptr&& legend); -#if !CODA_OSS_cpp17 - void addData(mem::auto_ptr data, mem::auto_ptr legend); -#endif /*! * Set the data item at location i. If there is an item in the @@ -193,10 +186,6 @@ class Container void addData(std::unique_ptr&& data, mem::ScopedCopyablePtr legend); -#if !CODA_OSS_cpp17 - void addData(mem::auto_ptr data, - mem::ScopedCopyablePtr legend); -#endif }; } diff --git a/six/modules/c++/six/include/six/Data.h b/six/modules/c++/six/include/six/Data.h index 0c3a9e67ff..1c004fbeac 100644 --- a/six/modules/c++/six/include/six/Data.h +++ b/six/modules/c++/six/include/six/Data.h @@ -84,7 +84,7 @@ struct Data template bool convertPixels(std::span from, std::span to, ptrdiff_t cutoff = -1) const { - return convertPixels_(as_bytes(from), as_bytes(to), cutoff); + return convertPixels_(std::as_bytes(from), std::as_writable_bytes(to), cutoff); } /*! diff --git a/six/modules/c++/six/include/six/Enum.h b/six/modules/c++/six/include/six/Enum.h index b0786abbf2..a4fcfff35b 100644 --- a/six/modules/c++/six/include/six/Enum.h +++ b/six/modules/c++/six/include/six/Enum.h @@ -95,7 +95,8 @@ namespace details const auto result = nitf::details::index(map, v); if (!result.has_value()) { - return std::optional(); + std::optional retval; // some compilers think this is uninitialized + return retval; } // TValues will be "int" when used from the "Enum" base class return std::optional(six::Enum::cast(*result)); diff --git a/six/modules/c++/six/include/six/Init.h b/six/modules/c++/six/include/six/Init.h index c7abf20a68..ae5b4cbc1d 100644 --- a/six/modules/c++/six/include/six/Init.h +++ b/six/modules/c++/six/include/six/Init.h @@ -38,7 +38,7 @@ namespace six { -DECLARE_EXCEPTION(UninitializedValue) +DECLARE_EXCEPTION(UninitializedValue); /*! * \struct Init diff --git a/six/modules/c++/six/include/six/NITFWriteControl.h b/six/modules/c++/six/include/six/NITFWriteControl.h index 927d31587a..a46ec1b9af 100644 --- a/six/modules/c++/six/include/six/NITFWriteControl.h +++ b/six/modules/c++/six/include/six/NITFWriteControl.h @@ -188,9 +188,6 @@ class NITFWriteControl : public WriteControl * \param headerCreator Populated NITF header creator */ void setNITFHeaderCreator(std::unique_ptr&& headerCreator); -#if !CODA_OSS_cpp17 - void setNITFHeaderCreator(mem::auto_ptr headerCreator); -#endif virtual void initialize(const six::Options& options, std::shared_ptr container); @@ -357,7 +354,7 @@ class NITFWriteControl : public WriteControl protected: nitf::Writer mWriter; std::map mCompressionOptions; - mem::auto_ptr mNITFHeaderCreator; + std::unique_ptr mNITFHeaderCreator; void writeNITF(nitf::IOInterface& os); diff --git a/six/modules/c++/six/include/six/ReadControl.h b/six/modules/c++/six/include/six/ReadControl.h index 2ed4fe4b31..b516525c12 100644 --- a/six/modules/c++/six/include/six/ReadControl.h +++ b/six/modules/c++/six/include/six/ReadControl.h @@ -158,16 +158,6 @@ struct ReadControl * \return Buffer of image data. This is simply equal to buffer.get() and * is provided as a convenience. */ -#if !CODA_OSS_cpp17 - template - T* interleaved(Region& region, size_t imageNumber, - mem::auto_ptr& buffer) - { - buffer.reset(reinterpret_cast(interleaved(region, imageNumber))); - return buffer.get(); - } -#endif - template T* interleaved(Region& region, size_t imageNumber, std::unique_ptr& buffer) diff --git a/six/modules/c++/six/include/six/Serialize.h b/six/modules/c++/six/include/six/Serialize.h index 665fec8192..de09a00156 100644 --- a/six/modules/c++/six/include/six/Serialize.h +++ b/six/modules/c++/six/include/six/Serialize.h @@ -55,19 +55,18 @@ struct Serializer { constexpr size_t length = sizeof(T); const void* pVal = &val; - auto data = static_cast::const_pointer>(pVal); if (swapBytes) { const size_t prevLength = buffer.size(); buffer.resize(prevLength + length); - sys::byteSwap(data, - static_cast(length), - 1, - &buffer[prevLength]); + auto data = static_cast(pVal); + constexpr auto numElems = 1; + sys::byteSwap(data, length, numElems, &buffer[prevLength]); } else { + auto data = static_cast::const_pointer>(pVal); std::copy(data, data + length, std::back_inserter(buffer)); } } @@ -99,15 +98,20 @@ struct Serializer std::copy(buffer, buffer + length, data); if (swapBytes) { - sys::byteSwap(data, static_cast(length), 1); + sys::byteSwap(static_cast(pVal), static_cast(length), 1); } buffer += length; } static void deserializeImpl(const std::byte*& buffer, bool swapBytes, T& val) { - auto& buffer_ = reinterpret_cast(buffer); + const void* pBuffer = buffer; + auto buffer_ = static_cast(pBuffer); + deserializeImpl(buffer_, swapBytes, val); + + pBuffer = buffer_; + buffer = static_cast(pBuffer); } }; diff --git a/six/modules/c++/six/include/six/Types.h b/six/modules/c++/six/include/six/Types.h index f7827f2d19..2c8f8b5490 100644 --- a/six/modules/c++/six/include/six/Types.h +++ b/six/modules/c++/six/include/six/Types.h @@ -56,7 +56,7 @@ extern std::string getSchemaPath(std::vector&, bool tryToExpandIfNo * \class DESValidationException * \brief Throwable related to Six schema validation problems. */ -DECLARE_EXCEPTION(DESValidation) +DECLARE_EXCEPTION(DESValidation); //! Vector types typedef math::linear::VectorN<3> Vector3; @@ -575,7 +575,7 @@ ImageMode getImageMode(RadarModeType radarMode); * \brief Throwable related to a required element being null, * undefined, etc. */ -DECLARE_EXCEPTION(MissingRequired) +DECLARE_EXCEPTION(MissingRequired); } #endif diff --git a/six/modules/c++/six/include/six/Utilities.h b/six/modules/c++/six/include/six/Utilities.h index 681c11fab0..36658b443f 100644 --- a/six/modules/c++/six/include/six/Utilities.h +++ b/six/modules/c++/six/include/six/Utilities.h @@ -34,6 +34,7 @@ #include #include #include "logging/Logger.h" +#include #include #include "six/Types.h" @@ -199,7 +200,7 @@ void loadXmlDataContentHandler(FILE* log); * * \return Data representation of 'xmlStream' */ -mem::auto_ptr parseData(const XMLControlRegistry& xmlReg, +std::unique_ptr parseData(const XMLControlRegistry& xmlReg, ::io::InputStream& xmlStream, DataType dataType, const std::vector& schemaPaths, @@ -219,7 +220,7 @@ std::unique_ptr parseData(const XMLControlRegistry& xmlReg, * * \return Data representation of 'xmlStream' */ -mem::auto_ptr parseData(const XMLControlRegistry& xmlReg, +std::unique_ptr parseData(const XMLControlRegistry& xmlReg, ::io::InputStream& xmlStream, const std::vector& schemaPaths, logging::Logger& log); @@ -238,7 +239,7 @@ std::unique_ptr parseData(const XMLControlRegistry&, ::io::InputStream&, * * \return Data representation of the contents of 'pathname' */ -mem::auto_ptr parseDataFromFile(const XMLControlRegistry& xmlReg, +std::unique_ptr parseDataFromFile(const XMLControlRegistry& xmlReg, const std::string& pathname, DataType dataType, const std::vector& schemaPaths, @@ -255,7 +256,7 @@ mem::auto_ptr parseDataFromFile(const XMLControlRegistry& xmlReg, * * \return Data representation of the contents of 'pathname' */ -mem::auto_ptr parseDataFromFile(const XMLControlRegistry& xmlReg, +std::unique_ptr parseDataFromFile(const XMLControlRegistry& xmlReg, const std::string& pathname, const std::vector& schemaPaths, logging::Logger& log); @@ -272,7 +273,7 @@ mem::auto_ptr parseDataFromFile(const XMLControlRegistry& xmlReg, * * \return Data representation of 'xmlStr' */ -mem::auto_ptr parseDataFromString(const XMLControlRegistry& xmlReg, +std::unique_ptr parseDataFromString(const XMLControlRegistry& xmlReg, const std::string& xmlStr, DataType dataType, const std::vector& schemaPaths, @@ -294,7 +295,7 @@ std::unique_ptr parseDataFromString(const XMLControlRegistry& xmlReg, * * \return Data representation of 'xmlStr' */ -mem::auto_ptr parseDataFromString(const XMLControlRegistry& xmlReg, +std::unique_ptr parseDataFromString(const XMLControlRegistry& xmlReg, const std::string& xmlStr, const std::vector& schemaPaths, logging::Logger& log); @@ -316,72 +317,39 @@ void getErrors(const ErrorStatistics* errorStats, */ std::string findSchemaPath(const std::string& progname); -namespace details -{ - template - inline std::span as_bytes(std::span buffer) - { - const void* pBuffer = buffer.data(); - const auto size = buffer.size() * sizeof(buffer[0]); - return std::span(static_cast(pBuffer), size); - } - template - inline std::span as_cbytes(std::span buffer) - { - return as_bytes(buffer); - } - - template - inline std::span as_bytes(std::span buffer_) - { - const std::span buffer(buffer_.data(), buffer_.size()); - const auto result = as_bytes(buffer); - return std::span(const_cast(result.data()), result.size()); - } - template - inline std::span as_cbytes(std::span buffer) - { - return as_bytes(std::span(buffer.data(), buffer.size())); - } -} - template inline std::span as_bytes(std::span buffer) { - return details::as_bytes(buffer); + return std::as_bytes(buffer); } template inline std::span as_bytes(const std::vector& buffer) { - return as_bytes(std::span(buffer.data(), buffer.size())); -} -template -inline std::span as_cbytes(std::span buffer) -{ - return details::as_cbytes(buffer); -} -template -inline std::span as_cbytes(std::vector& buffer_) -{ - const std::vector& buffer = buffer_; - return as_bytes(buffer); + return sys::as_bytes(buffer); } template -inline std::span as_bytes(std::span buffer) +inline std::span as_writable_bytes(std::vector& buffer) { - return details::as_bytes(buffer); + return sys::as_writable_bytes(buffer); } template -inline std::span as_bytes(std::vector& buffer) +inline std::span as_writable_bytes(std::span& buffer) { - return as_bytes(std::span(buffer.data(), buffer.size())); + return std::as_writable_bytes(buffer); } namespace testing { - extern std::filesystem::path findRootDir(const std::filesystem::path& dir); - extern std::filesystem::path buildRootDir(const std::filesystem::path& argv0); + std::filesystem::path findRootDir(const std::filesystem::path& dir); + std::filesystem::path buildRootDir(const std::filesystem::path& argv0); + + std::filesystem::path getNitfPath(const std::filesystem::path& filename); + std::filesystem::path getNitroPath(const std::filesystem::path& filename); + + std::vector getSchemaPaths(); + std::filesystem::path getModuleFile(const std::filesystem::path& modulePath, const std::filesystem::path& filename); + std::filesystem::path getSampleXmlPath(const std::filesystem::path& module /*"six.sicd"*/, const std::filesystem::path& filename); } } diff --git a/six/modules/c++/six/include/six/Version.h b/six/modules/c++/six/include/six/Version.h index 1f3c4cd6cf..d5f1ca5089 100644 --- a/six/modules/c++/six/include/six/Version.h +++ b/six/modules/c++/six/include/six/Version.h @@ -20,23 +20,26 @@ * see . * */ -#ifndef SIX_Version_h_INCLUDED_ -#define SIX_Version_h_INCLUDED_ +#ifndef SIX_six_Version_h_INCLUDED_ +#define SIX_six_Version_h_INCLUDED_ #pragma once #include "config/Version.h" #include "nitf/Version.hpp" -// SIX 3.1.15 2023-Mar-13 -// SIX 3.1.14 2022-Aug-30 -// SIX 3.1.13 2022-Aug-02 -// SIX 3.1.12 2022-Jun-29 -// SIX 3.1.11 2022-May-13 -// SIX 3.1.10 2022-May-03 // SIX 3.1.9 2022-Feb-02 +// SIX 3.1.10 2022-May-03 +// SIX 3.1.11 2022-May-13 +// SIX 3.1.12 2022-Jun-29 +// SIX 3.1.13 2022-Aug-02 +// SIX 3.1.14 2022-Aug-30 +// SIX 3.2.0 2022-Aug-30 (C++14) +// SIX 3.2.1 2022-Nov-04 +// SIX 3.2.2 2022-Dec-14 + #define SIX_VERSION_MAJOR 3 -#define SIX_VERSION_MINOR 1 -#define SIX_VERSION_PATCH 15 +#define SIX_VERSION_MINOR 2 +#define SIX_VERSION_PATCH 2 //#define SIX_VERSION_BUILD 0 //#define SIX_VERSION CODA_OSS_MAKE_VERSION_MMPB(SIX_VERSION_MAJOR, SIX_VERSION_MINOR, SIX_VERSION_PATCH, SIX_VERSION_BUILD) #define SIX_VERSION CODA_OSS_MAKE_VERSION_MMP(SIX_VERSION_MAJOR, SIX_VERSION_MINOR, SIX_VERSION_PATCH) @@ -50,4 +53,4 @@ namespace six //constexpr auto version_build = CODA_OSS_GET_VERSION_BUILD(SIX_VERSION); } -#endif // SIX_Version_h_INCLUDED_ +#endif // SIX_six_Version_h_INCLUDED_ diff --git a/six/modules/c++/six/include/six/XMLControl.h b/six/modules/c++/six/include/six/XMLControl.h index 0158cc5d46..25bd4df7e7 100644 --- a/six/modules/c++/six/include/six/XMLControl.h +++ b/six/modules/c++/six/include/six/XMLControl.h @@ -171,6 +171,12 @@ class XMLControl virtual Data* fromXMLImpl(const xml::lite::Document* doc) = 0; virtual std::unique_ptr fromXMLImpl(const xml::lite::Document&) const; // = 0;, would break existing code + virtual std::unique_ptr validateXMLImpl(const xml::lite::Document&, + const std::vector&, logging::Logger&) const; // = 0;, would break existing code + std::unique_ptr validateXMLImpl_(const xml::lite::Document&, + const std::vector&, logging::Logger&) const; + + /*! * Convert the Data model into an XML DOM. * \param data the Data model diff --git a/six/modules/c++/six/include/six/XMLControlFactory.h b/six/modules/c++/six/include/six/XMLControlFactory.h index cba019dfab..4a153e8b2e 100644 --- a/six/modules/c++/six/include/six/XMLControlFactory.h +++ b/six/modules/c++/six/include/six/XMLControlFactory.h @@ -27,6 +27,8 @@ #include #include +#include + #include #include "six/XMLControl.h" @@ -93,11 +95,13 @@ struct XMLControlRegistry virtual ~XMLControlRegistry(); void addCreator(const std::string& identifier, - std::unique_ptr&& creator); -#if !CODA_OSS_cpp17 - void addCreator(const std::string& identifier, - mem::auto_ptr creator); -#endif + std::unique_ptr&& creator); + void addCreator_(const std::string& identifier, + mem::AutoPtr creator) + { + std::unique_ptr scopedCreator(creator.release()); + addCreator(identifier, std::move(scopedCreator)); + } /*! * Takes ownership of creator @@ -110,17 +114,16 @@ struct XMLControlRegistry } void addCreator(DataType dataType, - std::unique_ptr&& creator) + std::unique_ptr&& creator) { addCreator(dataType.toString(), std::move(creator)); } -#if !CODA_OSS_cpp17 - void addCreator(DataType dataType, - mem::auto_ptr creator) + void addCreator_(DataType dataType, + mem::AutoPtr creator_) { - addCreator(dataType.toString(), creator); + std::unique_ptr creator(creator_.release()); + addCreator(dataType, std::move(creator)); } -#endif /*! * Takes ownership of creator diff --git a/six/modules/c++/six/include/six/XMLParser.h b/six/modules/c++/six/include/six/XMLParser.h index 00751aa696..7408a9a028 100644 --- a/six/modules/c++/six/include/six/XMLParser.h +++ b/six/modules/c++/six/include/six/XMLParser.h @@ -277,11 +277,16 @@ struct XMLParser mXmlLite.parseDateTime(*element, value); } + static void setAttribute(xml::lite::Element& e, const std::string& name, + const std::string& s, const xml::lite::Uri& uri) + { + return XmlLite::setAttribute(e, xml::lite::QName(uri, name), s); + } static void setAttribute(XMLElem e, const std::string& name, const std::string& s, const std::string& uri = "") { assert(e != nullptr); - return XmlLite::setAttribute(*e, xml::lite::QName(xml::lite::Uri(uri), name), s); + return setAttribute(*e, name, s, xml::lite::Uri(uri)); } static void setAttribute(XMLElem e, const std::string& name, size_t i, const std::string& uri = "") diff --git a/six/modules/c++/six/six.vcxproj b/six/modules/c++/six/six.vcxproj index 8464fa7fb2..24832f05aa 100644 --- a/six/modules/c++/six/six.vcxproj +++ b/six/modules/c++/six/six.vcxproj @@ -15,6 +15,7 @@ Win32Proj {62aad4dd-35ba-41a0-8263-1f4dfd755689} six + 10.0 @@ -64,6 +65,7 @@ EnableAllWarnings true true + stdc11 @@ -88,6 +90,7 @@ AdvancedVectorExtensions2 MultiThreadedDLL true + stdc11 diff --git a/six/modules/c++/six/source/Adapters.cpp b/six/modules/c++/six/source/Adapters.cpp index 19647c6952..30be34b8e0 100644 --- a/six/modules/c++/six/source/Adapters.cpp +++ b/six/modules/c++/six/source/Adapters.cpp @@ -58,7 +58,7 @@ static inline void nitf_free(NITF_DATA* data) static inline void byteSwap(std::vector& buffer, size_t elemSize, size_t numElems) { assert(buffer.size() == elemSize * numElems); - sys::byteSwap(buffer.data(), gsl::narrow(elemSize), numElems); + sys::byteSwap(buffer.data(), elemSize, numElems); } template static NITF_BOOL write(const TImpl* impl, nitf_IOInterface* io, nitf_Error* error, TWriteFunc write_f) diff --git a/six/modules/c++/six/source/ByteProvider.cpp b/six/modules/c++/six/source/ByteProvider.cpp index 5c4b7bcbdb..718f93be7e 100644 --- a/six/modules/c++/six/source/ByteProvider.cpp +++ b/six/modules/c++/six/source/ByteProvider.cpp @@ -44,14 +44,12 @@ ByteProvider::ByteProvider(const six::NITFHeaderCreator& headerCreator, { initialize(headerCreator, schemaPaths, desBuffers); } -#if !CODA_OSS_cpp17 -ByteProvider::ByteProvider(mem::auto_ptr headerCreator, +ByteProvider::ByteProvider(const std::unique_ptr& headerCreator, const std::vector& schemaPaths, const std::vector& desBuffers) : ByteProvider(*headerCreator, schemaPaths, desBuffers) { } -#endif void ByteProvider::populateOptions( std::shared_ptr container, @@ -263,14 +261,12 @@ void ByteProvider::initialize(const six::NITFHeaderCreator& headerCreator, numRowsPerBlock, numColsPerBlock); } -#if !CODA_OSS_cpp17 -void ByteProvider::initialize(mem::auto_ptr headerCreator_, +void ByteProvider::initialize(const std::unique_ptr& headerCreator_, const std::vector& schemaPaths, const std::vector& desBuffers) { const auto& headerCreator = *headerCreator_; initialize(headerCreator, schemaPaths, desBuffers); } -#endif } diff --git a/six/modules/c++/six/source/Container.cpp b/six/modules/c++/six/source/Container.cpp index 3bbdd67e40..2e3e06affb 100644 --- a/six/modules/c++/six/source/Container.cpp +++ b/six/modules/c++/six/source/Container.cpp @@ -61,24 +61,11 @@ void Container::addData(std::unique_ptr&& data, mem::ScopedCloneablePtr cloneableData(data.release()); mData.push_back(DataPair(cloneableData, legend)); } -#if !CODA_OSS_cpp17 -void Container::addData(mem::auto_ptr data, - mem::ScopedCopyablePtr legend) -{ - addData(std::unique_ptr(data.release()), legend); -} -#endif void Container::addData(std::unique_ptr&& data) { addData(std::move(data), nullLegend()); } -#if !CODA_OSS_cpp17 -void Container::addData(mem::auto_ptr data) -{ - addData(std::unique_ptr(data.release())); -} -#endif void Container::addData(std::unique_ptr&& data, std::unique_ptr&& legend) { @@ -91,12 +78,6 @@ void Container::addData(std::unique_ptr&& data, std::unique_ptr&& mem::ScopedCopyablePtr copyableLegend(legend.release()); addData(std::move(data), copyableLegend); } -#if !CODA_OSS_cpp17 -void Container::addData(mem::auto_ptr data, mem::auto_ptr legend) -{ - addData(std::unique_ptr(data.release()), std::unique_ptr(legend.release())); -} -#endif void Container::setData(size_t i, Data* data) { diff --git a/six/modules/c++/six/source/NITFWriteControl.cpp b/six/modules/c++/six/source/NITFWriteControl.cpp index 9a4f0e81f6..bc4a17c850 100644 --- a/six/modules/c++/six/source/NITFWriteControl.cpp +++ b/six/modules/c++/six/source/NITFWriteControl.cpp @@ -98,13 +98,6 @@ void NITFWriteControl::setNITFHeaderCreator( { mNITFHeaderCreator.reset(headerCreator.release()); } -#if !CODA_OSS_cpp17 -void NITFWriteControl::setNITFHeaderCreator( - mem::auto_ptr headerCreator) -{ - setNITFHeaderCreator(std::unique_ptr(headerCreator.release())); -} -#endif std::string NITFWriteControl::getComplexIID(size_t segmentNum, size_t numImageSegments) diff --git a/six/modules/c++/six/source/Utilities.cpp b/six/modules/c++/six/source/Utilities.cpp index a678563a34..e4a873d2db 100644 --- a/six/modules/c++/six/source/Utilities.cpp +++ b/six/modules/c++/six/source/Utilities.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include "six/Init.h" #include "six/Utilities.h" #include "six/XMLControl.h" @@ -571,7 +572,7 @@ void six::loadXmlDataContentHandler() loadXmlDataContentHandler(stderr); // existing/legacy behavior } -mem::auto_ptr six::parseData(const XMLControlRegistry& xmlReg, +std::unique_ptr six::parseData(const XMLControlRegistry& xmlReg, ::io::InputStream& xmlStream, const std::vector& schemaPaths, logging::Logger& log) @@ -586,9 +587,9 @@ std::unique_ptr six::parseData(const XMLControlRegistry& xmlReg, return parseData(xmlReg, xmlStream, DataType::NOT_SET, pSchemaPaths, log); } -inline mem::auto_ptr fromXML_(const xml::lite::Document& doc, XMLControl& xmlControl, const std::vector& schemaPaths) +inline std::unique_ptr fromXML_(const xml::lite::Document& doc, XMLControl& xmlControl, const std::vector& schemaPaths) { - return mem::auto_ptr(xmlControl.fromXML(&doc, schemaPaths)); + return std::unique_ptr(xmlControl.fromXML(&doc, schemaPaths)); } inline std::unique_ptr fromXML_(const xml::lite::Document& doc, XMLControl& xmlControl, const std::vector* pSchemaPaths) { @@ -632,13 +633,13 @@ TReturn six_parseData(const XMLControlRegistry& xmlReg, const std::unique_ptr xmlControl(xmlReg.newXMLControl(xmlDataType, &log)); return fromXML_(doc, *xmlControl, schemaPaths); } -mem::auto_ptr six::parseData(const XMLControlRegistry& xmlReg, +std::unique_ptr six::parseData(const XMLControlRegistry& xmlReg, ::io::InputStream& xmlStream, DataType dataType, const std::vector& schemaPaths, logging::Logger& log) { - return six_parseData>(xmlReg, xmlStream, dataType, schemaPaths, log); + return six_parseData>(xmlReg, xmlStream, dataType, schemaPaths, log); } std::unique_ptr six::parseData(const XMLControlRegistry& xmlReg, ::io::InputStream& xmlStream, @@ -649,7 +650,7 @@ std::unique_ptr six::parseData(const XMLControlRegistry& xmlReg, return six_parseData>(xmlReg, xmlStream, dataType, pSchemaPaths, log); } -mem::auto_ptr six::parseDataFromFile(const XMLControlRegistry& xmlReg, +std::unique_ptr six::parseDataFromFile(const XMLControlRegistry& xmlReg, const std::string& pathname, const std::vector& schemaPaths, logging::Logger& log) @@ -657,7 +658,7 @@ mem::auto_ptr six::parseDataFromFile(const XMLControlRegistry& xmlReg, return parseDataFromFile(xmlReg, pathname, DataType::NOT_SET, schemaPaths, log); } -mem::auto_ptr six::parseDataFromFile( +std::unique_ptr six::parseDataFromFile( const XMLControlRegistry& xmlReg, const std::string& pathname, DataType dataType, @@ -675,7 +676,7 @@ std::unique_ptr six::parseDataFromString(const XMLControlRegistry& xmlReg, { return parseDataFromString(xmlReg, xmlStr, DataType::NOT_SET, pSchemaPaths, pLogger); } -mem::auto_ptr six::parseDataFromString(const XMLControlRegistry& xmlReg, +std::unique_ptr six::parseDataFromString(const XMLControlRegistry& xmlReg, const std::string& xmlStr, const std::vector& schemaPaths, logging::Logger& log) @@ -705,7 +706,7 @@ std::unique_ptr six::parseDataFromString( return parseData(xmlReg, inStream, dataType, schemaPaths, *pLogger_); } -mem::auto_ptr six::parseDataFromString(const XMLControlRegistry& xmlReg, +std::unique_ptr six::parseDataFromString(const XMLControlRegistry& xmlReg, const std::string& xmlStr, DataType dataType, const std::vector& schemaPaths_, @@ -717,7 +718,7 @@ mem::auto_ptr six::parseDataFromString(const XMLControlRegistry& xmlReg, const str::EncodedStringView view(xmlStr); auto result = parseDataFromString(xmlReg, view.u8string(), dataType, &schemaPaths, &log); - return mem::auto_ptr(result.release()); + return std::unique_ptr(result.release()); } std::string six::findSchemaPath(const std::string& progname) @@ -847,16 +848,27 @@ void six::getErrors(const ErrorStatistics* errorStats, } } -std::filesystem::path six::testing::findRootDir(const std::filesystem::path& dir) +static bool is_six_root(const std::filesystem::path& dir) { - using namespace std::filesystem; const auto six = dir / "six"; - const auto externals = dir / "externals"; const auto six_sln = dir / "six.sln"; - if (is_directory(six) && is_directory(externals) && is_regular_file(six_sln)) + return is_directory(six) && is_regular_file(six_sln); +} +std::filesystem::path six::testing::findRootDir(const std::filesystem::path& dir) +{ + // /six.sln + if (is_six_root(dir)) { return dir; } + + // /externals/six/six.sln + const auto externals = dir / "externals" / "six"; // not "six-library" + if (is_six_root(externals)) + { + return externals; + } + const auto parent = dir.parent_path(); return findRootDir(parent); } @@ -878,3 +890,34 @@ std::filesystem::path six::testing::buildRootDir(const std::filesystem::path& ar // Linux or stand-alone return six::testing::findRootDir(argv0); } + +std::filesystem::path six::testing::getNitroPath(const std::filesystem::path& filename) +{ + static const auto unittests = std::filesystem::path("modules") / "c++" / "nitf" / "unittests"; + return sys::test::findGITModuleFile("nitro", unittests, filename); +} + +std::filesystem::path six::testing::getModuleFile(const std::filesystem::path& modulePath, const std::filesystem::path& filename) +{ + return sys::test::findGITModuleFile("six", modulePath, filename); +} + +std::filesystem::path six::testing::getNitfPath(const std::filesystem::path& filename) +{ + static const auto tests_nitf = std::filesystem::path("six") / "modules" / "c++" / "six" / "tests" / "nitf"; + return getModuleFile(tests_nitf, filename); +} + +std::vector six::testing::getSchemaPaths() +{ + static const auto modulePath = std::filesystem::path("six") / "modules" / "c++" / "six.sicd" / "conf" / "schema"; + static const auto filename = getModuleFile(modulePath, "SICD_schema_V1.3.0.xsd"); + static const auto schemaPath = filename.parent_path(); + return std::vector { schemaPath }; +} + +std::filesystem::path six::testing::getSampleXmlPath(const std::filesystem::path& moduleName, const std::filesystem::path& filename) +{ + const auto modulePath = std::filesystem::path("six") / "modules" / "c++" / moduleName; + return getModuleFile(modulePath, filename); +} diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index fbf51f641e..f049de526b 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -51,7 +51,7 @@ namespace six static void loadDefaultSchemaPath(std::vector& schemaPaths) { - const sys::OS os; + static const sys::OS os; // prefer SIX_DEFAULT_SCHEMA_PATH, existing scripts use DEFAULT_SCHEMA_PATH #if defined(DEFAULT_SCHEMA_PATH) && !defined(SIX_DEFAULT_SCHEMA_PATH) @@ -112,12 +112,11 @@ std::vector XMLControl::loadSchemaPaths(const std::vector return retval; } -template -static std::vector check_whether_paths_exist(const std::vector& paths) +static auto check_whether_paths_exist(const std::vector& paths) { // If the paths we have don't exist, throw - typename std::vector::value_type does_not_exist_path; - std::vector exist_paths; + std::filesystem::path does_not_exist_path; + std::vector exist_paths; for (const auto& path : paths) { if (!fs::exists(path)) @@ -143,59 +142,95 @@ static std::vector check_whether_paths_exist(const std::vector& pa return exist_paths; } -// NOTE: Errors are treated as detriments to valid processing -// and fail accordingly -template -static void do_validate_(const xml::lite::Document& doc, - const std::vector& paths, logging::Logger* log) +// Generate a detaled INVALID XML message +static auto getInvalidXmlErrorMessage(const std::vector& paths) { - // validate against any specified schemas - xml::lite::Validator validator(paths, log, true); + static const std::string invalidXML = "INVALID XML: Check both the XML being produced and schemas available at "; + auto message = invalidXML; + message += (paths.size() > 1 ? "these paths:" : "this path:"); + for (const auto& p : paths) + { + message += "\n\t" + p.string(); + } + return message; +} - const auto& rootElement = doc.getRootElement(); - if (rootElement->getUri().empty()) +static void log_any_errors_and_throw(const std::vector& errors, + const std::vector& paths, logging::Logger& log) +{ + if (errors.empty()) { - throw six::DESValidationException(Ctxt("INVALID XML: URI is empty so document version cannot be determined to use for validation")); + return; // no errors, nothing to do } + auto ctx(Ctxt(getInvalidXmlErrorMessage(paths))); + for (auto&& e : errors) + { + log.critical(e.toString()); + + ctx.mMessage += "\n" + e.toString(); + } + + //! this is a unique error thrown only in this location -- + // if the user wants a file written regardless of the consequences + // they can catch this error, clear the vector and SIX_SCHEMA_PATH + // and attempt to rewrite the file. Continuing in this manner is + // highly discouraged + throw six::DESValidationException(ctx); +} + +// NOTE: Errors are treated as detriments to valid processing +// and fail accordingly +static void validate_(const xml::lite::Element& rootElement, + const std::vector& schemaPaths, logging::Logger& log) +{ + xml::lite::Uri uri; + rootElement.getUri(uri); + // Pretty-print so that lines numbers are useful io::U8StringStream xmlStream; - rootElement->prettyPrint(xmlStream); - - std::vector errors; - validator.validate(xmlStream, rootElement->getUri(), errors); + rootElement.prettyPrint(xmlStream); + const auto strPrettyXml = xmlStream.stream().str(); - // log any error found and throw - if (!errors.empty()) + // Process schema paths one at a time. This will reduce the "noise" from XML validation failures + // and could also make instantiating an xml::lite::ValidatorXerces faster. + std::vector all_errors; + for (auto&& schemaPath : schemaPaths) { - if (log) + const std::vector schemaPaths_{ schemaPath }; // use one path at a time + const xml::lite::ValidatorXerces validator(schemaPaths_, &log, true); // this can be expensive to create as all sub-directories might be traversed + + // validate against any specified schemas + std::vector errors; + validator.validate(strPrettyXml, uri.value, errors); + + // Looks like we validated; be sure there aren't any errors + if (errors.empty()) { - for (size_t i = 0; i < errors.size(); ++i) - { - log->critical(errors[i].toString()); - } + return; // success! } - //! this is a unique error thrown only in this location -- - // if the user wants a file written regardless of the consequences - // they can catch this error, clear the vector and SIX_SCHEMA_PATH - // and attempt to rewrite the file. Continuing in this manner is - // highly discouraged - throw six::DESValidationException(Ctxt("INVALID XML: Check both the XML being produced and the schemas available")); + // This schema path failed; save away my errors in case none of them work + all_errors.insert(all_errors.end(), errors.begin(), errors.end()); } + + // log any error found and throw + log_any_errors_and_throw(all_errors, schemaPaths, log); } -template static void validate_(const xml::lite::Document& doc, - std::vector paths, logging::Logger* log) + const std::vector& paths_, logging::Logger& log) { // If the paths we have don't exist, throw - paths = check_whether_paths_exist(paths); + const auto paths = check_whether_paths_exist(paths_); - // validate against any specified schemas - if (!paths.empty()) + auto rootElement = doc.getRootElement(); + if (rootElement->getUri().empty()) { - do_validate_(doc, paths, log); + throw six::DESValidationException(Ctxt("INVALID XML: URI is empty so document version cannot be determined to use for validation")); } + + // validate against any specified schemas + validate_(*rootElement, paths, log); } void XMLControl::validate(const xml::lite::Document* doc, const std::vector& schemaPaths, @@ -203,12 +238,14 @@ void XMLControl::validate(const xml::lite::Document* doc, { assert(doc != nullptr); + // Existing code in xml::lite requires that the Logger be non-NULL + assert(log != nullptr); + // attempt to get the schema location from the // environment if nothing is specified std::vector paths(schemaPaths); loadSchemaPaths(paths); - - if ((log != nullptr) && schemaPaths.empty()) + if (paths.empty()) { std::ostringstream oss; oss << "Coudn't validate XML - no schemas paths provided " @@ -217,16 +254,22 @@ void XMLControl::validate(const xml::lite::Document* doc, log->warn(oss.str()); } + std::vector schemaPaths_; + std::transform(paths.begin(), paths.end(), std::back_inserter(schemaPaths_), [&](const std::string& s) { return s; }); + // validate against any specified schemas - validate_(*doc, paths, log); + validate_(*doc, schemaPaths_, *log); } void XMLControl::validate(const xml::lite::Document& doc, const std::vector* pSchemaPaths, logging::Logger* log) { + // Existing code in xml::lite requires that the Logger be non-NULL + assert(log != nullptr); + // attempt to get the schema location from the environment if nothing is specified auto paths = loadSchemaPaths(pSchemaPaths); - if ((log != nullptr) && (pSchemaPaths != nullptr) && paths.empty()) + if ((pSchemaPaths != nullptr) && paths.empty()) { std::ostringstream oss; oss << "Coudn't validate XML - no schemas paths provided " @@ -236,7 +279,7 @@ void XMLControl::validate(const xml::lite::Document& doc, } // validate against any specified schemas - validate_(doc, paths, log); + validate_(doc, paths, *log); } std::string XMLControl::getDefaultURI(const Data& data) @@ -321,18 +364,40 @@ Data* XMLControl::fromXML(const xml::lite::Document* doc, std::transform(schemaPaths_.begin(), schemaPaths_.end(), std::back_inserter(schemaPaths), [](const std::string& s) { return s; }); + assert(doc != nullptr); auto data = fromXML(*doc, &schemaPaths); return data.release(); } std::unique_ptr XMLControl::fromXML(const xml::lite::Document& doc, const std::vector* pSchemaPaths) { - validate(doc, pSchemaPaths, mLog); - auto data = fromXMLImpl(doc); + std::unique_ptr data; + if ((pSchemaPaths != nullptr) && (mLog != nullptr)) + { + data = validateXMLImpl(doc, *pSchemaPaths, *mLog); + } + else + { + // existing code, let validate() handle NULLs + validate(doc, pSchemaPaths, mLog); + data = fromXMLImpl(doc); + } data->setVersion(getVersionFromURI(&doc)); return data; } +std::unique_ptr XMLControl::validateXMLImpl_(const xml::lite::Document& doc, + const std::vector& schemaPaths, logging::Logger& log) const +{ + validate(doc, &schemaPaths, &log); + return fromXMLImpl(doc); +} +std::unique_ptr XMLControl::validateXMLImpl(const xml::lite::Document& doc, + const std::vector& schemaPaths, logging::Logger& log) const +{ + return validateXMLImpl_(doc, schemaPaths, log); +} + std::string XMLControl::dataTypeToString(DataType dataType, bool appendXML) { std::string str; diff --git a/six/modules/c++/six/source/XMLControlFactory.cpp b/six/modules/c++/six/source/XMLControlFactory.cpp index 05bb854354..b0a5c88327 100644 --- a/six/modules/c++/six/source/XMLControlFactory.cpp +++ b/six/modules/c++/six/source/XMLControlFactory.cpp @@ -58,13 +58,6 @@ void XMLControlRegistry::addCreator(const std::string& identifier, // At this point we've taken ownership creator.release(); } -#if !CODA_OSS_cpp17 -void XMLControlRegistry::addCreator(const std::string& identifier, - mem::auto_ptr creator) -{ - addCreator(identifier, std::unique_ptr(creator.release())); -} -#endif XMLControl* XMLControlRegistry::newXMLControl(const std::string& identifier, diff --git a/six/modules/c++/six/unittests/test_polarization_type_conversions.cpp b/six/modules/c++/six/unittests/test_polarization_type_conversions.cpp index 9036bf0fc2..55462a59c3 100644 --- a/six/modules/c++/six/unittests/test_polarization_type_conversions.cpp +++ b/six/modules/c++/six/unittests/test_polarization_type_conversions.cpp @@ -368,6 +368,8 @@ TEST_CASE(NotSet) test_NotSet("NotSet"); test_NotSet("NotSet"); test_NotSet("NotSet"); + + TEST_ASSERT_TRUE(true); } template diff --git a/six/modules/python/CMakeLists.txt b/six/modules/python/CMakeLists.txt index 9c7a8f825f..6df801273c 100644 --- a/six/modules/python/CMakeLists.txt +++ b/six/modules/python/CMakeLists.txt @@ -1,3 +1,15 @@ +set(TARGET_LANGUAGE c++) + +# Turn off all warnings; this is code we don't control. +if (MSVC) + # By default, there is a /W3 on the command-line from somewhere (?); adding + # /Wn results in a compiler warning. + #add_compile_options(/W0) + string(REGEX REPLACE "/W[0-4]" "/W0" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +elseif (UNIX) + add_compile_options(-w) # "Inhibit all warning messages" +endif() + add_subdirectory(scene) add_subdirectory(six) add_subdirectory(six.sicd) diff --git a/six/modules/python/cphd/source/generated/cphd_wrap.cxx b/six/modules/python/cphd/source/generated/cphd_wrap.cxx index d7c1123ba4..80f6d72d6a 100644 --- a/six/modules/python/cphd/source/generated/cphd_wrap.cxx +++ b/six/modules/python/cphd/source/generated/cphd_wrap.cxx @@ -79892,7 +79892,7 @@ SWIGINTERN PyObject *_wrap_CPHDXMLControl_toXMLString__SWIG_0(PyObject *SWIGUNUS { try { - result = (arg1)->toXMLString((cphd::Metadata const &)*arg2,(std::vector< std::string,std::allocator< std::string > > const &)*arg3,arg4); + result = (arg1)->toXMLString_((cphd::Metadata const &)*arg2,(std::vector< std::string,std::allocator< std::string > > const &)*arg3,arg4); } catch (const std::exception& e) { @@ -79972,7 +79972,7 @@ SWIGINTERN PyObject *_wrap_CPHDXMLControl_toXMLString__SWIG_1(PyObject *SWIGUNUS { try { - result = (arg1)->toXMLString((cphd::Metadata const &)*arg2,(std::vector< std::string,std::allocator< std::string > > const &)*arg3); + result = (arg1)->toXMLString_((cphd::Metadata const &)*arg2,(std::vector< std::string,std::allocator< std::string > > const &)*arg3); } catch (const std::exception& e) { @@ -80038,7 +80038,7 @@ SWIGINTERN PyObject *_wrap_CPHDXMLControl_toXMLString__SWIG_2(PyObject *SWIGUNUS { try { - result = (arg1)->toXMLString((cphd::Metadata const &)*arg2); + result = (arg1)->toXMLString_((cphd::Metadata const &)*arg2); } catch (const std::exception& e) { @@ -146751,13 +146751,13 @@ SWIGINTERN PyObject *VectorGeoInfo_swigregister(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_new_StdAutoSupportArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::SupportArray > *result = 0 ; + std::auto_ptr< cphd::SupportArray > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoSupportArray")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::SupportArray > *)new mem::auto_ptr< cphd::SupportArray >(); + result = (std::auto_ptr< cphd::SupportArray > *)new std::auto_ptr< cphd::SupportArray >(); } catch (const std::exception& e) { @@ -146794,7 +146794,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoSupportArray(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_delete_StdAutoSupportArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::SupportArray > *arg1 = (mem::auto_ptr< cphd::SupportArray > *) 0 ; + std::auto_ptr< cphd::SupportArray > *arg1 = (std::auto_ptr< cphd::SupportArray > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -146802,9 +146802,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoSupportArray(PyObject *SWIGUNUSEDPARM(s if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoSupportArray",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__SupportArray_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoSupportArray" "', argument " "1"" of type '" "mem::auto_ptr< cphd::SupportArray > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoSupportArray" "', argument " "1"" of type '" "std::auto_ptr< cphd::SupportArray > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::SupportArray > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::SupportArray > * >(argp1); { try { @@ -148178,13 +148178,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableSupportArray(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_new_StdAutoTropoParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TropoParameters > *result = 0 ; + std::auto_ptr< cphd::TropoParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTropoParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::TropoParameters > *)new mem::auto_ptr< cphd::TropoParameters >(); + result = (std::auto_ptr< cphd::TropoParameters > *)new std::auto_ptr< cphd::TropoParameters >(); } catch (const std::exception& e) { @@ -148221,7 +148221,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTropoParameters(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_delete_StdAutoTropoParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TropoParameters > *arg1 = (mem::auto_ptr< cphd::TropoParameters > *) 0 ; + std::auto_ptr< cphd::TropoParameters > *arg1 = (std::auto_ptr< cphd::TropoParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -148229,9 +148229,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTropoParameters(PyObject *SWIGUNUSEDPAR if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTropoParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__TropoParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTropoParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd::TropoParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTropoParameters" "', argument " "1"" of type '" "std::auto_ptr< cphd::TropoParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::TropoParameters > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::TropoParameters > * >(argp1); { try { @@ -149289,13 +149289,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTropoParameters(PyObject *SWIGUNUSE SWIGINTERN PyObject *_wrap_new_StdAutoIonoParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::IonoParameters > *result = 0 ; + std::auto_ptr< cphd::IonoParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoIonoParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::IonoParameters > *)new mem::auto_ptr< cphd::IonoParameters >(); + result = (std::auto_ptr< cphd::IonoParameters > *)new std::auto_ptr< cphd::IonoParameters >(); } catch (const std::exception& e) { @@ -149332,7 +149332,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoIonoParameters(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_delete_StdAutoIonoParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::IonoParameters > *arg1 = (mem::auto_ptr< cphd::IonoParameters > *) 0 ; + std::auto_ptr< cphd::IonoParameters > *arg1 = (std::auto_ptr< cphd::IonoParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -149340,9 +149340,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoIonoParameters(PyObject *SWIGUNUSEDPARM if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoIonoParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__IonoParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoIonoParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd::IonoParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoIonoParameters" "', argument " "1"" of type '" "std::auto_ptr< cphd::IonoParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::IonoParameters > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::IonoParameters > * >(argp1); { try { @@ -150400,13 +150400,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableIonoParameters(PyObject *SWIGUNUSED SWIGINTERN PyObject *_wrap_new_StdAutoPlanar(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::Planar > *result = 0 ; + std::auto_ptr< cphd::Planar > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoPlanar")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::Planar > *)new mem::auto_ptr< cphd::Planar >(); + result = (std::auto_ptr< cphd::Planar > *)new std::auto_ptr< cphd::Planar >(); } catch (const std::exception& e) { @@ -150443,7 +150443,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoPlanar(PyObject *SWIGUNUSEDPARM(self), PyO SWIGINTERN PyObject *_wrap_delete_StdAutoPlanar(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::Planar > *arg1 = (mem::auto_ptr< cphd::Planar > *) 0 ; + std::auto_ptr< cphd::Planar > *arg1 = (std::auto_ptr< cphd::Planar > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -150451,9 +150451,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoPlanar(PyObject *SWIGUNUSEDPARM(self), if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoPlanar",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__Planar_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPlanar" "', argument " "1"" of type '" "mem::auto_ptr< cphd::Planar > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPlanar" "', argument " "1"" of type '" "std::auto_ptr< cphd::Planar > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::Planar > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::Planar > * >(argp1); { try { @@ -151511,13 +151511,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyablePlanar(PyObject *SWIGUNUSEDPARM(sel SWIGINTERN PyObject *_wrap_new_StdAutoHAE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::HAE > *result = 0 ; + std::auto_ptr< cphd::HAE > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoHAE")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::HAE > *)new mem::auto_ptr< cphd::HAE >(); + result = (std::auto_ptr< cphd::HAE > *)new std::auto_ptr< cphd::HAE >(); } catch (const std::exception& e) { @@ -151554,7 +151554,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoHAE(PyObject *SWIGUNUSEDPARM(self), PyObje SWIGINTERN PyObject *_wrap_delete_StdAutoHAE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::HAE > *arg1 = (mem::auto_ptr< cphd::HAE > *) 0 ; + std::auto_ptr< cphd::HAE > *arg1 = (std::auto_ptr< cphd::HAE > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -151562,9 +151562,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoHAE(PyObject *SWIGUNUSEDPARM(self), PyO if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoHAE",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__HAE_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoHAE" "', argument " "1"" of type '" "mem::auto_ptr< cphd::HAE > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoHAE" "', argument " "1"" of type '" "std::auto_ptr< cphd::HAE > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::HAE > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::HAE > * >(argp1); { try { @@ -152622,13 +152622,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableHAE(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_new_StdAutoAreaType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::AreaType > *result = 0 ; + std::auto_ptr< cphd::AreaType > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoAreaType")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::AreaType > *)new mem::auto_ptr< cphd::AreaType >(); + result = (std::auto_ptr< cphd::AreaType > *)new std::auto_ptr< cphd::AreaType >(); } catch (const std::exception& e) { @@ -152665,7 +152665,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoAreaType(PyObject *SWIGUNUSEDPARM(self), P SWIGINTERN PyObject *_wrap_delete_StdAutoAreaType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::AreaType > *arg1 = (mem::auto_ptr< cphd::AreaType > *) 0 ; + std::auto_ptr< cphd::AreaType > *arg1 = (std::auto_ptr< cphd::AreaType > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -152673,9 +152673,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoAreaType(PyObject *SWIGUNUSEDPARM(self) if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoAreaType",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__AreaType_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAreaType" "', argument " "1"" of type '" "mem::auto_ptr< cphd::AreaType > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAreaType" "', argument " "1"" of type '" "std::auto_ptr< cphd::AreaType > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::AreaType > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::AreaType > * >(argp1); { try { @@ -153845,13 +153845,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableAreaType(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_new_StdAutoImageGrid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ImageGrid > *result = 0 ; + std::auto_ptr< cphd::ImageGrid > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoImageGrid")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::ImageGrid > *)new mem::auto_ptr< cphd::ImageGrid >(); + result = (std::auto_ptr< cphd::ImageGrid > *)new std::auto_ptr< cphd::ImageGrid >(); } catch (const std::exception& e) { @@ -153888,7 +153888,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoImageGrid(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoImageGrid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ImageGrid > *arg1 = (mem::auto_ptr< cphd::ImageGrid > *) 0 ; + std::auto_ptr< cphd::ImageGrid > *arg1 = (std::auto_ptr< cphd::ImageGrid > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -153896,9 +153896,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoImageGrid(PyObject *SWIGUNUSEDPARM(self if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoImageGrid",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__ImageGrid_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoImageGrid" "', argument " "1"" of type '" "mem::auto_ptr< cphd::ImageGrid > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoImageGrid" "', argument " "1"" of type '" "std::auto_ptr< cphd::ImageGrid > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::ImageGrid > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::ImageGrid > * >(argp1); { try { @@ -155299,13 +155299,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableImageGrid(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_new_StdAutoTxRcv(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TxRcv > *result = 0 ; + std::auto_ptr< cphd::TxRcv > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTxRcv")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::TxRcv > *)new mem::auto_ptr< cphd::TxRcv >(); + result = (std::auto_ptr< cphd::TxRcv > *)new std::auto_ptr< cphd::TxRcv >(); } catch (const std::exception& e) { @@ -155342,7 +155342,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTxRcv(PyObject *SWIGUNUSEDPARM(self), PyOb SWIGINTERN PyObject *_wrap_delete_StdAutoTxRcv(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TxRcv > *arg1 = (mem::auto_ptr< cphd::TxRcv > *) 0 ; + std::auto_ptr< cphd::TxRcv > *arg1 = (std::auto_ptr< cphd::TxRcv > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -155350,9 +155350,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTxRcv(PyObject *SWIGUNUSEDPARM(self), P if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTxRcv",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__TxRcv_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTxRcv" "', argument " "1"" of type '" "mem::auto_ptr< cphd::TxRcv > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTxRcv" "', argument " "1"" of type '" "std::auto_ptr< cphd::TxRcv > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::TxRcv > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::TxRcv > * >(argp1); { try { @@ -156410,13 +156410,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTxRcv(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_new_StdAutoTOAExtended(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TOAExtended > *result = 0 ; + std::auto_ptr< cphd::TOAExtended > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTOAExtended")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::TOAExtended > *)new mem::auto_ptr< cphd::TOAExtended >(); + result = (std::auto_ptr< cphd::TOAExtended > *)new std::auto_ptr< cphd::TOAExtended >(); } catch (const std::exception& e) { @@ -156453,7 +156453,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTOAExtended(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoTOAExtended(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TOAExtended > *arg1 = (mem::auto_ptr< cphd::TOAExtended > *) 0 ; + std::auto_ptr< cphd::TOAExtended > *arg1 = (std::auto_ptr< cphd::TOAExtended > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -156461,9 +156461,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTOAExtended(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTOAExtended",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__TOAExtended_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTOAExtended" "', argument " "1"" of type '" "mem::auto_ptr< cphd::TOAExtended > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTOAExtended" "', argument " "1"" of type '" "std::auto_ptr< cphd::TOAExtended > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::TOAExtended > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::TOAExtended > * >(argp1); { try { @@ -157521,13 +157521,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTOAExtended(PyObject *SWIGUNUSEDPAR SWIGINTERN PyObject *_wrap_new_StdAutoTOALFMEclipse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TOAExtended::LFMEclipse > *result = 0 ; + std::auto_ptr< cphd::TOAExtended::LFMEclipse > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTOALFMEclipse")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::TOAExtended::LFMEclipse > *)new mem::auto_ptr< cphd::TOAExtended::LFMEclipse >(); + result = (std::auto_ptr< cphd::TOAExtended::LFMEclipse > *)new std::auto_ptr< cphd::TOAExtended::LFMEclipse >(); } catch (const std::exception& e) { @@ -157564,7 +157564,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTOALFMEclipse(PyObject *SWIGUNUSEDPARM(sel SWIGINTERN PyObject *_wrap_delete_StdAutoTOALFMEclipse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TOAExtended::LFMEclipse > *arg1 = (mem::auto_ptr< cphd::TOAExtended::LFMEclipse > *) 0 ; + std::auto_ptr< cphd::TOAExtended::LFMEclipse > *arg1 = (std::auto_ptr< cphd::TOAExtended::LFMEclipse > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -157572,9 +157572,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTOALFMEclipse(PyObject *SWIGUNUSEDPARM( if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTOALFMEclipse",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__TOAExtended__LFMEclipse_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTOALFMEclipse" "', argument " "1"" of type '" "mem::auto_ptr< cphd::TOAExtended::LFMEclipse > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTOALFMEclipse" "', argument " "1"" of type '" "std::auto_ptr< cphd::TOAExtended::LFMEclipse > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::TOAExtended::LFMEclipse > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::TOAExtended::LFMEclipse > * >(argp1); { try { @@ -158856,13 +158856,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTOALFMEclipse(PyObject *SWIGUNUSEDP SWIGINTERN PyObject *_wrap_new_StdAutoChannelAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ChannelParameter::Antenna > *result = 0 ; + std::auto_ptr< cphd::ChannelParameter::Antenna > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoChannelAntenna")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::ChannelParameter::Antenna > *)new mem::auto_ptr< cphd::ChannelParameter::Antenna >(); + result = (std::auto_ptr< cphd::ChannelParameter::Antenna > *)new std::auto_ptr< cphd::ChannelParameter::Antenna >(); } catch (const std::exception& e) { @@ -158899,7 +158899,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoChannelAntenna(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_delete_StdAutoChannelAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ChannelParameter::Antenna > *arg1 = (mem::auto_ptr< cphd::ChannelParameter::Antenna > *) 0 ; + std::auto_ptr< cphd::ChannelParameter::Antenna > *arg1 = (std::auto_ptr< cphd::ChannelParameter::Antenna > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -158907,9 +158907,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoChannelAntenna(PyObject *SWIGUNUSEDPARM if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoChannelAntenna",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__ChannelParameter__Antenna_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoChannelAntenna" "', argument " "1"" of type '" "mem::auto_ptr< cphd::ChannelParameter::Antenna > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoChannelAntenna" "', argument " "1"" of type '" "std::auto_ptr< cphd::ChannelParameter::Antenna > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::ChannelParameter::Antenna > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::ChannelParameter::Antenna > * >(argp1); { try { @@ -160219,13 +160219,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableChannelAntenna(PyObject *SWIGUNUSED SWIGINTERN PyObject *_wrap_new_StdAutoChannelTxRcv(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ChannelParameter::TxRcv > *result = 0 ; + std::auto_ptr< cphd::ChannelParameter::TxRcv > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoChannelTxRcv")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::ChannelParameter::TxRcv > *)new mem::auto_ptr< cphd::ChannelParameter::TxRcv >(); + result = (std::auto_ptr< cphd::ChannelParameter::TxRcv > *)new std::auto_ptr< cphd::ChannelParameter::TxRcv >(); } catch (const std::exception& e) { @@ -160262,7 +160262,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoChannelTxRcv(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_delete_StdAutoChannelTxRcv(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ChannelParameter::TxRcv > *arg1 = (mem::auto_ptr< cphd::ChannelParameter::TxRcv > *) 0 ; + std::auto_ptr< cphd::ChannelParameter::TxRcv > *arg1 = (std::auto_ptr< cphd::ChannelParameter::TxRcv > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -160270,9 +160270,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoChannelTxRcv(PyObject *SWIGUNUSEDPARM(s if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoChannelTxRcv",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__ChannelParameter__TxRcv_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoChannelTxRcv" "', argument " "1"" of type '" "mem::auto_ptr< cphd::ChannelParameter::TxRcv > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoChannelTxRcv" "', argument " "1"" of type '" "std::auto_ptr< cphd::ChannelParameter::TxRcv > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::ChannelParameter::TxRcv > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::ChannelParameter::TxRcv > * >(argp1); { try { @@ -161330,13 +161330,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableChannelTxRcv(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_new_StdAutoTgtRefLevel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TgtRefLevel > *result = 0 ; + std::auto_ptr< cphd::TgtRefLevel > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTgtRefLevel")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::TgtRefLevel > *)new mem::auto_ptr< cphd::TgtRefLevel >(); + result = (std::auto_ptr< cphd::TgtRefLevel > *)new std::auto_ptr< cphd::TgtRefLevel >(); } catch (const std::exception& e) { @@ -161373,7 +161373,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTgtRefLevel(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoTgtRefLevel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::TgtRefLevel > *arg1 = (mem::auto_ptr< cphd::TgtRefLevel > *) 0 ; + std::auto_ptr< cphd::TgtRefLevel > *arg1 = (std::auto_ptr< cphd::TgtRefLevel > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -161381,9 +161381,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTgtRefLevel(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTgtRefLevel",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__TgtRefLevel_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTgtRefLevel" "', argument " "1"" of type '" "mem::auto_ptr< cphd::TgtRefLevel > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTgtRefLevel" "', argument " "1"" of type '" "std::auto_ptr< cphd::TgtRefLevel > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::TgtRefLevel > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::TgtRefLevel > * >(argp1); { try { @@ -162329,13 +162329,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTgtRefLevel(PyObject *SWIGUNUSEDPAR SWIGINTERN PyObject *_wrap_new_StdAutoNoiseLevel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::NoiseLevel > *result = 0 ; + std::auto_ptr< cphd::NoiseLevel > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoNoiseLevel")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::NoiseLevel > *)new mem::auto_ptr< cphd::NoiseLevel >(); + result = (std::auto_ptr< cphd::NoiseLevel > *)new std::auto_ptr< cphd::NoiseLevel >(); } catch (const std::exception& e) { @@ -162372,7 +162372,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoNoiseLevel(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoNoiseLevel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::NoiseLevel > *arg1 = (mem::auto_ptr< cphd::NoiseLevel > *) 0 ; + std::auto_ptr< cphd::NoiseLevel > *arg1 = (std::auto_ptr< cphd::NoiseLevel > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -162380,9 +162380,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoNoiseLevel(PyObject *SWIGUNUSEDPARM(sel if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoNoiseLevel",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__NoiseLevel_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoNoiseLevel" "', argument " "1"" of type '" "mem::auto_ptr< cphd::NoiseLevel > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoNoiseLevel" "', argument " "1"" of type '" "std::auto_ptr< cphd::NoiseLevel > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::NoiseLevel > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::NoiseLevel > * >(argp1); { try { @@ -163552,13 +163552,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableNoiseLevel(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_new_StdAutoFxNoiseProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::FxNoiseProfile > *result = 0 ; + std::auto_ptr< cphd::FxNoiseProfile > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoFxNoiseProfile")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::FxNoiseProfile > *)new mem::auto_ptr< cphd::FxNoiseProfile >(); + result = (std::auto_ptr< cphd::FxNoiseProfile > *)new std::auto_ptr< cphd::FxNoiseProfile >(); } catch (const std::exception& e) { @@ -163595,7 +163595,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoFxNoiseProfile(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_delete_StdAutoFxNoiseProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::FxNoiseProfile > *arg1 = (mem::auto_ptr< cphd::FxNoiseProfile > *) 0 ; + std::auto_ptr< cphd::FxNoiseProfile > *arg1 = (std::auto_ptr< cphd::FxNoiseProfile > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -163603,9 +163603,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoFxNoiseProfile(PyObject *SWIGUNUSEDPARM if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoFxNoiseProfile",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__FxNoiseProfile_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoFxNoiseProfile" "', argument " "1"" of type '" "mem::auto_ptr< cphd::FxNoiseProfile > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoFxNoiseProfile" "', argument " "1"" of type '" "std::auto_ptr< cphd::FxNoiseProfile > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::FxNoiseProfile > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::FxNoiseProfile > * >(argp1); { try { @@ -164551,13 +164551,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableFxNoiseProfile(PyObject *SWIGUNUSED SWIGINTERN PyObject *_wrap_new_StdAutoMonostatic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::Monostatic > *result = 0 ; + std::auto_ptr< cphd::Monostatic > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoMonostatic")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::Monostatic > *)new mem::auto_ptr< cphd::Monostatic >(); + result = (std::auto_ptr< cphd::Monostatic > *)new std::auto_ptr< cphd::Monostatic >(); } catch (const std::exception& e) { @@ -164594,7 +164594,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoMonostatic(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoMonostatic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::Monostatic > *arg1 = (mem::auto_ptr< cphd::Monostatic > *) 0 ; + std::auto_ptr< cphd::Monostatic > *arg1 = (std::auto_ptr< cphd::Monostatic > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -164602,9 +164602,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoMonostatic(PyObject *SWIGUNUSEDPARM(sel if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoMonostatic",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__Monostatic_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoMonostatic" "', argument " "1"" of type '" "mem::auto_ptr< cphd::Monostatic > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoMonostatic" "', argument " "1"" of type '" "std::auto_ptr< cphd::Monostatic > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::Monostatic > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::Monostatic > * >(argp1); { try { @@ -166782,13 +166782,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableMonostatic(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_new_StdAutoBistatic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::Bistatic > *result = 0 ; + std::auto_ptr< cphd::Bistatic > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoBistatic")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::Bistatic > *)new mem::auto_ptr< cphd::Bistatic >(); + result = (std::auto_ptr< cphd::Bistatic > *)new std::auto_ptr< cphd::Bistatic >(); } catch (const std::exception& e) { @@ -166825,7 +166825,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoBistatic(PyObject *SWIGUNUSEDPARM(self), P SWIGINTERN PyObject *_wrap_delete_StdAutoBistatic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::Bistatic > *arg1 = (mem::auto_ptr< cphd::Bistatic > *) 0 ; + std::auto_ptr< cphd::Bistatic > *arg1 = (std::auto_ptr< cphd::Bistatic > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -166833,9 +166833,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoBistatic(PyObject *SWIGUNUSEDPARM(self) if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoBistatic",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__Bistatic_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoBistatic" "', argument " "1"" of type '" "mem::auto_ptr< cphd::Bistatic > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoBistatic" "', argument " "1"" of type '" "std::auto_ptr< cphd::Bistatic > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::Bistatic > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::Bistatic > * >(argp1); { try { @@ -168789,13 +168789,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableBistatic(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_new_StdAutoErrorParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ErrorParameters > *result = 0 ; + std::auto_ptr< cphd::ErrorParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoErrorParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::ErrorParameters > *)new mem::auto_ptr< cphd::ErrorParameters >(); + result = (std::auto_ptr< cphd::ErrorParameters > *)new std::auto_ptr< cphd::ErrorParameters >(); } catch (const std::exception& e) { @@ -168832,7 +168832,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoErrorParameters(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_delete_StdAutoErrorParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ErrorParameters > *arg1 = (mem::auto_ptr< cphd::ErrorParameters > *) 0 ; + std::auto_ptr< cphd::ErrorParameters > *arg1 = (std::auto_ptr< cphd::ErrorParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -168840,9 +168840,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoErrorParameters(PyObject *SWIGUNUSEDPAR if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoErrorParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__ErrorParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoErrorParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd::ErrorParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoErrorParameters" "', argument " "1"" of type '" "std::auto_ptr< cphd::ErrorParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::ErrorParameters > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::ErrorParameters > * >(argp1); { try { @@ -169900,13 +169900,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableErrorParameters(PyObject *SWIGUNUSE SWIGINTERN PyObject *_wrap_new_StdAutoErrorMonostatic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ErrorParameters::Monostatic > *result = 0 ; + std::auto_ptr< cphd::ErrorParameters::Monostatic > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoErrorMonostatic")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::ErrorParameters::Monostatic > *)new mem::auto_ptr< cphd::ErrorParameters::Monostatic >(); + result = (std::auto_ptr< cphd::ErrorParameters::Monostatic > *)new std::auto_ptr< cphd::ErrorParameters::Monostatic >(); } catch (const std::exception& e) { @@ -169943,7 +169943,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoErrorMonostatic(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_delete_StdAutoErrorMonostatic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ErrorParameters::Monostatic > *arg1 = (mem::auto_ptr< cphd::ErrorParameters::Monostatic > *) 0 ; + std::auto_ptr< cphd::ErrorParameters::Monostatic > *arg1 = (std::auto_ptr< cphd::ErrorParameters::Monostatic > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -169951,9 +169951,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoErrorMonostatic(PyObject *SWIGUNUSEDPAR if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoErrorMonostatic",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__ErrorParameters__Monostatic_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoErrorMonostatic" "', argument " "1"" of type '" "mem::auto_ptr< cphd::ErrorParameters::Monostatic > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoErrorMonostatic" "', argument " "1"" of type '" "std::auto_ptr< cphd::ErrorParameters::Monostatic > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::ErrorParameters::Monostatic > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::ErrorParameters::Monostatic > * >(argp1); { try { @@ -171347,13 +171347,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableErrorMonostatic(PyObject *SWIGUNUSE SWIGINTERN PyObject *_wrap_new_StdAutoDecorrType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::DecorrType > *result = 0 ; + std::auto_ptr< six::DecorrType > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoDecorrType")) SWIG_fail; { try { - result = (mem::auto_ptr< six::DecorrType > *)new mem::auto_ptr< six::DecorrType >(); + result = (std::auto_ptr< six::DecorrType > *)new std::auto_ptr< six::DecorrType >(); } catch (const std::exception& e) { @@ -171390,7 +171390,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoDecorrType(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoDecorrType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::DecorrType > *arg1 = (mem::auto_ptr< six::DecorrType > *) 0 ; + std::auto_ptr< six::DecorrType > *arg1 = (std::auto_ptr< six::DecorrType > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -171398,9 +171398,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoDecorrType(PyObject *SWIGUNUSEDPARM(sel if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoDecorrType",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__DecorrType_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDecorrType" "', argument " "1"" of type '" "mem::auto_ptr< six::DecorrType > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDecorrType" "', argument " "1"" of type '" "std::auto_ptr< six::DecorrType > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::DecorrType > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< six::DecorrType > * >(argp1); { try { @@ -172394,13 +172394,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableDecorrType(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_new_StdAutoProductInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ProductInfo > *result = 0 ; + std::auto_ptr< cphd::ProductInfo > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoProductInfo")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::ProductInfo > *)new mem::auto_ptr< cphd::ProductInfo >(); + result = (std::auto_ptr< cphd::ProductInfo > *)new std::auto_ptr< cphd::ProductInfo >(); } catch (const std::exception& e) { @@ -172437,7 +172437,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoProductInfo(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoProductInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::ProductInfo > *arg1 = (mem::auto_ptr< cphd::ProductInfo > *) 0 ; + std::auto_ptr< cphd::ProductInfo > *arg1 = (std::auto_ptr< cphd::ProductInfo > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -172445,9 +172445,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoProductInfo(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoProductInfo",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__ProductInfo_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoProductInfo" "', argument " "1"" of type '" "mem::auto_ptr< cphd::ProductInfo > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoProductInfo" "', argument " "1"" of type '" "std::auto_ptr< cphd::ProductInfo > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::ProductInfo > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::ProductInfo > * >(argp1); { try { @@ -173624,13 +173624,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableProductInfo(PyObject *SWIGUNUSEDPAR SWIGINTERN PyObject *_wrap_new_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::Antenna > *result = 0 ; + std::auto_ptr< cphd::Antenna > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoCphdAntenna")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd::Antenna > *)new mem::auto_ptr< cphd::Antenna >(); + result = (std::auto_ptr< cphd::Antenna > *)new std::auto_ptr< cphd::Antenna >(); } catch (const std::exception& e) { @@ -173667,7 +173667,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd::Antenna > *arg1 = (mem::auto_ptr< cphd::Antenna > *) 0 ; + std::auto_ptr< cphd::Antenna > *arg1 = (std::auto_ptr< cphd::Antenna > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -173675,9 +173675,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoCphdAntenna",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd__Antenna_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCphdAntenna" "', argument " "1"" of type '" "mem::auto_ptr< cphd::Antenna > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCphdAntenna" "', argument " "1"" of type '" "std::auto_ptr< cphd::Antenna > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd::Antenna > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd::Antenna > * >(argp1); { try { @@ -178291,28 +178291,28 @@ static swig_type_info _swigt__p_std__allocatorT_math__linear__VectorNT_2_double_ static swig_type_info _swigt__p_std__allocatorT_math__linear__VectorNT_3_double_t_t = {"_p_std__allocatorT_math__linear__VectorNT_3_double_t_t", "std::vector< math::linear::VectorN< 3,double > >::allocator_type *|std::allocator< math::linear::VectorN< 3,double > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_six__GeoInfo_t = {"_p_std__allocatorT_six__GeoInfo_t", "std::vector< six::GeoInfo >::allocator_type *|std::allocator< six::GeoInfo > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_six__sicd__AntennaParameters_t = {"_p_std__allocatorT_six__sicd__AntennaParameters_t", "std::allocator< six::sicd::AntennaParameters > *|std::vector< six::sicd::AntennaParameters >::allocator_type *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__Antenna_t = {"_p_std__auto_ptrT_cphd__Antenna_t", "mem::auto_ptr< cphd::Antenna > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__AreaType_t = {"_p_std__auto_ptrT_cphd__AreaType_t", "mem::auto_ptr< cphd::AreaType > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__Bistatic_t = {"_p_std__auto_ptrT_cphd__Bistatic_t", "mem::auto_ptr< cphd::Bistatic > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__ChannelParameter__Antenna_t = {"_p_std__auto_ptrT_cphd__ChannelParameter__Antenna_t", "mem::auto_ptr< cphd::ChannelParameter::Antenna > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__ChannelParameter__TxRcv_t = {"_p_std__auto_ptrT_cphd__ChannelParameter__TxRcv_t", "mem::auto_ptr< cphd::ChannelParameter::TxRcv > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__ErrorParameters__Monostatic_t = {"_p_std__auto_ptrT_cphd__ErrorParameters__Monostatic_t", "mem::auto_ptr< cphd::ErrorParameters::Monostatic > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__ErrorParameters_t = {"_p_std__auto_ptrT_cphd__ErrorParameters_t", "mem::auto_ptr< cphd::ErrorParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__FxNoiseProfile_t = {"_p_std__auto_ptrT_cphd__FxNoiseProfile_t", "mem::auto_ptr< cphd::FxNoiseProfile > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__HAE_t = {"_p_std__auto_ptrT_cphd__HAE_t", "mem::auto_ptr< cphd::HAE > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__ImageGrid_t = {"_p_std__auto_ptrT_cphd__ImageGrid_t", "mem::auto_ptr< cphd::ImageGrid > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__IonoParameters_t = {"_p_std__auto_ptrT_cphd__IonoParameters_t", "mem::auto_ptr< cphd::IonoParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__Monostatic_t = {"_p_std__auto_ptrT_cphd__Monostatic_t", "mem::auto_ptr< cphd::Monostatic > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__NoiseLevel_t = {"_p_std__auto_ptrT_cphd__NoiseLevel_t", "mem::auto_ptr< cphd::NoiseLevel > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__Planar_t = {"_p_std__auto_ptrT_cphd__Planar_t", "mem::auto_ptr< cphd::Planar > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__ProductInfo_t = {"_p_std__auto_ptrT_cphd__ProductInfo_t", "mem::auto_ptr< cphd::ProductInfo > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__SupportArray_t = {"_p_std__auto_ptrT_cphd__SupportArray_t", "mem::auto_ptr< cphd::SupportArray > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__TOAExtended__LFMEclipse_t = {"_p_std__auto_ptrT_cphd__TOAExtended__LFMEclipse_t", "mem::auto_ptr< cphd::TOAExtended::LFMEclipse > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__TOAExtended_t = {"_p_std__auto_ptrT_cphd__TOAExtended_t", "mem::auto_ptr< cphd::TOAExtended > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__TgtRefLevel_t = {"_p_std__auto_ptrT_cphd__TgtRefLevel_t", "mem::auto_ptr< cphd::TgtRefLevel > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__TropoParameters_t = {"_p_std__auto_ptrT_cphd__TropoParameters_t", "mem::auto_ptr< cphd::TropoParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd__TxRcv_t = {"_p_std__auto_ptrT_cphd__TxRcv_t", "mem::auto_ptr< cphd::TxRcv > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__DecorrType_t = {"_p_std__auto_ptrT_six__DecorrType_t", "mem::auto_ptr< six::DecorrType > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__Antenna_t = {"_p_std__auto_ptrT_cphd__Antenna_t", "std::auto_ptr< cphd::Antenna > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__AreaType_t = {"_p_std__auto_ptrT_cphd__AreaType_t", "std::auto_ptr< cphd::AreaType > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__Bistatic_t = {"_p_std__auto_ptrT_cphd__Bistatic_t", "std::auto_ptr< cphd::Bistatic > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__ChannelParameter__Antenna_t = {"_p_std__auto_ptrT_cphd__ChannelParameter__Antenna_t", "std::auto_ptr< cphd::ChannelParameter::Antenna > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__ChannelParameter__TxRcv_t = {"_p_std__auto_ptrT_cphd__ChannelParameter__TxRcv_t", "std::auto_ptr< cphd::ChannelParameter::TxRcv > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__ErrorParameters__Monostatic_t = {"_p_std__auto_ptrT_cphd__ErrorParameters__Monostatic_t", "std::auto_ptr< cphd::ErrorParameters::Monostatic > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__ErrorParameters_t = {"_p_std__auto_ptrT_cphd__ErrorParameters_t", "std::auto_ptr< cphd::ErrorParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__FxNoiseProfile_t = {"_p_std__auto_ptrT_cphd__FxNoiseProfile_t", "std::auto_ptr< cphd::FxNoiseProfile > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__HAE_t = {"_p_std__auto_ptrT_cphd__HAE_t", "std::auto_ptr< cphd::HAE > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__ImageGrid_t = {"_p_std__auto_ptrT_cphd__ImageGrid_t", "std::auto_ptr< cphd::ImageGrid > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__IonoParameters_t = {"_p_std__auto_ptrT_cphd__IonoParameters_t", "std::auto_ptr< cphd::IonoParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__Monostatic_t = {"_p_std__auto_ptrT_cphd__Monostatic_t", "std::auto_ptr< cphd::Monostatic > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__NoiseLevel_t = {"_p_std__auto_ptrT_cphd__NoiseLevel_t", "std::auto_ptr< cphd::NoiseLevel > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__Planar_t = {"_p_std__auto_ptrT_cphd__Planar_t", "std::auto_ptr< cphd::Planar > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__ProductInfo_t = {"_p_std__auto_ptrT_cphd__ProductInfo_t", "std::auto_ptr< cphd::ProductInfo > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__SupportArray_t = {"_p_std__auto_ptrT_cphd__SupportArray_t", "std::auto_ptr< cphd::SupportArray > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__TOAExtended__LFMEclipse_t = {"_p_std__auto_ptrT_cphd__TOAExtended__LFMEclipse_t", "std::auto_ptr< cphd::TOAExtended::LFMEclipse > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__TOAExtended_t = {"_p_std__auto_ptrT_cphd__TOAExtended_t", "std::auto_ptr< cphd::TOAExtended > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__TgtRefLevel_t = {"_p_std__auto_ptrT_cphd__TgtRefLevel_t", "std::auto_ptr< cphd::TgtRefLevel > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__TropoParameters_t = {"_p_std__auto_ptrT_cphd__TropoParameters_t", "std::auto_ptr< cphd::TropoParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd__TxRcv_t = {"_p_std__auto_ptrT_cphd__TxRcv_t", "std::auto_ptr< cphd::TxRcv > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__DecorrType_t = {"_p_std__auto_ptrT_six__DecorrType_t", "std::auto_ptr< six::DecorrType > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__ostream = {"_p_std__ostream", "std::ostream *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__shared_ptrT_io__SeekableInputStream_t = {"_p_std__shared_ptrT_io__SeekableInputStream_t", "std::shared_ptr< io::SeekableInputStream > *", 0, 0, (void*)0, 0}; diff --git a/six/modules/python/cphd03/source/generated/cphd03_wrap.cxx b/six/modules/python/cphd03/source/generated/cphd03_wrap.cxx index eb71591653..0f4fff420a 100644 --- a/six/modules/python/cphd03/source/generated/cphd03_wrap.cxx +++ b/six/modules/python/cphd03/source/generated/cphd03_wrap.cxx @@ -4800,6 +4800,7 @@ namespace swig } +#include "mem/AutoPtr.h" #include "import/types.h" #include "import/cphd.h" #include "import/cphd03.h" @@ -5273,7 +5274,7 @@ SWIGINTERN void cphd03_VBM_getVBMdata__SWIG_2(cphd03::VBM *self,size_t channel,s } SWIGINTERN cphd03::Metadata cphd03_CPHDXMLControl_fromXMLString(cphd03::CPHDXMLControl *self,std::string const &xmlString){ cphd03::Metadata retv; - mem::auto_ptr apMetadata = self->fromXML(xmlString); + mem::AutoPtr apMetadata = self->fromXML(xmlString); retv = *apMetadata; return retv; } @@ -52107,13 +52108,13 @@ SWIGINTERN PyObject *VectorAntennaParameters_swigregister(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_new_StdAutoDwellTimeParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::DwellTimeParameters > *result = 0 ; + mem::AutoPtr< cphd03::DwellTimeParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoDwellTimeParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd03::DwellTimeParameters > *)new mem::auto_ptr< cphd03::DwellTimeParameters >(); + result = (mem::AutoPtr< cphd03::DwellTimeParameters > *)new mem::AutoPtr< cphd03::DwellTimeParameters >(); } catch (const std::exception& e) { @@ -52150,7 +52151,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoDwellTimeParameters(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_delete_StdAutoDwellTimeParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::DwellTimeParameters > *arg1 = (mem::auto_ptr< cphd03::DwellTimeParameters > *) 0 ; + mem::AutoPtr< cphd03::DwellTimeParameters > *arg1 = (mem::AutoPtr< cphd03::DwellTimeParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -52158,9 +52159,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoDwellTimeParameters(PyObject *SWIGUNUSE if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoDwellTimeParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd03__DwellTimeParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDwellTimeParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd03::DwellTimeParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDwellTimeParameters" "', argument " "1"" of type '" "mem::AutoPtr< cphd03::DwellTimeParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd03::DwellTimeParameters > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< cphd03::DwellTimeParameters > * >(argp1); { try { @@ -54452,13 +54453,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableAreaPlane(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_new_StdAutoFxParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::FxParameters > *result = 0 ; + mem::AutoPtr< cphd03::FxParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoFxParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd03::FxParameters > *)new mem::auto_ptr< cphd03::FxParameters >(); + result = (mem::AutoPtr< cphd03::FxParameters > *)new mem::AutoPtr< cphd03::FxParameters >(); } catch (const std::exception& e) { @@ -54495,7 +54496,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoFxParameters(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_delete_StdAutoFxParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::FxParameters > *arg1 = (mem::auto_ptr< cphd03::FxParameters > *) 0 ; + mem::AutoPtr< cphd03::FxParameters > *arg1 = (mem::AutoPtr< cphd03::FxParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -54503,9 +54504,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoFxParameters(PyObject *SWIGUNUSEDPARM(s if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoFxParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd03__FxParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoFxParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd03::FxParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoFxParameters" "', argument " "1"" of type '" "mem::AutoPtr< cphd03::FxParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd03::FxParameters > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< cphd03::FxParameters > * >(argp1); { try { @@ -55787,13 +55788,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableFxParameters(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_new_StdAutoTOAParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::TOAParameters > *result = 0 ; + mem::AutoPtr< cphd03::TOAParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTOAParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd03::TOAParameters > *)new mem::auto_ptr< cphd03::TOAParameters >(); + result = (mem::AutoPtr< cphd03::TOAParameters > *)new mem::AutoPtr< cphd03::TOAParameters >(); } catch (const std::exception& e) { @@ -55830,7 +55831,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTOAParameters(PyObject *SWIGUNUSEDPARM(sel SWIGINTERN PyObject *_wrap_delete_StdAutoTOAParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::TOAParameters > *arg1 = (mem::auto_ptr< cphd03::TOAParameters > *) 0 ; + mem::AutoPtr< cphd03::TOAParameters > *arg1 = (mem::AutoPtr< cphd03::TOAParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -55838,9 +55839,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTOAParameters(PyObject *SWIGUNUSEDPARM( if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTOAParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd03__TOAParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTOAParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd03::TOAParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTOAParameters" "', argument " "1"" of type '" "mem::AutoPtr< cphd03::TOAParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd03::TOAParameters > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< cphd03::TOAParameters > * >(argp1); { try { @@ -56898,13 +56899,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTOAParameters(PyObject *SWIGUNUSEDP SWIGINTERN PyObject *_wrap_new_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::Antenna > *result = 0 ; + mem::AutoPtr< cphd03::Antenna > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoCphdAntenna")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd03::Antenna > *)new mem::auto_ptr< cphd03::Antenna >(); + result = (mem::AutoPtr< cphd03::Antenna > *)new mem::AutoPtr< cphd03::Antenna >(); } catch (const std::exception& e) { @@ -56941,7 +56942,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::Antenna > *arg1 = (mem::auto_ptr< cphd03::Antenna > *) 0 ; + mem::AutoPtr< cphd03::Antenna > *arg1 = (mem::AutoPtr< cphd03::Antenna > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -56949,9 +56950,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoCphdAntenna",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd03__Antenna_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCphdAntenna" "', argument " "1"" of type '" "mem::auto_ptr< cphd03::Antenna > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCphdAntenna" "', argument " "1"" of type '" "mem::AutoPtr< cphd03::Antenna > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd03::Antenna > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< cphd03::Antenna > * >(argp1); { try { @@ -59596,10 +59597,10 @@ static swig_type_info _swigt__p_std__allocatorT_cphd03__ArraySize_t = {"_p_std__ static swig_type_info _swigt__p_std__allocatorT_cphd03__ChannelParameters_t = {"_p_std__allocatorT_cphd03__ChannelParameters_t", "std::vector< cphd03::ChannelParameters >::allocator_type *|std::allocator< cphd03::ChannelParameters > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_math__linear__VectorNT_3_double_t_t = {"_p_std__allocatorT_math__linear__VectorNT_3_double_t_t", "std::vector< math::linear::VectorN< 3,double > >::allocator_type *|std::allocator< math::linear::VectorN< 3,double > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_six__sicd__AntennaParameters_t = {"_p_std__allocatorT_six__sicd__AntennaParameters_t", "std::allocator< six::sicd::AntennaParameters > *|std::vector< six::sicd::AntennaParameters >::allocator_type *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd03__Antenna_t = {"_p_std__auto_ptrT_cphd03__Antenna_t", "mem::auto_ptr< cphd03::Antenna > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd03__DwellTimeParameters_t = {"_p_std__auto_ptrT_cphd03__DwellTimeParameters_t", "mem::auto_ptr< cphd03::DwellTimeParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd03__FxParameters_t = {"_p_std__auto_ptrT_cphd03__FxParameters_t", "mem::auto_ptr< cphd03::FxParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd03__TOAParameters_t = {"_p_std__auto_ptrT_cphd03__TOAParameters_t", "mem::auto_ptr< cphd03::TOAParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd03__Antenna_t = {"_p_std__auto_ptrT_cphd03__Antenna_t", "mem::AutoPtr< cphd03::Antenna > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd03__DwellTimeParameters_t = {"_p_std__auto_ptrT_cphd03__DwellTimeParameters_t", "mem::AutoPtr< cphd03::DwellTimeParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd03__FxParameters_t = {"_p_std__auto_ptrT_cphd03__FxParameters_t", "mem::AutoPtr< cphd03::FxParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd03__TOAParameters_t = {"_p_std__auto_ptrT_cphd03__TOAParameters_t", "mem::AutoPtr< cphd03::TOAParameters > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__ostream = {"_p_std__ostream", "std::ostream *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__shared_ptrT_io__SeekableInputStream_t = {"_p_std__shared_ptrT_io__SeekableInputStream_t", "std::shared_ptr< io::SeekableInputStream > *", 0, 0, (void*)0, 0}; diff --git a/six/modules/python/cphd03/source/generated/cphd_wrap.cxx b/six/modules/python/cphd03/source/generated/cphd_wrap.cxx index 9c843852a8..16bde8d53c 100644 --- a/six/modules/python/cphd03/source/generated/cphd_wrap.cxx +++ b/six/modules/python/cphd03/source/generated/cphd_wrap.cxx @@ -5223,7 +5223,7 @@ SWIGINTERN void cphd03_VBM_getVBMdata__SWIG_2(cphd03::VBM *self,size_t channel,s } SWIGINTERN cphd03::Metadata cphd03_CPHDXMLControl_fromXMLString(cphd03::CPHDXMLControl *self,std::string const &xmlString){ cphd03::Metadata retv; - mem::auto_ptr apMetadata = self->fromXML(xmlString); + std::auto_ptr apMetadata = self->fromXML(xmlString); retv = *apMetadata; return retv; } @@ -47062,13 +47062,13 @@ SWIGINTERN PyObject *VectorAntennaParameters_swigregister(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_new_StdAutoDwellTimeParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::DwellTimeParameters > *result = 0 ; + std::auto_ptr< cphd03::DwellTimeParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoDwellTimeParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd03::DwellTimeParameters > *)new mem::auto_ptr< cphd03::DwellTimeParameters >(); + result = (std::auto_ptr< cphd03::DwellTimeParameters > *)new std::auto_ptr< cphd03::DwellTimeParameters >(); } catch (const std::exception& e) { @@ -47105,7 +47105,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoDwellTimeParameters(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_delete_StdAutoDwellTimeParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::DwellTimeParameters > *arg1 = (mem::auto_ptr< cphd03::DwellTimeParameters > *) 0 ; + std::auto_ptr< cphd03::DwellTimeParameters > *arg1 = (std::auto_ptr< cphd03::DwellTimeParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -47113,9 +47113,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoDwellTimeParameters(PyObject *SWIGUNUSE if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoDwellTimeParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd03__DwellTimeParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDwellTimeParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd03::DwellTimeParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDwellTimeParameters" "', argument " "1"" of type '" "std::auto_ptr< cphd03::DwellTimeParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd03::DwellTimeParameters > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd03::DwellTimeParameters > * >(argp1); { try { @@ -49303,13 +49303,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableAreaPlane(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_new_StdAutoFxParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::FxParameters > *result = 0 ; + std::auto_ptr< cphd03::FxParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoFxParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd03::FxParameters > *)new mem::auto_ptr< cphd03::FxParameters >(); + result = (std::auto_ptr< cphd03::FxParameters > *)new std::auto_ptr< cphd03::FxParameters >(); } catch (const std::exception& e) { @@ -49346,7 +49346,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoFxParameters(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_delete_StdAutoFxParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::FxParameters > *arg1 = (mem::auto_ptr< cphd03::FxParameters > *) 0 ; + std::auto_ptr< cphd03::FxParameters > *arg1 = (std::auto_ptr< cphd03::FxParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -49354,9 +49354,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoFxParameters(PyObject *SWIGUNUSEDPARM(s if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoFxParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd03__FxParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoFxParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd03::FxParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoFxParameters" "', argument " "1"" of type '" "std::auto_ptr< cphd03::FxParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd03::FxParameters > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd03::FxParameters > * >(argp1); { try { @@ -50586,13 +50586,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableFxParameters(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_new_StdAutoTOAParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::TOAParameters > *result = 0 ; + std::auto_ptr< cphd03::TOAParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTOAParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd03::TOAParameters > *)new mem::auto_ptr< cphd03::TOAParameters >(); + result = (std::auto_ptr< cphd03::TOAParameters > *)new std::auto_ptr< cphd03::TOAParameters >(); } catch (const std::exception& e) { @@ -50629,7 +50629,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTOAParameters(PyObject *SWIGUNUSEDPARM(sel SWIGINTERN PyObject *_wrap_delete_StdAutoTOAParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::TOAParameters > *arg1 = (mem::auto_ptr< cphd03::TOAParameters > *) 0 ; + std::auto_ptr< cphd03::TOAParameters > *arg1 = (std::auto_ptr< cphd03::TOAParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -50637,9 +50637,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTOAParameters(PyObject *SWIGUNUSEDPARM( if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTOAParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd03__TOAParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTOAParameters" "', argument " "1"" of type '" "mem::auto_ptr< cphd03::TOAParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTOAParameters" "', argument " "1"" of type '" "std::auto_ptr< cphd03::TOAParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd03::TOAParameters > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd03::TOAParameters > * >(argp1); { try { @@ -51645,13 +51645,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTOAParameters(PyObject *SWIGUNUSEDP SWIGINTERN PyObject *_wrap_new_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::Antenna > *result = 0 ; + std::auto_ptr< cphd03::Antenna > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoCphdAntenna")) SWIG_fail; { try { - result = (mem::auto_ptr< cphd03::Antenna > *)new mem::auto_ptr< cphd03::Antenna >(); + result = (std::auto_ptr< cphd03::Antenna > *)new std::auto_ptr< cphd03::Antenna >(); } catch (const std::exception& e) { @@ -51688,7 +51688,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< cphd03::Antenna > *arg1 = (mem::auto_ptr< cphd03::Antenna > *) 0 ; + std::auto_ptr< cphd03::Antenna > *arg1 = (std::auto_ptr< cphd03::Antenna > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -51696,9 +51696,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoCphdAntenna(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoCphdAntenna",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_cphd03__Antenna_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCphdAntenna" "', argument " "1"" of type '" "mem::auto_ptr< cphd03::Antenna > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCphdAntenna" "', argument " "1"" of type '" "std::auto_ptr< cphd03::Antenna > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< cphd03::Antenna > * >(argp1); + arg1 = reinterpret_cast< std::auto_ptr< cphd03::Antenna > * >(argp1); { try { @@ -54156,10 +54156,10 @@ static swig_type_info _swigt__p_std__allocatorT_cphd03__ArraySize_t = {"_p_std__ static swig_type_info _swigt__p_std__allocatorT_cphd03__ChannelParameters_t = {"_p_std__allocatorT_cphd03__ChannelParameters_t", "std::vector< cphd03::ChannelParameters >::allocator_type *|std::allocator< cphd03::ChannelParameters > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_math__linear__VectorNT_3_double_t_t = {"_p_std__allocatorT_math__linear__VectorNT_3_double_t_t", "std::vector< math::linear::VectorN< 3,double > >::allocator_type *|std::allocator< math::linear::VectorN< 3,double > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_six__sicd__AntennaParameters_t = {"_p_std__allocatorT_six__sicd__AntennaParameters_t", "std::allocator< six::sicd::AntennaParameters > *|std::vector< six::sicd::AntennaParameters >::allocator_type *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd03__Antenna_t = {"_p_std__auto_ptrT_cphd03__Antenna_t", "mem::auto_ptr< cphd03::Antenna > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd03__DwellTimeParameters_t = {"_p_std__auto_ptrT_cphd03__DwellTimeParameters_t", "mem::auto_ptr< cphd03::DwellTimeParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd03__FxParameters_t = {"_p_std__auto_ptrT_cphd03__FxParameters_t", "mem::auto_ptr< cphd03::FxParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_cphd03__TOAParameters_t = {"_p_std__auto_ptrT_cphd03__TOAParameters_t", "mem::auto_ptr< cphd03::TOAParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd03__Antenna_t = {"_p_std__auto_ptrT_cphd03__Antenna_t", "std::auto_ptr< cphd03::Antenna > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd03__DwellTimeParameters_t = {"_p_std__auto_ptrT_cphd03__DwellTimeParameters_t", "std::auto_ptr< cphd03::DwellTimeParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd03__FxParameters_t = {"_p_std__auto_ptrT_cphd03__FxParameters_t", "std::auto_ptr< cphd03::FxParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_cphd03__TOAParameters_t = {"_p_std__auto_ptrT_cphd03__TOAParameters_t", "std::auto_ptr< cphd03::TOAParameters > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__ostream = {"_p_std__ostream", "std::ostream *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_cphd03__ArraySize_std__allocatorT_cphd03__ArraySize_t_t = {"_p_std__vectorT_cphd03__ArraySize_std__allocatorT_cphd03__ArraySize_t_t", "std::vector< cphd03::ArraySize > *|std::vector< cphd03::ArraySize,std::allocator< cphd03::ArraySize > > *", 0, 0, (void*)0, 0}; diff --git a/six/modules/python/six.sicd/source/generated/six_sicd_wrap.cxx b/six/modules/python/six.sicd/source/generated/six_sicd_wrap.cxx index 6d436af1c4..e717706b38 100644 --- a/six/modules/python/six.sicd/source/generated/six_sicd_wrap.cxx +++ b/six/modules/python/six.sicd/source/generated/six_sicd_wrap.cxx @@ -3434,6 +3434,7 @@ namespace swig { #include +#include "mem/AutoPtr.h" #include "import/mem.h" #include "import/six.h" #include "import/six/sicd.h" @@ -3476,7 +3477,7 @@ void writeNITF(const std::string& pathname, const std::vector& mem::SharedPtr container(new six::Container( six::DataType::COMPLEX)); - mem::auto_ptr logger(logging::setupLogger("out")); + mem::AutoPtr logger(logging::setupLogger("out")); container->addData(data.clone()); @@ -20108,7 +20109,7 @@ SWIGINTERN PyObject *_wrap_cropMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - mem::auto_ptr< six::sicd::ComplexData > result; + mem::AutoPtr< six::sicd::ComplexData > result; if (!PyArg_ParseTuple(args,(char *)"OOO:cropMetaData",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_six__sicd__ComplexData, 0 | 0); @@ -64399,8 +64400,8 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getProjectionModel(PyObject *SWIGUNU SWIGINTERN PyObject *_wrap_SixSicdUtilities_getModelComponents(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; six::sicd::ComplexData *arg1 = 0 ; - mem::auto_ptr< scene::SceneGeometry > *arg2 = 0 ; - mem::auto_ptr< scene::ProjectionModel > *arg3 = 0 ; + mem::AutoPtr< scene::SceneGeometry > *arg2 = 0 ; + mem::AutoPtr< scene::ProjectionModel > *arg3 = 0 ; six::sicd::AreaPlane *arg4 = 0 ; void *argp1 = 0 ; int res1 = 0 ; @@ -64426,20 +64427,20 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getModelComponents(PyObject *SWIGUNU arg1 = reinterpret_cast< six::sicd::ComplexData * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__auto_ptrT_scene__SceneGeometry_t, 0 ); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SixSicdUtilities_getModelComponents" "', argument " "2"" of type '" "mem::auto_ptr< scene::SceneGeometry > &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SixSicdUtilities_getModelComponents" "', argument " "2"" of type '" "mem::AutoPtr< scene::SceneGeometry > &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_getModelComponents" "', argument " "2"" of type '" "mem::auto_ptr< scene::SceneGeometry > &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_getModelComponents" "', argument " "2"" of type '" "mem::AutoPtr< scene::SceneGeometry > &""'"); } - arg2 = reinterpret_cast< mem::auto_ptr< scene::SceneGeometry > * >(argp2); + arg2 = reinterpret_cast< mem::AutoPtr< scene::SceneGeometry > * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__auto_ptrT_scene__ProjectionModel_t, 0 ); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SixSicdUtilities_getModelComponents" "', argument " "3"" of type '" "mem::auto_ptr< scene::ProjectionModel > &""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SixSicdUtilities_getModelComponents" "', argument " "3"" of type '" "mem::AutoPtr< scene::ProjectionModel > &""'"); } if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_getModelComponents" "', argument " "3"" of type '" "mem::auto_ptr< scene::ProjectionModel > &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_getModelComponents" "', argument " "3"" of type '" "mem::AutoPtr< scene::ProjectionModel > &""'"); } - arg3 = reinterpret_cast< mem::auto_ptr< scene::ProjectionModel > * >(argp3); + arg3 = reinterpret_cast< mem::AutoPtr< scene::ProjectionModel > * >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_six__sicd__AreaPlane, 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SixSicdUtilities_getModelComponents" "', argument " "4"" of type '" "six::sicd::AreaPlane &""'"); @@ -64500,7 +64501,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getPolynomialFitter__SWIG_0(PyObject PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - mem::auto_ptr< scene::ProjectionPolynomialFitter > result; + mem::AutoPtr< scene::ProjectionPolynomialFitter > result; if (!PyArg_ParseTuple(args,(char *)"OOO:SixSicdUtilities_getPolynomialFitter",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_six__sicd__ComplexData, 0 | 0); @@ -64571,7 +64572,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getPolynomialFitter__SWIG_1(PyObject int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - mem::auto_ptr< scene::ProjectionPolynomialFitter > result; + mem::AutoPtr< scene::ProjectionPolynomialFitter > result; if (!PyArg_ParseTuple(args,(char *)"OO:SixSicdUtilities_getPolynomialFitter",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_six__sicd__ComplexData, 0 | 0); @@ -64633,7 +64634,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getPolynomialFitter__SWIG_2(PyObject void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - mem::auto_ptr< scene::ProjectionPolynomialFitter > result; + mem::AutoPtr< scene::ProjectionPolynomialFitter > result; if (!PyArg_ParseTuple(args,(char *)"O:SixSicdUtilities_getPolynomialFitter",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_six__sicd__ComplexData, 0 | 0); @@ -64831,7 +64832,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_readSicd__SWIG_0(PyObject *SWIGUNUSE PyObject *resultobj = 0; std::string *arg1 = 0 ; std::vector< std::string,std::allocator< std::string > > *arg2 = 0 ; - mem::auto_ptr< six::sicd::ComplexData > *arg3 = 0 ; + mem::AutoPtr< six::sicd::ComplexData > *arg3 = 0 ; std::vector< std::complex< float >,std::allocator< std::complex< float > > > *arg4 = 0 ; int res1 = SWIG_OLDOBJ ; int res2 = SWIG_OLDOBJ ; @@ -64869,12 +64870,12 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_readSicd__SWIG_0(PyObject *SWIGUNUSE } res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__auto_ptrT_six__sicd__ComplexData_t, 0 ); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SixSicdUtilities_readSicd" "', argument " "3"" of type '" "mem::auto_ptr< six::sicd::ComplexData > &""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SixSicdUtilities_readSicd" "', argument " "3"" of type '" "mem::AutoPtr< six::sicd::ComplexData > &""'"); } if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_readSicd" "', argument " "3"" of type '" "mem::auto_ptr< six::sicd::ComplexData > &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_readSicd" "', argument " "3"" of type '" "mem::AutoPtr< six::sicd::ComplexData > &""'"); } - arg3 = reinterpret_cast< mem::auto_ptr< six::sicd::ComplexData > * >(argp3); + arg3 = reinterpret_cast< mem::AutoPtr< six::sicd::ComplexData > * >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_std__vectorT_std__complexT_float_t_std__allocatorT_std__complexT_float_t_t_t, 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SixSicdUtilities_readSicd" "', argument " "4"" of type '" "std::vector< std::complex< float >,std::allocator< std::complex< float > > > &""'"); @@ -64931,12 +64932,12 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_readSicd__SWIG_1(PyObject *SWIGUNUSE std::vector< std::string,std::allocator< std::string > > *arg2 = 0 ; size_t arg3 ; size_t arg4 ; - mem::auto_ptr< six::sicd::ComplexData > *arg5 = 0 ; + mem::AutoPtr< six::sicd::ComplexData > *arg5 = 0 ; std::vector< std::complex< float >,std::allocator< std::complex< float > > > *arg6 = 0 ; six::Poly2D *arg7 = 0 ; six::Poly2D *arg8 = 0 ; - mem::auto_ptr< six::sicd::NoiseMesh > *arg9 = 0 ; - mem::auto_ptr< six::sicd::ScalarMesh > *arg10 = 0 ; + mem::AutoPtr< six::sicd::NoiseMesh > *arg9 = 0 ; + mem::AutoPtr< six::sicd::ScalarMesh > *arg10 = 0 ; int res1 = SWIG_OLDOBJ ; int res2 = SWIG_OLDOBJ ; size_t val3 ; @@ -65001,12 +65002,12 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_readSicd__SWIG_1(PyObject *SWIGUNUSE arg4 = static_cast< size_t >(val4); res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_std__auto_ptrT_six__sicd__ComplexData_t, 0 ); if (!SWIG_IsOK(res5)) { - SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "SixSicdUtilities_readSicd" "', argument " "5"" of type '" "mem::auto_ptr< six::sicd::ComplexData > &""'"); + SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "SixSicdUtilities_readSicd" "', argument " "5"" of type '" "mem::AutoPtr< six::sicd::ComplexData > &""'"); } if (!argp5) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_readSicd" "', argument " "5"" of type '" "mem::auto_ptr< six::sicd::ComplexData > &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_readSicd" "', argument " "5"" of type '" "mem::AutoPtr< six::sicd::ComplexData > &""'"); } - arg5 = reinterpret_cast< mem::auto_ptr< six::sicd::ComplexData > * >(argp5); + arg5 = reinterpret_cast< mem::AutoPtr< six::sicd::ComplexData > * >(argp5); res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_std__vectorT_std__complexT_float_t_std__allocatorT_std__complexT_float_t_t_t, 0 ); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "SixSicdUtilities_readSicd" "', argument " "6"" of type '" "std::vector< std::complex< float >,std::allocator< std::complex< float > > > &""'"); @@ -65033,20 +65034,20 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_readSicd__SWIG_1(PyObject *SWIGUNUSE arg8 = reinterpret_cast< six::Poly2D * >(argp8); res9 = SWIG_ConvertPtr(obj8, &argp9, SWIGTYPE_p_std__auto_ptrT_six__sicd__NoiseMesh_t, 0 ); if (!SWIG_IsOK(res9)) { - SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "SixSicdUtilities_readSicd" "', argument " "9"" of type '" "mem::auto_ptr< six::sicd::NoiseMesh > &""'"); + SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "SixSicdUtilities_readSicd" "', argument " "9"" of type '" "mem::AutoPtr< six::sicd::NoiseMesh > &""'"); } if (!argp9) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_readSicd" "', argument " "9"" of type '" "mem::auto_ptr< six::sicd::NoiseMesh > &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_readSicd" "', argument " "9"" of type '" "mem::AutoPtr< six::sicd::NoiseMesh > &""'"); } - arg9 = reinterpret_cast< mem::auto_ptr< six::sicd::NoiseMesh > * >(argp9); + arg9 = reinterpret_cast< mem::AutoPtr< six::sicd::NoiseMesh > * >(argp9); res10 = SWIG_ConvertPtr(obj9, &argp10, SWIGTYPE_p_std__auto_ptrT_six__sicd__ScalarMesh_t, 0 ); if (!SWIG_IsOK(res10)) { - SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "SixSicdUtilities_readSicd" "', argument " "10"" of type '" "mem::auto_ptr< six::sicd::ScalarMesh > &""'"); + SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "SixSicdUtilities_readSicd" "', argument " "10"" of type '" "mem::AutoPtr< six::sicd::ScalarMesh > &""'"); } if (!argp10) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_readSicd" "', argument " "10"" of type '" "mem::auto_ptr< six::sicd::ScalarMesh > &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_readSicd" "', argument " "10"" of type '" "mem::AutoPtr< six::sicd::ScalarMesh > &""'"); } - arg10 = reinterpret_cast< mem::auto_ptr< six::sicd::ScalarMesh > * >(argp10); + arg10 = reinterpret_cast< mem::AutoPtr< six::sicd::ScalarMesh > * >(argp10); { try { @@ -65181,8 +65182,8 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_readSicd(PyObject *self, PyObject *a fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SixSicdUtilities_readSicd'.\n" " Possible C/C++ prototypes are:\n" - " six::sicd::Utilities::readSicd(std::string const &,std::vector< std::string,std::allocator< std::string > > const &,mem::auto_ptr< six::sicd::ComplexData > &,std::vector< std::complex< float >,std::allocator< std::complex< float > > > &)\n" - " six::sicd::Utilities::readSicd(std::string const &,std::vector< std::string,std::allocator< std::string > > const &,size_t,size_t,mem::auto_ptr< six::sicd::ComplexData > &,std::vector< std::complex< float >,std::allocator< std::complex< float > > > &,six::Poly2D &,six::Poly2D &,mem::auto_ptr< six::sicd::NoiseMesh > &,mem::auto_ptr< six::sicd::ScalarMesh > &)\n"); + " six::sicd::Utilities::readSicd(std::string const &,std::vector< std::string,std::allocator< std::string > > const &,mem::AutoPtr< six::sicd::ComplexData > &,std::vector< std::complex< float >,std::allocator< std::complex< float > > > &)\n" + " six::sicd::Utilities::readSicd(std::string const &,std::vector< std::string,std::allocator< std::string > > const &,size_t,size_t,mem::AutoPtr< six::sicd::ComplexData > &,std::vector< std::complex< float >,std::allocator< std::complex< float > > > &,six::Poly2D &,six::Poly2D &,mem::AutoPtr< six::sicd::NoiseMesh > &,mem::AutoPtr< six::sicd::ScalarMesh > &)\n"); return 0; } @@ -65195,7 +65196,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getComplexData__SWIG_0(PyObject *SWI int res2 = SWIG_OLDOBJ ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - mem::auto_ptr< six::sicd::ComplexData > result; + mem::AutoPtr< six::sicd::ComplexData > result; if (!PyArg_ParseTuple(args,(char *)"OO:SixSicdUtilities_getComplexData",&obj0,&obj1)) SWIG_fail; { @@ -65270,7 +65271,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getComplexData__SWIG_1(PyObject *SWI void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - mem::auto_ptr< six::sicd::ComplexData > result; + mem::AutoPtr< six::sicd::ComplexData > result; if (!PyArg_ParseTuple(args,(char *)"O:SixSicdUtilities_getComplexData",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_NITFReadControl, 0 ); @@ -66404,7 +66405,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_parseData(PyObject *SWIGUNUSEDPARM(s PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - mem::auto_ptr< six::sicd::ComplexData > result; + mem::AutoPtr< six::sicd::ComplexData > result; if (!PyArg_ParseTuple(args,(char *)"OOO:SixSicdUtilities_parseData",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_io__InputStream, 0 ); @@ -66488,7 +66489,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_parseDataFromFile(PyObject *SWIGUNUS PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - mem::auto_ptr< six::sicd::ComplexData > result; + mem::AutoPtr< six::sicd::ComplexData > result; if (!PyArg_ParseTuple(args,(char *)"OOO:SixSicdUtilities_parseDataFromFile",&obj0,&obj1,&obj2)) SWIG_fail; { @@ -66566,7 +66567,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_parseDataFromFile(PyObject *SWIGUNUS SWIGINTERN PyObject *_wrap_SixSicdUtilities_createFakeComplexData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ComplexData > result; + mem::AutoPtr< six::sicd::ComplexData > result; if (!PyArg_ParseTuple(args,(char *)":SixSicdUtilities_createFakeComplexData")) SWIG_fail; { @@ -66615,7 +66616,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getNoiseMesh(PyObject *SWIGUNUSEDPAR void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - mem::auto_ptr< six::sicd::NoiseMesh > result; + mem::AutoPtr< six::sicd::NoiseMesh > result; if (!PyArg_ParseTuple(args,(char *)"O:SixSicdUtilities_getNoiseMesh",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_NITFReadControl, 0 ); @@ -66672,7 +66673,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getScalarMesh(PyObject *SWIGUNUSEDPA void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - mem::auto_ptr< six::sicd::ScalarMesh > result; + mem::AutoPtr< six::sicd::ScalarMesh > result; if (!PyArg_ParseTuple(args,(char *)"O:SixSicdUtilities_getScalarMesh",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_NITFReadControl, 0 ); @@ -66728,7 +66729,7 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getProjectionPolys(PyObject *SWIGUNU NITFReadControl *arg1 = 0 ; size_t arg2 ; size_t arg3 ; - mem::auto_ptr< six::sicd::ComplexData > *arg4 = 0 ; + mem::AutoPtr< six::sicd::ComplexData > *arg4 = 0 ; six::Poly2D *arg5 = 0 ; six::Poly2D *arg6 = 0 ; void *argp1 = 0 ; @@ -66771,12 +66772,12 @@ SWIGINTERN PyObject *_wrap_SixSicdUtilities_getProjectionPolys(PyObject *SWIGUNU arg3 = static_cast< size_t >(val3); res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_std__auto_ptrT_six__sicd__ComplexData_t, 0 ); if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SixSicdUtilities_getProjectionPolys" "', argument " "4"" of type '" "mem::auto_ptr< six::sicd::ComplexData > &""'"); + SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SixSicdUtilities_getProjectionPolys" "', argument " "4"" of type '" "mem::AutoPtr< six::sicd::ComplexData > &""'"); } if (!argp4) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_getProjectionPolys" "', argument " "4"" of type '" "mem::auto_ptr< six::sicd::ComplexData > &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SixSicdUtilities_getProjectionPolys" "', argument " "4"" of type '" "mem::AutoPtr< six::sicd::ComplexData > &""'"); } - arg4 = reinterpret_cast< mem::auto_ptr< six::sicd::ComplexData > * >(argp4); + arg4 = reinterpret_cast< mem::AutoPtr< six::sicd::ComplexData > * >(argp4); res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_math__poly__TwoDT_double_t, 0 ); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "SixSicdUtilities_getProjectionPolys" "', argument " "5"" of type '" "six::Poly2D &""'"); @@ -68580,13 +68581,13 @@ SWIGINTERN PyObject *GeoLocator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyO SWIGINTERN PyObject *_wrap_new_StdAutoGeoData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::GeoData > *result = 0 ; + mem::AutoPtr< six::sicd::GeoData > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoGeoData")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::GeoData > *)new mem::auto_ptr< six::sicd::GeoData >(); + result = (mem::AutoPtr< six::sicd::GeoData > *)new mem::AutoPtr< six::sicd::GeoData >(); } catch (const std::exception& e) { @@ -68623,7 +68624,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoGeoData(PyObject *SWIGUNUSEDPARM(self), Py SWIGINTERN PyObject *_wrap_delete_StdAutoGeoData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::GeoData > *arg1 = (mem::auto_ptr< six::sicd::GeoData > *) 0 ; + mem::AutoPtr< six::sicd::GeoData > *arg1 = (mem::AutoPtr< six::sicd::GeoData > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -68631,9 +68632,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoGeoData(PyObject *SWIGUNUSEDPARM(self), if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoGeoData",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__GeoData_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoGeoData" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::GeoData > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoGeoData" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::GeoData > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::GeoData > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::GeoData > * >(argp1); { try { @@ -70166,13 +70167,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableGeoData(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_new_StdAutoImageCreation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ImageCreation > *result = 0 ; + mem::AutoPtr< six::sicd::ImageCreation > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoImageCreation")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::ImageCreation > *)new mem::auto_ptr< six::sicd::ImageCreation >(); + result = (mem::AutoPtr< six::sicd::ImageCreation > *)new mem::AutoPtr< six::sicd::ImageCreation >(); } catch (const std::exception& e) { @@ -70209,7 +70210,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoImageCreation(PyObject *SWIGUNUSEDPARM(sel SWIGINTERN PyObject *_wrap_delete_StdAutoImageCreation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ImageCreation > *arg1 = (mem::auto_ptr< six::sicd::ImageCreation > *) 0 ; + mem::AutoPtr< six::sicd::ImageCreation > *arg1 = (mem::AutoPtr< six::sicd::ImageCreation > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -70217,9 +70218,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoImageCreation(PyObject *SWIGUNUSEDPARM( if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoImageCreation",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__ImageCreation_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoImageCreation" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::ImageCreation > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoImageCreation" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::ImageCreation > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::ImageCreation > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::ImageCreation > * >(argp1); { try { @@ -71522,13 +71523,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableImageCreation(PyObject *SWIGUNUSED SWIGINTERN PyObject *_wrap_new_StdAutoImageData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ImageData > *result = 0 ; + mem::AutoPtr< six::sicd::ImageData > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoImageData")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::ImageData > *)new mem::auto_ptr< six::sicd::ImageData >(); + result = (mem::AutoPtr< six::sicd::ImageData > *)new mem::AutoPtr< six::sicd::ImageData >(); } catch (const std::exception& e) { @@ -71565,7 +71566,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoImageData(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoImageData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ImageData > *arg1 = (mem::auto_ptr< six::sicd::ImageData > *) 0 ; + mem::AutoPtr< six::sicd::ImageData > *arg1 = (mem::AutoPtr< six::sicd::ImageData > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -71573,9 +71574,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoImageData(PyObject *SWIGUNUSEDPARM(self if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoImageData",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__ImageData_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoImageData" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::ImageData > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoImageData" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::ImageData > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::ImageData > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::ImageData > * >(argp1); { try { @@ -73493,13 +73494,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableImageData(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_new_StdAutoGrid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Grid > *result = 0 ; + mem::AutoPtr< six::sicd::Grid > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoGrid")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::Grid > *)new mem::auto_ptr< six::sicd::Grid >(); + result = (mem::AutoPtr< six::sicd::Grid > *)new mem::AutoPtr< six::sicd::Grid >(); } catch (const std::exception& e) { @@ -73536,7 +73537,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoGrid(PyObject *SWIGUNUSEDPARM(self), PyObj SWIGINTERN PyObject *_wrap_delete_StdAutoGrid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Grid > *arg1 = (mem::auto_ptr< six::sicd::Grid > *) 0 ; + mem::AutoPtr< six::sicd::Grid > *arg1 = (mem::AutoPtr< six::sicd::Grid > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -73544,9 +73545,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoGrid(PyObject *SWIGUNUSEDPARM(self), Py if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoGrid",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__Grid_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoGrid" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::Grid > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoGrid" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::Grid > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::Grid > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::Grid > * >(argp1); { try { @@ -76047,13 +76048,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableGrid(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_new_StdAutoTimeline(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Timeline > *result = 0 ; + mem::AutoPtr< six::sicd::Timeline > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTimeline")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::Timeline > *)new mem::auto_ptr< six::sicd::Timeline >(); + result = (mem::AutoPtr< six::sicd::Timeline > *)new mem::AutoPtr< six::sicd::Timeline >(); } catch (const std::exception& e) { @@ -76090,7 +76091,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTimeline(PyObject *SWIGUNUSEDPARM(self), P SWIGINTERN PyObject *_wrap_delete_StdAutoTimeline(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Timeline > *arg1 = (mem::auto_ptr< six::sicd::Timeline > *) 0 ; + mem::AutoPtr< six::sicd::Timeline > *arg1 = (mem::AutoPtr< six::sicd::Timeline > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -76098,9 +76099,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTimeline(PyObject *SWIGUNUSEDPARM(self) if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTimeline",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__Timeline_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTimeline" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::Timeline > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTimeline" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::Timeline > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::Timeline > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::Timeline > * >(argp1); { try { @@ -77270,13 +77271,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTimeline(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_new_StdAutoPosition(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Position > *result = 0 ; + mem::AutoPtr< six::sicd::Position > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoPosition")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::Position > *)new mem::auto_ptr< six::sicd::Position >(); + result = (mem::AutoPtr< six::sicd::Position > *)new mem::AutoPtr< six::sicd::Position >(); } catch (const std::exception& e) { @@ -77313,7 +77314,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoPosition(PyObject *SWIGUNUSEDPARM(self), P SWIGINTERN PyObject *_wrap_delete_StdAutoPosition(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Position > *arg1 = (mem::auto_ptr< six::sicd::Position > *) 0 ; + mem::AutoPtr< six::sicd::Position > *arg1 = (mem::AutoPtr< six::sicd::Position > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -77321,9 +77322,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoPosition(PyObject *SWIGUNUSEDPARM(self) if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoPosition",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__Position_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPosition" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::Position > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPosition" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::Position > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::Position > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::Position > * >(argp1); { try { @@ -78732,13 +78733,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyablePosition(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_new_StdAutoRcvAPC(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RcvAPC > *result = 0 ; + mem::AutoPtr< six::sicd::RcvAPC > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRcvAPC")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::RcvAPC > *)new mem::auto_ptr< six::sicd::RcvAPC >(); + result = (mem::AutoPtr< six::sicd::RcvAPC > *)new mem::AutoPtr< six::sicd::RcvAPC >(); } catch (const std::exception& e) { @@ -78775,7 +78776,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRcvAPC(PyObject *SWIGUNUSEDPARM(self), PyO SWIGINTERN PyObject *_wrap_delete_StdAutoRcvAPC(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RcvAPC > *arg1 = (mem::auto_ptr< six::sicd::RcvAPC > *) 0 ; + mem::AutoPtr< six::sicd::RcvAPC > *arg1 = (mem::AutoPtr< six::sicd::RcvAPC > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -78783,9 +78784,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRcvAPC(PyObject *SWIGUNUSEDPARM(self), if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRcvAPC",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__RcvAPC_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRcvAPC" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::RcvAPC > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRcvAPC" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::RcvAPC > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::RcvAPC > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::RcvAPC > * >(argp1); { try { @@ -79731,13 +79732,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableRcvAPC(PyObject *SWIGUNUSEDPARM(sel SWIGINTERN PyObject *_wrap_new_StdAutoRadarCollection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RadarCollection > *result = 0 ; + mem::AutoPtr< six::sicd::RadarCollection > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRadarCollection")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::RadarCollection > *)new mem::auto_ptr< six::sicd::RadarCollection >(); + result = (mem::AutoPtr< six::sicd::RadarCollection > *)new mem::AutoPtr< six::sicd::RadarCollection >(); } catch (const std::exception& e) { @@ -79774,7 +79775,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRadarCollection(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_delete_StdAutoRadarCollection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RadarCollection > *arg1 = (mem::auto_ptr< six::sicd::RadarCollection > *) 0 ; + mem::AutoPtr< six::sicd::RadarCollection > *arg1 = (mem::AutoPtr< six::sicd::RadarCollection > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -79782,9 +79783,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRadarCollection(PyObject *SWIGUNUSEDPAR if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRadarCollection",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__RadarCollection_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRadarCollection" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::RadarCollection > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRadarCollection" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::RadarCollection > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::RadarCollection > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::RadarCollection > * >(argp1); { try { @@ -81853,13 +81854,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableRadarCollection(PyObject *SWIGUNUS SWIGINTERN PyObject *_wrap_new_StdAutoImageFormation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ImageFormation > *result = 0 ; + mem::AutoPtr< six::sicd::ImageFormation > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoImageFormation")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::ImageFormation > *)new mem::auto_ptr< six::sicd::ImageFormation >(); + result = (mem::AutoPtr< six::sicd::ImageFormation > *)new mem::AutoPtr< six::sicd::ImageFormation >(); } catch (const std::exception& e) { @@ -81896,7 +81897,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoImageFormation(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_delete_StdAutoImageFormation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ImageFormation > *arg1 = (mem::auto_ptr< six::sicd::ImageFormation > *) 0 ; + mem::AutoPtr< six::sicd::ImageFormation > *arg1 = (mem::AutoPtr< six::sicd::ImageFormation > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -81904,9 +81905,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoImageFormation(PyObject *SWIGUNUSEDPARM if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoImageFormation",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__ImageFormation_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoImageFormation" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::ImageFormation > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoImageFormation" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::ImageFormation > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::ImageFormation > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::ImageFormation > * >(argp1); { try { @@ -84378,13 +84379,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableImageFormation(PyObject *SWIGUNUSED SWIGINTERN PyObject *_wrap_new_StdAutoSCPCOA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::SCPCOA > *result = 0 ; + mem::AutoPtr< six::sicd::SCPCOA > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoSCPCOA")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::SCPCOA > *)new mem::auto_ptr< six::sicd::SCPCOA >(); + result = (mem::AutoPtr< six::sicd::SCPCOA > *)new mem::AutoPtr< six::sicd::SCPCOA >(); } catch (const std::exception& e) { @@ -84421,7 +84422,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoSCPCOA(PyObject *SWIGUNUSEDPARM(self), PyO SWIGINTERN PyObject *_wrap_delete_StdAutoSCPCOA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::SCPCOA > *arg1 = (mem::auto_ptr< six::sicd::SCPCOA > *) 0 ; + mem::AutoPtr< six::sicd::SCPCOA > *arg1 = (mem::AutoPtr< six::sicd::SCPCOA > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -84429,9 +84430,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoSCPCOA(PyObject *SWIGUNUSEDPARM(self), if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoSCPCOA",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__SCPCOA_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoSCPCOA" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::SCPCOA > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoSCPCOA" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::SCPCOA > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::SCPCOA > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::SCPCOA > * >(argp1); { try { @@ -87264,13 +87265,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableSCPCOA(PyObject *SWIGUNUSEDPARM(sel SWIGINTERN PyObject *_wrap_new_StdAutoAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Antenna > *result = 0 ; + mem::AutoPtr< six::sicd::Antenna > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoAntenna")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::Antenna > *)new mem::auto_ptr< six::sicd::Antenna >(); + result = (mem::AutoPtr< six::sicd::Antenna > *)new mem::AutoPtr< six::sicd::Antenna >(); } catch (const std::exception& e) { @@ -87307,7 +87308,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoAntenna(PyObject *SWIGUNUSEDPARM(self), Py SWIGINTERN PyObject *_wrap_delete_StdAutoAntenna(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Antenna > *arg1 = (mem::auto_ptr< six::sicd::Antenna > *) 0 ; + mem::AutoPtr< six::sicd::Antenna > *arg1 = (mem::AutoPtr< six::sicd::Antenna > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -87315,9 +87316,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoAntenna(PyObject *SWIGUNUSEDPARM(self), if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoAntenna",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__Antenna_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAntenna" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::Antenna > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAntenna" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::Antenna > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::Antenna > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::Antenna > * >(argp1); { try { @@ -88487,13 +88488,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableAntenna(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_new_StdAutoSlowTimeDeskew(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::SlowTimeDeskew > *result = 0 ; + mem::AutoPtr< six::sicd::SlowTimeDeskew > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoSlowTimeDeskew")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::SlowTimeDeskew > *)new mem::auto_ptr< six::sicd::SlowTimeDeskew >(); + result = (mem::AutoPtr< six::sicd::SlowTimeDeskew > *)new mem::AutoPtr< six::sicd::SlowTimeDeskew >(); } catch (const std::exception& e) { @@ -88530,7 +88531,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoSlowTimeDeskew(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_delete_StdAutoSlowTimeDeskew(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::SlowTimeDeskew > *arg1 = (mem::auto_ptr< six::sicd::SlowTimeDeskew > *) 0 ; + mem::AutoPtr< six::sicd::SlowTimeDeskew > *arg1 = (mem::AutoPtr< six::sicd::SlowTimeDeskew > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -88538,9 +88539,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoSlowTimeDeskew(PyObject *SWIGUNUSEDPARM if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoSlowTimeDeskew",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__SlowTimeDeskew_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoSlowTimeDeskew" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::SlowTimeDeskew > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoSlowTimeDeskew" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::SlowTimeDeskew > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::SlowTimeDeskew > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::SlowTimeDeskew > * >(argp1); { try { @@ -89598,13 +89599,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableSlowTimeDeskew(PyObject *SWIGUNUSED SWIGINTERN PyObject *_wrap_new_StdAutoPFA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::PFA > *result = 0 ; + mem::AutoPtr< six::sicd::PFA > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoPFA")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::PFA > *)new mem::auto_ptr< six::sicd::PFA >(); + result = (mem::AutoPtr< six::sicd::PFA > *)new mem::AutoPtr< six::sicd::PFA >(); } catch (const std::exception& e) { @@ -89641,7 +89642,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoPFA(PyObject *SWIGUNUSEDPARM(self), PyObje SWIGINTERN PyObject *_wrap_delete_StdAutoPFA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::PFA > *arg1 = (mem::auto_ptr< six::sicd::PFA > *) 0 ; + mem::AutoPtr< six::sicd::PFA > *arg1 = (mem::AutoPtr< six::sicd::PFA > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -89649,9 +89650,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoPFA(PyObject *SWIGUNUSEDPARM(self), PyO if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoPFA",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__PFA_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPFA" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::PFA > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPFA" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::PFA > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::PFA > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::PFA > * >(argp1); { try { @@ -91831,13 +91832,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyablePFA(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_new_StdAutoRMA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RMA > *result = 0 ; + mem::AutoPtr< six::sicd::RMA > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRMA")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::RMA > *)new mem::auto_ptr< six::sicd::RMA >(); + result = (mem::AutoPtr< six::sicd::RMA > *)new mem::AutoPtr< six::sicd::RMA >(); } catch (const std::exception& e) { @@ -91874,7 +91875,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRMA(PyObject *SWIGUNUSEDPARM(self), PyObje SWIGINTERN PyObject *_wrap_delete_StdAutoRMA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RMA > *arg1 = (mem::auto_ptr< six::sicd::RMA > *) 0 ; + mem::AutoPtr< six::sicd::RMA > *arg1 = (mem::AutoPtr< six::sicd::RMA > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -91882,9 +91883,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRMA(PyObject *SWIGUNUSEDPARM(self), PyO if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRMA",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__RMA_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRMA" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::RMA > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRMA" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::RMA > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::RMA > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::RMA > * >(argp1); { try { @@ -93422,13 +93423,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableRMA(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_new_StdAutoRgAzComp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RgAzComp > *result = 0 ; + mem::AutoPtr< six::sicd::RgAzComp > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRgAzComp")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::RgAzComp > *)new mem::auto_ptr< six::sicd::RgAzComp >(); + result = (mem::AutoPtr< six::sicd::RgAzComp > *)new mem::AutoPtr< six::sicd::RgAzComp >(); } catch (const std::exception& e) { @@ -93465,7 +93466,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRgAzComp(PyObject *SWIGUNUSEDPARM(self), P SWIGINTERN PyObject *_wrap_delete_StdAutoRgAzComp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RgAzComp > *arg1 = (mem::auto_ptr< six::sicd::RgAzComp > *) 0 ; + mem::AutoPtr< six::sicd::RgAzComp > *arg1 = (mem::AutoPtr< six::sicd::RgAzComp > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -93473,9 +93474,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRgAzComp(PyObject *SWIGUNUSEDPARM(self) if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRgAzComp",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__RgAzComp_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRgAzComp" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::RgAzComp > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRgAzComp" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::RgAzComp > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::RgAzComp > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::RgAzComp > * >(argp1); { try { @@ -97980,13 +97981,13 @@ SWIGINTERN PyObject *VectorLatLon_swigregister(PyObject *SWIGUNUSEDPARM(self), P SWIGINTERN PyObject *_wrap_new_StdAutoAntennaParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::AntennaParameters > *result = 0 ; + mem::AutoPtr< six::sicd::AntennaParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoAntennaParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::AntennaParameters > *)new mem::auto_ptr< six::sicd::AntennaParameters >(); + result = (mem::AutoPtr< six::sicd::AntennaParameters > *)new mem::AutoPtr< six::sicd::AntennaParameters >(); } catch (const std::exception& e) { @@ -98023,7 +98024,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoAntennaParameters(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_delete_StdAutoAntennaParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::AntennaParameters > *arg1 = (mem::auto_ptr< six::sicd::AntennaParameters > *) 0 ; + mem::AutoPtr< six::sicd::AntennaParameters > *arg1 = (mem::AutoPtr< six::sicd::AntennaParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -98031,9 +98032,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoAntennaParameters(PyObject *SWIGUNUSEDP if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoAntennaParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__AntennaParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAntennaParameters" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::AntennaParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAntennaParameters" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::AntennaParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::AntennaParameters > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::AntennaParameters > * >(argp1); { try { @@ -99987,13 +99988,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableAntennaParameters(PyObject *SWIGUNU SWIGINTERN PyObject *_wrap_new_StdAutoElectricalBoresight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ElectricalBoresight > *result = 0 ; + mem::AutoPtr< six::sicd::ElectricalBoresight > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoElectricalBoresight")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::ElectricalBoresight > *)new mem::auto_ptr< six::sicd::ElectricalBoresight >(); + result = (mem::AutoPtr< six::sicd::ElectricalBoresight > *)new mem::AutoPtr< six::sicd::ElectricalBoresight >(); } catch (const std::exception& e) { @@ -100030,7 +100031,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoElectricalBoresight(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_delete_StdAutoElectricalBoresight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ElectricalBoresight > *arg1 = (mem::auto_ptr< six::sicd::ElectricalBoresight > *) 0 ; + mem::AutoPtr< six::sicd::ElectricalBoresight > *arg1 = (mem::AutoPtr< six::sicd::ElectricalBoresight > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -100038,9 +100039,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoElectricalBoresight(PyObject *SWIGUNUSE if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoElectricalBoresight",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__ElectricalBoresight_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoElectricalBoresight" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::ElectricalBoresight > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoElectricalBoresight" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::ElectricalBoresight > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::ElectricalBoresight > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::ElectricalBoresight > * >(argp1); { try { @@ -101098,13 +101099,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableElectricalBoresight(PyObject *SWIGU SWIGINTERN PyObject *_wrap_new_StdAutoHalfPowerBeamwidths(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::HalfPowerBeamwidths > *result = 0 ; + mem::AutoPtr< six::sicd::HalfPowerBeamwidths > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoHalfPowerBeamwidths")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::HalfPowerBeamwidths > *)new mem::auto_ptr< six::sicd::HalfPowerBeamwidths >(); + result = (mem::AutoPtr< six::sicd::HalfPowerBeamwidths > *)new mem::AutoPtr< six::sicd::HalfPowerBeamwidths >(); } catch (const std::exception& e) { @@ -101141,7 +101142,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoHalfPowerBeamwidths(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_delete_StdAutoHalfPowerBeamwidths(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::HalfPowerBeamwidths > *arg1 = (mem::auto_ptr< six::sicd::HalfPowerBeamwidths > *) 0 ; + mem::AutoPtr< six::sicd::HalfPowerBeamwidths > *arg1 = (mem::AutoPtr< six::sicd::HalfPowerBeamwidths > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -101149,9 +101150,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoHalfPowerBeamwidths(PyObject *SWIGUNUSE if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoHalfPowerBeamwidths",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__HalfPowerBeamwidths_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoHalfPowerBeamwidths" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::HalfPowerBeamwidths > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoHalfPowerBeamwidths" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::HalfPowerBeamwidths > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::HalfPowerBeamwidths > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::HalfPowerBeamwidths > * >(argp1); { try { @@ -102209,13 +102210,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableHalfPowerBeamwidths(PyObject *SWIGU SWIGINTERN PyObject *_wrap_new_StdAutoGainAndPhasePolys(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::GainAndPhasePolys > *result = 0 ; + mem::AutoPtr< six::sicd::GainAndPhasePolys > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoGainAndPhasePolys")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::GainAndPhasePolys > *)new mem::auto_ptr< six::sicd::GainAndPhasePolys >(); + result = (mem::AutoPtr< six::sicd::GainAndPhasePolys > *)new mem::AutoPtr< six::sicd::GainAndPhasePolys >(); } catch (const std::exception& e) { @@ -102252,7 +102253,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoGainAndPhasePolys(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_delete_StdAutoGainAndPhasePolys(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::GainAndPhasePolys > *arg1 = (mem::auto_ptr< six::sicd::GainAndPhasePolys > *) 0 ; + mem::AutoPtr< six::sicd::GainAndPhasePolys > *arg1 = (mem::AutoPtr< six::sicd::GainAndPhasePolys > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -102260,9 +102261,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoGainAndPhasePolys(PyObject *SWIGUNUSEDP if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoGainAndPhasePolys",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__GainAndPhasePolys_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoGainAndPhasePolys" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::GainAndPhasePolys > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoGainAndPhasePolys" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::GainAndPhasePolys > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::GainAndPhasePolys > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::GainAndPhasePolys > * >(argp1); { try { @@ -103320,13 +103321,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableGainAndPhasePolys(PyObject *SWIGUNU SWIGINTERN PyObject *_wrap_new_StdAutoWeightType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::WeightType > *result = 0 ; + mem::AutoPtr< six::sicd::WeightType > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoWeightType")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::WeightType > *)new mem::auto_ptr< six::sicd::WeightType >(); + result = (mem::AutoPtr< six::sicd::WeightType > *)new mem::AutoPtr< six::sicd::WeightType >(); } catch (const std::exception& e) { @@ -103363,7 +103364,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoWeightType(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoWeightType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::WeightType > *arg1 = (mem::auto_ptr< six::sicd::WeightType > *) 0 ; + mem::AutoPtr< six::sicd::WeightType > *arg1 = (mem::AutoPtr< six::sicd::WeightType > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -103371,9 +103372,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoWeightType(PyObject *SWIGUNUSEDPARM(sel if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoWeightType",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__WeightType_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoWeightType" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::WeightType > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoWeightType" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::WeightType > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::WeightType > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::WeightType > * >(argp1); { try { @@ -107674,13 +107675,13 @@ SWIGINTERN PyObject *VectorPolyXYZ_swigregister(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_new_StdAutoDirectionParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::DirectionParameters > *result = 0 ; + mem::AutoPtr< six::sicd::DirectionParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoDirectionParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::DirectionParameters > *)new mem::auto_ptr< six::sicd::DirectionParameters >(); + result = (mem::AutoPtr< six::sicd::DirectionParameters > *)new mem::AutoPtr< six::sicd::DirectionParameters >(); } catch (const std::exception& e) { @@ -107717,7 +107718,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoDirectionParameters(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_delete_StdAutoDirectionParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::DirectionParameters > *arg1 = (mem::auto_ptr< six::sicd::DirectionParameters > *) 0 ; + mem::AutoPtr< six::sicd::DirectionParameters > *arg1 = (mem::AutoPtr< six::sicd::DirectionParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -107725,9 +107726,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoDirectionParameters(PyObject *SWIGUNUSE if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoDirectionParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__DirectionParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDirectionParameters" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::DirectionParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDirectionParameters" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::DirectionParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::DirectionParameters > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::DirectionParameters > * >(argp1); { try { @@ -110379,13 +110380,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableDirectionParameters(PyObject *SWIG SWIGINTERN PyObject *_wrap_new_StdAutoAreaPlane(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::AreaPlane > *result = 0 ; + mem::AutoPtr< six::sicd::AreaPlane > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoAreaPlane")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::AreaPlane > *)new mem::auto_ptr< six::sicd::AreaPlane >(); + result = (mem::AutoPtr< six::sicd::AreaPlane > *)new mem::AutoPtr< six::sicd::AreaPlane >(); } catch (const std::exception& e) { @@ -110422,7 +110423,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoAreaPlane(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoAreaPlane(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::AreaPlane > *arg1 = (mem::auto_ptr< six::sicd::AreaPlane > *) 0 ; + mem::AutoPtr< six::sicd::AreaPlane > *arg1 = (mem::AutoPtr< six::sicd::AreaPlane > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -110430,9 +110431,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoAreaPlane(PyObject *SWIGUNUSEDPARM(self if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoAreaPlane",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__AreaPlane_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAreaPlane" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::AreaPlane > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAreaPlane" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::AreaPlane > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::AreaPlane > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::AreaPlane > * >(argp1); { try { @@ -112048,13 +112049,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableAreaPlane(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_new_StdAutoAreaDirectionParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::AreaDirectionParameters > *result = 0 ; + mem::AutoPtr< six::sicd::AreaDirectionParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoAreaDirectionParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::AreaDirectionParameters > *)new mem::auto_ptr< six::sicd::AreaDirectionParameters >(); + result = (mem::AutoPtr< six::sicd::AreaDirectionParameters > *)new mem::AutoPtr< six::sicd::AreaDirectionParameters >(); } catch (const std::exception& e) { @@ -112091,7 +112092,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoAreaDirectionParameters(PyObject *SWIGUNUS SWIGINTERN PyObject *_wrap_delete_StdAutoAreaDirectionParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::AreaDirectionParameters > *arg1 = (mem::auto_ptr< six::sicd::AreaDirectionParameters > *) 0 ; + mem::AutoPtr< six::sicd::AreaDirectionParameters > *arg1 = (mem::AutoPtr< six::sicd::AreaDirectionParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -112099,9 +112100,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoAreaDirectionParameters(PyObject *SWIGU if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoAreaDirectionParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__AreaDirectionParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAreaDirectionParameters" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::AreaDirectionParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAreaDirectionParameters" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::AreaDirectionParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::AreaDirectionParameters > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::AreaDirectionParameters > * >(argp1); { try { @@ -113435,13 +113436,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableAreaDirectionParameters(PyObject * SWIGINTERN PyObject *_wrap_new_StdAutoSegment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Segment > *result = 0 ; + mem::AutoPtr< six::sicd::Segment > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoSegment")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::Segment > *)new mem::auto_ptr< six::sicd::Segment >(); + result = (mem::AutoPtr< six::sicd::Segment > *)new mem::AutoPtr< six::sicd::Segment >(); } catch (const std::exception& e) { @@ -113478,7 +113479,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoSegment(PyObject *SWIGUNUSEDPARM(self), Py SWIGINTERN PyObject *_wrap_delete_StdAutoSegment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Segment > *arg1 = (mem::auto_ptr< six::sicd::Segment > *) 0 ; + mem::AutoPtr< six::sicd::Segment > *arg1 = (mem::AutoPtr< six::sicd::Segment > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -113486,9 +113487,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoSegment(PyObject *SWIGUNUSEDPARM(self), if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoSegment",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__Segment_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoSegment" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::Segment > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoSegment" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::Segment > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::Segment > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::Segment > * >(argp1); { try { @@ -115053,13 +115054,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableSegment(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_new_StdAutoTxStep(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::TxStep > *result = 0 ; + mem::AutoPtr< six::sicd::TxStep > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTxStep")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::TxStep > *)new mem::auto_ptr< six::sicd::TxStep >(); + result = (mem::AutoPtr< six::sicd::TxStep > *)new mem::AutoPtr< six::sicd::TxStep >(); } catch (const std::exception& e) { @@ -115096,7 +115097,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTxStep(PyObject *SWIGUNUSEDPARM(self), PyO SWIGINTERN PyObject *_wrap_delete_StdAutoTxStep(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::TxStep > *arg1 = (mem::auto_ptr< six::sicd::TxStep > *) 0 ; + mem::AutoPtr< six::sicd::TxStep > *arg1 = (mem::AutoPtr< six::sicd::TxStep > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -115104,9 +115105,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTxStep(PyObject *SWIGUNUSEDPARM(self), if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTxStep",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__TxStep_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTxStep" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::TxStep > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTxStep" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::TxStep > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::TxStep > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::TxStep > * >(argp1); { try { @@ -116164,13 +116165,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableTxStep(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_new_StdAutoWaveformParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::WaveformParameters > *result = 0 ; + mem::AutoPtr< six::sicd::WaveformParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoWaveformParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::WaveformParameters > *)new mem::auto_ptr< six::sicd::WaveformParameters >(); + result = (mem::AutoPtr< six::sicd::WaveformParameters > *)new mem::AutoPtr< six::sicd::WaveformParameters >(); } catch (const std::exception& e) { @@ -116207,7 +116208,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoWaveformParameters(PyObject *SWIGUNUSEDPAR SWIGINTERN PyObject *_wrap_delete_StdAutoWaveformParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::WaveformParameters > *arg1 = (mem::auto_ptr< six::sicd::WaveformParameters > *) 0 ; + mem::AutoPtr< six::sicd::WaveformParameters > *arg1 = (mem::AutoPtr< six::sicd::WaveformParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -116215,9 +116216,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoWaveformParameters(PyObject *SWIGUNUSED if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoWaveformParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__WaveformParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoWaveformParameters" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::WaveformParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoWaveformParameters" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::WaveformParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::WaveformParameters > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::WaveformParameters > * >(argp1); { try { @@ -118295,13 +118296,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableWaveformParameters(PyObject *SWIGU SWIGINTERN PyObject *_wrap_new_StdAutoArea(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Area > *result = 0 ; + mem::AutoPtr< six::sicd::Area > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoArea")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::Area > *)new mem::auto_ptr< six::sicd::Area >(); + result = (mem::AutoPtr< six::sicd::Area > *)new mem::AutoPtr< six::sicd::Area >(); } catch (const std::exception& e) { @@ -118338,7 +118339,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoArea(PyObject *SWIGUNUSEDPARM(self), PyObj SWIGINTERN PyObject *_wrap_delete_StdAutoArea(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Area > *arg1 = (mem::auto_ptr< six::sicd::Area > *) 0 ; + mem::AutoPtr< six::sicd::Area > *arg1 = (mem::AutoPtr< six::sicd::Area > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -118346,9 +118347,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoArea(PyObject *SWIGUNUSEDPARM(self), Py if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoArea",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__Area_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoArea" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::Area > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoArea" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::Area > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::Area > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::Area > * >(argp1); { try { @@ -119406,13 +119407,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableArea(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_new_StdAutoChannelParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ChannelParameters > *result = 0 ; + mem::AutoPtr< six::sicd::ChannelParameters > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoChannelParameters")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::ChannelParameters > *)new mem::auto_ptr< six::sicd::ChannelParameters >(); + result = (mem::AutoPtr< six::sicd::ChannelParameters > *)new mem::AutoPtr< six::sicd::ChannelParameters >(); } catch (const std::exception& e) { @@ -119449,7 +119450,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoChannelParameters(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_delete_StdAutoChannelParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::ChannelParameters > *arg1 = (mem::auto_ptr< six::sicd::ChannelParameters > *) 0 ; + mem::AutoPtr< six::sicd::ChannelParameters > *arg1 = (mem::AutoPtr< six::sicd::ChannelParameters > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -119457,9 +119458,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoChannelParameters(PyObject *SWIGUNUSEDP if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoChannelParameters",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__ChannelParameters_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoChannelParameters" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::ChannelParameters > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoChannelParameters" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::ChannelParameters > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::ChannelParameters > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::ChannelParameters > * >(argp1); { try { @@ -136699,13 +136700,13 @@ SWIGINTERN PyObject *VectorInt_swigregister(PyObject *SWIGUNUSEDPARM(self), PyOb SWIGINTERN PyObject *_wrap_new_StdAutoRcvChannelProcessed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RcvChannelProcessed > *result = 0 ; + mem::AutoPtr< six::sicd::RcvChannelProcessed > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRcvChannelProcessed")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::RcvChannelProcessed > *)new mem::auto_ptr< six::sicd::RcvChannelProcessed >(); + result = (mem::AutoPtr< six::sicd::RcvChannelProcessed > *)new mem::AutoPtr< six::sicd::RcvChannelProcessed >(); } catch (const std::exception& e) { @@ -136742,7 +136743,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRcvChannelProcessed(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_delete_StdAutoRcvChannelProcessed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RcvChannelProcessed > *arg1 = (mem::auto_ptr< six::sicd::RcvChannelProcessed > *) 0 ; + mem::AutoPtr< six::sicd::RcvChannelProcessed > *arg1 = (mem::AutoPtr< six::sicd::RcvChannelProcessed > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -136750,9 +136751,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRcvChannelProcessed(PyObject *SWIGUNUSE if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRcvChannelProcessed",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__RcvChannelProcessed_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRcvChannelProcessed" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::RcvChannelProcessed > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRcvChannelProcessed" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::RcvChannelProcessed > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::RcvChannelProcessed > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::RcvChannelProcessed > * >(argp1); { try { @@ -141158,13 +141159,13 @@ SWIGINTERN PyObject *VectorProcessing_swigregister(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_new_StdAutoPolarizationCalibration(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::PolarizationCalibration > *result = 0 ; + mem::AutoPtr< six::sicd::PolarizationCalibration > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoPolarizationCalibration")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::PolarizationCalibration > *)new mem::auto_ptr< six::sicd::PolarizationCalibration >(); + result = (mem::AutoPtr< six::sicd::PolarizationCalibration > *)new mem::AutoPtr< six::sicd::PolarizationCalibration >(); } catch (const std::exception& e) { @@ -141201,7 +141202,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoPolarizationCalibration(PyObject *SWIGUNUS SWIGINTERN PyObject *_wrap_delete_StdAutoPolarizationCalibration(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::PolarizationCalibration > *arg1 = (mem::auto_ptr< six::sicd::PolarizationCalibration > *) 0 ; + mem::AutoPtr< six::sicd::PolarizationCalibration > *arg1 = (mem::AutoPtr< six::sicd::PolarizationCalibration > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -141209,9 +141210,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoPolarizationCalibration(PyObject *SWIGU if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoPolarizationCalibration",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__PolarizationCalibration_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPolarizationCalibration" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::PolarizationCalibration > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPolarizationCalibration" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::PolarizationCalibration > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::PolarizationCalibration > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::PolarizationCalibration > * >(argp1); { try { @@ -142381,13 +142382,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyablePolarizationCalibration(PyObject *S SWIGINTERN PyObject *_wrap_new_StdAutoDistortion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Distortion > *result = 0 ; + mem::AutoPtr< six::sicd::Distortion > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoDistortion")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::Distortion > *)new mem::auto_ptr< six::sicd::Distortion >(); + result = (mem::AutoPtr< six::sicd::Distortion > *)new mem::AutoPtr< six::sicd::Distortion >(); } catch (const std::exception& e) { @@ -142424,7 +142425,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoDistortion(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoDistortion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::Distortion > *arg1 = (mem::auto_ptr< six::sicd::Distortion > *) 0 ; + mem::AutoPtr< six::sicd::Distortion > *arg1 = (mem::AutoPtr< six::sicd::Distortion > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -142432,9 +142433,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoDistortion(PyObject *SWIGUNUSEDPARM(sel if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoDistortion",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__Distortion_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDistortion" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::Distortion > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoDistortion" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::Distortion > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::Distortion > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::Distortion > * >(argp1); { try { @@ -144724,13 +144725,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableDistortion(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_new_StdAutoRMAT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RMAT > *result = 0 ; + mem::AutoPtr< six::sicd::RMAT > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRMAT")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::RMAT > *)new mem::auto_ptr< six::sicd::RMAT >(); + result = (mem::AutoPtr< six::sicd::RMAT > *)new mem::AutoPtr< six::sicd::RMAT >(); } catch (const std::exception& e) { @@ -144767,7 +144768,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRMAT(PyObject *SWIGUNUSEDPARM(self), PyObj SWIGINTERN PyObject *_wrap_delete_StdAutoRMAT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RMAT > *arg1 = (mem::auto_ptr< six::sicd::RMAT > *) 0 ; + mem::AutoPtr< six::sicd::RMAT > *arg1 = (mem::AutoPtr< six::sicd::RMAT > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -144775,9 +144776,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRMAT(PyObject *SWIGUNUSEDPARM(self), Py if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRMAT",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__RMAT_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRMAT" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::RMAT > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRMAT" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::RMAT > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::RMAT > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::RMAT > * >(argp1); { try { @@ -147253,13 +147254,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableRMAT(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_new_StdAutoRMCR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RMCR > *result = 0 ; + mem::AutoPtr< six::sicd::RMCR > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRMCR")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::RMCR > *)new mem::auto_ptr< six::sicd::RMCR >(); + result = (mem::AutoPtr< six::sicd::RMCR > *)new mem::AutoPtr< six::sicd::RMCR >(); } catch (const std::exception& e) { @@ -147296,7 +147297,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRMCR(PyObject *SWIGUNUSEDPARM(self), PyObj SWIGINTERN PyObject *_wrap_delete_StdAutoRMCR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::RMCR > *arg1 = (mem::auto_ptr< six::sicd::RMCR > *) 0 ; + mem::AutoPtr< six::sicd::RMCR > *arg1 = (mem::AutoPtr< six::sicd::RMCR > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -147304,9 +147305,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRMCR(PyObject *SWIGUNUSEDPARM(self), Py if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRMCR",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__RMCR_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRMCR" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::RMCR > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRMCR" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::RMCR > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::RMCR > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::RMCR > * >(argp1); { try { @@ -148934,13 +148935,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableRMCR(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_new_StdAutoINCA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::INCA > *result = 0 ; + mem::AutoPtr< six::sicd::INCA > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoINCA")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::INCA > *)new mem::auto_ptr< six::sicd::INCA >(); + result = (mem::AutoPtr< six::sicd::INCA > *)new mem::AutoPtr< six::sicd::INCA >(); } catch (const std::exception& e) { @@ -148977,7 +148978,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoINCA(PyObject *SWIGUNUSEDPARM(self), PyObj SWIGINTERN PyObject *_wrap_delete_StdAutoINCA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::INCA > *arg1 = (mem::auto_ptr< six::sicd::INCA > *) 0 ; + mem::AutoPtr< six::sicd::INCA > *arg1 = (mem::AutoPtr< six::sicd::INCA > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -148985,9 +148986,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoINCA(PyObject *SWIGUNUSEDPARM(self), Py if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoINCA",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__INCA_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoINCA" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::INCA > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoINCA" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::INCA > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::INCA > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::INCA > * >(argp1); { try { @@ -151233,13 +151234,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableINCA(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_new_StdAutoInterPulsePeriod(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::InterPulsePeriod > *result = 0 ; + mem::AutoPtr< six::sicd::InterPulsePeriod > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoInterPulsePeriod")) SWIG_fail; { try { - result = (mem::auto_ptr< six::sicd::InterPulsePeriod > *)new mem::auto_ptr< six::sicd::InterPulsePeriod >(); + result = (mem::AutoPtr< six::sicd::InterPulsePeriod > *)new mem::AutoPtr< six::sicd::InterPulsePeriod >(); } catch (const std::exception& e) { @@ -151276,7 +151277,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoInterPulsePeriod(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_delete_StdAutoInterPulsePeriod(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::sicd::InterPulsePeriod > *arg1 = (mem::auto_ptr< six::sicd::InterPulsePeriod > *) 0 ; + mem::AutoPtr< six::sicd::InterPulsePeriod > *arg1 = (mem::AutoPtr< six::sicd::InterPulsePeriod > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -151284,9 +151285,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoInterPulsePeriod(PyObject *SWIGUNUSEDPA if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoInterPulsePeriod",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__sicd__InterPulsePeriod_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoInterPulsePeriod" "', argument " "1"" of type '" "mem::auto_ptr< six::sicd::InterPulsePeriod > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoInterPulsePeriod" "', argument " "1"" of type '" "mem::AutoPtr< six::sicd::InterPulsePeriod > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::sicd::InterPulsePeriod > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::sicd::InterPulsePeriod > * >(argp1); { try { @@ -156759,7 +156760,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"asComplexData", _wrap_asComplexData, METH_VARARGS, (char *)"asComplexData(Data data) -> ComplexData"}, { (char *)"writeNITF", _wrap_writeNITF, METH_VARARGS, (char *)"writeNITF(std::string const & pathname, VectorString schemaPaths, ComplexData data, long long imageAdr)"}, { (char *)"readNITF", _wrap_readNITF, METH_VARARGS, (char *)"readNITF(std::string const & pathname, VectorString schemaPaths) -> Data *"}, - { (char *)"cropMetaData", _wrap_cropMetaData, METH_VARARGS, (char *)"cropMetaData(ComplexData complexData, RowColSizeT aoiOffset, RowColSizeT aoiDims) -> mem::auto_ptr< six::sicd::ComplexData >"}, + { (char *)"cropMetaData", _wrap_cropMetaData, METH_VARARGS, (char *)"cropMetaData(ComplexData complexData, RowColSizeT aoiOffset, RowColSizeT aoiDims) -> mem::AutoPtr< six::sicd::ComplexData >"}, { (char *)"_readRecord", _wrap__readRecord, METH_VARARGS, (char *)"_readRecord(std::string const & pathname) -> Record"}, { (char *)"new_ProjectionPolynomialFitter", _wrap_new_ProjectionPolynomialFitter, METH_VARARGS, (char *)"\n" "ProjectionPolynomialFitter(ProjectionModel projModel, GridECEFTransform gridTransform, RowColDouble outPixelStart, RowColSizeT outExtent, size_t numPoints1D)\n" @@ -157552,20 +157553,20 @@ static PyMethodDef SwigMethods[] = { { (char *)"ComplexXMLControl_swigregister", ComplexXMLControl_swigregister, METH_VARARGS, NULL}, { (char *)"SixSicdUtilities_getSceneGeometry", _wrap_SixSicdUtilities_getSceneGeometry, METH_VARARGS, (char *)"SixSicdUtilities_getSceneGeometry(ComplexData data) -> SceneGeometry"}, { (char *)"SixSicdUtilities_getProjectionModel", _wrap_SixSicdUtilities_getProjectionModel, METH_VARARGS, (char *)"SixSicdUtilities_getProjectionModel(ComplexData data, SceneGeometry geom) -> ProjectionModel"}, - { (char *)"SixSicdUtilities_getModelComponents", _wrap_SixSicdUtilities_getModelComponents, METH_VARARGS, (char *)"SixSicdUtilities_getModelComponents(ComplexData complexData, mem::auto_ptr< scene::SceneGeometry > & geometry, mem::auto_ptr< scene::ProjectionModel > & projectionModel, AreaPlane areaPlane)"}, + { (char *)"SixSicdUtilities_getModelComponents", _wrap_SixSicdUtilities_getModelComponents, METH_VARARGS, (char *)"SixSicdUtilities_getModelComponents(ComplexData complexData, mem::AutoPtr< scene::SceneGeometry > & geometry, mem::AutoPtr< scene::ProjectionModel > & projectionModel, AreaPlane areaPlane)"}, { (char *)"SixSicdUtilities_getPolynomialFitter", _wrap_SixSicdUtilities_getPolynomialFitter, METH_VARARGS, (char *)"\n" - "getPolynomialFitter(ComplexData complexData, size_t numPoints1D, bool sampleWithinValidDataPolygon=False) -> mem::auto_ptr< scene::ProjectionPolynomialFitter >\n" - "getPolynomialFitter(ComplexData complexData, size_t numPoints1D) -> mem::auto_ptr< scene::ProjectionPolynomialFitter >\n" - "SixSicdUtilities_getPolynomialFitter(ComplexData complexData) -> mem::auto_ptr< scene::ProjectionPolynomialFitter >\n" + "getPolynomialFitter(ComplexData complexData, size_t numPoints1D, bool sampleWithinValidDataPolygon=False) -> mem::AutoPtr< scene::ProjectionPolynomialFitter >\n" + "getPolynomialFitter(ComplexData complexData, size_t numPoints1D) -> mem::AutoPtr< scene::ProjectionPolynomialFitter >\n" + "SixSicdUtilities_getPolynomialFitter(ComplexData complexData) -> mem::AutoPtr< scene::ProjectionPolynomialFitter >\n" ""}, { (char *)"SixSicdUtilities_getValidDataPolygon", _wrap_SixSicdUtilities_getValidDataPolygon, METH_VARARGS, (char *)"SixSicdUtilities_getValidDataPolygon(ComplexData sicdData, ProjectionModel projection, VectorRowColDouble validData)"}, { (char *)"SixSicdUtilities_readSicd", _wrap_SixSicdUtilities_readSicd, METH_VARARGS, (char *)"\n" - "readSicd(std::string const & sicdPathname, VectorString schemaPaths, mem::auto_ptr< six::sicd::ComplexData > & complexData, std::vector< std::complex< float >,std::allocator< std::complex< float > > > & widebandData)\n" - "SixSicdUtilities_readSicd(std::string const & sicdPathname, VectorString schemaPaths, size_t orderX, size_t orderY, mem::auto_ptr< six::sicd::ComplexData > & complexData, std::vector< std::complex< float >,std::allocator< std::complex< float > > > & widebandData, Poly2D outputRowColToSlantRow, Poly2D outputRowColToSlantCol, mem::auto_ptr< six::sicd::NoiseMesh > & noiseMesh, mem::auto_ptr< six::sicd::ScalarMesh > & scalarMesh)\n" + "readSicd(std::string const & sicdPathname, VectorString schemaPaths, mem::AutoPtr< six::sicd::ComplexData > & complexData, std::vector< std::complex< float >,std::allocator< std::complex< float > > > & widebandData)\n" + "SixSicdUtilities_readSicd(std::string const & sicdPathname, VectorString schemaPaths, size_t orderX, size_t orderY, mem::AutoPtr< six::sicd::ComplexData > & complexData, std::vector< std::complex< float >,std::allocator< std::complex< float > > > & widebandData, Poly2D outputRowColToSlantRow, Poly2D outputRowColToSlantCol, mem::AutoPtr< six::sicd::NoiseMesh > & noiseMesh, mem::AutoPtr< six::sicd::ScalarMesh > & scalarMesh)\n" ""}, { (char *)"SixSicdUtilities_getComplexData", _wrap_SixSicdUtilities_getComplexData, METH_VARARGS, (char *)"\n" - "getComplexData(std::string const & pathname, VectorString schemaPaths) -> mem::auto_ptr< six::sicd::ComplexData >\n" - "SixSicdUtilities_getComplexData(NITFReadControl & reader) -> mem::auto_ptr< six::sicd::ComplexData >\n" + "getComplexData(std::string const & pathname, VectorString schemaPaths) -> mem::AutoPtr< six::sicd::ComplexData >\n" + "SixSicdUtilities_getComplexData(NITFReadControl & reader) -> mem::AutoPtr< six::sicd::ComplexData >\n" ""}, { (char *)"SixSicdUtilities_getWidebandData", _wrap_SixSicdUtilities_getWidebandData, METH_VARARGS, (char *)"\n" "getWidebandData(NITFReadControl & reader, ComplexData complexData, std::complex< float > * buffer)\n" @@ -157581,12 +157582,12 @@ static PyMethodDef SwigMethods[] = { "isClockwise(VectorRowColInt vertices, bool isUpPositive=False) -> bool\n" "SixSicdUtilities_isClockwise(VectorRowColInt vertices) -> bool\n" ""}, - { (char *)"SixSicdUtilities_parseData", _wrap_SixSicdUtilities_parseData, METH_VARARGS, (char *)"SixSicdUtilities_parseData(InputStream xmlStream, VectorString schemaPaths, logging::Logger & log) -> mem::auto_ptr< six::sicd::ComplexData >"}, - { (char *)"SixSicdUtilities_parseDataFromFile", _wrap_SixSicdUtilities_parseDataFromFile, METH_VARARGS, (char *)"SixSicdUtilities_parseDataFromFile(std::string const & pathname, VectorString schemaPaths, logging::Logger & log) -> mem::auto_ptr< six::sicd::ComplexData >"}, - { (char *)"SixSicdUtilities_createFakeComplexData", _wrap_SixSicdUtilities_createFakeComplexData, METH_VARARGS, (char *)"SixSicdUtilities_createFakeComplexData() -> mem::auto_ptr< six::sicd::ComplexData >"}, - { (char *)"SixSicdUtilities_getNoiseMesh", _wrap_SixSicdUtilities_getNoiseMesh, METH_VARARGS, (char *)"SixSicdUtilities_getNoiseMesh(NITFReadControl & reader) -> mem::auto_ptr< six::sicd::NoiseMesh >"}, - { (char *)"SixSicdUtilities_getScalarMesh", _wrap_SixSicdUtilities_getScalarMesh, METH_VARARGS, (char *)"SixSicdUtilities_getScalarMesh(NITFReadControl & reader) -> mem::auto_ptr< six::sicd::ScalarMesh >"}, - { (char *)"SixSicdUtilities_getProjectionPolys", _wrap_SixSicdUtilities_getProjectionPolys, METH_VARARGS, (char *)"SixSicdUtilities_getProjectionPolys(NITFReadControl & reader, size_t orderX, size_t orderY, mem::auto_ptr< six::sicd::ComplexData > & complexData, Poly2D outputRowColToSlantRow, Poly2D outputRowColToSlantCol)"}, + { (char *)"SixSicdUtilities_parseData", _wrap_SixSicdUtilities_parseData, METH_VARARGS, (char *)"SixSicdUtilities_parseData(InputStream xmlStream, VectorString schemaPaths, logging::Logger & log) -> mem::AutoPtr< six::sicd::ComplexData >"}, + { (char *)"SixSicdUtilities_parseDataFromFile", _wrap_SixSicdUtilities_parseDataFromFile, METH_VARARGS, (char *)"SixSicdUtilities_parseDataFromFile(std::string const & pathname, VectorString schemaPaths, logging::Logger & log) -> mem::AutoPtr< six::sicd::ComplexData >"}, + { (char *)"SixSicdUtilities_createFakeComplexData", _wrap_SixSicdUtilities_createFakeComplexData, METH_VARARGS, (char *)"SixSicdUtilities_createFakeComplexData() -> mem::AutoPtr< six::sicd::ComplexData >"}, + { (char *)"SixSicdUtilities_getNoiseMesh", _wrap_SixSicdUtilities_getNoiseMesh, METH_VARARGS, (char *)"SixSicdUtilities_getNoiseMesh(NITFReadControl & reader) -> mem::AutoPtr< six::sicd::NoiseMesh >"}, + { (char *)"SixSicdUtilities_getScalarMesh", _wrap_SixSicdUtilities_getScalarMesh, METH_VARARGS, (char *)"SixSicdUtilities_getScalarMesh(NITFReadControl & reader) -> mem::AutoPtr< six::sicd::ScalarMesh >"}, + { (char *)"SixSicdUtilities_getProjectionPolys", _wrap_SixSicdUtilities_getProjectionPolys, METH_VARARGS, (char *)"SixSicdUtilities_getProjectionPolys(NITFReadControl & reader, size_t orderX, size_t orderY, mem::AutoPtr< six::sicd::ComplexData > & complexData, Poly2D outputRowColToSlantRow, Poly2D outputRowColToSlantCol)"}, { (char *)"SixSicdUtilities_transformXYPolyToRowColPoly", _wrap_SixSicdUtilities_transformXYPolyToRowColPoly, METH_VARARGS, (char *)"SixSicdUtilities_transformXYPolyToRowColPoly(Poly2D polyXY, RowColDouble outSampleSpacing, RowColDouble outCenter, double polyScaleFactor, double polyShift) -> Poly2D"}, { (char *)"SixSicdUtilities_transformXYProjectionPolys", _wrap_SixSicdUtilities_transformXYProjectionPolys, METH_VARARGS, (char *)"SixSicdUtilities_transformXYProjectionPolys(Poly2D outputXYToSlantX, Poly2D outputXYToSlantY, RowColDouble slantSampleSpacing, RowColDouble outputSampleSpacing, RowColDouble slantCenter, RowColDouble outputCenter, Poly2D outputRowColToSlantRow, Poly2D outputRowColToSlantCol)"}, { (char *)"SixSicdUtilities_fitXYProjectionPolys", _wrap_SixSicdUtilities_fitXYProjectionPolys, METH_VARARGS, (char *)"SixSicdUtilities_fitXYProjectionPolys(PlanarCoordinateMesh outputMesh, PlanarCoordinateMesh slantMesh, size_t orderX, size_t orderY, Poly2D outputXYToSlantX, Poly2D outputXYToSlantY, Poly2D slantXYToOutputX, Poly2D slantXYToOutputY)"}, @@ -159665,46 +159666,46 @@ static swig_type_info _swigt__p_std__allocatorT_mem__ScopedCloneablePtrT_six__si static swig_type_info _swigt__p_std__allocatorT_scene__LatLon_t = {"_p_std__allocatorT_scene__LatLon_t", "std::vector< scene::LatLon >::allocator_type *|std::allocator< scene::LatLon > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_six__sicd__Processing_t = {"_p_std__allocatorT_six__sicd__Processing_t", "std::vector< six::sicd::Processing >::allocator_type *|std::allocator< six::sicd::Processing > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_six__sicd__TimelineSet_t = {"_p_std__allocatorT_six__sicd__TimelineSet_t", "std::allocator< six::sicd::TimelineSet > *|std::vector< six::sicd::TimelineSet >::allocator_type *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_scene__ProjectionModel_t = {"_p_std__auto_ptrT_scene__ProjectionModel_t", "mem::auto_ptr< scene::ProjectionModel > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_scene__SceneGeometry_t = {"_p_std__auto_ptrT_scene__SceneGeometry_t", "mem::auto_ptr< scene::SceneGeometry > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__AntennaParameters_t = {"_p_std__auto_ptrT_six__sicd__AntennaParameters_t", "mem::auto_ptr< six::sicd::AntennaParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Antenna_t = {"_p_std__auto_ptrT_six__sicd__Antenna_t", "mem::auto_ptr< six::sicd::Antenna > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__AreaDirectionParameters_t = {"_p_std__auto_ptrT_six__sicd__AreaDirectionParameters_t", "mem::auto_ptr< six::sicd::AreaDirectionParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__AreaPlane_t = {"_p_std__auto_ptrT_six__sicd__AreaPlane_t", "mem::auto_ptr< six::sicd::AreaPlane > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Area_t = {"_p_std__auto_ptrT_six__sicd__Area_t", "mem::auto_ptr< six::sicd::Area > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ChannelParameters_t = {"_p_std__auto_ptrT_six__sicd__ChannelParameters_t", "mem::auto_ptr< six::sicd::ChannelParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ComplexData_t = {"_p_std__auto_ptrT_six__sicd__ComplexData_t", "mem::auto_ptr< six::sicd::ComplexData > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__DirectionParameters_t = {"_p_std__auto_ptrT_six__sicd__DirectionParameters_t", "mem::auto_ptr< six::sicd::DirectionParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Distortion_t = {"_p_std__auto_ptrT_six__sicd__Distortion_t", "mem::auto_ptr< six::sicd::Distortion > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ElectricalBoresight_t = {"_p_std__auto_ptrT_six__sicd__ElectricalBoresight_t", "mem::auto_ptr< six::sicd::ElectricalBoresight > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__GainAndPhasePolys_t = {"_p_std__auto_ptrT_six__sicd__GainAndPhasePolys_t", "mem::auto_ptr< six::sicd::GainAndPhasePolys > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__GeoData_t = {"_p_std__auto_ptrT_six__sicd__GeoData_t", "mem::auto_ptr< six::sicd::GeoData > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Grid_t = {"_p_std__auto_ptrT_six__sicd__Grid_t", "mem::auto_ptr< six::sicd::Grid > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__HalfPowerBeamwidths_t = {"_p_std__auto_ptrT_six__sicd__HalfPowerBeamwidths_t", "mem::auto_ptr< six::sicd::HalfPowerBeamwidths > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__INCA_t = {"_p_std__auto_ptrT_six__sicd__INCA_t", "mem::auto_ptr< six::sicd::INCA > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ImageCreation_t = {"_p_std__auto_ptrT_six__sicd__ImageCreation_t", "mem::auto_ptr< six::sicd::ImageCreation > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ImageData_t = {"_p_std__auto_ptrT_six__sicd__ImageData_t", "mem::auto_ptr< six::sicd::ImageData > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ImageFormation_t = {"_p_std__auto_ptrT_six__sicd__ImageFormation_t", "mem::auto_ptr< six::sicd::ImageFormation > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__InterPulsePeriod_t = {"_p_std__auto_ptrT_six__sicd__InterPulsePeriod_t", "mem::auto_ptr< six::sicd::InterPulsePeriod > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__NoiseMesh_t = {"_p_std__auto_ptrT_six__sicd__NoiseMesh_t", "mem::auto_ptr< six::sicd::NoiseMesh > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__PFA_t = {"_p_std__auto_ptrT_six__sicd__PFA_t", "mem::auto_ptr< six::sicd::PFA > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__PolarizationCalibration_t = {"_p_std__auto_ptrT_six__sicd__PolarizationCalibration_t", "mem::auto_ptr< six::sicd::PolarizationCalibration > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Position_t = {"_p_std__auto_ptrT_six__sicd__Position_t", "mem::auto_ptr< six::sicd::Position > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RMAT_t = {"_p_std__auto_ptrT_six__sicd__RMAT_t", "mem::auto_ptr< six::sicd::RMAT > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RMA_t = {"_p_std__auto_ptrT_six__sicd__RMA_t", "mem::auto_ptr< six::sicd::RMA > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RMCR_t = {"_p_std__auto_ptrT_six__sicd__RMCR_t", "mem::auto_ptr< six::sicd::RMCR > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RadarCollection_t = {"_p_std__auto_ptrT_six__sicd__RadarCollection_t", "mem::auto_ptr< six::sicd::RadarCollection > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RcvAPC_t = {"_p_std__auto_ptrT_six__sicd__RcvAPC_t", "mem::auto_ptr< six::sicd::RcvAPC > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RcvChannelProcessed_t = {"_p_std__auto_ptrT_six__sicd__RcvChannelProcessed_t", "mem::auto_ptr< six::sicd::RcvChannelProcessed > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RgAzComp_t = {"_p_std__auto_ptrT_six__sicd__RgAzComp_t", "mem::auto_ptr< six::sicd::RgAzComp > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__SCPCOA_t = {"_p_std__auto_ptrT_six__sicd__SCPCOA_t", "mem::auto_ptr< six::sicd::SCPCOA > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ScalarMesh_t = {"_p_std__auto_ptrT_six__sicd__ScalarMesh_t", "mem::auto_ptr< six::sicd::ScalarMesh > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Segment_t = {"_p_std__auto_ptrT_six__sicd__Segment_t", "mem::auto_ptr< six::sicd::Segment > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__SlowTimeDeskew_t = {"_p_std__auto_ptrT_six__sicd__SlowTimeDeskew_t", "mem::auto_ptr< six::sicd::SlowTimeDeskew > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Timeline_t = {"_p_std__auto_ptrT_six__sicd__Timeline_t", "mem::auto_ptr< six::sicd::Timeline > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__TxStep_t = {"_p_std__auto_ptrT_six__sicd__TxStep_t", "mem::auto_ptr< six::sicd::TxStep > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__WaveformParameters_t = {"_p_std__auto_ptrT_six__sicd__WaveformParameters_t", "mem::auto_ptr< six::sicd::WaveformParameters > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__WeightType_t = {"_p_std__auto_ptrT_six__sicd__WeightType_t", "mem::auto_ptr< six::sicd::WeightType > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_scene__ProjectionModel_t = {"_p_std__auto_ptrT_scene__ProjectionModel_t", "mem::AutoPtr< scene::ProjectionModel > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_scene__SceneGeometry_t = {"_p_std__auto_ptrT_scene__SceneGeometry_t", "mem::AutoPtr< scene::SceneGeometry > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__AntennaParameters_t = {"_p_std__auto_ptrT_six__sicd__AntennaParameters_t", "mem::AutoPtr< six::sicd::AntennaParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Antenna_t = {"_p_std__auto_ptrT_six__sicd__Antenna_t", "mem::AutoPtr< six::sicd::Antenna > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__AreaDirectionParameters_t = {"_p_std__auto_ptrT_six__sicd__AreaDirectionParameters_t", "mem::AutoPtr< six::sicd::AreaDirectionParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__AreaPlane_t = {"_p_std__auto_ptrT_six__sicd__AreaPlane_t", "mem::AutoPtr< six::sicd::AreaPlane > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Area_t = {"_p_std__auto_ptrT_six__sicd__Area_t", "mem::AutoPtr< six::sicd::Area > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ChannelParameters_t = {"_p_std__auto_ptrT_six__sicd__ChannelParameters_t", "mem::AutoPtr< six::sicd::ChannelParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ComplexData_t = {"_p_std__auto_ptrT_six__sicd__ComplexData_t", "mem::AutoPtr< six::sicd::ComplexData > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__DirectionParameters_t = {"_p_std__auto_ptrT_six__sicd__DirectionParameters_t", "mem::AutoPtr< six::sicd::DirectionParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Distortion_t = {"_p_std__auto_ptrT_six__sicd__Distortion_t", "mem::AutoPtr< six::sicd::Distortion > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ElectricalBoresight_t = {"_p_std__auto_ptrT_six__sicd__ElectricalBoresight_t", "mem::AutoPtr< six::sicd::ElectricalBoresight > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__GainAndPhasePolys_t = {"_p_std__auto_ptrT_six__sicd__GainAndPhasePolys_t", "mem::AutoPtr< six::sicd::GainAndPhasePolys > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__GeoData_t = {"_p_std__auto_ptrT_six__sicd__GeoData_t", "mem::AutoPtr< six::sicd::GeoData > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Grid_t = {"_p_std__auto_ptrT_six__sicd__Grid_t", "mem::AutoPtr< six::sicd::Grid > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__HalfPowerBeamwidths_t = {"_p_std__auto_ptrT_six__sicd__HalfPowerBeamwidths_t", "mem::AutoPtr< six::sicd::HalfPowerBeamwidths > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__INCA_t = {"_p_std__auto_ptrT_six__sicd__INCA_t", "mem::AutoPtr< six::sicd::INCA > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ImageCreation_t = {"_p_std__auto_ptrT_six__sicd__ImageCreation_t", "mem::AutoPtr< six::sicd::ImageCreation > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ImageData_t = {"_p_std__auto_ptrT_six__sicd__ImageData_t", "mem::AutoPtr< six::sicd::ImageData > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ImageFormation_t = {"_p_std__auto_ptrT_six__sicd__ImageFormation_t", "mem::AutoPtr< six::sicd::ImageFormation > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__InterPulsePeriod_t = {"_p_std__auto_ptrT_six__sicd__InterPulsePeriod_t", "mem::AutoPtr< six::sicd::InterPulsePeriod > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__NoiseMesh_t = {"_p_std__auto_ptrT_six__sicd__NoiseMesh_t", "mem::AutoPtr< six::sicd::NoiseMesh > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__PFA_t = {"_p_std__auto_ptrT_six__sicd__PFA_t", "mem::AutoPtr< six::sicd::PFA > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__PolarizationCalibration_t = {"_p_std__auto_ptrT_six__sicd__PolarizationCalibration_t", "mem::AutoPtr< six::sicd::PolarizationCalibration > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Position_t = {"_p_std__auto_ptrT_six__sicd__Position_t", "mem::AutoPtr< six::sicd::Position > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RMAT_t = {"_p_std__auto_ptrT_six__sicd__RMAT_t", "mem::AutoPtr< six::sicd::RMAT > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RMA_t = {"_p_std__auto_ptrT_six__sicd__RMA_t", "mem::AutoPtr< six::sicd::RMA > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RMCR_t = {"_p_std__auto_ptrT_six__sicd__RMCR_t", "mem::AutoPtr< six::sicd::RMCR > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RadarCollection_t = {"_p_std__auto_ptrT_six__sicd__RadarCollection_t", "mem::AutoPtr< six::sicd::RadarCollection > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RcvAPC_t = {"_p_std__auto_ptrT_six__sicd__RcvAPC_t", "mem::AutoPtr< six::sicd::RcvAPC > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RcvChannelProcessed_t = {"_p_std__auto_ptrT_six__sicd__RcvChannelProcessed_t", "mem::AutoPtr< six::sicd::RcvChannelProcessed > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__RgAzComp_t = {"_p_std__auto_ptrT_six__sicd__RgAzComp_t", "mem::AutoPtr< six::sicd::RgAzComp > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__SCPCOA_t = {"_p_std__auto_ptrT_six__sicd__SCPCOA_t", "mem::AutoPtr< six::sicd::SCPCOA > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__ScalarMesh_t = {"_p_std__auto_ptrT_six__sicd__ScalarMesh_t", "mem::AutoPtr< six::sicd::ScalarMesh > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Segment_t = {"_p_std__auto_ptrT_six__sicd__Segment_t", "mem::AutoPtr< six::sicd::Segment > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__SlowTimeDeskew_t = {"_p_std__auto_ptrT_six__sicd__SlowTimeDeskew_t", "mem::AutoPtr< six::sicd::SlowTimeDeskew > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__Timeline_t = {"_p_std__auto_ptrT_six__sicd__Timeline_t", "mem::AutoPtr< six::sicd::Timeline > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__TxStep_t = {"_p_std__auto_ptrT_six__sicd__TxStep_t", "mem::AutoPtr< six::sicd::TxStep > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__WaveformParameters_t = {"_p_std__auto_ptrT_six__sicd__WaveformParameters_t", "mem::AutoPtr< six::sicd::WaveformParameters > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__sicd__WeightType_t = {"_p_std__auto_ptrT_six__sicd__WeightType_t", "mem::AutoPtr< six::sicd::WeightType > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__complexT_float_t = {"_p_std__complexT_float_t", "std::complex< float > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__mapT_std__string_std__vectorT_double_std__allocatorT_double_t_t_t = {"_p_std__mapT_std__string_std__vectorT_double_std__allocatorT_double_t_t_t", "std::map< std::string,std::vector< double,std::allocator< double > > > *", 0, 0, (void*)0, 0}; diff --git a/six/modules/python/six/source/generated/six_base_wrap.cxx b/six/modules/python/six/source/generated/six_base_wrap.cxx index 84f0777572..3998851d68 100644 --- a/six/modules/python/six/source/generated/six_base_wrap.cxx +++ b/six/modules/python/six/source/generated/six_base_wrap.cxx @@ -62418,7 +62418,7 @@ SWIGINTERN PyObject *_wrap_parseData__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyO PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; - mem::auto_ptr< six::Data > result; + mem::AutoPtr< six::Data > result; if (!PyArg_ParseTuple(args,(char *)"OOOOO:parseData",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_XMLControlRegistry, 0 | 0); @@ -62528,7 +62528,7 @@ SWIGINTERN PyObject *_wrap_parseData__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyO PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; - mem::auto_ptr< six::Data > result; + mem::AutoPtr< six::Data > result; if (!PyArg_ParseTuple(args,(char *)"OOOO:parseData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_XMLControlRegistry, 0 | 0); @@ -62698,7 +62698,7 @@ SWIGINTERN PyObject *_wrap_parseDataFromFile__SWIG_0(PyObject *SWIGUNUSEDPARM(se PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; - mem::auto_ptr< six::Data > result; + mem::AutoPtr< six::Data > result; if (!PyArg_ParseTuple(args,(char *)"OOOOO:parseDataFromFile",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_XMLControlRegistry, 0 | 0); @@ -62812,7 +62812,7 @@ SWIGINTERN PyObject *_wrap_parseDataFromFile__SWIG_1(PyObject *SWIGUNUSEDPARM(se PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; - mem::auto_ptr< six::Data > result; + mem::AutoPtr< six::Data > result; if (!PyArg_ParseTuple(args,(char *)"OOOO:parseDataFromFile",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_XMLControlRegistry, 0 | 0); @@ -62985,7 +62985,7 @@ SWIGINTERN PyObject *_wrap_parseDataFromString__SWIG_0(PyObject *SWIGUNUSEDPARM( PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; - mem::auto_ptr< six::Data > result; + mem::AutoPtr< six::Data > result; if (!PyArg_ParseTuple(args,(char *)"OOOOO:parseDataFromString",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_XMLControlRegistry, 0 | 0); @@ -63099,7 +63099,7 @@ SWIGINTERN PyObject *_wrap_parseDataFromString__SWIG_1(PyObject *SWIGUNUSEDPARM( PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; - mem::auto_ptr< six::Data > result; + mem::AutoPtr< six::Data > result; if (!PyArg_ParseTuple(args,(char *)"OOOO:parseDataFromString",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_XMLControlRegistry, 0 | 0); @@ -64293,7 +64293,7 @@ SWIGINTERN PyObject *_wrap_XMLControlRegistry_addCreator__SWIG_0(PyObject *SWIGU PyObject *resultobj = 0; six::XMLControlRegistry *arg1 = (six::XMLControlRegistry *) 0 ; std::string *arg2 = 0 ; - mem::auto_ptr< six::XMLControlCreator > arg3 ; + mem::AutoPtr< six::XMLControlCreator > arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 = SWIG_OLDOBJ ; @@ -64323,12 +64323,12 @@ SWIGINTERN PyObject *_wrap_XMLControlRegistry_addCreator__SWIG_0(PyObject *SWIGU { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__auto_ptrT_six__XMLControlCreator_t, 0 | 0); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "XMLControlRegistry_addCreator" "', argument " "3"" of type '" "mem::auto_ptr< six::XMLControlCreator >""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "XMLControlRegistry_addCreator" "', argument " "3"" of type '" "mem::AutoPtr< six::XMLControlCreator >""'"); } if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLControlRegistry_addCreator" "', argument " "3"" of type '" "mem::auto_ptr< six::XMLControlCreator >""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLControlRegistry_addCreator" "', argument " "3"" of type '" "mem::AutoPtr< six::XMLControlCreator >""'"); } else { - mem::auto_ptr< six::XMLControlCreator > * temp = reinterpret_cast< mem::auto_ptr< six::XMLControlCreator > * >(argp3); + mem::AutoPtr< six::XMLControlCreator > * temp = reinterpret_cast< mem::AutoPtr< six::XMLControlCreator > * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } @@ -64336,7 +64336,7 @@ SWIGINTERN PyObject *_wrap_XMLControlRegistry_addCreator__SWIG_0(PyObject *SWIGU { try { - (arg1)->addCreator((std::string const &)*arg2,arg3); + (arg1)->addCreator_((std::string const &)*arg2,arg3); } catch (const std::exception& e) { @@ -64453,7 +64453,7 @@ SWIGINTERN PyObject *_wrap_XMLControlRegistry_addCreator__SWIG_2(PyObject *SWIGU PyObject *resultobj = 0; six::XMLControlRegistry *arg1 = (six::XMLControlRegistry *) 0 ; six::DataType arg2 ; - mem::auto_ptr< six::XMLControlCreator > arg3 ; + mem::AutoPtr< six::XMLControlCreator > arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; @@ -64486,12 +64486,12 @@ SWIGINTERN PyObject *_wrap_XMLControlRegistry_addCreator__SWIG_2(PyObject *SWIGU { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__auto_ptrT_six__XMLControlCreator_t, 0 | 0); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "XMLControlRegistry_addCreator" "', argument " "3"" of type '" "mem::auto_ptr< six::XMLControlCreator >""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "XMLControlRegistry_addCreator" "', argument " "3"" of type '" "mem::AutoPtr< six::XMLControlCreator >""'"); } if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLControlRegistry_addCreator" "', argument " "3"" of type '" "mem::auto_ptr< six::XMLControlCreator >""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLControlRegistry_addCreator" "', argument " "3"" of type '" "mem::AutoPtr< six::XMLControlCreator >""'"); } else { - mem::auto_ptr< six::XMLControlCreator > * temp = reinterpret_cast< mem::auto_ptr< six::XMLControlCreator > * >(argp3); + mem::AutoPtr< six::XMLControlCreator > * temp = reinterpret_cast< mem::AutoPtr< six::XMLControlCreator > * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } @@ -64499,7 +64499,7 @@ SWIGINTERN PyObject *_wrap_XMLControlRegistry_addCreator__SWIG_2(PyObject *SWIGU { try { - (arg1)->addCreator(arg2,arg3); + (arg1)->addCreator_(arg2,arg3); } catch (const std::exception& e) { @@ -64697,9 +64697,9 @@ SWIGINTERN PyObject *_wrap_XMLControlRegistry_addCreator(PyObject *self, PyObjec fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'XMLControlRegistry_addCreator'.\n" " Possible C/C++ prototypes are:\n" - " six::XMLControlRegistry::addCreator(std::string const &,mem::auto_ptr< six::XMLControlCreator >)\n" + " six::XMLControlRegistry::addCreator(std::string const &,mem::AutoPtr< six::XMLControlCreator >)\n" " six::XMLControlRegistry::addCreator(std::string const &,six::XMLControlCreator *)\n" - " six::XMLControlRegistry::addCreator(six::DataType,mem::auto_ptr< six::XMLControlCreator >)\n" + " six::XMLControlRegistry::addCreator(six::DataType,mem::AutoPtr< six::XMLControlCreator >)\n" " six::XMLControlRegistry::addCreator(six::DataType,six::XMLControlCreator *)\n"); return 0; } @@ -81001,13 +81001,13 @@ SWIGINTERN PyObject *VectorScopedCopyableGeoInfo_swigregister(PyObject *SWIGUNUS SWIGINTERN PyObject *_wrap_new_StdAutoRadiometric(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::Radiometric > *result = 0 ; + mem::AutoPtr< six::Radiometric > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRadiometric")) SWIG_fail; { try { - result = (mem::auto_ptr< six::Radiometric > *)new mem::auto_ptr< six::Radiometric >(); + result = (mem::AutoPtr< six::Radiometric > *)new mem::AutoPtr< six::Radiometric >(); } catch (const std::exception& e) { @@ -81044,7 +81044,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRadiometric(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoRadiometric(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::Radiometric > *arg1 = (mem::auto_ptr< six::Radiometric > *) 0 ; + mem::AutoPtr< six::Radiometric > *arg1 = (mem::AutoPtr< six::Radiometric > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -81052,9 +81052,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRadiometric(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRadiometric",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__Radiometric_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRadiometric" "', argument " "1"" of type '" "mem::auto_ptr< six::Radiometric > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRadiometric" "', argument " "1"" of type '" "mem::AutoPtr< six::Radiometric > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::Radiometric > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::Radiometric > * >(argp1); { try { @@ -82776,13 +82776,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableRadiometric(PyObject *SWIGUNUSEDPAR SWIGINTERN PyObject *_wrap_new_StdAutoErrorStatistics(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::ErrorStatistics > *result = 0 ; + mem::AutoPtr< six::ErrorStatistics > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoErrorStatistics")) SWIG_fail; { try { - result = (mem::auto_ptr< six::ErrorStatistics > *)new mem::auto_ptr< six::ErrorStatistics >(); + result = (mem::AutoPtr< six::ErrorStatistics > *)new mem::AutoPtr< six::ErrorStatistics >(); } catch (const std::exception& e) { @@ -82819,7 +82819,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoErrorStatistics(PyObject *SWIGUNUSEDPARM(s SWIGINTERN PyObject *_wrap_delete_StdAutoErrorStatistics(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::ErrorStatistics > *arg1 = (mem::auto_ptr< six::ErrorStatistics > *) 0 ; + mem::AutoPtr< six::ErrorStatistics > *arg1 = (mem::AutoPtr< six::ErrorStatistics > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -82827,9 +82827,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoErrorStatistics(PyObject *SWIGUNUSEDPAR if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoErrorStatistics",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__ErrorStatistics_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoErrorStatistics" "', argument " "1"" of type '" "mem::auto_ptr< six::ErrorStatistics > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoErrorStatistics" "', argument " "1"" of type '" "mem::AutoPtr< six::ErrorStatistics > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::ErrorStatistics > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::ErrorStatistics > * >(argp1); { try { @@ -83999,13 +83999,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableErrorStatistics(PyObject *SWIGUNUSE SWIGINTERN PyObject *_wrap_new_StdAutoComponents(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::Components > *result = 0 ; + mem::AutoPtr< six::Components > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoComponents")) SWIG_fail; { try { - result = (mem::auto_ptr< six::Components > *)new mem::auto_ptr< six::Components >(); + result = (mem::AutoPtr< six::Components > *)new mem::AutoPtr< six::Components >(); } catch (const std::exception& e) { @@ -84042,7 +84042,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoComponents(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoComponents(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::Components > *arg1 = (mem::auto_ptr< six::Components > *) 0 ; + mem::AutoPtr< six::Components > *arg1 = (mem::AutoPtr< six::Components > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -84050,9 +84050,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoComponents(PyObject *SWIGUNUSEDPARM(sel if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoComponents",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__Components_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoComponents" "', argument " "1"" of type '" "mem::auto_ptr< six::Components > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoComponents" "', argument " "1"" of type '" "mem::AutoPtr< six::Components > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::Components > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::Components > * >(argp1); { try { @@ -85334,13 +85334,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableComponents(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_new_StdAutoCorrCoefs(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::CorrCoefs > *result = 0 ; + mem::AutoPtr< six::CorrCoefs > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoCorrCoefs")) SWIG_fail; { try { - result = (mem::auto_ptr< six::CorrCoefs > *)new mem::auto_ptr< six::CorrCoefs >(); + result = (mem::AutoPtr< six::CorrCoefs > *)new mem::AutoPtr< six::CorrCoefs >(); } catch (const std::exception& e) { @@ -85377,7 +85377,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoCorrCoefs(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoCorrCoefs(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::CorrCoefs > *arg1 = (mem::auto_ptr< six::CorrCoefs > *) 0 ; + mem::AutoPtr< six::CorrCoefs > *arg1 = (mem::AutoPtr< six::CorrCoefs > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -85385,9 +85385,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoCorrCoefs(PyObject *SWIGUNUSEDPARM(self if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoCorrCoefs",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__CorrCoefs_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCorrCoefs" "', argument " "1"" of type '" "mem::auto_ptr< six::CorrCoefs > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCorrCoefs" "', argument " "1"" of type '" "mem::AutoPtr< six::CorrCoefs > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::CorrCoefs > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::CorrCoefs > * >(argp1); { try { @@ -87901,13 +87901,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableCorrCoefs(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_new_StdAutoPosVelError(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::PosVelError > *result = 0 ; + mem::AutoPtr< six::PosVelError > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoPosVelError")) SWIG_fail; { try { - result = (mem::auto_ptr< six::PosVelError > *)new mem::auto_ptr< six::PosVelError >(); + result = (mem::AutoPtr< six::PosVelError > *)new mem::AutoPtr< six::PosVelError >(); } catch (const std::exception& e) { @@ -87944,7 +87944,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoPosVelError(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoPosVelError(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::PosVelError > *arg1 = (mem::auto_ptr< six::PosVelError > *) 0 ; + mem::AutoPtr< six::PosVelError > *arg1 = (mem::AutoPtr< six::PosVelError > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -87952,9 +87952,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoPosVelError(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoPosVelError",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__PosVelError_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPosVelError" "', argument " "1"" of type '" "mem::auto_ptr< six::PosVelError > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoPosVelError" "', argument " "1"" of type '" "mem::AutoPtr< six::PosVelError > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::PosVelError > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::PosVelError > * >(argp1); { try { @@ -89796,13 +89796,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyablePosVelError(PyObject *SWIGUNUSEDPAR SWIGINTERN PyObject *_wrap_new_StdAutoGeoInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::GeoInfo > *result = 0 ; + mem::AutoPtr< six::GeoInfo > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoGeoInfo")) SWIG_fail; { try { - result = (mem::auto_ptr< six::GeoInfo > *)new mem::auto_ptr< six::GeoInfo >(); + result = (mem::AutoPtr< six::GeoInfo > *)new mem::AutoPtr< six::GeoInfo >(); } catch (const std::exception& e) { @@ -89839,7 +89839,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoGeoInfo(PyObject *SWIGUNUSEDPARM(self), Py SWIGINTERN PyObject *_wrap_delete_StdAutoGeoInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::GeoInfo > *arg1 = (mem::auto_ptr< six::GeoInfo > *) 0 ; + mem::AutoPtr< six::GeoInfo > *arg1 = (mem::AutoPtr< six::GeoInfo > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -89847,9 +89847,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoGeoInfo(PyObject *SWIGUNUSEDPARM(self), if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoGeoInfo",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__GeoInfo_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoGeoInfo" "', argument " "1"" of type '" "mem::auto_ptr< six::GeoInfo > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoGeoInfo" "', argument " "1"" of type '" "mem::AutoPtr< six::GeoInfo > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::GeoInfo > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::GeoInfo > * >(argp1); { try { @@ -91138,13 +91138,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableGeoInfo(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_new_StdAutoRadarSensor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::RadarSensor > *result = 0 ; + mem::AutoPtr< six::RadarSensor > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoRadarSensor")) SWIG_fail; { try { - result = (mem::auto_ptr< six::RadarSensor > *)new mem::auto_ptr< six::RadarSensor >(); + result = (mem::AutoPtr< six::RadarSensor > *)new mem::AutoPtr< six::RadarSensor >(); } catch (const std::exception& e) { @@ -91181,7 +91181,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoRadarSensor(PyObject *SWIGUNUSEDPARM(self) SWIGINTERN PyObject *_wrap_delete_StdAutoRadarSensor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::RadarSensor > *arg1 = (mem::auto_ptr< six::RadarSensor > *) 0 ; + mem::AutoPtr< six::RadarSensor > *arg1 = (mem::AutoPtr< six::RadarSensor > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -91189,9 +91189,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoRadarSensor(PyObject *SWIGUNUSEDPARM(se if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoRadarSensor",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__RadarSensor_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRadarSensor" "', argument " "1"" of type '" "mem::auto_ptr< six::RadarSensor > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoRadarSensor" "', argument " "1"" of type '" "mem::AutoPtr< six::RadarSensor > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::RadarSensor > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::RadarSensor > * >(argp1); { try { @@ -92473,13 +92473,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableRadarSensor(PyObject *SWIGUNUSEDPAR SWIGINTERN PyObject *_wrap_new_StdAutoTropoError(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::TropoError > *result = 0 ; + mem::AutoPtr< six::TropoError > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoTropoError")) SWIG_fail; { try { - result = (mem::auto_ptr< six::TropoError > *)new mem::auto_ptr< six::TropoError >(); + result = (mem::AutoPtr< six::TropoError > *)new mem::AutoPtr< six::TropoError >(); } catch (const std::exception& e) { @@ -92516,7 +92516,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoTropoError(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoTropoError(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::TropoError > *arg1 = (mem::auto_ptr< six::TropoError > *) 0 ; + mem::AutoPtr< six::TropoError > *arg1 = (mem::AutoPtr< six::TropoError > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -92524,9 +92524,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoTropoError(PyObject *SWIGUNUSEDPARM(sel if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoTropoError",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__TropoError_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTropoError" "', argument " "1"" of type '" "mem::auto_ptr< six::TropoError > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoTropoError" "', argument " "1"" of type '" "mem::AutoPtr< six::TropoError > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::TropoError > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::TropoError > * >(argp1); { try { @@ -93696,13 +93696,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableTropoError(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_new_StdAutoIonoError(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::IonoError > *result = 0 ; + mem::AutoPtr< six::IonoError > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoIonoError")) SWIG_fail; { try { - result = (mem::auto_ptr< six::IonoError > *)new mem::auto_ptr< six::IonoError >(); + result = (mem::AutoPtr< six::IonoError > *)new mem::AutoPtr< six::IonoError >(); } catch (const std::exception& e) { @@ -93739,7 +93739,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoIonoError(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoIonoError(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::IonoError > *arg1 = (mem::auto_ptr< six::IonoError > *) 0 ; + mem::AutoPtr< six::IonoError > *arg1 = (mem::AutoPtr< six::IonoError > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -93747,9 +93747,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoIonoError(PyObject *SWIGUNUSEDPARM(self if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoIonoError",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__IonoError_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoIonoError" "', argument " "1"" of type '" "mem::auto_ptr< six::IonoError > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoIonoError" "', argument " "1"" of type '" "mem::AutoPtr< six::IonoError > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::IonoError > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::IonoError > * >(argp1); { try { @@ -95031,13 +95031,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableIonoError(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_new_StdAutoCompositeSCP(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::CompositeSCP > *result = 0 ; + mem::AutoPtr< six::CompositeSCP > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoCompositeSCP")) SWIG_fail; { try { - result = (mem::auto_ptr< six::CompositeSCP > *)new mem::auto_ptr< six::CompositeSCP >(); + result = (mem::AutoPtr< six::CompositeSCP > *)new mem::AutoPtr< six::CompositeSCP >(); } catch (const std::exception& e) { @@ -95074,7 +95074,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoCompositeSCP(PyObject *SWIGUNUSEDPARM(self SWIGINTERN PyObject *_wrap_delete_StdAutoCompositeSCP(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::CompositeSCP > *arg1 = (mem::auto_ptr< six::CompositeSCP > *) 0 ; + mem::AutoPtr< six::CompositeSCP > *arg1 = (mem::AutoPtr< six::CompositeSCP > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -95082,9 +95082,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoCompositeSCP(PyObject *SWIGUNUSEDPARM(s if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoCompositeSCP",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__CompositeSCP_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCompositeSCP" "', argument " "1"" of type '" "mem::auto_ptr< six::CompositeSCP > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCompositeSCP" "', argument " "1"" of type '" "mem::AutoPtr< six::CompositeSCP > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::CompositeSCP > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::CompositeSCP > * >(argp1); { try { @@ -96366,13 +96366,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableCompositeSCP(PyObject *SWIGUNUSEDPA SWIGINTERN PyObject *_wrap_new_StdAutoMatchInformation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::MatchInformation > *result = 0 ; + mem::AutoPtr< six::MatchInformation > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoMatchInformation")) SWIG_fail; { try { - result = (mem::auto_ptr< six::MatchInformation > *)new mem::auto_ptr< six::MatchInformation >(); + result = (mem::AutoPtr< six::MatchInformation > *)new mem::AutoPtr< six::MatchInformation >(); } catch (const std::exception& e) { @@ -96409,7 +96409,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoMatchInformation(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_delete_StdAutoMatchInformation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::MatchInformation > *arg1 = (mem::auto_ptr< six::MatchInformation > *) 0 ; + mem::AutoPtr< six::MatchInformation > *arg1 = (mem::AutoPtr< six::MatchInformation > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -96417,9 +96417,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoMatchInformation(PyObject *SWIGUNUSEDPA if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoMatchInformation",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__MatchInformation_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoMatchInformation" "', argument " "1"" of type '" "mem::auto_ptr< six::MatchInformation > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoMatchInformation" "', argument " "1"" of type '" "mem::AutoPtr< six::MatchInformation > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::MatchInformation > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::MatchInformation > * >(argp1); { try { @@ -97365,13 +97365,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableMatchInformation(PyObject *SWIGUNUS SWIGINTERN PyObject *_wrap_new_StdAutoMatchType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::MatchType > *result = 0 ; + mem::AutoPtr< six::MatchType > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoMatchType")) SWIG_fail; { try { - result = (mem::auto_ptr< six::MatchType > *)new mem::auto_ptr< six::MatchType >(); + result = (mem::AutoPtr< six::MatchType > *)new mem::AutoPtr< six::MatchType >(); } catch (const std::exception& e) { @@ -97408,7 +97408,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoMatchType(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_delete_StdAutoMatchType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::MatchType > *arg1 = (mem::auto_ptr< six::MatchType > *) 0 ; + mem::AutoPtr< six::MatchType > *arg1 = (mem::AutoPtr< six::MatchType > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -97416,9 +97416,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoMatchType(PyObject *SWIGUNUSEDPARM(self if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoMatchType",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__MatchType_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoMatchType" "', argument " "1"" of type '" "mem::auto_ptr< six::MatchType > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoMatchType" "', argument " "1"" of type '" "mem::AutoPtr< six::MatchType > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::MatchType > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::MatchType > * >(argp1); { try { @@ -98945,13 +98945,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCopyableMatchType(PyObject *SWIGUNUSEDPARM( SWIGINTERN PyObject *_wrap_new_StdAutoAmplitudeTable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::AmplitudeTable > *result = 0 ; + mem::AutoPtr< six::AmplitudeTable > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoAmplitudeTable")) SWIG_fail; { try { - result = (mem::auto_ptr< six::AmplitudeTable > *)new mem::auto_ptr< six::AmplitudeTable >(); + result = (mem::AutoPtr< six::AmplitudeTable > *)new mem::AutoPtr< six::AmplitudeTable >(); } catch (const std::exception& e) { @@ -98988,7 +98988,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoAmplitudeTable(PyObject *SWIGUNUSEDPARM(se SWIGINTERN PyObject *_wrap_delete_StdAutoAmplitudeTable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::AmplitudeTable > *arg1 = (mem::auto_ptr< six::AmplitudeTable > *) 0 ; + mem::AutoPtr< six::AmplitudeTable > *arg1 = (mem::AutoPtr< six::AmplitudeTable > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -98996,9 +98996,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoAmplitudeTable(PyObject *SWIGUNUSEDPARM if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoAmplitudeTable",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__AmplitudeTable_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAmplitudeTable" "', argument " "1"" of type '" "mem::auto_ptr< six::AmplitudeTable > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoAmplitudeTable" "', argument " "1"" of type '" "mem::AutoPtr< six::AmplitudeTable > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::AmplitudeTable > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::AmplitudeTable > * >(argp1); { try { @@ -100442,13 +100442,13 @@ SWIGINTERN PyObject *_wrap_makeScopedCloneableAmplitudeTable(PyObject *SWIGUNUSE SWIGINTERN PyObject *_wrap_new_StdAutoCollectionInformation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::CollectionInformation > *result = 0 ; + mem::AutoPtr< six::CollectionInformation > *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_StdAutoCollectionInformation")) SWIG_fail; { try { - result = (mem::auto_ptr< six::CollectionInformation > *)new mem::auto_ptr< six::CollectionInformation >(); + result = (mem::AutoPtr< six::CollectionInformation > *)new mem::AutoPtr< six::CollectionInformation >(); } catch (const std::exception& e) { @@ -100485,7 +100485,7 @@ SWIGINTERN PyObject *_wrap_new_StdAutoCollectionInformation(PyObject *SWIGUNUSED SWIGINTERN PyObject *_wrap_delete_StdAutoCollectionInformation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - mem::auto_ptr< six::CollectionInformation > *arg1 = (mem::auto_ptr< six::CollectionInformation > *) 0 ; + mem::AutoPtr< six::CollectionInformation > *arg1 = (mem::AutoPtr< six::CollectionInformation > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; @@ -100493,9 +100493,9 @@ SWIGINTERN PyObject *_wrap_delete_StdAutoCollectionInformation(PyObject *SWIGUNU if (!PyArg_ParseTuple(args,(char *)"O:delete_StdAutoCollectionInformation",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__auto_ptrT_six__CollectionInformation_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCollectionInformation" "', argument " "1"" of type '" "mem::auto_ptr< six::CollectionInformation > *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StdAutoCollectionInformation" "', argument " "1"" of type '" "mem::AutoPtr< six::CollectionInformation > *""'"); } - arg1 = reinterpret_cast< mem::auto_ptr< six::CollectionInformation > * >(argp1); + arg1 = reinterpret_cast< mem::AutoPtr< six::CollectionInformation > * >(argp1); { try { @@ -103653,16 +103653,16 @@ static PyMethodDef SwigMethods[] = { { (char *)"loadPluginDir", _wrap_loadPluginDir, METH_VARARGS, (char *)"loadPluginDir(std::string const & pluginDir)"}, { (char *)"loadXmlDataContentHandler", _wrap_loadXmlDataContentHandler, METH_VARARGS, (char *)"loadXmlDataContentHandler()"}, { (char *)"parseData", _wrap_parseData, METH_VARARGS, (char *)"\n" - "parseData(XMLControlRegistry const & xmlReg, ::io::InputStream & xmlStream, DataType dataType, VectorString schemaPaths, logging::Logger & log) -> mem::auto_ptr< six::Data >\n" - "parseData(XMLControlRegistry const & xmlReg, ::io::InputStream & xmlStream, VectorString schemaPaths, logging::Logger & log) -> mem::auto_ptr< six::Data >\n" + "parseData(XMLControlRegistry const & xmlReg, ::io::InputStream & xmlStream, DataType dataType, VectorString schemaPaths, logging::Logger & log) -> mem::AutoPtr< six::Data >\n" + "parseData(XMLControlRegistry const & xmlReg, ::io::InputStream & xmlStream, VectorString schemaPaths, logging::Logger & log) -> mem::AutoPtr< six::Data >\n" ""}, { (char *)"parseDataFromFile", _wrap_parseDataFromFile, METH_VARARGS, (char *)"\n" - "parseDataFromFile(XMLControlRegistry const & xmlReg, std::string const & pathname, DataType dataType, VectorString schemaPaths, logging::Logger & log) -> mem::auto_ptr< six::Data >\n" - "parseDataFromFile(XMLControlRegistry const & xmlReg, std::string const & pathname, VectorString schemaPaths, logging::Logger & log) -> mem::auto_ptr< six::Data >\n" + "parseDataFromFile(XMLControlRegistry const & xmlReg, std::string const & pathname, DataType dataType, VectorString schemaPaths, logging::Logger & log) -> mem::AutoPtr< six::Data >\n" + "parseDataFromFile(XMLControlRegistry const & xmlReg, std::string const & pathname, VectorString schemaPaths, logging::Logger & log) -> mem::AutoPtr< six::Data >\n" ""}, { (char *)"parseDataFromString", _wrap_parseDataFromString, METH_VARARGS, (char *)"\n" - "parseDataFromString(XMLControlRegistry const & xmlReg, std::string const & xmlStr, DataType dataType, VectorString schemaPaths, logging::Logger & log) -> mem::auto_ptr< six::Data >\n" - "parseDataFromString(XMLControlRegistry const & xmlReg, std::string const & xmlStr, VectorString schemaPaths, logging::Logger & log) -> mem::auto_ptr< six::Data >\n" + "parseDataFromString(XMLControlRegistry const & xmlReg, std::string const & xmlStr, DataType dataType, VectorString schemaPaths, logging::Logger & log) -> mem::AutoPtr< six::Data >\n" + "parseDataFromString(XMLControlRegistry const & xmlReg, std::string const & xmlStr, VectorString schemaPaths, logging::Logger & log) -> mem::AutoPtr< six::Data >\n" ""}, { (char *)"getErrors", _wrap_getErrors, METH_VARARGS, (char *)"getErrors(ErrorStatistics errorStats, RgAzDouble sampleSpacing, Errors errors)"}, { (char *)"findSchemaPath", _wrap_findSchemaPath, METH_VARARGS, (char *)"findSchemaPath(std::string const & progname) -> std::string"}, @@ -103685,9 +103685,9 @@ static PyMethodDef SwigMethods[] = { { (char *)"new_XMLControlRegistry", _wrap_new_XMLControlRegistry, METH_VARARGS, (char *)"new_XMLControlRegistry() -> XMLControlRegistry"}, { (char *)"delete_XMLControlRegistry", _wrap_delete_XMLControlRegistry, METH_VARARGS, (char *)"delete_XMLControlRegistry(XMLControlRegistry self)"}, { (char *)"XMLControlRegistry_addCreator", _wrap_XMLControlRegistry_addCreator, METH_VARARGS, (char *)"\n" - "addCreator(std::string const & identifier, mem::auto_ptr< six::XMLControlCreator > creator)\n" + "addCreator(std::string const & identifier, mem::AutoPtr< six::XMLControlCreator > creator)\n" "addCreator(std::string const & identifier, XMLControlCreator creator)\n" - "addCreator(DataType dataType, mem::auto_ptr< six::XMLControlCreator > creator)\n" + "addCreator(DataType dataType, mem::AutoPtr< six::XMLControlCreator > creator)\n" "XMLControlRegistry_addCreator(XMLControlRegistry self, DataType dataType, XMLControlCreator creator)\n" ""}, { (char *)"XMLControlRegistry_newXMLControl", _wrap_XMLControlRegistry_newXMLControl, METH_VARARGS, (char *)"\n" @@ -104714,21 +104714,21 @@ static swig_type_info _swigt__p_std__allocatorT_mem__ScopedCopyablePtrT_six__Geo static swig_type_info _swigt__p_std__allocatorT_mem__ScopedCopyablePtrT_six__MatchType_t_t = {"_p_std__allocatorT_mem__ScopedCopyablePtrT_six__MatchType_t_t", "std::allocator< mem::ScopedCopyablePtr< six::MatchType > > *|std::vector< mem::ScopedCopyablePtr< six::MatchType > >::allocator_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_six__MatchCollect_t = {"_p_std__allocatorT_six__MatchCollect_t", "std::vector< six::MatchCollect >::allocator_type *|std::allocator< six::MatchCollect > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_six__MatchType_t = {"_p_std__allocatorT_six__MatchType_t", "std::vector< six::MatchType >::allocator_type *|std::allocator< six::MatchType > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__AmplitudeTable_t = {"_p_std__auto_ptrT_six__AmplitudeTable_t", "mem::auto_ptr< six::AmplitudeTable > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__CollectionInformation_t = {"_p_std__auto_ptrT_six__CollectionInformation_t", "mem::auto_ptr< six::CollectionInformation > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__Components_t = {"_p_std__auto_ptrT_six__Components_t", "mem::auto_ptr< six::Components > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__CompositeSCP_t = {"_p_std__auto_ptrT_six__CompositeSCP_t", "mem::auto_ptr< six::CompositeSCP > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__CorrCoefs_t = {"_p_std__auto_ptrT_six__CorrCoefs_t", "mem::auto_ptr< six::CorrCoefs > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__ErrorStatistics_t = {"_p_std__auto_ptrT_six__ErrorStatistics_t", "mem::auto_ptr< six::ErrorStatistics > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__GeoInfo_t = {"_p_std__auto_ptrT_six__GeoInfo_t", "mem::auto_ptr< six::GeoInfo > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__IonoError_t = {"_p_std__auto_ptrT_six__IonoError_t", "mem::auto_ptr< six::IonoError > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__MatchInformation_t = {"_p_std__auto_ptrT_six__MatchInformation_t", "mem::auto_ptr< six::MatchInformation > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__MatchType_t = {"_p_std__auto_ptrT_six__MatchType_t", "mem::auto_ptr< six::MatchType > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__PosVelError_t = {"_p_std__auto_ptrT_six__PosVelError_t", "mem::auto_ptr< six::PosVelError > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__RadarSensor_t = {"_p_std__auto_ptrT_six__RadarSensor_t", "mem::auto_ptr< six::RadarSensor > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__Radiometric_t = {"_p_std__auto_ptrT_six__Radiometric_t", "mem::auto_ptr< six::Radiometric > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__TropoError_t = {"_p_std__auto_ptrT_six__TropoError_t", "mem::auto_ptr< six::TropoError > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__auto_ptrT_six__XMLControlCreator_t = {"_p_std__auto_ptrT_six__XMLControlCreator_t", "mem::auto_ptr< six::XMLControlCreator > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__AmplitudeTable_t = {"_p_std__auto_ptrT_six__AmplitudeTable_t", "mem::AutoPtr< six::AmplitudeTable > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__CollectionInformation_t = {"_p_std__auto_ptrT_six__CollectionInformation_t", "mem::AutoPtr< six::CollectionInformation > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__Components_t = {"_p_std__auto_ptrT_six__Components_t", "mem::AutoPtr< six::Components > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__CompositeSCP_t = {"_p_std__auto_ptrT_six__CompositeSCP_t", "mem::AutoPtr< six::CompositeSCP > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__CorrCoefs_t = {"_p_std__auto_ptrT_six__CorrCoefs_t", "mem::AutoPtr< six::CorrCoefs > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__ErrorStatistics_t = {"_p_std__auto_ptrT_six__ErrorStatistics_t", "mem::AutoPtr< six::ErrorStatistics > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__GeoInfo_t = {"_p_std__auto_ptrT_six__GeoInfo_t", "mem::AutoPtr< six::GeoInfo > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__IonoError_t = {"_p_std__auto_ptrT_six__IonoError_t", "mem::AutoPtr< six::IonoError > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__MatchInformation_t = {"_p_std__auto_ptrT_six__MatchInformation_t", "mem::AutoPtr< six::MatchInformation > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__MatchType_t = {"_p_std__auto_ptrT_six__MatchType_t", "mem::AutoPtr< six::MatchType > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__PosVelError_t = {"_p_std__auto_ptrT_six__PosVelError_t", "mem::AutoPtr< six::PosVelError > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__RadarSensor_t = {"_p_std__auto_ptrT_six__RadarSensor_t", "mem::AutoPtr< six::RadarSensor > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__Radiometric_t = {"_p_std__auto_ptrT_six__Radiometric_t", "mem::AutoPtr< six::Radiometric > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__TropoError_t = {"_p_std__auto_ptrT_six__TropoError_t", "mem::AutoPtr< six::TropoError > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__auto_ptrT_six__XMLControlCreator_t = {"_p_std__auto_ptrT_six__XMLControlCreator_t", "mem::AutoPtr< six::XMLControlCreator > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__mapT_std__string_six__Parameter_t__const_iterator = {"_p_std__mapT_std__string_six__Parameter_t__const_iterator", "std::map< std::string,six::Parameter >::const_iterator *|six::Options::ParameterIter *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__ostream = {"_p_std__ostream", "std::ostream *", 0, 0, (void*)0, 0}; diff --git a/six/projects/csm/csm.vcxproj b/six/projects/csm/csm.vcxproj index 92b3534762..1728ae1a4e 100644 --- a/six/projects/csm/csm.vcxproj +++ b/six/projects/csm/csm.vcxproj @@ -112,6 +112,7 @@ Win32Proj {6E767B43-D1A9-4B02-8D08-42037B7C9262} six + 10.0 @@ -162,6 +163,7 @@ MultiThreadedDebugDLL Guard Level3 + stdc11 @@ -187,6 +189,7 @@ true AdvancedVectorExtensions2 MultiThreadedDLL + stdc11 diff --git a/six/projects/csm/external/wscript b/six/projects/csm/external/wscript index 9424100b6b..1866b3ca12 100644 --- a/six/projects/csm/external/wscript +++ b/six/projects/csm/external/wscript @@ -56,24 +56,13 @@ def build(bld): # dependency, we could recompile in the CSM source code that we # need to use. vtsDir = 'vts_301_0' - six_root = '../../../../../..' - nested_six_root = six_root + '/../..' - install = six_root + '/install' - nested_install = nested_six_root + '/install' - coda_oss = six_root + '/externals/coda-oss/modules/c++' - nested_coda_oss = nested_six_root + '/externals/coda-oss/modules/c++' bld.program(target='vts', name='vts', - includes=['include', - install + '/include', nested_install + '/include', - coda_oss + '/sys/include', coda_oss + '/str/include', coda_oss + '/std/include', - coda_oss + '/coda_oss/include', coda_oss + '/gsl/include', coda_oss + '/except/include', - nested_coda_oss + '/sys/include', nested_coda_oss + '/str/include', nested_coda_oss + '/std/include', - nested_coda_oss + '/coda_oss/include', nested_coda_oss + '/gsl/include', nested_coda_oss + '/except/include' - ], - source=bld.path.find_dir(os.path.join(vtsDir, 'source')).ant_glob('*.cpp'), - use='sys-c++ CSMAPI THREAD DL', - path=bld.path.find_dir(vtsDir), - install_path=bld.env['install_bindir']) + module_deps=['sys', 'str', 'std', 'coda_oss', 'gsl', 'except'], + includes=['include'], + source=bld.path.find_dir(os.path.join(vtsDir, 'source')).ant_glob('*.cpp'), + use='sys-c++ std-c++ CSMAPI THREAD DL', + path=bld.path.find_dir(vtsDir), + install_path=bld.env['install_bindir']) def distclean(context): # remove the unzipped directory diff --git a/six/projects/csm/include/six/csm/SIXSensorModel.h b/six/projects/csm/include/six/csm/SIXSensorModel.h index baee2672d0..76a6a2c681 100644 --- a/six/projects/csm/include/six/csm/SIXSensorModel.h +++ b/six/projects/csm/include/six/csm/SIXSensorModel.h @@ -686,8 +686,8 @@ class SIXSensorModel : public csm::RasterGM const csm::NoCorrelationModel mCorrelationModel; std::vector mSchemaDirs; std::string mSensorModelState; - mem::auto_ptr mGeometry; - mem::auto_ptr mProjection; + std::unique_ptr mGeometry; + std::unique_ptr mProjection; csm::param::Type mAdjustableTypes[scene::AdjustableParams::NUM_PARAMS]; // NOTE: This is computed just at the SCP once each time a new SICD is diff --git a/six/projects/csm/tests/utilities.h b/six/projects/csm/tests/utilities.h index 3ccce328db..6c0934ee55 100644 --- a/six/projects/csm/tests/utilities.h +++ b/six/projects/csm/tests/utilities.h @@ -121,11 +121,11 @@ inline std::string findDllPathname(const std::string& installPathname) * * \return A Nitf21ISD object */ -inline mem::auto_ptr constructIsd(const std::string& pathname, +inline std::unique_ptr constructIsd(const std::string& pathname, const six::NITFReadControl& loadedReadControl, const six::Data* data, const six::XMLControlRegistry& registry) { - mem::auto_ptr nitfIsd(new csm::Nitf21Isd(pathname)); + std::unique_ptr nitfIsd(new csm::Nitf21Isd(pathname)); csm::Des des; // NITRO parsed the subheader into a nice structure - need to grab all diff --git a/sync_externals.csh b/sync_externals.csh index f701de41c9..49b3ccfaf5 100755 --- a/sync_externals.csh +++ b/sync_externals.csh @@ -1,29 +1,29 @@ -#!/bin/tcsh +#!/bin/csh -f -git remote add -f coda-oss_remote https://github.com/mdaus/coda-oss.git -git remote add -f nitro_remote https://github.com/mdaus/nitro.git +git remote add -m main -f coda-oss_remote git@github.com:mdaus/coda-oss.git +git remote add -m main -f nitro_remote git@github.com:mdaus/nitro.git # To set this up the very first time # This does a subtree merge and puts it in the externals/coda-oss directory. --squash avoids copying all the history # You can replace 'master' with any branch of CODA-OSS you want -# git subtree add --prefix externals/coda-oss coda-oss_remote master --squash +# git subtree add --prefix externals/coda-oss coda-oss_remote main --squash # Same deal for NITRO -# git subtree add --prefix externals/nitro nitro_remote master --squash +# git subtree add --prefix externals/nitro nitro_remote main --squash # Then, let's get rid of some externals we don't care about # git is smart, so we only have to do this once and then future subtree pulls will never # pull these in # git rm -r externals/coda-oss/modules/drivers/fftw externals/coda-oss/modules/drivers/openssl externals/coda-oss/modules/drivers/pcre externals/coda-oss/modules/drivers/sql externals/coda-oss/modules/drivers/uuid externals/coda-oss/modules/drivers/zlib externals/coda-oss/modules/drivers/jars externals/coda-oss/modules/drivers/jpeg externals/coda-oss/waf externals/coda-oss/wscript -# git rm -r externals/nitro/externals externals/nitro/projects externals/nitro/utils externals/nitro/waf externals/nitro/wscript +git rm -r externals/nitro/externals # Now we just want to update # Here I'm assuming you're running this on the master branch... otherwise the push command should change -git subtree pull --prefix externals/coda-oss coda-oss_remote master --squash -git subtree pull --prefix externals/nitro nitro_remote master --squash +git subtree pull --prefix externals/coda-oss coda-oss_remote main --squash +git subtree pull --prefix externals/nitro nitro_remote main --squash # If when you do this command you git a merge conflict because a file that has been removed here has been updated in CODA-OSS, you just need to do a 'git rm ' to resolve the merge conflict. Then a 'git commit'. # TODO: Make this script smart enough to do this. -#git push origin master +#git push origin main