Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
XML
data.xmlanalysis
mappoint.webservice
msf
msxml-webrelease
netmyservices.sdk
passport.sdk
soap
soapsdk
uddi.general
uddi.programming
uddi.specification
xml
xmlsqlwebrelease
xsl
  
 
date: Wed, 11 Jun 2008 05:43:26 -0700 (PDT),    group: microsoft.public.xml        back       


Validate Xml document   
I have input XML Document:

<?xml version="1.0"?>
<ediroot>
    <interchange Standard="EDIFACT" Date="080403" Time="1422">
        <sender>
            <address Id="5400102000086" Qual="14"/>
        </sender>
        <receiver>
            <address Id="5425007009989" Qual="14"/>
        </receiver>
        <group>
            <transaction Control="1" DocType="ORDERS" Version="D"
Release="96A" Agency="UN" Association="EAN008" Name="Purchase Order
Message">

                <segment Id="DTM">
                    <element Id="DTM01" Composite="yes">
                        <subelement Sequence="1">2</subelement>
                        <subelement Sequence="2">200804080700</
subelement>
                        <subelement Sequence="3">203</subelement>
                    </element>
                </segment>
                <segment Id="DTM">
                    <element Id="DTM01" Composite="yes">
                        <subelement Sequence="1">137</subelement>
                        <subelement Sequence="2">200804031422</
subelement>
                        <subelement Sequence="3">203</subelement>
                    </element>
                </segment>
                <loop Id="SG02">
                    <segment Id="NAD">
                        <element Id="NAD01">BCO</element>
                        <element Id="NAD02" Composite="yes">
                            <subelement Sequence="1">5400102000086</
subelement>
                            <subelement Sequence="3">9</subelement>
                        </element>
                    </segment>
                </loop>
            </transaction>
        </group>
    </interchange>
</ediroot>


This Xsd that  used to validate xml Document

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
  <xs:element name="ediroot">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="interchange"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="interchange">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="sender"/>
        <xs:element ref="receiver"/>
        <xs:element ref="group"/>
      </xs:sequence>
      <xs:attribute name="Date" use="required" type="xs:integer"/>
      <xs:attribute name="Standard" use="required" type="xs:NCName"/>
      <xs:attribute name="Time" use="required" type="xs:integer"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="sender" type="address"/>
  <xs:element name="receiver" type="address"/>
  <xs:element name="group">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="transaction"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="transaction">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="segment"/>
        <xs:element ref="loop"/>
      </xs:sequence>
      <xs:attribute name="Agency" use="required" type="xs:NCName"/>
      <xs:attribute name="Association" use="required" type="xs:NCName"/
>
      <xs:attribute name="Control" use="required" type="xs:integer"/>
      <xs:attribute name="DocType" use="required" type="xs:NCName"/>
      <xs:attribute name="Name" use="required"/>
      <xs:attribute name="Release" use="required" type="xs:NMTOKEN"/>
      <xs:attribute name="Version" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="loop">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="segment"/>
      </xs:sequence>
      <xs:attribute name="Id" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="address">
    <xs:sequence>
      <xs:element ref="address"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="address">
    <xs:complexType>
      <xs:attribute name="Id" use="required" type="xs:integer"/>
      <xs:attribute name="Qual" use="required" type="xs:integer"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="segment">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="element"/>
      </xs:sequence>
      <xs:attribute name="Id" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="element">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded"
ref="subelement"/>
      </xs:sequence>
      <xs:attribute name="Composite" type="xs:NCName"/>
      <xs:attribute name="Id" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="subelement">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:integer">
          <xs:attribute name="Sequence" use="required"
type="xs:integer"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
</xs:schema>

I need to validate segment Id="DTM" where (Sequence="1")= 137 Or 138
date: Wed, 11 Jun 2008 05:43:26 -0700 (PDT)   author:   unknown

Re: Validate Xml document   
heshamelesawy@gmail.com wrote:

> I need to validate segment Id="DTM" where (Sequence="1")= 137 Or 138

I don't understand what you want to achieve. Do you want to know whether 
the schema can be changed to specify the constraint you are trying to 
formulate above?

-- 

	Martin Honnen --- MVP XML
	http://JavaScript.FAQTs.com/
date: Wed, 11 Jun 2008 14:56:55 +0200   author:   Martin Honnen

Re: Validate Xml document   
On Jun 11, 2:56 pm, Martin Honnen  wrote:

> I don't understand what you want to achieve. Do you want to know whether
> the schema can be changed to specify the constraint you are trying to
> formulate above?
>

i need to change the schema
to validate the <subelement Sequence="1">137</subelement>
where the valid values are 137 Or 138
date: Wed, 11 Jun 2008 06:27:58 -0700 (PDT)   author:   unknown

Re: Validate Xml document   
heshamelesawy@gmail.com wrote:

> i need to change the schema
> to validate the <subelement Sequence="1">137</subelement>
> where the valid values are 137 Or 138

You can restrict subelement to contain only the values 137 or 138 but 
not depending on the Sequence attribute value. Such constraints where an 
element values depends on an attribute value are not possible in the W3C 
XML schema language.

-- 

	Martin Honnen --- MVP XML
	http://JavaScript.FAQTs.com/
date: Wed, 11 Jun 2008 15:41:48 +0200   author:   Martin Honnen

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us