2012-03-14 12 views
6

quale sarebbe il corretto XML Schema 1.0 dichiarazione per unSchema XML per un elemento fisso con un attributo fisso?

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

dove:

  1. L'attributo xml: lang è obbligatoria
  2. Il valore "en" è fisso e obbligatoria
  3. Il contenuto dell'avviso è semplice testo.
  4. Il contenuto dell'avviso è fisso (come sopra) e obbligatorio?

Il mio migliore (ma sbagliato) sforzo è il seguente frammento:

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

risposta

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

Grazie. Solo una cosa sbagliata è che non impone "en" come xml: lang. Penso che ciò possa essere ottenuto aggiungendo un attributo fixed = "en" al nodo attributo xs: della tua soluzione. –

+0

Sì hai ragione! Felice che potrebbe aiutare. :) –

Problemi correlati