Hello. I've downloaded and installed the snapshot as of today (8/31/2009) and, using the designer:

1. Used Import->XML Schema as Relational Source Model

2. Selected Document over HTTP with no request parameters

3. Selected No Catalog

4. Chose "File System" as source of XML Schema (inlined below)

5. Chose "client" (I've tried w/"clients" as well) as the root element and "Finish"

6. Create a "purchasing" View Model and, with "purchasing" selected, created an "example" BaseTable. I then drag-and-drop "client" from clients.xmi Source Model into SOURCES pane. (This View abstraction turns out not to be the problem -- I query the Source via the Execute'd VDB with the same outcome.)

7. Created a "billing" vdb, cleaned, built, and synchronized.

8. Then, with this data served up by apache:

<?xml version="1.0" encoding="UTF-8"?>
<clients>
  <client>
    <name>acme</name>
    <rate>15</rate>
  </client>
  <client>
    <name>toolwerks</name>
    <rate>20</rate>
  </client>
</clients>

I issued the following query:

select * from clients.client

and received the expected result:

null;acme;15
null;toolwerks;20

9. Then I did this:

select * from clients.client where name = 'acme'

and received *two rows*:

null;acme;15
null;toolwerks;20

10. So I did this:

select * from clients.client where name != 'acme' 

and received the expected one row:

null;toolwerks;20

???

Is there something goofy with the equality operator against XML data? Is there flag that needs flipped on these attributes? I went with the "string" mapping on the 'XML Schema as Relational Source Model' dialog wizard (pane 4 IIRC). Oughtn't I have? I also changed XML node names that might have been SQL keywords ('name' -> 'fullname') but no dice...

Thoughts? 

- Mike

Schema:

<?xml version="1.0"?>

  <!-- our client database -->

  <xs:element name="clients">
  
    <xs:complexType>
      <xs:sequence>

        <!-- the client -->
              
        <xs:element name="client" minOccurs="1" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>

              <!-- client name -->

              <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>

              <!-- bill rate -->

              <xs:element name="rate" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:minInclusive value="50"/>
                    <xs:maxInclusive value="250"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>

            </xs:sequence>

          </xs:complexType>

        </xs:element>

      </xs:sequence>
    </xs:complexType>

  </xs:element>
</xs:schema>