You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@xmlbeans.apache.org by jdoody <jo...@cingular.com> on 2007/01/16 22:49:32 UTC

selectPath query expression - no matches for XPath without prefix

I'm unable to find any matches for the following XPath (reference schema and
instance documents listed below):

/MASTER_RECORD/DETAIL_RECORD/ACCOUNT_NUMBER

query expression: $this/MASTER_RECORD/DETAIL_RECORD/ACCOUNT_NUMBER  

I tried a number of different namespace declarations with the above
expression, but none worked.  Additionally, I tried a number of XmlOptions
such as follows:

            XmlOptions Xoptions= new XmlOptions();
            Map map = new HashMap();
            map.put("prep", "");
            map.put("http://order.rd.com/Namespaces/Types/Public/prep.xsd",
null);
            Xoptions.setLoadAdditionalNamespaces(map);

XmlBeans apparently has created a default prefix of 'prep'.  I'm not sure
why?  If I change my original XPath to 

/prep:MASTER_RECORD/prep:DETAIL_RECORD/prep:ACCOUNT_NUMBER

and change the query expression for the selectPath as follows:

declare namespace
prep='http://order.rd.com/Namespaces/Types/Public/prep.xsd';$this/prep:MASTER_RECORD/prep:DETAIL_RECORD/prep:ACCOUNT_NUMBER

Then the XPath is resolved.  The input XML document does not include the
'prep' prefix.  So how can I avoid using the 'prep' prefix in my XPath and
how would I declare my namespace?

Reference XSDs:

prep.xsd:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema
targetNamespace="http://order.rd.com/Namespaces/Types/Public/prep.xsd"
xmlns="http://order.rd.com/Namespaces/Types/Public/prep.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tlg="http://order.rd.com/Namespaces/Types/Public/tlg.xsd"
elementFormDefault="qualified" version="v001">
	<xs:import namespace="http://order.rd.com/Namespaces/Types/Public/tlg.xsd"
schemaLocation="tlg.xsd"/>
	<xs:element name="MASTER_RECORD">
		<xs:annotation>
			<xs:documentation>Root Element</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="DETAIL_RECORD">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="ACCOUNT_NUMBER" type="TAccountNumber"/>
										<xs:element name="ACCOUNT_DETAIL" type="tlg:ACCOUNT">
											<xs:annotation>
												<xs:documentation>Root of tlg ACCOUNT</xs:documentation>
											</xs:annotation>
										</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="TAccountNumber">
		<xs:restriction base="xs:string">
			<xs:maxLength value="16"/>
			<xs:minLength value="5"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>

tlg.xsd:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns="http://order.rd.com/Namespaces/Types/Public/tlg.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://order.rd.com/Namespaces/Types/Public/tlg.xsd"
elementFormDefault="unqualified" attributeFormDefault="unqualified"
version="1.1.00">
	<xs:complexType name="ACCOUNT">
		<xs:sequence>
				<xs:element ref="PURCHASE_ORD_NO" minOccurs="0"/>
				<xs:element ref="INVOICE_NO" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>	
	<xs:element name="PURCHASE_ORD_NO">
		<xs:complexType mixed="true">
			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="INVOICE_NO">
		<xs:complexType mixed="true">
			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
		</xs:complexType>
	</xs:element>	
</xs:schema>

Reference XML:

<?xml version="1.0" encoding="UTF-8"?>
<MASTER_RECORD xmlns="http://order.rd.com/Namespaces/Types/Public/prep.xsd"
xmlns:tlg="http://order.rd.com/Namespaces/Types/Public/tlg.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<DETAIL_RECORD>
		<ACCOUNT_NUMBER>String</ACCOUNT_NUMBER>
		<ACCOUNT_DETAIL>
			<tlg:PURCHASE_ORD_NO>Text</tlg:PURCHASE_ORD_NO>
			<tlg:INVOICE_NO>Text</tlg:INVOICE_NO>
		</ACCOUNT_DETAIL>
	</DETAIL_RECORD>
</MASTER_RECORD>

Thanks.

-- 
View this message in context: http://www.nabble.com/selectPath-query-expression---no-matches-for-XPath-without-prefix-tf3023773.html#a8399787
Sent from the Xml Beans - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org