mbeckerle commented on code in PR #1187:
URL: https://github.com/apache/daffodil/pull/1187#discussion_r1534202685


##########
daffodil-core/src/test/scala/org/apache/daffodil/core/layers/TestLayers.scala:
##########
@@ -37,13 +37,48 @@ class TestLayers {
 
   val B64Layer1Schema =
     SchemaUtils.dfdlTestSchema(
-      <xs:include 
schemaLocation="/org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+      <xs:include 
schemaLocation="/org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>
+      <xs:import namespace="urn:org.apache.daffodil.layers.boundaryMark"
+        
schemaLocation="/org/apache/daffodil/layers/xsd/boundaryMarkLayer.dfdl.xsd"/>
+      <xs:import namespace="urn:org.apache.daffodil.layers.base64_MIME"
+                 
schemaLocation="/org/apache/daffodil/layers/xsd/base64_MIMELayer.dfdl.xsd"/>,
       <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="e1" dfdl:lengthKind="implicit">
+      <xs:element name="e1" dfdl:lengthKind="implicit"
+                  xmlns:bm="urn:org.apache.daffodil.layers.boundaryMark"
+                  xmlns:b64="urn:org.apache.daffodil.layers.base64_MIME">

Review Comment:
   Right now the checking that the magic setter and magic getters are properly 
handling all the variables depends on the namespace of each layer being 
separate, so that the magic setter and getters taken together must exhaustively 
use up all the variables in that namespace each as exactly one arg to the 
setter, or one getter.
   
   That is to say, the namespace and variables defined there "win" and the 
layer code must match those, not the other way around. I think this is a bit 
safer from the perspective of making sure the jar file of java/scala code 
matches the DFDL schema, as you can't mistakenly use the layer code with a 
schema that defines new variables that the code doesn't know about, and have 
those variables be silently ignored. 
   
   And as you point out, one can have a dfdlx:layer="compressor" and use a 
variable to select which algorithm. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@daffodil.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to