Skip to content

Latest commit

 

History

History
583 lines (506 loc) · 24 KB

testcases-classification.md

File metadata and controls

583 lines (506 loc) · 24 KB

Classification testcases

These testcases are designed to help describe behaviour in edge cases and ambiguities. All valid IDS implementations must demonstrate identical behaviour to these test cases.

[FAIL] A classification facet with no data matches any classification 1/2

<classification minOccurs="1" maxOccurs="1"/>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$); /* Testcase */
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 4

[PASS] A classification facet with no data matches any classification 2/2

<classification minOccurs="1" maxOccurs="1"/>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$); /* Testcase */
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 5

[PASS] Values should match exactly if lightweight classifications are used

<classification minOccurs="1" maxOccurs="1">
  <value>
    <simpleValue>1</simpleValue>
  </value>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$); /* Testcase */
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 5

[PASS] Values match subreferences if full classifications are used (e.g. EF_25_10 should match EF_25_10_25, EF_25_10_30, etc)

<classification minOccurs="1" maxOccurs="1">
  <value>
    <simpleValue>2</simpleValue>
  </value>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$); /* Testcase */
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 11

[PASS] Systems should match exactly 1/5

<classification minOccurs="1" maxOccurs="1">
  <system>
    <simpleValue>Foobar</simpleValue>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 1

[FAIL] Systems should match exactly 2/5

<classification minOccurs="1" maxOccurs="1">
  <system>
    <simpleValue>Foobar</simpleValue>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$); /* Testcase */
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 4

[PASS] Systems should match exactly 3/5

<classification minOccurs="1" maxOccurs="1">
  <system>
    <simpleValue>Foobar</simpleValue>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$); /* Testcase */
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 5

[PASS] Systems should match exactly 4/5

<classification minOccurs="1" maxOccurs="1">
  <system>
    <simpleValue>Foobar</simpleValue>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$); /* Testcase */
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 8

[PASS] Systems should match exactly 5/5

<classification minOccurs="1" maxOccurs="1">
  <system>
    <simpleValue>Foobar</simpleValue>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$); /* Testcase */
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 11

[PASS] Restrictions can be used for values 1/3

<classification minOccurs="1" maxOccurs="1">
  <value>
    <xs:restriction base="xs:string">
      <xs:pattern value="1.*"/>
    </xs:restriction>
  </value>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$); /* Testcase */
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 5

[PASS] Restrictions can be used for values 2/3

<classification minOccurs="1" maxOccurs="1">
  <value>
    <xs:restriction base="xs:string">
      <xs:pattern value="1.*"/>
    </xs:restriction>
  </value>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$); /* Testcase */
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 8

[FAIL] Restrictions can be used for values 3/3

<classification minOccurs="1" maxOccurs="1">
  <value>
    <xs:restriction base="xs:string">
      <xs:pattern value="1.*"/>
    </xs:restriction>
  </value>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$); /* Testcase */
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 11

[FAIL] Restrictions can be used for systems 1/2

<classification minOccurs="1" maxOccurs="1">
  <system>
    <xs:restriction base="xs:string">
      <xs:pattern value="Foo.*"/>
    </xs:restriction>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$); /* Testcase */
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 4

[PASS] Restrictions can be used for systems 2/2

<classification minOccurs="1" maxOccurs="1">
  <system>
    <xs:restriction base="xs:string">
      <xs:pattern value="Foo.*"/>
    </xs:restriction>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$); /* Testcase */
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 5

[PASS] Both system and value must match (all, not any) if specified 1/2

<classification minOccurs="1" maxOccurs="1">
  <value>
    <simpleValue>1</simpleValue>
  </value>
  <system>
    <simpleValue>Foobar</simpleValue>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$); /* Testcase */
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 5

[FAIL] Both system and value must match (all, not any) if specified 2/2

<classification minOccurs="1" maxOccurs="1">
  <value>
    <simpleValue>1</simpleValue>
  </value>
  <system>
    <simpleValue>Foobar</simpleValue>
  </system>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$); /* Testcase */
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11),#12);

Sample IDS - Sample IFC: 8

[PASS] Occurrences override the type classification per system 1/3

<classification minOccurs="1" maxOccurs="1">
  <value>
    <simpleValue>11</simpleValue>
  </value>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8,#16),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11,#17),#12);
