Sean B. Durkin
Sean B. Durkin

Reputation: 12729

XML Schema for a fixed element with a fixed attribute?

What would be the correct XML Schema 1.0 declaration for a

<notice xml:lang="en">Banana banana banana</notice>

where:

  1. The xml:lang attribute is compulsory
  2. The value "en" is fixed and compulsory
  3. The content of notice is simple text.
  4. The content of notice is fixed (as above) and compulsory?

My best (but wrong) effort is the following fragment:

<xs:element name="notice" use="required" fixed="Banana banana banana">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension>
        <xs:attribute ref="xml:lang" use="required" fixed="en"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

Upvotes: 8

Views: 10045

Answers (1)

Rookie Programmer Aravind
Rookie Programmer Aravind

Reputation: 12154

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" />
  <xs:element name="notice" type="notice"/>
    <xs:complexType name="notice">
      <xs:simpleContent>
        <xs:extension base="CONTENT">
          <xs:attribute ref="xml:lang" use="required" fixed="en"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  <xs:simpleType name="CONTENT">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Banana banana banana"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

Upvotes: 10

Related Questions