Avatar billede Droa Seniormester
17. november 2014 - 11:29 Der er 1 løsning

XML Schema med flere element varianter af samme navn

Hej eksperter

Jeg har prøvet at sætte mig ind i hvad man kan tillade sig at gøre i sin xml strutur, som man skal have et Schema til.

Jeg har en struktur der ser sådan her ud.


<translator>
  <logger name="*">
    <entry text="STRING_HELLO {0} {1}">
      <translation language="da-DK" text="hej med dig {0} {1}" />
      <translation language="en-GB" text="Hello {0} {1}" />
<translation language="en-GB" text="Hello {0} {1}" />
    </entry>
<entry text="STRING_HELLO {0} {1}" language="da-DK" translation="hej med dig! {1}, {0}" />
<entry text="STRING_HELLO {0} {1}" language="de-DE" translation="Hallo {1}, {0}" />
</logger>
</translator>


elementet "entry" er derfor skrevet på 2 måder, men en enkelt oversættelse, eller med flere.

ideen er at kunne tilføje en oversættelse af et sprog, uafhængigt af de andre, så man kan have flere oversættelser i hver sin xml fil, hvor det ville have været ulogisk at skulle skrive hver enekelte oversættese i sit eget underelement.

man er dette lovligt? og hvordan kan man validere begge 2 i samme Schema?


<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Translate"
    targetNamespace="http://minsk.dk/Translate.xsd"
    elementFormDefault="qualified"
    xmlns="http://minsk.org/Translate.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="translator">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="logger" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="unbounded" name="entrySINGLE">
                <xs:complexType>
                  <xs:attribute name="text" type="xs:string" use="required"></xs:attribute>
                  <xs:attribute name="language" type="xs:string" use="required"></xs:attribute>
                  <xs:attribute name="translation" type="xs:string" use="required"></xs:attribute>
                </xs:complexType>
              </xs:element>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="entry">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="translation" minOccurs="1" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:attribute name="language" type="xs:string" use="required"></xs:attribute>
                        <xs:attribute name="text" type="xs:string" use="required"></xs:attribute>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="text" type="xs:string" use="required"></xs:attribute>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


det er entrySIGNLE jeg gerne ville have til og kunne være en korrekt alternativ formatering for entry

mange tak
Avatar billede Droa Seniormester
17. december 2014 - 22:26 #1
ser ud til der ikke findes noget svar. lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester