Ich arbeite mit einem XSD wie:Beschränken complexType mit Attributen in XSD?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="algo">
<xs:complexType>
<xs:sequence>
<xs:element name="nota" type="t_algo" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="t_algo">
<xs:restriction base="xs:string">
<xs:pattern value="[1][0]|[0-9]" />
</xs:restriction>
<xs:attribute name="modul" type="t_modul"/>
</xs:complexType>
<xs:simpleType name="t_modul">
<xs:restriction base="xs:string">
<xs:pattern value="[m][0][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
und einen Test XML wie folgt aus:
<?xml version="1.0" encoding="UTF-8"?>
<algo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file:///D:/DAM/RECUF1/Mispruebas/telf.xsd">
<nota modul="m01">0</nota>
<nota modul="m01">7</nota>
<nota modul="m01">3</nota>
<nota modul="m01">1</nota>
</algo>
Ich möchte Kinder nota
mit Werten zwischen 0-10 und mit dem Attribut haben modul
mit einem Wert m0X
wo x
zwischen (0-9). Ich dachte, das vorherige XSD würde funktionieren, aber es nicht. Kann mir jemand erklären, was ich falsch mache?
Das Muster, das Sie für den einfachen Typ "t_modul" angegeben haben, gilt für den in den Tags enthaltenen Wert und nicht für den Namen des Attributs. Ich glaube, der Name des Attributs ist fest und Sie müssen möglicherweise Tags für die verschiedenen Arten von Attributnamen definieren, die Sie erwarten. –
Erzähl uns nicht, dass etwas nicht funktioniert. Sag uns, wie es scheitert. –