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.
<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:enumeration value="Foo"/>
<xs:enumeration value="Bar"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:enumeration value="Foo"/>
<xs:enumeration value="Bar"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Bar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:enumeration value="Foo"/>
<xs:enumeration value="Bar"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Baz',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" fixed="false"/>
<xs:maxInclusive value="10" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(0.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" fixed="false"/>
<xs:maxInclusive value="10" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(5.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" fixed="false"/>
<xs:maxInclusive value="10" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(10.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" fixed="false"/>
<xs:maxInclusive value="10" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(100.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0" fixed="false"/>
<xs:maxExclusive value="10" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(0.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0" fixed="false"/>
<xs:maxExclusive value="10" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(5.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0" fixed="false"/>
<xs:maxExclusive value="10" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(10.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2}[0-9]{2}"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'WT01',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2}[0-9]{2}"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'XY99',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2}[0-9]{2}"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'A5',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:pattern value=".*"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:length value="2" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'AB',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:length value="2" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'ABC',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:minLength value="2" fixed="false"/>
<xs:maxLength value="3" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'A',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:minLength value="2" fixed="false"/>
<xs:maxLength value="3" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'AB',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:minLength value="2" fixed="false"/>
<xs:maxLength value="3" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'ABC',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:minLength value="2" fixed="false"/>
<xs:maxLength value="3" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'ABCD',$,$,$,$,$,$); /* Testcase */