Tagged value suppress Schematron conversion rule extensions implemented in ShapeChange
16
Copyright © 2011 Open Geospatial Consortium
schema xmlns
= http:purl.oclc.orgdsdlschematron
xmlns:sch =
http:purl.oclc.orgdsdlschematron title
Schematron constraints for schema Profile title
ns prefix
= sch
uri =
http:purl.oclc.orgdsdlschematron ns
prefix =
p uri
= http:www.opengis.netows8test1
ns prefix
= b
uri =
http:www.opengis.netows8test3 pattern
rule context
= b:Type1
let name
= A
value =
b:att1[name=p:ClassificationCode] assert
test =
b:att1[name=p:ClassificationCode] att1IsClassificationCode: att1 is
restricted to ClassificationCode values assert
assert test
= concatAcodeList,,AcodeListValue =
http:metadata.ces.milmdrnsGSIPcodelistClassificationCodeclassified att1IsNotClassified: att1 is not of value classified
assert assert
test =
notb:att3 att3IsEmpty: att3 not part of the profile
assert rule
rule context
= p:Type1c
let name
= A
value =
b:att1[name=p:ClassificationCode] assert
test =
b:att1[name=p:ClassificationCode] att1IsClassificationCode: att1 is
restricted to ClassificationCode values assert
assert test
= concatAcodeList,,AcodeListValue =
http:metadata.ces.milmdrnsGSIPcodelistClassificationCodeclassified att1IsNotClassified: att1 is not of value classified
assert assert
test =
notb:att3 att3IsEmpty: att3 not part of the profile
assert rule
pattern schema
Note that there is no Schematron rule for the suppressed class Type1r. Its constraints appear as Schematron assertions for objects of type Type1 mapped to
element b:Type1 belonging to the base model. Result with suppressedTypeInterpretation=trojanType:
schema xmlns
= http:purl.oclc.orgdsdlschematron
xmlns:sch =
http:purl.oclc.orgdsdlschematron title
Schematron constraints for schema Profile title
ns prefix
= sch
uri =
http:purl.oclc.orgdsdlschematron ns
prefix =
p uri
= http:www.opengis.netows8test1
ns prefix
= b
uri =
http:www.opengis.netows8test3 pattern
rule context
= b:Type1
let name
= A
value =
b:att1[name=p:ClassificationCode] assert
test =
b:att1[name=p:ClassificationCode] att1IsClassificationCode: att1 is
restricted to ClassificationCode values assert
assert test
= concatAcodeList,,AcodeListValue =
http:metadata.ces.milmdrnsGSIPcodelistClassificationCodeclassified att1IsNotClassified: att1 is not of value classified
assert assert
test =
notb:att3 att3IsEmpty: att3 not part of the profile
assert rule
rule context
= b:Type1Sub
let name
= A
value =
b:att1[name=p:ClassificationCode] assert
test =
b:att1[name=p:ClassificationCode] att1IsClassificationCode: att1 is
Copyright © 2011 Open Geospatial Consortium
17
restricted to ClassificationCode values assert
assert test
= concatAcodeList,,AcodeListValue =
http:metadata.ces.milmdrnsGSIPcodelistClassificationCodeclassified att1IsNotClassified: att1 is not of value classified
assert assert
test =
notb:att3 att3IsEmpty: att3 not part of the profile
assert rule
rule context
= p:Type1e
let name
= A
value =
b:att1[name=p:ClassificationCode] assert
test =
b:att1[name=p:ClassificationCode] att1IsClassificationCode: att1 is
restricted to ClassificationCode values assert
assert test
= concatAcodeList,,AcodeListValue =
http:metadata.ces.milmdrnsGSIPcodelistClassificationCodeclassified att1IsNotClassified: att1 is not of value classified
assert assert
test =
notb:att3 att3IsEmpty: att3 not part of the profile
assert rule
rule context
= p:Type1c
let name
= A
value =
b:att1[name=p:ClassificationCode] assert
test =
b:att1[name=p:ClassificationCode] att1IsClassificationCode: att1 is
restricted to ClassificationCode values assert
assert test
= concatAcodeList,,AcodeListValue =
http:metadata.ces.milmdrnsGSIPcodelistClassificationCodeclassified att1IsNotClassified: att1 is not of value classified
assert assert
test =
notb:att3 att3IsEmpty: att3 not part of the profile
assert rule
pattern schema
In this case all classes deriving from Type1 obtain the constraints specified in Type1r, which is, of course, excluded, because it is suppressed. The effect is the same as if the
constraints were indeed specified in the class Type1 itself.
Note that also Type1e and Type1c receive the constraints by way of inheritance. However, those in Type1c are overwritten with ones of identical names defined in the
class itself.