From 9fc51cd24eb2902dcb65940b845d0bfe2af276fa Mon Sep 17 00:00:00 2001 From: Christian Henkel <6976069+ct2034@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:04:54 +0200 Subject: [PATCH 01/18] root tag is roaml Signed-off-by: Christian Henkel --- data-format-specifications/RoAML/main.xsd | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/data-format-specifications/RoAML/main.xsd b/data-format-specifications/RoAML/main.xsd index 3a3fe487..5571cd6f 100644 --- a/data-format-specifications/RoAML/main.xsd +++ b/data-format-specifications/RoAML/main.xsd @@ -1,7 +1,7 @@ - + @@ -72,4 +72,5 @@ - \ No newline at end of file + + From 294e4e4014a7e40ddeb7c7ba0dc1e70ff19859a3 Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 11:47:00 +0200 Subject: [PATCH 02/18] suggestion for organization Signed-off-by: Christian Henkel --- .../{RoAML => RoAML-XML}/main.xsd | 0 data-format-specifications/RoAML-XML/todo.md | 6 + data-format-specifications/RoAML/todo.txt | 6 - .../{RoAML => bt-plugin-ASCXML}/bt_plugin.xsd | 0 .../main-XML/specifications.xsd | 136 ------------------ .../properties.xsd | 0 .../property-specification-XML/property.xsd | 73 ---------- .../ascxml_component.xsd} | 0 .../ascxml_skill.xsd} | 0 .../scxml_limitations.md} | 0 10 files changed, 6 insertions(+), 215 deletions(-) rename data-format-specifications/{RoAML => RoAML-XML}/main.xsd (100%) create mode 100644 data-format-specifications/RoAML-XML/todo.md delete mode 100644 data-format-specifications/RoAML/todo.txt rename data-format-specifications/{RoAML => bt-plugin-ASCXML}/bt_plugin.xsd (100%) delete mode 100644 data-format-specifications/main-XML/specifications.xsd rename data-format-specifications/{RoAML => property-specification-XML}/properties.xsd (100%) delete mode 100644 data-format-specifications/property-specification-XML/property.xsd rename data-format-specifications/{RoAML/component.xsd => skill-components-(A)SCXML/ascxml_component.xsd} (100%) rename data-format-specifications/{RoAML/skill.xsd => skill-components-(A)SCXML/ascxml_skill.xsd} (100%) rename data-format-specifications/{skill-functions-SCXML/README.md => skill-components-(A)SCXML/scxml_limitations.md} (100%) diff --git a/data-format-specifications/RoAML/main.xsd b/data-format-specifications/RoAML-XML/main.xsd similarity index 100% rename from data-format-specifications/RoAML/main.xsd rename to data-format-specifications/RoAML-XML/main.xsd diff --git a/data-format-specifications/RoAML-XML/todo.md b/data-format-specifications/RoAML-XML/todo.md new file mode 100644 index 00000000..a5ce8064 --- /dev/null +++ b/data-format-specifications/RoAML-XML/todo.md @@ -0,0 +1,6 @@ +- [x] Change tag convince_mc_tc into roaml or something like it +- [ ] Check the issue of xmlns +- [x] Change the extension of high level files from scxml to ascxml +- [ ] Check xsd for BT: standard reference? +- [ ] Only one xsd for components and skills? Also plugins? +- [ ] What are the ROSprotocols in the examples? diff --git a/data-format-specifications/RoAML/todo.txt b/data-format-specifications/RoAML/todo.txt deleted file mode 100644 index c88af553..00000000 --- a/data-format-specifications/RoAML/todo.txt +++ /dev/null @@ -1,6 +0,0 @@ -Change tag convince_mc_tc into roaml or something like it -Check the issue of xmlns -Change the extension of high level files from scxml to xml -Check xsd for BT: standard reference? -Only one xsd for components and skills? Also plugins? -What are the ROSprotocols in the examples? diff --git a/data-format-specifications/RoAML/bt_plugin.xsd b/data-format-specifications/bt-plugin-ASCXML/bt_plugin.xsd similarity index 100% rename from data-format-specifications/RoAML/bt_plugin.xsd rename to data-format-specifications/bt-plugin-ASCXML/bt_plugin.xsd diff --git a/data-format-specifications/main-XML/specifications.xsd b/data-format-specifications/main-XML/specifications.xsd deleted file mode 100644 index 4e453839..00000000 --- a/data-format-specifications/main-XML/specifications.xsd +++ /dev/null @@ -1,136 +0,0 @@ - - - - CONVINCE Specification XML format specification. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data-format-specifications/RoAML/properties.xsd b/data-format-specifications/property-specification-XML/properties.xsd similarity index 100% rename from data-format-specifications/RoAML/properties.xsd rename to data-format-specifications/property-specification-XML/properties.xsd diff --git a/data-format-specifications/property-specification-XML/property.xsd b/data-format-specifications/property-specification-XML/property.xsd deleted file mode 100644 index fc4cd514..00000000 --- a/data-format-specifications/property-specification-XML/property.xsd +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - CONVINCE Property Specification Language XML format specification. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data-format-specifications/RoAML/component.xsd b/data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd similarity index 100% rename from data-format-specifications/RoAML/component.xsd rename to data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd diff --git a/data-format-specifications/RoAML/skill.xsd b/data-format-specifications/skill-components-(A)SCXML/ascxml_skill.xsd similarity index 100% rename from data-format-specifications/RoAML/skill.xsd rename to data-format-specifications/skill-components-(A)SCXML/ascxml_skill.xsd diff --git a/data-format-specifications/skill-functions-SCXML/README.md b/data-format-specifications/skill-components-(A)SCXML/scxml_limitations.md similarity index 100% rename from data-format-specifications/skill-functions-SCXML/README.md rename to data-format-specifications/skill-components-(A)SCXML/scxml_limitations.md From 68661ab8d3428d67d1bf27055581989d3a44116b Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 11:55:19 +0200 Subject: [PATCH 03/18] using ascxml for non-plain scxml Signed-off-by: Christian Henkel --- data-format-specifications/bt-plugin-ASCXML/bt_plugin.xsd | 2 +- .../skill-components-(A)SCXML/ascxml_component.xsd | 2 +- .../skill-components-(A)SCXML/ascxml_skill.xsd | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data-format-specifications/bt-plugin-ASCXML/bt_plugin.xsd b/data-format-specifications/bt-plugin-ASCXML/bt_plugin.xsd index fd9d1724..f502a618 100644 --- a/data-format-specifications/bt-plugin-ASCXML/bt_plugin.xsd +++ b/data-format-specifications/bt-plugin-ASCXML/bt_plugin.xsd @@ -1,7 +1,7 @@ - + diff --git a/data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd b/data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd index fd9d1724..f502a618 100644 --- a/data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd +++ b/data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd @@ -1,7 +1,7 @@ - + diff --git a/data-format-specifications/skill-components-(A)SCXML/ascxml_skill.xsd b/data-format-specifications/skill-components-(A)SCXML/ascxml_skill.xsd index fd9d1724..f502a618 100644 --- a/data-format-specifications/skill-components-(A)SCXML/ascxml_skill.xsd +++ b/data-format-specifications/skill-components-(A)SCXML/ascxml_skill.xsd @@ -1,7 +1,7 @@ - + From 18c62926fb5336360854ce9b7364de7668afbdda Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:28:14 +0200 Subject: [PATCH 04/18] action to check examples vs schemas Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 22 +++++++++++++++++++ .../high-level-models/nodes/robot_model.scxml | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/check_examples.yml diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml new file mode 100644 index 00000000..453e69ab --- /dev/null +++ b/.github/workflows/check_examples.yml @@ -0,0 +1,22 @@ +name: Validate SCXML File + +on: + - push + - pull_request + +jobs: + validate-xml: + strategy: + matrix: + path: + - "examples/UC1-vacuum-cleaner/high-level-models/nodes/robot_model.scxml" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install xmllint + run: sudo apt-get install -y libxml2-utils + - name: Validate SCXML file + run: | + export SCHEMA_PATH=$(xmllint --xpath 'string(//@*[local-name()="noNamespaceSchemaLocation"])' "${{ matrix.path }}") && \ + echo "Using schema: $SCHEMA_PATH" && \ + xmllint --noout --schema "$SCHEMA_PATH" "${{ matrix.path }}"; diff --git a/examples/UC1-vacuum-cleaner/high-level-models/nodes/robot_model.scxml b/examples/UC1-vacuum-cleaner/high-level-models/nodes/robot_model.scxml index b1048f71..65af9fab 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/nodes/robot_model.scxml +++ b/examples/UC1-vacuum-cleaner/high-level-models/nodes/robot_model.scxml @@ -3,7 +3,8 @@ initial="running" name="RobotModel" model_src="" - xmlns="http://www.w3.org/2005/07/scxml"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../../data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd"> From b91b7401db88877d7a4d366cea618685808d1e4f Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:31:20 +0200 Subject: [PATCH 05/18] relative path Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index 453e69ab..ee083a55 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -18,5 +18,7 @@ jobs: - name: Validate SCXML file run: | export SCHEMA_PATH=$(xmllint --xpath 'string(//@*[local-name()="noNamespaceSchemaLocation"])' "${{ matrix.path }}") && \ + SCHEMA_DIR=$(dirname "${{ matrix.path }}") && \ + SCHEMA_PATH="$SCHEMA_DIR/$SCHEMA_PATH" && \ echo "Using schema: $SCHEMA_PATH" && \ xmllint --noout --schema "$SCHEMA_PATH" "${{ matrix.path }}"; From cbfcd11e47f7ec1dcf1952d52cfd4cf570cec191 Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:32:27 +0200 Subject: [PATCH 06/18] only on push Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index ee083a55..fa421f40 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -2,7 +2,6 @@ name: Validate SCXML File on: - push - - pull_request jobs: validate-xml: From a3ff87c7d0cf8666a886c08fc34daa15fe1dcb12 Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:33:19 +0200 Subject: [PATCH 07/18] w/o export Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index fa421f40..e908708f 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -16,7 +16,7 @@ jobs: run: sudo apt-get install -y libxml2-utils - name: Validate SCXML file run: | - export SCHEMA_PATH=$(xmllint --xpath 'string(//@*[local-name()="noNamespaceSchemaLocation"])' "${{ matrix.path }}") && \ + SCHEMA_PATH=$(xmllint --xpath 'string(//@*[local-name()="noNamespaceSchemaLocation"])' "${{ matrix.path }}") && \ SCHEMA_DIR=$(dirname "${{ matrix.path }}") && \ SCHEMA_PATH="$SCHEMA_DIR/$SCHEMA_PATH" && \ echo "Using schema: $SCHEMA_PATH" && \ From 5e99472eb3a63faf60d517ab57992c9cd72638c0 Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:37:28 +0200 Subject: [PATCH 08/18] find xml files programmatically Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index e908708f..66ee471e 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -4,11 +4,24 @@ on: - push jobs: + find-files: + runs-on: ubuntu-latest + outputs: + files: ${{ steps.set-files.outputs.files }} + steps: + - uses: actions/checkout@v3 + - name: Find SCXML files + id: set-files + run: | + FILES=$(find examples -type f -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" | jq -R . | jq -s .) + echo "Files found: $FILES" + echo "::set-output name=files::$FILES" validate-xml: strategy: matrix: - path: - - "examples/UC1-vacuum-cleaner/high-level-models/nodes/robot_model.scxml" + path: + - ${{ fromJson(needs.find-files.outputs.files) }} + needs: find-files runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 7c4c709bab0114e6d9d2d42aa25000107668e6d2 Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:39:31 +0200 Subject: [PATCH 09/18] new output syntax Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index 66ee471e..f409e3fe 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -15,7 +15,7 @@ jobs: run: | FILES=$(find examples -type f -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" | jq -R . | jq -s .) echo "Files found: $FILES" - echo "::set-output name=files::$FILES" + echo "files=$FILES" >> $GITHUB_OUTPUT validate-xml: strategy: matrix: From 3285811d328e03db14891d7d281cebe667ee7e3f Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:42:40 +0200 Subject: [PATCH 10/18] newlines Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index f409e3fe..81596d42 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -29,8 +29,8 @@ jobs: run: sudo apt-get install -y libxml2-utils - name: Validate SCXML file run: | - SCHEMA_PATH=$(xmllint --xpath 'string(//@*[local-name()="noNamespaceSchemaLocation"])' "${{ matrix.path }}") && \ - SCHEMA_DIR=$(dirname "${{ matrix.path }}") && \ - SCHEMA_PATH="$SCHEMA_DIR/$SCHEMA_PATH" && \ - echo "Using schema: $SCHEMA_PATH" && \ + SCHEMA_PATH=$(xmllint --xpath 'string(//@*[local-name()="noNamespaceSchemaLocation"])' "${{ matrix.path }}") + SCHEMA_DIR=$(dirname "${{ matrix.path }}") + SCHEMA_PATH="$SCHEMA_DIR/$SCHEMA_PATH" + echo "Using schema: $SCHEMA_PATH" xmllint --noout --schema "$SCHEMA_PATH" "${{ matrix.path }}"; From a3c68ed3c07672b3fe8a3abc1a6b6d335c6923fd Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:45:16 +0200 Subject: [PATCH 11/18] a single line Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index 81596d42..e7fb152c 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -13,7 +13,7 @@ jobs: - name: Find SCXML files id: set-files run: | - FILES=$(find examples -type f -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" | jq -R . | jq -s .) + FILES=$(find examples -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -Rs 'split("\n")[:-1]') echo "Files found: $FILES" echo "files=$FILES" >> $GITHUB_OUTPUT validate-xml: From dee5f0d1d9fef40cbb989122be1d47b3349bcb3f Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:49:07 +0200 Subject: [PATCH 12/18] single line Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index e7fb152c..238b9cd3 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -13,7 +13,8 @@ jobs: - name: Find SCXML files id: set-files run: | - FILES=$(find examples -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -Rs 'split("\n")[:-1]') + FILES=$(find examples -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -R . | jq -s .) + FILES=$(echo "$FILES" | tr -d '\n') # Ensure single-line JSON echo "Files found: $FILES" echo "files=$FILES" >> $GITHUB_OUTPUT validate-xml: From b8fd7052a20b47e2e7ab43e96c5269ec400399aa Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:51:18 +0200 Subject: [PATCH 13/18] try only the two for now Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 32 +++++++++++++++------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index 238b9cd3..2b41d597 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -4,25 +4,27 @@ on: - push jobs: - find-files: - runs-on: ubuntu-latest - outputs: - files: ${{ steps.set-files.outputs.files }} - steps: - - uses: actions/checkout@v3 - - name: Find SCXML files - id: set-files - run: | - FILES=$(find examples -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -R . | jq -s .) - FILES=$(echo "$FILES" | tr -d '\n') # Ensure single-line JSON - echo "Files found: $FILES" - echo "files=$FILES" >> $GITHUB_OUTPUT + # find-files: + # runs-on: ubuntu-latest + # outputs: + # files: ${{ steps.set-files.outputs.files }} + # steps: + # - uses: actions/checkout@v3 + # - name: Find SCXML files + # id: set-files + # run: | + # FILES=$(find examples -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -R . | jq -s .) + # FILES=$(echo "$FILES" | tr -d '\n') # Ensure single-line JSON + # echo "Files found: $FILES" + # echo "files=$FILES" >> $GITHUB_OUTPUT validate-xml: strategy: matrix: path: - - ${{ fromJson(needs.find-files.outputs.files) }} - needs: find-files + # - ${{ fromJson(needs.find-files.outputs.files) }} + - examples/UC1-vacuum-cleaner/high-level-models/nodes/robot_model.scxml + - examples/UC1-vacuum-cleaner/main.xml + # needs: find-files runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 84bd2eac60d073b9b1aea069ef80996d344c70b2 Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:56:09 +0200 Subject: [PATCH 14/18] Checking all uc1 Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 34 +++++++++---------- .../high-level-models/main.xml | 10 ++++-- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index 2b41d597..0f17b63b 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -4,27 +4,25 @@ on: - push jobs: - # find-files: - # runs-on: ubuntu-latest - # outputs: - # files: ${{ steps.set-files.outputs.files }} - # steps: - # - uses: actions/checkout@v3 - # - name: Find SCXML files - # id: set-files - # run: | - # FILES=$(find examples -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -R . | jq -s .) - # FILES=$(echo "$FILES" | tr -d '\n') # Ensure single-line JSON - # echo "Files found: $FILES" - # echo "files=$FILES" >> $GITHUB_OUTPUT + find-files: + runs-on: ubuntu-latest + outputs: + files: ${{ steps.set-files.outputs.files }} + steps: + - uses: actions/checkout@v3 + - name: Find SCXML files + id: set-files + run: | + FILES=$(find examples/UC1-vacuum-cleaner -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -R . | jq -s .) + FILES=$(echo "$FILES" | tr -d '\n') # Ensure single-line JSON + echo "Files found: $FILES" + echo "files=$FILES" >> $GITHUB_OUTPUT validate-xml: strategy: matrix: - path: - # - ${{ fromJson(needs.find-files.outputs.files) }} - - examples/UC1-vacuum-cleaner/high-level-models/nodes/robot_model.scxml - - examples/UC1-vacuum-cleaner/main.xml - # needs: find-files + path: + - ${{ fromJson(needs.find-files.outputs.files) }} + needs: find-files runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/examples/UC1-vacuum-cleaner/high-level-models/main.xml b/examples/UC1-vacuum-cleaner/high-level-models/main.xml index f0973075..b5965ba5 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/main.xml +++ b/examples/UC1-vacuum-cleaner/high-level-models/main.xml @@ -1,9 +1,13 @@ - - + + + + - + From a28aac22f2377bd4157a7bc3cae4ca409f8d69d9 Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:57:02 +0200 Subject: [PATCH 15/18] high level only Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index 0f17b63b..ccb30086 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -13,7 +13,7 @@ jobs: - name: Find SCXML files id: set-files run: | - FILES=$(find examples/UC1-vacuum-cleaner -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -R . | jq -s .) + FILES=$(find examples/UC1-vacuum-cleaner/high-level-models -type f \( -name "*.ascxml" -o -name "*.scxml" -o -name "*.xml" \) | jq -R . | jq -s .) FILES=$(echo "$FILES" | tr -d '\n') # Ensure single-line JSON echo "Files found: $FILES" echo "files=$FILES" >> $GITHUB_OUTPUT From 7b705679a2c435c7284288f9a2c5a165a4461e2d Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:58:14 +0200 Subject: [PATCH 16/18] schema in bt plugins Signed-off-by: Christian Henkel --- .../high-level-models/bt_plugins/bt_back_up.scxml | 3 ++- .../high-level-models/bt_plugins/bt_is_bump_detected.scxml | 3 ++- .../high-level-models/bt_plugins/bt_is_charging.scxml | 3 ++- .../bt_plugins/bt_perform_docking_maneuver.scxml | 3 ++- .../bt_plugins/bt_perform_docking_maneuver_bug.scxml | 3 ++- .../high-level-models/bt_plugins/bt_reset_bumper_state.scxml | 3 ++- .../high-level-models/bt_plugins/bt_simple_wait.scxml | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_back_up.scxml b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_back_up.scxml index b34b964c..e7614f93 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_back_up.scxml +++ b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_back_up.scxml @@ -3,7 +3,8 @@ initial="initial" name="BackUp" model_src="" - xmlns="http://www.w3.org/2005/07/scxml"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../../data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd"> diff --git a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_is_bump_detected.scxml b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_is_bump_detected.scxml index 495b2495..65904fd1 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_is_bump_detected.scxml +++ b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_is_bump_detected.scxml @@ -3,7 +3,8 @@ initial="initial" name="IsBumpDetected" model_src="" - xmlns="http://www.w3.org/2005/07/scxml"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../../data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd"> diff --git a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_is_charging.scxml b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_is_charging.scxml index b5885d0d..eff111a1 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_is_charging.scxml +++ b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_is_charging.scxml @@ -3,7 +3,8 @@ initial="initial" name="IsCharging" model_src="" - xmlns="http://www.w3.org/2005/07/scxml"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../../data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd"> diff --git a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_perform_docking_maneuver.scxml b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_perform_docking_maneuver.scxml index 9855312e..5a5efe99 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_perform_docking_maneuver.scxml +++ b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_perform_docking_maneuver.scxml @@ -3,7 +3,8 @@ initial="initial" name="PerformDockingManeuver" model_src="" - xmlns="http://www.w3.org/2005/07/scxml"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../../data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd"> diff --git a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_perform_docking_maneuver_bug.scxml b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_perform_docking_maneuver_bug.scxml index cf4515dd..96dae03d 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_perform_docking_maneuver_bug.scxml +++ b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_perform_docking_maneuver_bug.scxml @@ -3,7 +3,8 @@ initial="initial" name="PerformDockingManeuver" model_src="" - xmlns="http://www.w3.org/2005/07/scxml"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../../data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd"> diff --git a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_reset_bumper_state.scxml b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_reset_bumper_state.scxml index 07e26636..2f498d0f 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_reset_bumper_state.scxml +++ b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_reset_bumper_state.scxml @@ -3,7 +3,8 @@ initial="initial" name="ResetBumperState" model_src="" - xmlns="http://www.w3.org/2005/07/scxml"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../../data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd"> diff --git a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_simple_wait.scxml b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_simple_wait.scxml index 80cc6f35..e36a8de8 100644 --- a/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_simple_wait.scxml +++ b/examples/UC1-vacuum-cleaner/high-level-models/bt_plugins/bt_simple_wait.scxml @@ -3,7 +3,8 @@ initial="initial" name="SimpleWait" model_src="" - xmlns="http://www.w3.org/2005/07/scxml"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../../data-format-specifications/skill-components-(A)SCXML/ascxml_component.xsd"> From 7faf64407a7879d8c5f87e8cfd0c47f0201da06e Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 13:59:03 +0200 Subject: [PATCH 17/18] not failing fast Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index ccb30086..49a50812 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -22,6 +22,7 @@ jobs: matrix: path: - ${{ fromJson(needs.find-files.outputs.files) }} + fail-fast: false needs: find-files runs-on: ubuntu-latest steps: From aeb2b381eebe9775e4e68d6a8338cf327f4161aa Mon Sep 17 00:00:00 2001 From: Christian Henkel Date: Mon, 13 Oct 2025 14:28:45 +0200 Subject: [PATCH 18/18] skip if no schema is defined Signed-off-by: Christian Henkel --- .github/workflows/check_examples.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index 49a50812..647835bb 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -32,6 +32,10 @@ jobs: - name: Validate SCXML file run: | SCHEMA_PATH=$(xmllint --xpath 'string(//@*[local-name()="noNamespaceSchemaLocation"])' "${{ matrix.path }}") + if [ -z "$SCHEMA_PATH" ]; then + echo "No schema found for file: ${{ matrix.path }}. Skipping validation." + exit 0 + fi SCHEMA_DIR=$(dirname "${{ matrix.path }}") SCHEMA_PATH="$SCHEMA_DIR/$SCHEMA_PATH" echo "Using schema: $SCHEMA_PATH"