[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xml-dev] Help regarding an XML attribute.
- From: Eddie Robertsson <eddie@allette.com.au>
- To: Vance Christiaanse <cintech@twcny.rr.com>
- Date: Mon, 17 Sep 2001 10:15:58 +1000
> I just meant "Do we all agree that the following is illegal according to the
> spec
>
> <xsd:complexType ...>
> <xsd:complexContent>
> <xsd:extension base="xsd:string">
> <xsd:attribute .../>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
>
> and the following legal
>
> <xsd:complexType ...>
> <xsd:simpleContent> <!-- Change 1 of 2 -->
> <xsd:extension base="xsd:string">
> <xsd:attribute .../>
> </xsd:extension>
> </xsd:simpleContent> <!-- Change 2 of 2 -->
> </xsd:complexType>
>
> since string is a simple type?"
Yes.
Cheers,
/Eddie
>
>
> Vance
>
> > -----Original Message-----
> > From: Eddie Robertsson [mailto:eddie@allette.com.au]
> > Sent: Tuesday, October 16, 2001 7:44 PM
> > To: Vance Christiaanse
> > Cc: Ronald Bourret; Wayne Steele; Huylanp@oceanwide.com;
> > xml-dev@lists.xml.org
> > Subject: Re: [xml-dev] Help regarding an XML attribute.
> >
> >
> > > > If the <complexContent> alternative is chosen, the type definition
> > > > ·resolved· to by the ·actual value· of the base [attribute] must be
> > > > a complex type definition;
> > >
> > > It now seems as though the definition earlier in this message is still
> > > incorrect and the following is correct:
> > >
> > > <xsd:complexType ...>
> > > <xsd:simpleContent> <!-- Change 1 of 2 -->
> > > <xsd:extension base="xsd:string">
> > > <xsd:attribute .../>
> > > </xsd:extension>
> > > </xsd:simpleContent> <!-- Change 2 of 2 -->
> > > </xsd:complexType>
> > >
> > > We all agree now that "extension" is correct and "restriction" is not
> > > correct.
> > >
> > > Do we also agree that "simpleContent" is correct and
> > "complexContent" is not
> > > correct?
> >
> > Well, I guess it depends on the use case but if the resulting
> > type should have
> > simple content then you use xs:simpleContent (when you want to
> > extend a simple
> > type by adding an attribute as in the above case). On the other
> > hand if you want
> > the resulting type to be complex you use xs:complexType.
> > Priscilla gave the
> > following example in a previous thread:
> >
> > <xs:complexType name="base">
> > <xs:sequence>
> > <xs:element name="child"/>
> > </xs:sequence>
> > <xs:attribute name="attr1" type="xs:integer"/>
> > </xs:complexType>
> >
> > <xs:complexType name="derived">
> > <xs:complexContent>
> > <xs:restriction base="base">
> > <xs:attribute name="attr1" type="xs:short" use="required"
> > default="1"/>
> > </xs:restriction>
> > </xs:complexContent>
> > </xs:complexType>
> >
> > Cheers,
> > /Eddie
> >
> > >
> > > Vance
> > >
> > > PS: I agree that both schemas below that XML Spy 4.0.1 accepted
> > are, indeed,
> > > illegal.
> > >
> > > > -----Original Message-----
> > > > From: Eddie Robertsson [mailto:eddie@allette.com.au]
> > > > Sent: Monday, October 15, 2001 11:35 PM
> > > > To: Vance Christiaanse
> > > > Cc: Ronald Bourret; Wayne Steele; Huylanp@oceanwide.com;
> > > > xml-dev@lists.xml.org
> > > > Subject: Re: [xml-dev] Help regarding an XML attribute.
> > > >
> > > >
> > > > > an attribute element is allowed
> > > > > within either a restriction element or an extension element that is
> > > > > within either a simpleContent element or a complexContent
> > > > element that is
> > > > > within a complexType element. (At least that's how I read it.)
> > > >
> > > > Yes, an attribute element is allowed within a restriction element
> > > > but _only_
> > > > if the type in the base attribute resolves to a complex type.
> > > > The spec [1] reads:
> > > >
> > > > "If the <simpleContent> alternative is chosen, the type
> > > > definition ·resolved·
> > > > to by the ·actual value· of the base [attribute] must be either a
> > > > complex type
> > > > definition whose {content type} is a simple type definition or,
> > > > only if the
> > > > <extension> alternative is also chosen, a simple type definition;"
> > > >
> > > > This says that the type resolved to by the base attribute can
> > only be a
> > > > simpleType if the extension alternative is chosen.
> > > >
> > > > > Both of the following are judged legal by XML Spy 4.0.1.
> > > > >
> > > > > In other words, I think my original schema is legal.
> > > >
> > > > I might be reading the spec wrong but I believe the schema below
> > > > is in error
> > > > and XML Spy is wrong.
> > > >
> > > > Cheers,
> > > > /Eddie
> > > >
> > > > [1]
> > > > http://www.w3.org/TR/xmlschema-1/#section-Constraints-on-XML-Repre
> > > > sentations-of-Complex-Type-Definitions
> > > >
> > > >
> > > >
> > > > > But I might agree that using simpleContent and extension is
> > probably the
> > > > > most intuitive way to write this.
> > > > >
> > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> > > > > elementFormDefault="qualified" attributeFormDefault="unqualified">
> > > > > <xs:element name="myOuter">
> > > > > <xs:complexType>
> > > > > <xs:complexContent>
> > > > > <xs:restriction base="xs:string">
> > > > > <xs:attribute name="color" type="xs:string"/>
> > > > > </xs:restriction>
> > > > > </xs:complexContent>
> > > > > </xs:complexType>
> > > > > </xs:element>
> > > > > </xs:schema>
> > > > >
> > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> > > > > elementFormDefault="qualified" attributeFormDefault="unqualified">
> > > > > <xs:element name="myOuter">
> > > > > <xs:complexType>
> > > > > <xs:simpleContent>
> > > > > <xs:restriction base="xs:string">
> > > > > <xs:attribute name="color" type="xs:string"/>
> > > > > </xs:restriction>
> > > > > </xs:simpleContent>
> > > > > </xs:complexType>
> > > > > </xs:element>
> > > > > </xs:schema>
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Eddie Robertsson [mailto:eddie@allette.com.au]
> > > > > > Sent: Monday, October 15, 2001 7:57 PM
> > > > > > To: Vance Christiaanse
> > > > > > Cc: Ronald Bourret; Wayne Steele; Huylanp@oceanwide.com;
> > > > > > xml-dev@lists.xml.org
> > > > > > Subject: Re: [xml-dev] Help regarding an XML attribute.
> > > > > >
> > > > > >
> > > > > > > <xsd:complexType ...>
> > > > > > > <xsd:complexContent>
> > > > > > > <xsd:restriction base="xsd:string">
> > > > > > > <xsd:attribute .../>
> > > > > > > </xsd:restriction>
> > > > > > > </xsd:complexContent>
> > > > > > > </xsd:complexType>
> > > > > >
> > > > > > Not exactly. To create a text only content complex type with
> > > > one or more
> > > > > > attributes you must _extend_ a simple type. So, the
> > correct definition
> > > > > > would be:
> > > > > >
> > > > > > <xsd:complexType ...>
> > > > > > <xsd:complexContent>
> > > > > > <xsd:extension base="xsd:string">
> > > > > > <xsd:attribute .../>
> > > > > > </xsd:extension>
> > > > > > </xsd:complexContent>
> > > > > > </xsd:complexType>
> > > > > >
> > > > > > Cheers,
> > > > > > /Eddie
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > > > -----Original Message-----
> > > > > > > > From: Ronald Bourret [mailto:rpbourret@rpbourret.com]
> > > > > > > > Sent: Monday, October 15, 2001 2:20 PM
> > > > > > > > To: Wayne Steele
> > > > > > > > Cc: Huylanp@Oceanwide.com; xml-dev@lists.xml.org
> > > > > > > > Subject: Re: [xml-dev] Help regarding an XML attribute.
> > > > > > > >
> > > > > > > >
> > > > > > > > Wayne Steele wrote:
> > > > > > > > >
> > > > > > > > > >From: Huy-Lan Phan <Huylanp@Oceanwide.com>
> > > > > > > > > ... I think only a complex element can have attributes ...
> > > > > > > > >
> > > > > > > > > You are correct. Only a complex element can have attributes.
> > > > > > > >
> > > > > > > > But don't forget that a complex type can have simple content.
> > > > > > > >
> > > > > > > > <complexType>
> > > > > > > > <simpleContent>
> > > > > > > > <restriction base="xsd:string" />
> > > > > > > > </simpleContent>
> > > > > > > > <attribute>...</attribute>
> > > > > > > > ...
> > > > > > > > </complexType>
> > > > > > > >
> > > > > > > > -- Ron
> > > > > > > >
> > > > > > > >
> > -----------------------------------------------------------------
> > > > > > > > The xml-dev list is sponsored by XML.org
> > <http://www.xml.org>, an
> > > > > > > > initiative of OASIS <http://www.oasis-open.org>
> > > > > > > >
> > > > > > > > The list archives are at
> > http://lists.xml.org/archives/xml-dev/
> > > > > > > >
> > > > > > > > To subscribe or unsubscribe from this elist use the
> > subscription
> > > > > > > > manager: <http://lists.xml.org/ob/adm.pl>
> > > > > > > >
> > > > > > >
> > > > > > >
> > -----------------------------------------------------------------
> > > > > > > The xml-dev list is sponsored by XML.org
> <http://www.xml.org>, an
> > > > > > initiative of OASIS <http://www.oasis-open.org>
> > > > > >
> > > > > > The list archives are at http://lists.xml.org/archives/xml-dev/
> > > > > >
> > > > > > To subscribe or unsubscribe from this elist use the subscription
> > > > > > manager: <http://lists.xml.org/ob/adm.pl>
> > > > >
> > > > >
> > >
> > >
> > > -----------------------------------------------------------------
> > > The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> > > initiative of OASIS <http://www.oasis-open.org>
> > >
> > > The list archives are at http://lists.xml.org/archives/xml-dev/
> > >
> > > To subscribe or unsubscribe from this elist use the subscription
> > > manager: <http://lists.xml.org/ob/adm.pl>
> > >
> >
> > -----------------------------------------------------------------
> > The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> > initiative of OASIS <http://www.oasis-open.org>
> >
> > The list archives are at http://lists.xml.org/archives/xml-dev/
> >
> > To subscribe or unsubscribe from this elist use the subscription
> > manager: <http://lists.xml.org/ob/adm.pl>
>
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
>
> The list archives are at http://lists.xml.org/archives/xml-dev/
>
> To subscribe or unsubscribe from this elist use the subscription
> manager: <http://lists.xml.org/ob/adm.pl>