2012-03-14 21 views
6

¿Cuál sería el correcto esquema XML 1.0 declaración para unaEsquema XML para un elemento fijo con un atributo fijo?

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

donde:

  1. El atributo xml: lang es obligatoria
  2. El valor "en" es fija y obligatoria
  3. El contenido del aviso es texto simple.
  4. ¿El contenido del aviso es fijo (como arriba) y obligatorio?

Mi mejor (pero mal) esfuerzo es el siguiente fragmento:

<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> 

Respuesta

8
<?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> 
+0

Gracias. Lo único malo con esto es que no aplica "en" como xml: lang. Creo que esto se puede lograr agregando un atributo fixed = "en" al nodo xs: attribute de su solución. –

+0

¡Sí, tienes razón! Me alegro de que podría ayudar. :) –

Cuestiones relacionadas