#16=IFCWALL('1kMmos_gT3tfAYnna3_nxC',$,$,$,$,$,$,$,$); /* Testcase */
#17=IFCWALLTYPE('0IXylVDbn64fZ8Hl539Mt0',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.);
#18=IFCRELDEFINESBYTYPE('3cAzW6JrbF0A1Ico3iXFmg',$,$,$,(#16),#17);
#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$);
#20=IFCRELASSOCIATESCLASSIFICATION('0DQ_5wcY93x97$qQl2K$e4',$,$,$,(#1),#19);
#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$);
#22=IFCRELASSOCIATESCLASSIFICATION('1PiiZ7sI119fVll5yYq110',$,$,$,(#17),#21);

Sample IDS - Sample IFC: 16

[FAIL] Occurrences override the type classification per system 2/3

<classification minOccurs="1" maxOccurs="1">
  <value>
    <simpleValue>22</simpleValue>
  </value>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8,#16),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11,#17),#12);
#16=IFCWALL('1kMmos_gT3tfAYnna3_nxC',$,$,$,$,$,$,$,$); /* Testcase */
#17=IFCWALLTYPE('0IXylVDbn64fZ8Hl539Mt0',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.);
#18=IFCRELDEFINESBYTYPE('3cAzW6JrbF0A1Ico3iXFmg',$,$,$,(#16),#17);
#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$);
#20=IFCRELASSOCIATESCLASSIFICATION('0DQ_5wcY93x97$qQl2K$e4',$,$,$,(#1),#19);
#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$);
#22=IFCRELASSOCIATESCLASSIFICATION('1PiiZ7sI119fVll5yYq110',$,$,$,(#17),#21);

Sample IDS - Sample IFC: 16

[PASS] Occurrences override the type classification per system 3/3

<classification minOccurs="1" maxOccurs="1">
  <value>
    <simpleValue>X</simpleValue>
  </value>
</classification>
#1=IFCPROJECT('09waczB0TB$hP3cVMWKh6v',$,$,$,$,$,$,$,$);
#2=IFCCLASSIFICATION($,$,$,'Foobar',$,$,$);
#3=IFCRELASSOCIATESCLASSIFICATION('0fShJTRKP9SPlVzqIn__dg',$,$,$,(#1),#2);
#4=IFCWALL('1Ev6VPwkb8DxG$KvUQ61Tj',$,$,$,$,$,$,$,$);
#5=IFCWALL('3IpqHJLorDWOMZfkAsnFyj',$,$,$,$,$,$,$,$);
#6=IFCCLASSIFICATIONREFERENCE($,'1',$,#2,$,$);
#7=IFCRELASSOCIATESCLASSIFICATION('0ySnj2nlzA1PPRHJQQKB8o',$,$,$,(#5),#6);
#8=IFCWALL('3z07og1cf0tRksLXTFwrha',$,$,$,$,$,$,$,$);
#9=IFCCLASSIFICATIONREFERENCE($,'11',$,#2,$,$);
#10=IFCRELASSOCIATESCLASSIFICATION('3r2bqqaZXEE9_leqfSfwZw',$,$,$,(#8,#16),#9);
#11=IFCWALL('3$KOb38H15zuNJocC0Evl1',$,$,$,$,$,$,$,$);
#12=IFCCLASSIFICATIONREFERENCE($,'22',$,#13,$,$);
#13=IFCCLASSIFICATIONREFERENCE($,'2',$,#2,$,$);
#15=IFCRELASSOCIATESCLASSIFICATION('3BndngXerCqR2YTUUqxbaP',$,$,$,(#11,#17),#12);
#16=IFCWALL('1kMmos_gT3tfAYnna3_nxC',$,$,$,$,$,$,$,$); /* Testcase */
#17=IFCWALLTYPE('0IXylVDbn64fZ8Hl539Mt0',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.);
#18=IFCRELDEFINESBYTYPE('3cAzW6JrbF0A1Ico3iXFmg',$,$,$,(#16),#17);
#19=IFCCLASSIFICATION($,$,$,'Foobaz',$,$,$);
#20=IFCRELASSOCIATESCLASSIFICATION('0DQ_5wcY93x97$qQl2K$e4',$,$,$,(#1),#19);
#21=IFCCLASSIFICATIONREFERENCE($,'X',$,#19,$,$);
#22=IFCRELASSOCIATESCLASSIFICATION('1PiiZ7sI119fVll5yYq110',$,$,$,(#17),#21);

Sample IDS - Sample IFC: 16