rotovibe
02-29-2008, 11:44 AM
.NET 1.1
Working with the XmlValidatingReader object with an xsd in the XmlSchemCollection to validate a serialized version of a class.
I am getting this XmlSchemaException when I read through the stream to validate my XML.
"The 'TransactionMethod' element is not declared. An error occurred at , (22, 4)."
I am not an XSD expert and would like to get some feedback as to what may be the cause/solution of/for this exception. Included is an XSD that was generated from the actual class as well as the xml I am trying to validate.
---- XSD ----
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="urn:creditcardpaymentrequest-schema" xmlns="urn:creditcardpaymentrequest-schema" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="CreditCardPaymentRequest" nillable="true" type="CreditCardPaymentRequest" />
<xs:complexType name="CreditCardPaymentRequest">
<xs:complexContent mixed="false">
<xs:extension base="EPayPaymentRequest">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="CreditCard" type="CreditCard" />
<xs:element minOccurs="1" maxOccurs="1" name="AuthorizationOnly" type="xs:boolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EPayPaymentRequest" abstract="true">
<xs:complexContent mixed="false">
<xs:extension base="EPayTransactionRequest">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="IgnoreDuplicates" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringIndicator" type="xs:boolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EPayTransactionRequest" abstract="true">
<xs:complexContent mixed="false">
<xs:extension base="BaseEntity">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CustomerId" type="xs:int" />
<xs:element minOccurs="0" maxOccurs="1" name="CustomerNumber" type="xs:string" />
<xs:element minOccurs="1" maxOccurs="1" name="TransactionId" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="TransactionType" type="TransactionType" />
<xs:element minOccurs="0" maxOccurs="1" name="TransactionMethod" type="TransactionMethod" />
<xs:element minOccurs="1" maxOccurs="1" name="TransactionOrigin" type="TransactionOrigin" />
<xs:element minOccurs="1" maxOccurs="1" name="TransactionAmount" type="xs:decimal" />
<xs:element minOccurs="1" maxOccurs="1" name="ConvenienceFee" type="xs:decimal" />
<xs:element minOccurs="1" maxOccurs="1" name="ServiceOrderFee" type="xs:decimal" />
<xs:element minOccurs="1" maxOccurs="1" name="TotalAmount" type="xs:decimal" />
<xs:element minOccurs="1" maxOccurs="1" name="WaiveMinimumAmount" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="WaiveConvenienceFee" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="WaiveServiceOrderFee" type="xs:boolean" />
<xs:element minOccurs="0" maxOccurs="1" name="ContactName" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="ContactNumber" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="Note" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BaseEntity" abstract="true">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="DataStatus" type="EntityDataStatus" />
<xs:element minOccurs="0" maxOccurs="1" name="OldChangedValues" type="ArrayOfKeyValue" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="EntityDataStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="NewItem" />
<xs:enumeration value="NewModified" />
<xs:enumeration value="Modified" />
<xs:enumeration value="NotModified" />
<xs:enumeration value="Deleted" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ArrayOfKeyValue">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValue" nillable="true" type="KeyValue" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="KeyValue">
<xs:complexContent mixed="false">
<xs:extension base="BaseEntity">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Key" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="Value" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType id="TransactionMethod" name="TransactionMethod" abstract="true">
<xs:complexContent mixed="false">
<xs:extension base="BaseEntity">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CustomerId" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="AccountId" type="xs:int" />
<xs:element minOccurs="0" maxOccurs="1" name="AccountNumber" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="AccountLastFour" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="NameOnAccount" type="xs:string" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringIndicator" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringDocumentReceivedDate" type="xs:dateTime" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringStartDate" type="xs:dateTime" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringEndDate" type="xs:dateTime" />
<xs:element minOccurs="1" maxOccurs="1" name="ArEPayStatusId" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="UpdateDate" type="xs:dateTime" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CreditCard">
<xs:complexContent mixed="false">
<xs:extension base="TransactionMethod">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CardType" type="CreditCardType" />
<xs:element minOccurs="1" maxOccurs="1" name="ExpirationDate" type="xs:dateTime" />
<xs:element minOccurs="0" maxOccurs="1" name="BillingZipCode" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="CreditCardType">
<xs:restriction base="xs:string">
<xs:enumeration value="Visa" />
<xs:enumeration value="MasterCard" />
<xs:enumeration value="Discover" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TransactionType">
<xs:restriction base="xs:string">
<xs:enumeration value="Payment" />
<xs:enumeration value="PaymentForReconnect" />
<xs:enumeration value="PaymentForRestore" />
<xs:enumeration value="Refund" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TransactionOrigin">
<xs:restriction base="xs:string">
<xs:enumeration value="Collections" />
<xs:enumeration value="BillStub" />
<xs:enumeration value="WalkIn" />
<xs:enumeration value="Recurring" />
<xs:enumeration value="AdvancePayment" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
--- XML TO VALIDATE ---
<?xml version="1.0" encoding="utf-8"?>
<CreditCardPaymentRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DataStatus>NewModified</DataStatus>
<OldChangedValues />
<CustomerId>11270</CustomerId>
<CustomerNumber>119931004</CustomerNumber>
<TransactionId>0</TransactionId>
<TransactionType>Payment</TransactionType>
<TransactionOrigin>BillStub</TransactionOrigin>
<TransactionAmount>31</TransactionAmount>
<ConvenienceFee>0</ConvenienceFee>
<ServiceOrderFee>0</ServiceOrderFee>
<TotalAmount>31</TotalAmount>
<WaiveMinimumAmount>false</WaiveMinimumAmount>
<WaiveConvenienceFee>false</WaiveConvenienceFee>
<WaiveServiceOrderFee>false</WaiveServiceOrderFee>
<ContactName>STEVE SMITH</ContactName>
<ContactNumber>9034547688</ContactNumber>
<IgnoreDuplicates>false</IgnoreDuplicates>
<RecurringIndicator>false</RecurringIndicator>
<AuthorizationOnly>false</AuthorizationOnly>
<TransactionMethod xsi:type="TransactionMethod">
<DataStatus>NewModified</DataStatus>
<OldChangedValues />
<CustomerId>11270</CustomerId>
<AccountId>0</AccountId>
<AccountNumber>5454545454545454</AccountNumber>
<AccountLastFour>5454</AccountLastFour>
<NameOnAccount>Test User</NameOnAccount>
<RecurringIndicator>false</RecurringIndicator>
<RecurringDocumentReceivedDate>0001-01-01T00:00:00.0000000-06:00</RecurringDocumentReceivedDate>
<RecurringStartDate>0001-01-01T00:00:00.0000000-06:00</RecurringStartDate>
<RecurringEndDate>0001-01-01T00:00:00.0000000-06:00</RecurringEndDate>
<ArEPayStatusId>0</ArEPayStatusId>
<UpdateDate>0001-01-01T00:00:00.0000000-06:00</UpdateDate>
<CardType>MasterCard</CardType>
<ExpirationDate>2010-10-10T00:00:00.0000000-05:00</ExpirationDate>
<BillingZipCode>77777</BillingZipCode>
</TransactionMethod>
<CreditCard xsi:type="CreditCard">
<DataStatus>NewModified</DataStatus>
<OldChangedValues />
<CustomerId>11270</CustomerId>
<AccountId>0</AccountId>
<AccountNumber>5454545454545454</AccountNumber>
<AccountLastFour>5454</AccountLastFour>
<NameOnAccount>Test User</NameOnAccount>
<RecurringIndicator>false</RecurringIndicator>
<RecurringDocumentReceivedDate>0001-01-01T00:00:00.0000000-06:00</RecurringDocumentReceivedDate>
<RecurringStartDate>0001-01-01T00:00:00.0000000-06:00</RecurringStartDate>
<RecurringEndDate>0001-01-01T00:00:00.0000000-06:00</RecurringEndDate>
<ArEPayStatusId>0</ArEPayStatusId>
<UpdateDate>0001-01-01T00:00:00.0000000-06:00</UpdateDate>
<CardType>MasterCard</CardType>
<ExpirationDate>2010-10-10T00:00:00.0000000-05:00</ExpirationDate>
<BillingZipCode>77777</BillingZipCode>
</CreditCard>
</CreditCardPaymentRequest>
thanks!
Working with the XmlValidatingReader object with an xsd in the XmlSchemCollection to validate a serialized version of a class.
I am getting this XmlSchemaException when I read through the stream to validate my XML.
"The 'TransactionMethod' element is not declared. An error occurred at , (22, 4)."
I am not an XSD expert and would like to get some feedback as to what may be the cause/solution of/for this exception. Included is an XSD that was generated from the actual class as well as the xml I am trying to validate.
---- XSD ----
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="urn:creditcardpaymentrequest-schema" xmlns="urn:creditcardpaymentrequest-schema" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="CreditCardPaymentRequest" nillable="true" type="CreditCardPaymentRequest" />
<xs:complexType name="CreditCardPaymentRequest">
<xs:complexContent mixed="false">
<xs:extension base="EPayPaymentRequest">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="CreditCard" type="CreditCard" />
<xs:element minOccurs="1" maxOccurs="1" name="AuthorizationOnly" type="xs:boolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EPayPaymentRequest" abstract="true">
<xs:complexContent mixed="false">
<xs:extension base="EPayTransactionRequest">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="IgnoreDuplicates" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringIndicator" type="xs:boolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EPayTransactionRequest" abstract="true">
<xs:complexContent mixed="false">
<xs:extension base="BaseEntity">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CustomerId" type="xs:int" />
<xs:element minOccurs="0" maxOccurs="1" name="CustomerNumber" type="xs:string" />
<xs:element minOccurs="1" maxOccurs="1" name="TransactionId" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="TransactionType" type="TransactionType" />
<xs:element minOccurs="0" maxOccurs="1" name="TransactionMethod" type="TransactionMethod" />
<xs:element minOccurs="1" maxOccurs="1" name="TransactionOrigin" type="TransactionOrigin" />
<xs:element minOccurs="1" maxOccurs="1" name="TransactionAmount" type="xs:decimal" />
<xs:element minOccurs="1" maxOccurs="1" name="ConvenienceFee" type="xs:decimal" />
<xs:element minOccurs="1" maxOccurs="1" name="ServiceOrderFee" type="xs:decimal" />
<xs:element minOccurs="1" maxOccurs="1" name="TotalAmount" type="xs:decimal" />
<xs:element minOccurs="1" maxOccurs="1" name="WaiveMinimumAmount" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="WaiveConvenienceFee" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="WaiveServiceOrderFee" type="xs:boolean" />
<xs:element minOccurs="0" maxOccurs="1" name="ContactName" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="ContactNumber" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="Note" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BaseEntity" abstract="true">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="DataStatus" type="EntityDataStatus" />
<xs:element minOccurs="0" maxOccurs="1" name="OldChangedValues" type="ArrayOfKeyValue" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="EntityDataStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="NewItem" />
<xs:enumeration value="NewModified" />
<xs:enumeration value="Modified" />
<xs:enumeration value="NotModified" />
<xs:enumeration value="Deleted" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ArrayOfKeyValue">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValue" nillable="true" type="KeyValue" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="KeyValue">
<xs:complexContent mixed="false">
<xs:extension base="BaseEntity">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Key" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="Value" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType id="TransactionMethod" name="TransactionMethod" abstract="true">
<xs:complexContent mixed="false">
<xs:extension base="BaseEntity">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CustomerId" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="AccountId" type="xs:int" />
<xs:element minOccurs="0" maxOccurs="1" name="AccountNumber" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="AccountLastFour" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="NameOnAccount" type="xs:string" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringIndicator" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringDocumentReceivedDate" type="xs:dateTime" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringStartDate" type="xs:dateTime" />
<xs:element minOccurs="1" maxOccurs="1" name="RecurringEndDate" type="xs:dateTime" />
<xs:element minOccurs="1" maxOccurs="1" name="ArEPayStatusId" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="UpdateDate" type="xs:dateTime" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CreditCard">
<xs:complexContent mixed="false">
<xs:extension base="TransactionMethod">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CardType" type="CreditCardType" />
<xs:element minOccurs="1" maxOccurs="1" name="ExpirationDate" type="xs:dateTime" />
<xs:element minOccurs="0" maxOccurs="1" name="BillingZipCode" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="CreditCardType">
<xs:restriction base="xs:string">
<xs:enumeration value="Visa" />
<xs:enumeration value="MasterCard" />
<xs:enumeration value="Discover" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TransactionType">
<xs:restriction base="xs:string">
<xs:enumeration value="Payment" />
<xs:enumeration value="PaymentForReconnect" />
<xs:enumeration value="PaymentForRestore" />
<xs:enumeration value="Refund" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TransactionOrigin">
<xs:restriction base="xs:string">
<xs:enumeration value="Collections" />
<xs:enumeration value="BillStub" />
<xs:enumeration value="WalkIn" />
<xs:enumeration value="Recurring" />
<xs:enumeration value="AdvancePayment" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
--- XML TO VALIDATE ---
<?xml version="1.0" encoding="utf-8"?>
<CreditCardPaymentRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DataStatus>NewModified</DataStatus>
<OldChangedValues />
<CustomerId>11270</CustomerId>
<CustomerNumber>119931004</CustomerNumber>
<TransactionId>0</TransactionId>
<TransactionType>Payment</TransactionType>
<TransactionOrigin>BillStub</TransactionOrigin>
<TransactionAmount>31</TransactionAmount>
<ConvenienceFee>0</ConvenienceFee>
<ServiceOrderFee>0</ServiceOrderFee>
<TotalAmount>31</TotalAmount>
<WaiveMinimumAmount>false</WaiveMinimumAmount>
<WaiveConvenienceFee>false</WaiveConvenienceFee>
<WaiveServiceOrderFee>false</WaiveServiceOrderFee>
<ContactName>STEVE SMITH</ContactName>
<ContactNumber>9034547688</ContactNumber>
<IgnoreDuplicates>false</IgnoreDuplicates>
<RecurringIndicator>false</RecurringIndicator>
<AuthorizationOnly>false</AuthorizationOnly>
<TransactionMethod xsi:type="TransactionMethod">
<DataStatus>NewModified</DataStatus>
<OldChangedValues />
<CustomerId>11270</CustomerId>
<AccountId>0</AccountId>
<AccountNumber>5454545454545454</AccountNumber>
<AccountLastFour>5454</AccountLastFour>
<NameOnAccount>Test User</NameOnAccount>
<RecurringIndicator>false</RecurringIndicator>
<RecurringDocumentReceivedDate>0001-01-01T00:00:00.0000000-06:00</RecurringDocumentReceivedDate>
<RecurringStartDate>0001-01-01T00:00:00.0000000-06:00</RecurringStartDate>
<RecurringEndDate>0001-01-01T00:00:00.0000000-06:00</RecurringEndDate>
<ArEPayStatusId>0</ArEPayStatusId>
<UpdateDate>0001-01-01T00:00:00.0000000-06:00</UpdateDate>
<CardType>MasterCard</CardType>
<ExpirationDate>2010-10-10T00:00:00.0000000-05:00</ExpirationDate>
<BillingZipCode>77777</BillingZipCode>
</TransactionMethod>
<CreditCard xsi:type="CreditCard">
<DataStatus>NewModified</DataStatus>
<OldChangedValues />
<CustomerId>11270</CustomerId>
<AccountId>0</AccountId>
<AccountNumber>5454545454545454</AccountNumber>
<AccountLastFour>5454</AccountLastFour>
<NameOnAccount>Test User</NameOnAccount>
<RecurringIndicator>false</RecurringIndicator>
<RecurringDocumentReceivedDate>0001-01-01T00:00:00.0000000-06:00</RecurringDocumentReceivedDate>
<RecurringStartDate>0001-01-01T00:00:00.0000000-06:00</RecurringStartDate>
<RecurringEndDate>0001-01-01T00:00:00.0000000-06:00</RecurringEndDate>
<ArEPayStatusId>0</ArEPayStatusId>
<UpdateDate>0001-01-01T00:00:00.0000000-06:00</UpdateDate>
<CardType>MasterCard</CardType>
<ExpirationDate>2010-10-10T00:00:00.0000000-05:00</ExpirationDate>
<BillingZipCode>77777</BillingZipCode>
</CreditCard>
</CreditCardPaymentRequest>
thanks!