XML Więcej szczegółowych sprawdzania przez XSD Assert
Jest to schemat, który potrzebuję, aby sprawdzić, aby zatwierdzić, że jeśli reguła/typ jest A lub
B, a następnie
Return = Truew czymś w rodzaju:
<xsd:assert test="if (@type$value = A or @type$value= B) then @return$value = true"/>
to jest XSD, nad którym już pracowałem:
<xsd:schema xmlns:xsd="[url=http://www.w3.org/2001/XMLSchema">]http://www.w3.org/2001/XMLSchema">[/url]
<xsd:simpleType name="Rule">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="A"/>
<xsd:enumeration value="B"/>
<xsd:enumeration value="C"/>
<xsd:enumeration value="D"/>
<xsd:enumeration value="E"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="cType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="C-val1"/>
<xsd:enumeration value="C-val2"/>
<xsd:enumeration value="C-val3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="D-val1"/>
<xsd:enumeration value="D-val2"/>
<xsd:enumeration value="D-val3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="Rule">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="xsd:anyType">
<xsd:sequence>
<xsd:element name="Type" type="Rule"/>
<xsd:element name="Return" type="xsd:boolean"/>
<xsd:choice>
<xsd:element name="BConfig"/>
<xsd:element name="AConfig"/>
<xsd:element name="CConfig" type="CRule"/>
<xsd:element name="DConfig" type="DRule"/>
<xsd:element name="EElement" type="xsd:integer"/>
</xsd:choice>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="CRule">
<xsd:complexContent>
<xsd:restriction base="xsd:anyType">
<xsd:sequence>
<xsd:element name="C" type="CType" maxOccurs="3"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DRule">
<xsd:complexContent>
<xsd:restriction base="xsd:anyType">
<xsd:sequence>
<xsd:element name="D" type="DType" maxOccurs="3"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
Ale nie wiem, jak prawidłowo korzystać z zasobu
UPDATE 1:
po sergiofc jest to zaktualizowany schemat
<xsd:schema xmlns:xsd="[url=http://www.w3.org/2001/XMLSchema">]http://www.w3.org/2001/XMLSchema">[/url]
<xsd:simpleType name="Rule">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="A"/>
<xsd:enumeration value="B"/>
<xsd:enumeration value="C"/>
<xsd:enumeration value="D"/>
<xsd:enumeration value="E"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="cType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="C-val1"/>
<xsd:enumeration value="C-val2"/>
<xsd:enumeration value="C-val3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="D-val1"/>
<xsd:enumeration value="D-val2"/>
<xsd:enumeration value="D-val3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="Rule">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="xsd:anyType">
<xsd:sequence>
<xsd:element name="Type" type="Rule"/>
<xsd:element name="Return" type="xsd:boolean"/>
<xsd:choice>
<xsd:element name="BConfig"/>
<xsd:element name="AConfig"/>
<xsd:element name="CConfig" type="CRule"/>
<xsd:element name="DConfig" type="DRule"/>
<xsd:element name="EElement" type="xsd:integer"/>
</xsd:choice>
</xsd:sequence>
<xsd:assert test="if (Type = ('A', 'B')) then Return = true() else true()"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="CRule">
<xsd:complexContent>
<xsd:restriction base="xsd:anyType">
<xsd:sequence>
<xsd:element name="C" type="CType" maxOccurs="3"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DRule">
<xsd:complexContent>
<xsd:restriction base="xsd:anyType">
<xsd:sequence>
<xsd:element name="D" type="DType" maxOccurs="3"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
ale nadal nie wiem, gdzie znaleźć
xsd: assert, nadal pojawia się ten sam błąd.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Wyjaśnienie:
Jeśli chcesz, możesz przeczytać specyfikacje XPath lub samouczek XPath, aby uzyskać najlepszą wiedzę na ten temat.
Anonimowy użytkownik
Potwierdzenie od:
Zajmuje się testami warunkowymi.