Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: ID and IDREF

From: "geoff" <nospam@------.--->
To: 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/ 




transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent