0
我以爲我正確地創建了這個XSD,但是當我在Visual Studio上運行它來驗證它時。它聲稱它無法找到這些屬性,儘管它們在我的XSD文件中有明確的定義。我在這裏做錯了什麼?在XSD中定義的XML屬性沒有正確驗證
這裏是我的XML:
<LetterFile>
<Letter RequestID="" Type="" CertifiedMail="">
<Account accountID="" interestBalance="" ACCOUNTNUMBER="" DATEDUE="" RecordDate="" accountNumberExternal="" amountDueEscrow="" amountDueFees="" AMOUNTDUELATECHARGESOTHER="" TotalPieDue="" TotallDue="" TotalLegalFeesDue="" amountDueInterest="" AMOUNTDUELATECHARGES=""
amountDueOther="" AMOUNTDUEFEESOTHER="" AMOUNTDUEPRINCIPALINTERESTESCROW="" autopayAccount="" BALCUSTOMER="" BALCUSTOMERORIGINAL="" balUnapplied="" bankLogoPath="" BANKID="" BANKNAME="" BANKNAMEORIGINAL="" BORROWERPRIMARY="" BORROWERSALLINLINE=""
ALLBORROWERSINLINE="" BORROWERSALLADDRESSESINLINE="" BANKSERVICING="" BANKANDSERVICINGNAMEWITHMERGER="" CONTACTADDRESS="" contactEmail="" CONTACTNAME="" CONTACTPHONE="" contactTitle="" DATE="" DATE_x002B_45="" DATEDUE_x002B_1="" DATEDUE_x002B_30=""
DATEOPENED="" DAY="" DAYSDELINQUENT="" dt="" DATELASTPAID="" foreclosureSheriffSaleDate="" INVESTORPHONE="" LETTERHEAD="" MONTH="" PAYMENTAMOUNT="" paymentAmountIncludingLateCharges="" promiseDateLast="" PROPERTYADDRESSINLINE="" propertyCity="" propertyState=""
propertyStreet="" propertyZip="" rate="" revolvingType="" soldMortgageDelqType="" totalDue="" YEAR="" DATEDUELAST="" LASTPAIDINSTALLMENT="" CUSTOM.ORIGINALBALANCE="" PrincipalOriginal="" PrincipalBalance="" NumberOfMonthsPastDue="" MONTHSDELINQUENT=""
INVESTORNAME="" CUSTOM.FEDERALLYRELATED="" Custom.LienPosition="" CUSTOM.BANKORIGINATING="" TOTALDUEMINUSUNAPPLIED="" CONTACTSIGNATURE="" MAILINGADDRESS="" MAILINGTITLE="" CUSTOM.ALLOWNERS="" CUSTOM.ALLOWNERSINLINE="" TOTALDUEPLUSLEGAL="" MAILINGCC=""
CUSTOM.PACREDITCOUNSELING="" ALLOWNERSADDRESSESNETBORROWERS="" ALLOWNERSNETBORROWERS="">
<PaymentHistory Count="" BeginningDate="" EndingDate="" NoHistoryMessage="">
<Payment EffectiveDate="" ProcessedDate="" Description="" PrincipalAmount="" InterestAmount="" TotalAmount="" />
</PaymentHistory>
<LoanActivity accountID="" dateProcessed="" amtAdjustment="" amtEscrow="" amtFee="" amtInsurance="" amtInterest="" amtLateCharge="" amtPartial="" amtPrincipal="" amtTotal="" amtUnapplied="" amtOther="">
<b customData="" />
</LoanActivity>
</Account>
</Letter>
</LetterFile>
這裏是我的XSD:
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="http://fult.com/FFCLetters.xsd" elementFormDefault="qualified" xmlns="http://fult.com/FFCLetters.xsd" xmlns:mstns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:attributeGroup name="AG_Address">
<xs:annotation>
<xs:documentation>
Property Address
</xs:documentation>
</xs:annotation>
<xs:attribute name="Address1" type="xs:string" use="required" />
<xs:attribute name="Address2" type="xs:string" use="optional" />
<xs:attribute name="City" type="xs:string" use="required" />
<xs:attribute name="State" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2" />
<xs:minLength value="2" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ZIP" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
<xs:minLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="CreditAuthority" use="optional" type="xs:string" />
</xs:attributeGroup>
<xs:attributeGroup name="AG_Person">
<xs:annotation>
<xs:documentation>
Property Owner Information
</xs:documentation>
</xs:annotation>
<xs:attribute name="Name" use="required" type="xs:string"></xs:attribute>
<xs:attribute name="TaxID" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="11" />
<xs:minLength value="9" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:complexType name="CT_Payment">
<xs:attribute name="ProcessedDate" type="xs:string" use="optional" />
<xs:attribute name="EffectiveDate" type="xs:string" use="required" />
<xs:attribute name="Description" type="xs:string" use="optional" />
<xs:attribute name="PrincipalAmount" type="xs:string" use="optional" />
<xs:attribute name="InterestAmount" type="xs:string" use="optional" />
<xs:attribute name="TotalAmount" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="CT_CreditCounselingAgency">
<xs:annotation>
<xs:documentation>
Current Credit Counseling Agency for Property Owner.
</xs:documentation>
</xs:annotation>
<xs:attribute name="Name" use="required" type="xs:string" />
<xs:attributeGroup ref="AG_Address" />
</xs:complexType>
<xs:complexType name="CT_CreditCounselingAgencies">
<xs:annotation>
<xs:documentation>
Possible Credit Counseling Agencies.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="CreditCounselingAgency" maxOccurs="unbounded" minOccurs="1" type="CT_CreditCounselingAgency" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_PaymentHistory">
<xs:annotation>
<xs:documentation>
Property Owner Payment History.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Payment" type="CT_Payment" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="NoHistoryMessage" use="required" type="xs:string" />
<xs:attribute name="BeginningDate" use="required" type="xs:string" />
<xs:attribute name="EndingDate" use="required" type="xs:string" />
<xs:attribute name="Count" use="optional">
<xs:simpleType>
<xs:restriction base="xs:long">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="Account">
<xs:annotation>
<xs:documentation>
Aggregation of Account Data pertaining to the Recipients of the Letter.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="PaymentHistory" type="CT_PaymentHistory" minOccurs="0" />
</xs:sequence>
<xs:attribute name="DateLastPaid" use="optional" type="xs:string" />
<xs:attribute name="BALCUSTOMERORIGINAL" use="optional" type="xs:string" />
<xs:attribute name="interestBalance" use="optional" type="xs:string" />
<xs:attribute name="ACCOUNTNUMBER" use="required" type="xs:string" />
<xs:attribute name="accountNumberExternal" use="optional" type="xs:string" />
<xs:attribute name="accountID" use="optional" type="xs:string" />
<xs:attribute name="RecordDate" use="optional" type="xs:string" />
<xs:attribute name="amountDueEscrow" use="optional" type="xs:string" />
<xs:attribute name="amountDueFees" use="optional" type="xs:string" />
<xs:attribute name="AMOUNTDUEFEESOTHER" use="optional" type="xs:string" />
<xs:attribute name="amountDueFeesLateChargesOther" use="optional" type="xs:string" />
<xs:attribute name="amountDueInterest" use="optional" type="xs:string" />
<xs:attribute name="AMOUNTDUELATECHARGES" use="optional" type="xs:string" />
<xs:attribute name="AMOUNTDUELATECHARGESOTHER" use="optional" type="xs:string" />
<xs:attribute name="amountDueOther" use="optional" type="xs:string" />
<xs:attribute name="amountDuePrincipal" use="optional" type="xs:string" />
<xs:attribute name="BALCUSTOMER " use="optional" type="xs:string" />
<xs:attribute name="amountDueTotal" use="optional" type="xs:string" />
<xs:attribute name="balUnapplied" use="optional" type="xs:string" />
<xs:attribute name="dateDue" use="optional" type="xs:string" />
<xs:attribute name="PAYMENTAMOUNT" use="optional" type="xs:string" />
<xs:attribute name="paymentAmountLast" use="optional" type="xs:string" />
<xs:attribute name="autopayAccount" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.ALLOWNERSINLINE" use="optional" type="xs:string" />
<xs:attribute name="ALLOWNERSADDRESSESNETBORROWERS" use="optional" type="xs:string" />
<xs:attribute name="revolvingType" use="optional" type="xs:string" />
<xs:attribute name="rate" use="optional" type="xs:string" />
<xs:attribute name="bankLogoPath" use="optional" type="xs:string" />
<xs:attribute name="BANKID" use="optional" type="xs:string" />
<xs:attribute name="BANKNAME" use="optional" type="xs:string" />
<xs:attribute name="BORROWERPRIMARY" use="optional" type="xs:string" />
<xs:attribute name="borrowersAll" use="optional" type="xs:string" />
<xs:attribute name="BORROWERSALLINLINE" use="optional" type="xs:string" />
<xs:attribute name="BORROWERSALLADDRESSESINLINE" use="optional" type="xs:string" />
<xs:attribute name="BORROWERSECONDARY" use="optional" type="xs:string" />
<xs:attribute name="brDischargeDate" use="optional" type="xs:string" />
<xs:attribute name="brDismissalDate" use="optional" type="xs:string" />
<xs:attribute name="brFilingDate" use="optional" type="xs:string" />
<xs:attribute name="CONTACTADDRESS" use="optional" type="xs:string" />
<xs:attribute name="contactEmail" use="optional" type="xs:string" />
<xs:attribute name="CONTACTNAME" use="optional" type="xs:string" />
<xs:attribute name="CONTACTPHONE" use="optional" type="xs:string" />
<xs:attribute name="CONTACTSIGNATURE" use="optional" type="xs:string" />
<xs:attribute name="contactTitle" use="optional" type="xs:string" />
<xs:attribute name="date" use="optional" type="xs:string" />
<xs:attribute name="dateOpened" use="optional" type="xs:string" />
<xs:attribute name="day" use="optional" type="xs:string" />
<xs:attribute name="daysDelinquent" use="optional" type="xs:string" />
<xs:attribute name="dt" use="optional" type="xs:string" />
<xs:attribute name="dtClosed" use="optional" type="xs:string" />
<xs:attribute name="flag" use="optional" type="xs:string" />
<xs:attribute name="foreclosureSheriffSaleDate" use="optional" type="xs:string" />
<xs:attribute name="investorAbbreviation" use="optional" type="xs:string" />
<xs:attribute name="investorID" use="optional" type="xs:string" />
<xs:attribute name="LetterHead" use="optional" type="xs:string" />
<xs:attribute name="lossMitDateReceived" use="optional" type="xs:string" />
<xs:attribute name="month" use="optional" type="xs:string" />
<xs:attribute name="paymentAmountIncludingLateCharges" use="optional" type="xs:string" />
<xs:attribute name="promiseDateLast" use="optional" type="xs:string" />
<xs:attribute name="propertyAddress" use="optional" type="xs:string" />
<xs:attribute name="propertyCity" use="optional" type="xs:string" />
<xs:attribute name="propertyState" use="optional" type="xs:string" />
<xs:attribute name="propertyStreet" use="optional" type="xs:string" />
<xs:attribute name="propertyZip" use="optional" type="xs:string" />
<xs:attribute name="soldMortgageDelqType" use="optional" type="xs:string" />
<xs:attribute name="TotalDue" use="optional" type="xs:string" />
<xs:attribute name="YEAR" use="optional" type="xs:string" />
<xs:attribute name="DATEDUELAST" use="optional" type="xs:string" />
<xs:attribute name="TotalDuePlusLegal" use="optional" type="xs:string" />
<xs:attribute name="TotalPieDue" use="optional" type="xs:string" />
<xs:attribute name="TotallDue" use="optional" type="xs:string" />
<xs:attribute name="TotalLegalFeesDue" use="optional" type="xs:string" />
<xs:attribute name="AMOUNTDUEPRINCIPALINTERESTESCROW" use="optional" type="xs:string" />
<xs:attribute name="LASTPAIDINSTALLMENT" use="optional" type="xs:string" />
<xs:attribute name="DateLPI" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.ORIGINALBALANCE" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.ALLOWNERSADDRESSESINLINE" use="optional" type="xs:string" />
<xs:attribute name="ALLBORROWERSADDRESSES" use="optional" type="xs:string" />
<xs:attribute name="ALLBORROWERSINLINE" use="optional" type="xs:string" />
<xs:attribute name="ALLBORROWERS" use="optional" type="xs:string" />
<xs:attribute name="ALLOWNERSNETBORROWERS" use="optional" type="xs:string" />
<xs:attribute name="BANKSERVICING" use="optional" type="xs:string" />
<xs:attribute name="BANKNAMEORIGINAL" use="optional" type="xs:string" />
<xs:attribute name="bankOriginating" use="optional" type="xs:string" />
<xs:attribute name="BANKANDSERVICINGNAMEWITHMERGER" use="optional" type="xs:string" />
<xs:attribute name="BalCustomerOriginal" use="optional" type="xs:string" />
<xs:attribute name="BalCustomer" use="optional" type="xs:string" />
<xs:attribute name="monthsDelinquent" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.FEDERALLYRELATED" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.LIENPOSITION" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.BANKORIGINATING" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.LOANACTIVITYHISTORY" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.PACREDITCOUNSELING" use="optional" type="xs:string" />
<xs:attribute name="DATE" use="optional" type="xs:string" />
<xs:attribute name="DATEDUE" use="optional" type="xs:string" />
<xs:attribute name="DATELASTPAID" use="optional" type="xs:string" />
<xs:attribute name="DATEOPENED" use="optional" type="xs:string" />
<xs:attribute name="DAY" use="optional" type="xs:string" />
<xs:attribute name="DAYSDELINQUENT" use="optional" type="xs:string" />
<xs:attribute name="DATECLOSING" use="optional" type="xs:string" />
<xs:attribute name="DATE_x002B_45" use="optional" type="xs:string" />
<xs:attribute name="DATEDUE_x002B_1" use="optional" type="xs:string" />
<xs:attribute name="DATEDUE_x002B_30" use="optional" type="xs:string" />
<xs:attribute name="INVESTORNAME" use="optional" type="xs:string" />
<xs:attribute name="INVESTORPHONE" use="optional" type="xs:string" />
<xs:attribute name="LETTERHEAD" use="optional" type="xs:string" />
<xs:attribute name="MONTH" use="optional" type="xs:string" />
<xs:attribute name="PROPERTYADDRESS" use="optional" type="xs:string" />
<xs:attribute name="PROPERTYCITY" use="optional" type="xs:string" />
<xs:attribute name="PROPERTYSTATE" use="optional" type="xs:string" />
<xs:attribute name="PROPERTYSTREET" use="optional" type="xs:string" />
<xs:attribute name="PROPERTYZIP" use="optional" type="xs:string" />
<xs:attribute name="MAILINGCC" use="optional" type="xs:string" />
<xs:attribute name="PROPERTYADDRESSINLINE" use="optional" type="xs:string" />
<xs:attribute name="TOTALDUE" use="optional" type="xs:string" />
<xs:attribute name="totalDue" use="optional" type="xs:string" />
<xs:attribute name="MONTHSDELINQUENT" use="optional" type="xs:string" />
<xs:attribute name="MAILINGTITLE" use="optional" type="xs:string" />
<xs:attribute name="MAILINGADDRESS" use="optional" type="xs:string" />
<xs:attribute name="TOTALDUEPLUSLEGAL" use="optional" type="xs:string" />
<xs:attribute name="TOTALLEGALFEESDUE" use="optional" type="xs:string" />
<xs:attribute name="NUMBEROFMONTHSPASTDUE" use="optional" type="xs:string" />
<xs:attribute name="TOTALDUEMINUSUNAPPLIED" use="optional" type="xs:string" />
<xs:attribute name="PrincipalOriginal" use="optional" type="xs:string" />
<xs:attribute name="PrincipalBalance" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.LienPosition" use="optional" type="xs:string" />
<xs:attribute name="CUSTOM.ALLOWNERS" use="optional" type="xs:string" />
</xs:complexType>
<xs:complexType name="CT_Recipient">
<xs:attributeGroup ref="AG_Person" />
<xs:attributeGroup ref="AG_Address" />
</xs:complexType>
<xs:complexType name="CT_LoanActivity">
<xs:sequence>
<xs:element name="b" type="CT_CustomData" />
</xs:sequence>
<xs:attribute name="accountID" use="optional" type="xs:string" />
<xs:attribute name="dateProcessed" use="optional" type="xs:string" />
<xs:attribute name="amtAdjustment" use="optional" type="xs:string" />
<xs:attribute name="amtEscrow" use="optional" type="xs:string" />
<xs:attribute name="amtFee" use="optional" type="xs:string" />
<xs:attribute name="amtInsurance" use="optional" type="xs:string" />
<xs:attribute name="amtInterest" use="optional" type="xs:string" />
<xs:attribute name="amtLateCharge" use="optional" type="xs:string" />
<xs:attribute name="amtPartial" use="optional" type="xs:string" />
<xs:attribute name="amtPrincipal" use="optional" type="xs:string" />
<xs:attribute name="amtTotal" use="optional" type="xs:string" />
<xs:attribute name="amtUnapplied" use="optional" type="xs:string" />
<xs:attribute name="amtOther" use="optional" type="xs:string" />
</xs:complexType>
<xs:complexType name="CT_Recipients">
<xs:annotation>
<xs:documentation>
Recipients of the Letter.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Person" type="CT_Recipient" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Count" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="CT_Property">
<xs:all>
<xs:element name="Owners" type="CT_Recipients" minOccurs="1" />
<xs:element name="CreditCounselingAgencies" type="CT_CreditCounselingAgencies" minOccurs="0" />
</xs:all>
<xs:attributeGroup ref="AG_Address" />
<xs:attribute name="ParcelID" type="xs:string" use="optional" />
<xs:attribute name="CountyName" type="xs:string" use="optional" />
</xs:complexType>
<xs:complexType name="CT_LetterFile">
<xs:sequence>
<xs:element name="Letter" type="CT_Letter" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Count" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="CT_Letter">
<xs:all>
<xs:element name="Account" type="Account" minOccurs="1" />
<xs:element name="Property" type="CT_Property" minOccurs="1" />
<xs:element name="Recipients" type="CT_Recipients" minOccurs="1" />
<xs:element name="CustomData" type="CT_Custom" minOccurs="0" />
</xs:all>
<xs:attribute name="RequestID" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="CertifiedMail" type="xs:boolean" default="false" use="optional" />
<xs:attribute name="Type" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="CT_Custom">
<xs:all>
<xs:element name="CustomValues" type="CT_CustomData" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="CT_CustomData">
<xs:sequence>
<xs:element name="CustomValue" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Value" type="xs:string" />
</xs:complexType>
</xs:schema>
爲什麼不指定屬性,或者更好的,一個錯誤請求幫助時發佈完整的錯誤消息? – kjhughes