CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Join Date
    Dec 2010
    Posts
    2

    xsd Validation-Warnings in PHP

    After hours I'm totally despaired.

    I like to validate a request against xsd.
    All validates correct but if load this into dom with php, then I get some warnings about an incorrect attribute:

    Warning: DOMDocument::loadXML() [domdocument.loadxml]: AttValue: " or ' expected in Entity, line: 6
    Warning: DOMDocument::loadXML() [domdocument.loadxml]: attributes construct error in Entity, line: 6
    Warning: DOMDocument::loadXML() [domdocument.loadxml]: Couldn't find end of Start Tag orderBy line 6
    ...


    This is the XML I like to recive:

    <request>
    <requestType>21</requestType>
    <requestData>
    <sessionID>012345</sessionID>
    <mitarbeiterID>35</mitarbeiterID>
    <orderBy direction="DESC">abc</orderBy>
    </requestData>
    </request>


    My xsd is this:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <xsd:annotation>
    <xsdocumentation xml:lang="de">
    Copyright 2010 Christian Waltjen for metapeople GmbH.
    </xsdocumentation>
    </xsd:annotation>

    <xsd:element name="request" type="request_def"></xsd:element>

    <xsd:complexType name="request_def">
    <xsd:sequence>
    <xsd:element name="requestType" type="requestTypeNumber_def" minOccurs="1" maxOccurs="1" />
    <xsd:element name="requestData" type="requestData_def" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="requestData_def">
    <xsd:choice>
    <xsd:group ref="LoginDataGroup" minOccurs="1" maxOccurs="1"></xsd:group>
    <xsd:group ref="AppDataGroup" minOccurs="1" maxOccurs="1"></xsd:group>
    </xsd:choice>
    </xsd:complexType>

    <xsd:simpleType name="requestTypeNumber_def">
    <xsd:restriction base="xsd:int">
    <xsd:enumeration value="0" />
    <xsd:enumeration value="11" />
    <xsd:enumeration value="12" />
    <xsd:enumeration value="13" />
    <xsd:enumeration value="21" />
    <xsd:enumeration value="22" />
    <xsd:enumeration value="31" />
    <xsd:enumeration value="32" />
    <xsd:enumeration value="33" />
    </xsd:restriction>
    </xsd:simpleType>

    <xsd:group name="LoginDataGroup">
    <xsd:choice>
    <xsd:sequence>
    <xsd:element name="loginname" type="xsd:string" />
    <xsd:element name="password" type="xsd:string" />
    </xsd:sequence>

    <xsd:sequence>
    <xsd:element name="password" type="xsd:string" />
    <xsd:element name="loginname" type="xsd:string" />
    </xsd:sequence>
    </xsd:choice>
    </xsd:group>

    <xsd:group name="AppDataGroup">
    <xsd:sequence>
    <xsd:element name="sessionID" type="xsd:string" minOccurs="1" maxOccurs="1" />
    <xsd:element name="mitarbeiterID" type="xsd:int" minOccurs="1" maxOccurs="1" />
    <xsd:choice minOccurs="0" maxOccurs="1">
    <xsd:group ref="PwdChangeGroup" />
    <xsd:group ref="TaskGroup" />
    <xsd:group ref="RangeGroup" />
    <xsd:group ref="FavTaskDataGroup" />
    </xsd:choice>
    <xsd:choice minOccurs="0" maxOccurs="1">
    <xsd:element name="orderBy" type="OrderByType" minOccurs="1" maxOccurs="1" />
    </xsd:choice>
    </xsd:sequence>
    </xsd:group>

    <xsd:group name="FavTaskDataGroup">
    <xsd:sequence>
    <xsd:element name="kostenstellen" type="KostenstellenListDef" minOccurs="1" maxOccurs="1" />
    </xsd:sequence>
    </xsd:group>

    <xsd:group name="PwdChangeGroup">
    <xsd:sequence>
    <xsd:element name="old_password" minOccurs="1" maxOccurs="1" />
    <xsd:element name="new_password" minOccurs="1" maxOccurs="1" />
    </xsd:sequence>
    </xsd:group>


    <xsd:group name="TaskGroup">
    <xsd:sequence>
    <xsd:element name="task" type="Task_def" minOccurs="1" maxOccurs="1" />
    </xsd:sequence>
    </xsd:group>

    <xsd:group name="RangeGroup">
    <xsd:sequence>
    <xsd:element name="range" type="Range_def" minOccurs="1" maxOccurs="1" />
    </xsd:sequence>
    </xsd:group>

    <xsd:complexType name="Task_def">
    <xsd:all>
    <xsd:element name="kostenstelleID" minOccurs="0" maxOccurs="1">
    <xsd:simpleType>
    <xsd:restriction base="xsd:int">
    <xsd:minExclusive value="0"></xsd:minExclusive>
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="projektID" minOccurs="0" maxOccurs="1">
    <xsd:simpleType>
    <xsd:restriction base="xsd:int">
    <xsd:minExclusive value="0"></xsd:minExclusive>
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="startDateTime" minOccurs="1" maxOccurs="1" type="xsdateTime">
    </xsd:element>
    <xsd:element name="endDateTime" minOccurs="1" maxOccurs="1" type="xsdateTime">
    </xsd:element>
    </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="Range_def">
    <xsd:all>
    <xsd:element name="startDateTime" minOccurs="1" maxOccurs="1" type="xsdateTime">
    </xsd:element>
    <xsd:element name="endDateTime" minOccurs="1" maxOccurs="1" type="xsdateTime">
    </xsd:element>
    </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="KostenstellenListDef">
    <xsd:choice maxOccurs="unbounded">
    <xsd:element name="kostenstellenID" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    <xsd:element name="projektID" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    </xsd:choice>
    </xsd:complexType>

    <xsd:simpleType name="boolean">
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="true"></xsd:enumeration>
    <xsd:enumeration value="false"></xsd:enumeration>
    <xsd:enumeration value="1"></xsd:enumeration>
    <xsd:enumeration value="0"></xsd:enumeration>
    </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="OrderByType">
    <xsd:simpleContent>
    <xsd:extension base="xsd:string">
    <xsd:attribute name="direction" use="required">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="DESC"></xsd:enumeration>
    <xsd:enumeration value="ASC"></xsd:enumeration>
    <xsd:enumeration value="desc"></xsd:enumeration>
    <xsd:enumeration value="asc"></xsd:enumeration>
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:attribute>
    </xsd:extension>
    </xsd:simpleContent>
    </xsd:complexType>

    </xsd:schema>

    Thanks for help.

  2. #2
    Join Date
    Dec 2010
    Posts
    2

    Re: xsd Validation-Warnings in PHP

    I had gotten quoted strings.

    A use of stripslashes() solved my problem.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured