[XML-Schema] default value van attribute is afhankelijk

Pagina: 1
Acties:

  • The-MeLLeR
  • Registratie: Juni 2004
  • Laatst online: 18-10-2025
Beste mensen,

Ik ben bezig een XML-Schema te maken voor iets van de volgende structuur.
XML:
1
2
3
4
5
6
7
8
9
<root package="com.test">
    <class name="Class">
        ....
    </class>
 
    <class package="com.test2">
        ....
    </class>
</root>

de schema ziet er zo uit:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  <xsd:element name="root" type="RootType">
    <xsd:key name="className">
      <xsd:selector xpath=".//class"/>
      <xsd:field xpath="@name"/>
      <xsd:field xpath="@package"/>
    </xsd:key>
  </xsd:element>


  <xsd:complexType name="RootType">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="1" type="ClassType" name="class"/>
    </xsd:sequence>
    <xsd:attribute name="package" use="optional" type="PackageNameType"/>
  </xsd:complexType>
  <xsd:complexType name="ClassType">
   ....
  </xsd:complexType>

  <xsd:simpleType name="PackageNameType">
    <xsd:restriction base="strippedString">
      <xsd:pattern value="([a-z][a-zA-Z0-9]*.)*"/>
    </xsd:restriction>
  </xsd:simpleType>


Hierbij is de attribute 'package' optioneel. Als ie niet ingevuld is moet ie de waarde van de package attribute van het root-element hebben. (Dit is nodig i.v.m. die key)

Ik heb al gegoogled en de complete schema specs doorgelezen van W3.org :r
Is dit mogelijk met xml-schema (en zo ja hoe?)?


edit:

een voorbeeld hiervan is xml:lang --> deze wordt door alle child-elements ge-erft. (totdat die daar opnieuw gedeclareerd word)

[ Voor 40% gewijzigd door The-MeLLeR op 16-03-2006 13:38 ]