[XML/XSD] Complextype vraagje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Goedendag,

Als ik de volgende xml heb :
XML:
1
2
...
<Picture hidden="No">plaatje.jpg</Picture>

Dan kan ik met de volgende xsd checken of hidden wel/niet aanwezig / gevuld is.
code:
1
2
3
4
5
<xsd:element name="Picture" minOccurs="1" maxOccurs="1">
    <xsd:complexType mixed="true" >
        <xsd:attribute name="hidden" type="xsd:string" use="required" />
    </xsd:complexType>
</xsd:element>


Maar hoe krijg ik dan gedefinieerd dat de text-inhoud van het element Picture max 7 karakters lang mag zijn?

Met simpletype kan ik simpelweg een type meegeven, maar ik kan nergens vinden hoe ik de content van Picture aan kan duiden.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
AFAIK kan dat niet. Maar (en forgive me, XSD's zijn alweer even geleden) kun je 't niet oplossen met een Simple type a-la zoiets?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Ik zie de link niet met een simple type.

Laat ik het iets anders zeggen :
- Ik heb een picture-element die ik wil checken qua lengte
- Dit picture element heeft een attribute dat aangeeft of het hidden is of niet.

XML aanpassing zit er niet echt in ( het is van een 3e partij )

Of ik zit het helemaal verkeerd aan te pakken of het lijkt mij dat dit gewoon mogelijk is...

Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 07:09

Cyphax

Moderator LNX
Je kunt die limitaties niet opleggen als je 'm als complexType zet met mixed="true". Maar de simpleType met restricties kun je weer niet attributen meegeven.

Dezelfde vraag wordt hier beantwoord. :)

Een tweede oplossing zou kunnen zijn om de filename in een attribuut te zetten, die kan je ook restricten

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • yade
  • Registratie: Mei 2002
  • Laatst online: 16-07 13:47
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xsd:simpleType name="myPictureType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="7"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="myComplexPictureType">
        <xsd:simpleContent>
            <xsd:extension base="myPictureType">
                <xsd:attribute name="hidden" type="xsd:string" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:element name="Temp">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Picture" minOccurs="1" maxOccurs="1" type="myComplexPictureType"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>


Dit is hoe je het kan doen. :) Ik dacht, een voorbeeld is handiger, want voordat ik dit uitgelegd heb. ;)

[ Voor 3% gewijzigd door yade op 03-10-2011 15:27 ]


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
yade schreef op maandag 03 oktober 2011 @ 15:26:

Dit is hoe je het kan doen. :) Ik dacht, een voorbeeld is handiger, want voordat ik dit uitgelegd heb. ;)
Je begrijpt dat het dummy code was toch ;)

Dus ik zal het toch echt moeten uitzoeken. Maar in ieder geval bedankt voor het bieden van een oplossing Cyphax en yade.

Nu alleen nog even snappen waarom zoiets (imho) basaals zo ingewikkeld moet ;)

Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 07:09

Cyphax

Moderator LNX
Gomez12 schreef op maandag 03 oktober 2011 @ 15:30:
[...]

Je begrijpt dat het dummy code was toch ;)

Dus ik zal het toch echt moeten uitzoeken. Maar in ieder geval bedankt voor het bieden van een oplossing Cyphax en yade.

Nu alleen nog even snappen waarom zoiets (imho) basaals zo ingewikkeld moet ;)
Nouja, uitzoeken; 't is niet zo heel ingewikkeld. Maar als je toch zelf de controle hebt zou ik van die filename gewoon een attribuut maken, dan ben je het snelst klaar. :)

Saved by the buoyancy of citrus

Pagina: 1