Hi Dennis,
 
Thanks for the reply.
so your saying that types can be replaced by subtypes. For instance, xs:int can be replaced by xs:int that is restricted between 0 and 100, right?
 
Also what about attributes, a restricted type could have less attributes right? How a restricted type can change taking attributes into consideration? 
 
Thanks,
Maryam

 
On 7/9/06, Dennis Sosnoski <[EMAIL PROTECTED]> wrote:
Hi Maryam,

Sounds about right, except that for (4) any element can be given a more
specific type than in the base type definition (so an element typed as
xs:string could instead be made xs:token, for instance), and for (5) an
xs:any with maxOccurs > 1 could be replaced by multiple elements (or
elements and a new xs:any).

- Dennis

Dennis M. Sosnoski
SOA, Web Services, and XML
Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-296-6194 - Wellington, NZ +64-4-298-6117



Maryam Moazeni wrote:
>
> Hi All,
>
> Regarding the implementation of the support for complex content
> restriction:
> I need to know in what cases an element could be restricted. I have
> some observations, but I'd like to see if any one can add more to this.
>
> 1) Removal of an optional element.
> 2) Reducing the "maxOccurs".
> 3) Increasing the "minOccurs".
> 4) Giving an element a specific type, in the case the element
> has "anyType" as its type
>     in the base type.
> 5) In the case we have "any" in the base type, and we restrict the
> elements by attributes
>     of "any" such as "minOccurs" and "maxOccurs".
>
> Please correct me if I'm wrong and add your opinions.
>
> For implementing this I thought I should check all the elements listed
> in the restricted type with elements of the base type for the named
> conditions, if any of them differs, the element goes to the list of
> restricted elements.
>
> Also, I thought with any approach that I choose, I have to edit the
> DOM tree created from populating the parent meta info. But, it seems the
>
> Element root = model.getDocumentElement();
>
> return null when I'm trying to access the model's root element.
>
> In my approach, I thought maybe I can add "restricted" node to the
> root node, per restricted elements and also edit the "property" nodes
> according to the restricted elements to make sure that they're not
> marked as "isInherited" or maybe we can remove them from the tree.
>
> Also I need to know what will happen in the case, base type is of type
> "anyType"?
>
> I would appreciate if you share your thoughts with me.
>
> Thanks,
> Maryam
>
>
> On 7/4/06, *Maryam Moazeni* <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED] >> wrote:
>
>     Hi Dennis,
>
>     That's what I wanted to make sure !!! Thanks.
>
>     Maryam
>
>
>     On 7/4/06, *Dennis Sosnoski* < [EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>> wrote:
>
>         Hi Maryam,
>
>         This isn't a valid case. The only way to get complexContent from a
>         simpleType is by using extension (since restriction says that
>         you're
>         only going to allow a subset of what the base type allows -
>         which means
>         that the restriction of a simpleType is always going to be
>         simpleContent). Just to be sure, I tried this in Oxygen:
>
>         <?xml version=" 1.0" encoding="UTF-8"?>
>         <schema xmlns=" http://www.w3.org/2001/XMLSchema"
>         targetNamespace="urn:a"
>         xmlns:tns="urn:a">
>         <simpleType name="x">
>            <restriction base="decimal">
>              <minExclusive value="0.0"/>
>              <maxExclusive value ="100.0 "/>
>            </restriction>
>         </simpleType>
>
>         <complexType name="y">
>            <complexContent>
>              <restriction base="tns:x">
>                <minExclusive value=" 1.0"/>
>              </restriction>
>            </complexContent>
>         </complexType>
>         </schema>
>
>         It gave the expected error:
>
>         SystemID: /usr/local/tools/oxygen6.2/Untitled1.xsd
>         Location: 12:33
>         Description: E src-ct.1: Complex Type Definition
>         Representation Error
>         for type 'y'.  When <complexContent> is used, the base type
>         must be a
>         complexType. 'x' is a simpleType.
>         URL: http://www.w3.org/TR/xmlschema-1/#src-ct
>
>         - Dennis
>
>         Dennis M. Sosnoski
>         SOA, Web Services, and XML
>         Training and Consulting
>         http://www.sosnoski.com <http://www.sosnoski.com/ > -
>         http://www.sosnoski.co.nz <http://www.sosnoski.co.nz/>
>         Seattle, WA +1-425-296-6194 - Wellington, NZ +64-4-298-6117
>
>
>
>         Maryam Moazeni wrote:
>         > Hi Ajith,
>         >
>         > actually I meant something else, I think what u mentioned
>         here is a
>         > SimpleTypeRestriction which I think is handeled in
>         > processSimpleSchemaType(...), I'm not sure though. Please
>         correct me
>         > if I'm wrong.
>         >
>         > But what I asked is the case of Complex Content when:
>         >
>         > *restriction.getBaseTypeName() instanceof XmlSchemaSimpleType*
>         >
>         > For example:
>         >
>         > <simpleType name="x">
>         >       <restriction base="number">
>         >            <minExlusive value="0.0"/>
>         >            <maxExlusive value =" 100.0"/>
>         >       </restriction>
>         > </simpleType>
>         >
>         > <complexType name="y">
>         >     <complexContent>
>         >        *<restriction base="tns:x">*
>         > *          ....*
>         > *       *</restriction>
>         >      </complexContent>
>         > </complexType>
>         >
>         > I'd like to know what will happen in this case.
>         >
>         > Thanks,
>         > Maryam
>         >
>         >
>         > On 7/4/06, *Ajith Ranabahu* < [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED] >
>         > <mailto: [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>> wrote:
>         >
>         >     Hi Maryam,
>         >     What I thought as appropriate for the simple type is to
>         wrap the
>         >     necessary type in class and build the restriction logic
>         into that
>         >     class.
>         >     For example think of a restriction based on xs:string
>         with a pattern
>         >     like the following
>         >
>         >     <xs:simpleType name="myType">
>         >            <xs:restriction base="xs:string">
>         >                     <xs:pattern value="\d"/>
>         >            </xs:restriction>
>         >     </xs:simpleType>
>         >
>         >     for this I suggest we generate a class MyType that wraps a
>         >     java.lang.string. For the setter we can inserts a reg exp
>         based
>         >     checker that throws an exception (??) for a wrong value .
>         How does
>         >     that sound :)
>         >
>         >
>         >     Ajith
>         >
>         >     On 7/4/06, Maryam Moazeni <[EMAIL PROTECTED]
>         <mailto: [EMAIL PROTECTED]>
>         >     <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED] >>>
>         wrote:
>         >     >
>         >     > Hi all,
>         >     >
>         >     > Regarding the complex content restriction:
>         >     >
>         >     > In the case that the restriction base type is a complex
>         type,
>         >     the derived
>         >     > class overrides the getter and setter corresponding to
>         >     restricted elements,
>         >     > but how about when the restriction base type is a
>         simple type?
>         >     simple types
>         >     > doesn't have elements !!
>         >     >
>         >     > in the current implementation for the extension of a
>         simple
>         >     type, the
>         >     > derived class extends " org.apache.axiom.om.OMElement "
>         and its
>         >     elements are
>         >     > added to the class.
>         >     > but seems there's a different story for restriction.
>         >     >
>         >     > Any Thoughts?
>         >     >
>         >     > Thanks,
>         >     >
>         >     > Maryam
>         >     >
>         >     >
>         >     >
>         >     > >
>         >     > >
>         >     > >
>         >     > >
>         >     > >
>         >     > > Hi Ajith,
>         >     > >
>         >     > >
>         >     > > Thanks for sharing your thoughts,
>         >     > >
>         >     > > For (1), (2) I was thinking of what you mentioned.
>         So, you say we
>         >     > shouldn't have the
>         >     > > real Java inheritance here because of the existence of
>         >     primitive types,
>         >     > right?
>         >     > >
>         >     > >
>         >     > > Well, I have already started testing some simple
>         schemas with the
>         >     > XMLBeans. That seems to be the only source for me :)
>         >     > >
>         >     > > Thanks,
>         >     > >
>         >     > >
>         >     > > Maryam
>         >     > >
>         >     > >
>         >     > >
>         >     > >
>         >     > > On 6/22/06, Ajith Ranabahu < [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED] >
>         >     <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>> > wrote:
>         >     > >
>         >     > > > Hi Maryam,
>         >     > > > I've had the thoughts for the supporting of simple
>         content
>         >     extension
>         >     > > > and restriction and complex content restriction (We
>         already
>         >     support
>         >     > > > complex content extension partially)
>         >     > > >
>         >     > > > 1. simple content extension
>         >     > > > This should generate a seperate class that contains
>         the base
>         >     type as
>         >     > > > a field. for the variations, there would be  other
>         fields
>         >     generated
>         >     > > > into the class (say in the case of attributes).
>         Note that
>         >     extending
>         >     > > > the classes would not work since there can be java
>         >     primitives (like
>         >     > > > int and boolean) and even if mapped to a class the
>         class may
>         >     not be
>         >     > > > extensible (like the java.lang.String which is final)
>         >     > > >
>         >     > > > 2.  simple content restriction
>         >     > > > This should be the same as the extension case but
>         now it
>         >     would have
>         >     > > > conditions generated into the the setter method of
>         the base
>         >     field. Say
>         >     > > > in the case of enums there should be a list of
>         constants and the
>         >     > > > constants should be checked against the input value
>         when
>         >     setting the
>         >     > > > value. Similar check can be done for the regular
>         expressions.
>         >     > > >
>         >     > > > 3. Complex content restriction
>         >     > > >   Hmm... this is somewhat tricky. What I see is
>         that we can
>         >     extend
>         >     > > > the generated class just like for extension but
>         overrride
>         >     the setters
>         >     > > > depending on the restriction.
>         >     > > >
>         >     > > > One thing you can do is to see what XMLbeans does
>         for this.
>         >     Only thing
>         >     > > > is they generate classes all over the place (:)) and it
>         >     might be a bit
>         >     > > > hard to figure out what is what :)
>         >     > > >
>         >     > > > Others please add your thoughts into this.
>         >     > > >
>         >     > > > Ajith
>         >     > > >
>         >     > > > On 6/21/06, Maryam Moazeni < [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>         >     <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>
>         wrote:
>         >     > > > >
>         >     > > > >
>         >     > > > > Hi All,
>         >     > > > >
>         >     > > > > I'm doing a project for improving ADB for Google
>         Summer of
>         >     Code,
>         >     > > > > At this point, I'm trying to implement the
>         >     > > > >
>         >     > > > > Simple Content Restriction and Extension
>         >     > > > > Complex Content Restriction and Extension
>         >     > > > > I'd like to receive sugestions from Axis2
>         Developers for
>         >     implementing
>         >     > these
>         >     > > > > features.
>         >     > > > > Any suggestions?
>         >     > > > >
>         >     > > > > Thanks,
>         >     > > > >
>         >     > > > >
>         >     > > > > Maryam Moazeni
>         >     > > >
>         >     > > >
>         >     > > > --
>         >     > > > Ajith Ranabahu
>         >     > > >
>         >     > > >
>         >     >
>         >
>         ---------------------------------------------------------------------
>
>         >     > > > To unsubscribe, e-mail:
>         >     > [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>         >     <mailto: [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]> >
>         >     > > > For additional commands, e-mail:
>         [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>         >     <mailto: [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>
>         >     > > >
>         >     > > >
>         >     > >
>         >     > >
>         >     > >
>         >     >
>         >     >
>         >
>         >
>         >     --
>         >     Ajith Ranabahu
>         >
>         >
>         ---------------------------------------------------------------------
>
>         >     To unsubscribe, e-mail:
>         [EMAIL PROTECTED]
>         <mailto: [EMAIL PROTECTED]>
>         >     <mailto: [EMAIL PROTECTED]
>         <mailto: [EMAIL PROTECTED]>>
>         >     For additional commands, e-mail:
>         [EMAIL PROTECTED] <mailto: [EMAIL PROTECTED]>
>         >     <mailto:[EMAIL PROTECTED]
>         <mailto: [EMAIL PROTECTED]>>
>         >
>         >
>
>         ---------------------------------------------------------------------
>         To unsubscribe, e-mail: [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>         For additional commands, e-mail: [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to