[opencms-dev] XML-Content xsd:choice
Thomas Göttlich
guo.tuomi at googlemail.com
Wed Sep 28 14:46:15 CEST 2011
Here's an update:
I changed the structure to define an intermediate type "OpenCmsChoice" that
instead of a sequence defines a choice of the modules.
I then added that type as an element in my test.xsd and now I can edit the
files of that type with a choice being brought up.
However, that doesn't work in Firefox (I'm using FF 6) - only in my current
IE 8 version.
Am 28. September 2011 13:19 schrieb Thomas Göttlich <
guo.tuomi at googlemail.com>:
> Hi Patric,
>
> thanks for the advice.
>
> Does that mean I have to use an intermediate schema to define the choice?
>
> Currently, I have this:
>
> test.xsd //my example below shows the complexType definition
> module1.xsd //a simple opencms schema to define a sub-module
> module2.xsd //another simple opencms schema to define a sub-module
>
> So what I want to do is to have a list of "modules" (or elements) in the
> test files where the modules can be of one of those two types.
>
> Creating another complextType in the test.xsd schema like the following,
> results in the error "Exactly 2 complex type definitions are required, not
> 3."
>
> <!-- 3. Root element name and type of our XML type -->
> <xsd:element name="Tests" type="OpenCmsTests"/>
>
> <!-- 4. Definition of the type described above -->
> <xsd:complexType name="OpenCmsTests">
> <xsd:sequence>
> <xsd:element name="Test" type="OpenCmsTest"
>
> minOccurs="0" maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
>
> <!-- 5. Data field definitions -->
>
> <xsd:complexType name="OpenCmsTest">
> <xsd:sequence>
> <!--
> <xsd:element name="MT1" type="OpenCmsModule1" minOccurs="0" />
> <xsd:element name="MT2" type="OpenCmsModule2" minOccurs="0" />
> -->
> <xsd:element name="Text" type="OpenCmsText"
> minOccurs="0"/>
> </xsd:sequence>
>
> <!-- 6. locale attribute is required -->
> <xsd:attribute name="language" type="OpenCmsLocale"
> use="optional"/>
> </xsd:complexType>
>
> <xsd:complexType name="OpenCmsText">
> <xsd:choice>
> <xsd:element name="Headline" type="OpenCmsString" minOccurs="0" />
> <xsd:element name="Title" type="OpenCmsString" minOccurs="0" />
> </xsd:choice>
>
> <xsd:attribute name="language" type="OpenCmsLocale" use="optional"/>
>
> </xsd:complexType>
>
> Note that the names are just arbitrary chosen, in order to do some tests.
>
> Should the structure instead be like this?
>
> test.xsd //this would contain a list of the type defined by
> modulechoice.xsd
> modulechoice.xsd //would only contain the element with the xsd:choice
> between the modules
> module1.xsd //a simple opencms schema to define a sub-module
> module2.xsd //another simple opencms schema to define a sub-module
>
>
> Thanks for your effort.
>
>
> Regards,
>
> Thomas
>
> 2011/9/28 patric dosch <patric.dosch at virtual-identity.com>
>
>> Hey, ****
>>
>> ** **
>>
>> You have to make the choice-element in your own schema. ****
>>
>> ** **
>>
>> <xsd:complexType name=*"OpenCmsArticle"*>****
>>
>> <xsd:sequence>****
>>
>> <xsd:element name=*"Title"* type=*"OpenCmsString"*/> ****
>>
>> […] ****
>>
>> <xsd:element name=*"ContextTeaser"* type=*"OpenCmsContextTeaser"*
>> minOccurs=*"0"* maxOccurs=*"unbounded"*/>****
>>
>> </xsd:sequence>****
>>
>> <xsd:attribute name=*"language"* type=*"OpenCmsLocale"* use=*"required"*
>> />****
>>
>> </xsd:complexType>****
>>
>> ** **
>>
>> <xsd:complexType name=*"OpenCmsContextTeaser"*>****
>>
>> <xsd:choice>****
>>
>> <xsd:element name=*"TextTeaser"* type=*"OpenCmsTextTeaser" *minOccurs=*
>> "0"*/>****
>>
>> <xsd:element name=*"LinkListTeaser"* type=*"OpenCmsLinkListTeaser"*
>> minOccurs=*"0"*/> ****
>>
>> <xsd:element name=*"Contact"* type=*"OpenCmsVfsFile"* minOccurs=*"0"*/>**
>> **
>>
>> </xsd:choice>****
>>
>> <xsd:attribute name=*"language"* type=*"OpenCmsLocale"* use=*"optional"*
>> />****
>>
>> </xsd:complexType>****
>>
>> ** **
>>
>> Regards, Patric****
>>
>> ** **
>>
>> *Von:* opencms-dev-bounces at opencms.org [mailto:
>> opencms-dev-bounces at opencms.org] *Im Auftrag von *Thomas Göttlich
>> *Gesendet:* Mittwoch, 28. September 2011 11:55
>> *An:* The OpenCms mailing list
>> *Betreff:* [opencms-dev] XML-Content xsd:choice****
>>
>> ** **
>>
>> Hi,
>>
>> how would I use the xsd:choice element in my schemas?
>>
>> Currently I tried the following but I get "invalid schema structure"
>> errors:
>>
>>
>> <xsd:complexType name="OpenCmsTest">
>> <xsd:sequence>
>> <xsd:choice>
>> <!--
>> <xsd:element name="MT1" type="OpenCmsModule1" minOccurs="0" />
>> <xsd:element name="MT2" type="OpenCmsModule2" minOccurs="0" />
>> -->
>> <xsd:element name="Headline" type="OpenCmsString"
>> minOccurs="1" maxOccurs="1" />
>> <xsd:element name="Title" type="OpenCmsString"
>> minOccurs="1" maxOccurs="1" />
>> </xsd:choice>
>> </xsd:sequence>
>>
>> <!-- 6. locale attribute is required -->
>> <xsd:attribute name="language" type="OpenCmsLocale"
>> use="optional"/>
>> </xsd:complexType>
>>
>> Unfortunately I did find any documentation or examples, just notes that it
>> is now possible to use that.
>>
>> Thanks in advance,
>>
>> Thomas****
>>
>> _____________________________________________________________________
>>
>> Vorstand: Ralf Heller, Udo Möbes
>> Vorsitzende des Aufsichtsrates: Kirsten Heller
>> Sitz der Gesellschaft: Gruenwaelderstrasse 10-14, D-79098 Freiburg
>> Amtsgericht Freiburg HRB 6218
>>
>> Versand am 28.09.2011 12:30 von dosch patric
>> Validation-Code: 4055011134176
>>
>>
>>
>> _______________________________________________
>> This mail is sent to you from the opencms-dev mailing list
>> To change your list options, or to unsubscribe from the list, please visit
>> http://lists.opencms.org/mailman/listinfo/opencms-dev
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20110928/a32d19c6/attachment.htm>
More information about the opencms-dev
mailing list