diff --git a/sros2/scripts/dds_sql_to_sros2_policy.py b/sros2/scripts/dds_sql_to_sros2_policy.py
index 6c602cde..63d0aafb 100755
--- a/sros2/scripts/dds_sql_to_sros2_policy.py
+++ b/sros2/scripts/dds_sql_to_sros2_policy.py
@@ -100,21 +100,24 @@ def df_to_dds_policy(df):
def dds_policy_to_sros2_policy(dds_policy):
# Parse files
- policy_xsd = etree.XMLSchema(
+ sros2_policy_xsd = etree.XMLSchema(
etree.parse(
get_policy_schema('policy.xsd')))
- demangle_xsl = etree.XSLT(
+ dds_policy_xsd = etree.XMLSchema(
+ etree.parse(
+ get_transport_schema('dds', 'policy.xsd')))
+ dds_demangle_xsl = etree.XSLT(
etree.parse(
get_transport_template('dds', 'demangle.xsl')))
- # Validate policy schema
- policy_xsd.assertValid(dds_policy)
+ # Validate input schema
+ dds_policy_xsd.assertValid(dds_policy)
# Transform policy
- sros2_policy = demangle_xsl(dds_policy)
+ sros2_policy = dds_demangle_xsl(dds_policy)
- # Validate policy schema
- policy_xsd.assertValid(sros2_policy)
+ # Validate output schema
+ sros2_policy_xsd.assertValid(sros2_policy)
return sros2_policy
diff --git a/sros2/sros2/policy/schemas/dds/policy.xsd b/sros2/sros2/policy/schemas/dds/policy.xsd
new file mode 100644
index 00000000..96698c19
--- /dev/null
+++ b/sros2/sros2/policy/schemas/dds/policy.xsd
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sros2/sros2/policy/schemas/policy.xsd b/sros2/sros2/policy/schemas/policy.xsd
index fa11b28e..8086516e 100644
--- a/sros2/sros2/policy/schemas/policy.xsd
+++ b/sros2/sros2/policy/schemas/policy.xsd
@@ -24,7 +24,6 @@
-
@@ -35,16 +34,6 @@
-
-
-
-
-
-
-
-
-
-