Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - Re: ID and IDREF [Thread Next] Re: ID and IDREFTo: NULL Date: 12/2/2007 1:45:00 PM
Interesting, here is the po.xsd (this is included in the invoiceschema.xsd
which is used by po.xml, I put them in separate messages):
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.skatestown.com/ns/po"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.skatestown.com/ns/po">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Purchase order schema for SkatesTown.
</xsd:documentation>
</xsd:annotation>
<xsd:element name="po" type="poType"/>
<xsd:complexType name="poType">
<xsd:sequence>
<xsd:element name="billTo" type="addressType"/>
<xsd:element name="shipTo" type="addressType"/>
<xsd:element name="order">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="item" type="itemType"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" use="required"
type="xsd:positiveInteger"/>
<xsd:attribute name="submitted" use="required"
type="xsd:date"/>
<xsd:attribute name="customerId" use="required"
type="xsd:positiveInteger"/>
</xsd:complexType>
<xsd:complexType name="addressType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="0"/>
<xsd:element name="company" type="xsd:string" minOccurs="0"/>
<xsd:element name="street" type="xsd:string"
maxOccurs="unbounded"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string" minOccurs="0"/>
<xsd:element name="postalCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="country" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID"/>
<xsd:attribute name="href" type="xsd:IDREF"/>
</xsd:complexType>
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element name="description" type="xsd:string"
minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="sku" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{3}-[A-Z]{2}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="quantity" use="required"
type="xsd:positiveInteger"/>
</xsd:complexType>
</xsd:schema>
"Martin Honnen" <mahotrash@y...> wrote in message
news:4752b347$0$4371$9b4e6d93@n......
> geoff wrote:
>
>> Why does this not work:
>>
>> <billTo id="addr-1">
>> <company>The Skateboard Warehouse</company>
>> <street>One Warehouse Park</street>
>> <street>Building 17</street>
>> <city>Boston</city>
>> <state>MA</state>
>> <postalCode>01775</postalCode>
>> </billTo>
>>
>> <shipTo href="addr-1"/>
>>
>> . . . billTo and shipTo are defined as the same in the schema and I
>> included the following in the schema definition:
>>
>> <xsd:attribute name="id" type="xsd:ID"/>
>> <xsd:attribute name="href" type="xsd:IDREF"/>
>>
>> . . . however, xml notepad says, 'the element shipTo has incomplete
>> contents'. If I populate shipTo with the same info as billTo, it works
>> fine but the referencing of billTo does not seem to work or is it a
>> limitation of xml notepad?
>
> If the schema for shipTo defines child elements then you have to include
> those child elements literally. There is no way to include them using a
> link mechanism, that is not how XSD schemas work.
> All ID/IDREF allow you is to refer to other components for instance
> <address id="addr1">
> <company>The Skateboard Warehouse</company>
> <street>One Warehouse Park</street>
> <street>Building 17</street>
> <city>Boston</city>
> <state>MA</state>
> <postalCode>01775</postalCode>
> </address>
>
> <billTo href="addr1"/>
> <shipTo href="addr1"/>
> but then the schema would not define child elements for billTo and shipTo,
> it would just define the attribute and its type.
>
>
> --
>
> Martin Honnen
> http://JavaScript.FAQTs.com/
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
