2012-04-03 6 views
0

Entschuldigung für mein Englisch.So geben Sie ein Element ohne spezifischen Namen an

Ich brauche XML-Schema für meine XML-Datei schreiben. Mein XML-Datei Beispiel:

<?xml version="1.0" encoding="utf-8"?> 
<styles> 

    <style name="p"> 
    <text-indent>25px</text-indent> 
    </style> 

    <style name="td"> 
    <border>solid 2px</border> 
    <border-color>Black</border-color> 
    <padding-left>5px</padding-left> 
    </style> 

    <style name="p.withoutRedLine"> 
    <text-indent>0px</text-indent> 
    </style> 

</styles> 

Jedes 'Stil' Element kann hat Elemente mit beliebigen Namen.

Ich schrieb nächste XML-Schema (Problem in Code-Kommentaren definiert sind):

<?xml version="1.0" encoding="utf-8"?> 
<xsd:schema 
    xmlns="http://www.mia-orbis.com/2012/XMLSchema/styles" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

    <xsd:complexType name="style"> 
    <xsd:sequence minOccurs="1" maxOccurs="1"> 
     <!--Error in it place (I don't need to specify value 
     of attribute 'name', but from me it demand):--> 
     <xsd:element type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>  
    </xsd:sequence> 
    <xsd:attribute name="name" type="xsd:ID" use="required"/> 
    </xsd:complexType> 

    <xsd:element name="styles"> 
    <xsd:complexType> 
     <xsd:sequence minOccurs="1" maxOccurs="1"> 
     <xsd:element name="style" minOccurs="0" maxOccurs="unbounded"/> 
     </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 

</xsd:schema> 

Grüße

Antwort

0

Sie müssen XSD verwenden: alle:

<?xml version="1.0" encoding="utf-8"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:complexType name="style"> 
     <xsd:sequence> 
      <xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip"/> 
     </xsd:sequence> 
     <xsd:attribute name="name" type="xsd:ID" use="required"/> 
    </xsd:complexType> 
    <xsd:element name="styles"> 
     <xsd:complexType> 
      <xsd:sequence> 
       <xsd:element name="style" minOccurs="0" maxOccurs="unbounded" type="style"/> 
      </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

Ich habe einige Fixes Ihr Schema: Entfernen Sie den Standard-Namespace, setzen Sie den Typ auf das Stilelement usw.

Wenn Sie bereit, xsd: any bereits zu verwenden, kann es sich als gute Praxis erweisen, zu definieren, was Sie wissen, und xsd: any für etwas anderes lassen.

+0

Es funktioniert auch nicht. Fehler in der Zeile:

+0

Ich konnte den Sinn Ihres Codes nicht verstehen –

+0

@Bush, die XSD, die ich gepostet habe vollkommen gültig; Mit welchem ​​Tool validieren Sie es? –

Verwandte Themen