Maciek
Maciek

Reputation: 19893

How to define an empty element with attributes?

I'm attempting to create a XSD schema for my custom xml .config file - here is a sample :

I'm trying to have the "add" element have an empty content (or 0 max length) - but I'm failing - what am I doing wrong?

<xs:element name="scopes">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="add" maxOccurs="unbounded" minOccurs="0">
                <xs:complexType mixed="true">
                  <xs:sequence>
                    <xs:element name="claims" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          **<xs:element name="add" maxOccurs="unbounded" minOccurs="0">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute type="xs:string" name="name" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>**
                  </xs:sequence>
                  <xs:attribute type="xs:string" name="name" use="required" />
                  <xs:attribute name="type" use="required">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:enumeration value="Identity" />
                        <xs:enumeration value="Resource" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute type="xs:string" name="displayName" use="optional" />
                  <xs:attribute type="xs:boolean" name="enabled" use="required" />
                  <xs:attribute type="xs:boolean" name="emphasize" use="optional" />
                  <xs:attribute type="xs:boolean" name="showInDiscoveryDocument" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

Upvotes: 1

Views: 1770

Answers (1)

kjhughes
kjhughes

Reputation: 111541

To make add be an empty element with attributes:

<xs:element name="add" maxOccurs="unbounded" minOccurs="0">
  <xs:complexType>
    <xs:attribute type="xs:string" name="name" use="required" />
  </xs:complexType>
</xs:element>

Upvotes: 2

Related Questions