Solved

Trouble pulling xml files from database and validating

Posted on 2014-12-17
16
177 Views
Last Modified: 2014-12-24
Hey there,

We use a process called ProductFeed or PostPurchaseFeed for pulling data from a possible IBM server and I'm trying to figure out where the data lives and how to run and validate the correct data.  This will ultimately be used for marketing (surveys) on our website.

When uploaded, it lives on the BazaarVoice FTP server where our uploaded data is stored :  ftp://mydata.com.

 XML files are run through their Corefilling xml schema “validator”.


This seems to have stopped working in September and now the marketing dept wants it back on line.

I have just inherited this job so any help deciphering this would be great.

Thanks,

Metalfubar
0
Comment
Question by:metalfubar
  • 9
  • 7
16 Comments
 
LVL 62

Expert Comment

by:gheist
ID: 40506441
What generates wrong XML? I doubt any of components mentioned.
0
 

Author Comment

by:metalfubar
ID: 40507007
Gheist,

I'm trying to figure that portion out actually having just inherited this project.  Is their an easy to see a server name or ip source from an old xml pull?  I can post it?  thanks in advance!
0
 

Author Comment

by:metalfubar
ID: 40507016
<?xml version="1.0" encoding="UTF-8"?>

<!-- ************ GENERATED CONTENT ************ -->

-<xs:schema elementFormDefault="qualified" targetNamespace="http://www.bazaarvoice.com/xs/PRR/ProductFeed/5.1" xmlns="http://www.bazaarvoice.com/xs/PRR/ProductFeed/5.1" xmlns:xs="http://www.w3.org/2001/XMLSchema">


-<xs:complexType name="AttributesType">


-<xs:sequence>

<xs:element type="AttributeType" name="Attribute" maxOccurs="unbounded" minOccurs="0"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="AttributeType">


-<xs:choice>

<xs:element type="OptionalLocalizedStringType" name="Value" maxOccurs="unbounded" minOccurs="1"/>

<xs:element type="OptionalLocalizedUrlType" name="UrlValue" maxOccurs="unbounded" minOccurs="1"/>

</xs:choice>

<xs:attribute type="ExternalIdType" name="id" use="required"/>

</xs:complexType>


-<xs:complexType name="AverageRatingValueType">


-<xs:all>

<xs:element type="xs:float" name="AverageRating"/>

<xs:element type="RatingDimensionType" name="RatingDimension"/>

</xs:all>

<xs:attribute type="ExternalIdType" name="id"/>

</xs:complexType>


-<xs:complexType name="BrandsType">


-<xs:sequence>

<xs:element type="BrandType" name="Brand" maxOccurs="unbounded" minOccurs="0"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="BrandType">


-<xs:all>

<xs:element type="xs:string" name="Name" minOccurs="0"/>

<xs:element type="NamesType" name="Names" minOccurs="0"/>

<xs:element type="ExternalIdType" name="ExternalId" minOccurs="0"/>

<xs:element type="AttributesType" name="Attributes" minOccurs="0"/>

</xs:all>

<xs:attribute type="xs:boolean" name="removed" use="optional" default="false"/>

<xs:attribute type="xs:boolean" name="disabled" default="false"/>

</xs:complexType>


-<xs:complexType name="CategoriesType">


-<xs:sequence>

<xs:element type="CategoryType" name="Category" maxOccurs="unbounded" minOccurs="0"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="CategoryPageUrlsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="CategoryPageUrl" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="CategoryQAPageUrlsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="CategoryQAPageUrl" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="CategoryStoriesPageUrlsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="CategoryStoriesPageUrl" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="CategoryType">


-<xs:all>

<xs:element type="ExternalIdType" name="ExternalId" minOccurs="0"/>

<xs:element type="ExternalIdType" name="ParentExternalId" minOccurs="0"/>

<xs:element type="xs:string" name="Name" minOccurs="0"/>

<xs:element type="NamesType" name="Names" minOccurs="0"/>

<xs:element type="xs:anyURI" name="CategoryPageUrl" minOccurs="0"/>

<xs:element type="CategoryPageUrlsType" name="CategoryPageUrls" minOccurs="0"/>

<xs:element type="xs:anyURI" name="CategoryQAPageUrl" minOccurs="0"/>

<xs:element type="CategoryQAPageUrlsType" name="CategoryQAPageUrls" minOccurs="0"/>

<xs:element type="xs:anyURI" name="CategoryStoriesPageUrl" minOccurs="0"/>

<xs:element type="CategoryStoriesPageUrlsType" name="CategoryStoriesPageUrls" minOccurs="0"/>

<xs:element type="xs:string" name="ReviewsPageTitle" minOccurs="0"/>

<xs:element type="PageTitlesType" name="ReviewsPageTitles" minOccurs="0"/>

<xs:element type="xs:string" name="ReviewsPageMetaDescription" minOccurs="0"/>

<xs:element type="MetaDescriptionsType" name="ReviewsPageMetaDescriptions" minOccurs="0"/>

<xs:element type="xs:anyURI" name="ProductPageUrlPattern" minOccurs="0"/>

<xs:element type="ProductPageUrlPatternsType" name="ProductPageUrlPatterns" minOccurs="0"/>

<xs:element type="AttributesType" name="Attributes" minOccurs="0"/>

<xs:element type="xs:anyURI" name="ImageUrl" minOccurs="0"/>

<xs:element type="LocalizedUrlsType" name="ImageUrls" minOccurs="0"/>

</xs:all>

<xs:attribute type="xs:boolean" name="removed" use="optional" default="false"/>

<xs:attribute type="xs:boolean" name="disabled" default="false"/>

</xs:complexType>


-<xs:complexType name="DescriptionsType">


-<xs:sequence>

<xs:element type="LocalizedStringType" name="Description" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="EansType">


-<xs:sequence>

<xs:element type="EanType" name="EAN" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="FeedType">


-<xs:sequence>

<xs:element type="BrandsType" name="Brands" minOccurs="0"/>

<xs:element type="CategoriesType" name="Categories" minOccurs="0"/>

<xs:element type="ProductsType" name="Products" minOccurs="0"/>

</xs:sequence>

<xs:attribute type="xs:string" name="name" use="required"/>

<xs:attribute type="xs:dateTime" name="extractDate" use="required"/>

<xs:attribute type="xs:boolean" name="incremental" use="required"/>

<xs:attribute type="xs:boolean" name="supplemental" use="optional"/>

<xs:attribute type="xs:string" name="generator" use="optional"/>

</xs:complexType>


-<xs:complexType name="LocalizedUrlsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="ImageUrl" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="IsbnsType">


-<xs:sequence>

<xs:element type="IsbnType" name="ISBN" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="LocalizedStringType">


-<xs:simpleContent>


-<xs:extension base="xs:string">

<xs:attribute type="LocaleType" name="locale" use="required"/>

</xs:extension>

</xs:simpleContent>

</xs:complexType>


-<xs:complexType name="LocalizedUrlType">


-<xs:simpleContent>


-<xs:extension base="xs:anyURI">

<xs:attribute type="LocaleType" name="locale" use="required"/>

</xs:extension>

</xs:simpleContent>

</xs:complexType>


-<xs:complexType name="ManufacturerPartNumbersType">


-<xs:sequence>

<xs:element type="ProductUniversalIdentifierType" name="ManufacturerPartNumber" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="MetaDescriptionsType">


-<xs:sequence>

<xs:element type="LocalizedStringType" name="MetaDescription" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="ModelNumbersType">


-<xs:sequence>

<xs:element type="ProductUniversalIdentifierType" name="ModelNumber" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="NamesType">


-<xs:sequence>

<xs:element type="LocalizedStringType" name="Name" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="OptionalLocalizedStringType">


-<xs:simpleContent>


-<xs:extension base="xs:string">

<xs:attribute type="LocaleType" name="locale" use="optional"/>

</xs:extension>

</xs:simpleContent>

</xs:complexType>


-<xs:complexType name="OptionalLocalizedUrlType">


-<xs:simpleContent>


-<xs:extension base="xs:anyURI">

<xs:attribute type="LocaleType" name="locale" use="optional"/>

</xs:extension>

</xs:simpleContent>

</xs:complexType>


-<xs:complexType name="PageTitlesType">


-<xs:sequence>

<xs:element type="LocalizedStringType" name="PageTitle" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="ProductPageUrlPatternsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="ProductPageUrlPattern" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="ProductPageUrlsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="ProductPageUrl" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="ProductReviewsPageUrlsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="ProductReviewsPageUrl" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="ProductQAPageUrlsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="ProductQAPageUrl" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="ProductStoriesPageUrlsType">


-<xs:sequence>

<xs:element type="LocalizedUrlType" name="ProductStoriesPageUrl" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="ProductType">


-<xs:all>

<xs:element type="ExternalIdType" name="ExternalId"/>

<xs:element type="xs:string" name="Name" minOccurs="0"/>

<xs:element type="NamesType" name="Names" minOccurs="0"/>

<xs:element type="xs:string" name="Description" minOccurs="0"/>

<xs:element type="DescriptionsType" name="Descriptions" minOccurs="0"/>

<xs:element type="ExternalIdType" name="BrandExternalId" minOccurs="0"/>

<xs:element type="BrandType" name="Brand" minOccurs="0"/>

<xs:element type="AttributesType" name="Attributes" minOccurs="0"/>

<xs:element type="ExternalIdType" name="CategoryExternalId" minOccurs="0"/>

<xs:element type="xs:string" name="CategoryName" minOccurs="0"/>


-<xs:element name="CategoryPath" minOccurs="0">


-<xs:complexType>


-<xs:sequence>

<xs:element type="xs:string" name="CategoryName" maxOccurs="unbounded" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element type="xs:anyURI" name="ProductPageUrl" minOccurs="0"/>

<xs:element type="ProductPageUrlsType" name="ProductPageUrls" minOccurs="0"/>

<xs:element type="xs:anyURI" name="ProductReviewsPageUrl" minOccurs="0"/>

<xs:element type="ProductReviewsPageUrlsType" name="ProductReviewsPageUrls" minOccurs="0"/>

<xs:element type="xs:anyURI" name="ProductQAPageUrl" minOccurs="0"/>

<xs:element type="ProductQAPageUrlsType" name="ProductQAPageUrls" minOccurs="0"/>

<xs:element type="xs:anyURI" name="ProductStoriesPageUrl" minOccurs="0"/>

<xs:element type="ProductStoriesPageUrlsType" name="ProductStoriesPageUrls" minOccurs="0"/>

<xs:element type="xs:string" name="ReviewsPageTitle" minOccurs="0"/>

<xs:element type="PageTitlesType" name="ReviewsPageTitles" minOccurs="0"/>

<xs:element type="xs:string" name="ReviewsPageMetaDescription" minOccurs="0"/>

<xs:element type="MetaDescriptionsType" name="ReviewsPageMetaDescriptions" minOccurs="0"/>

<xs:element type="xs:anyURI" name="ImageUrl" minOccurs="0"/>

<xs:element type="LocalizedUrlsType" name="ImageUrls" minOccurs="0"/>

<xs:element type="ModelNumbersType" name="ModelNumbers" minOccurs="0"/>

<xs:element type="ManufacturerPartNumbersType" name="ManufacturerPartNumbers" minOccurs="0"/>

<xs:element type="EansType" name="EANs" minOccurs="0"/>

<xs:element type="UpcsType" name="UPCs" minOccurs="0"/>

<xs:element type="IsbnsType" name="ISBNs" minOccurs="0"/>

</xs:all>

<xs:attribute type="xs:boolean" name="removed" default="false"/>

<xs:attribute type="xs:boolean" name="disabled" default="false"/>

</xs:complexType>


-<xs:complexType name="ProductsType">


-<xs:sequence>

<xs:element type="ProductType" name="Product" maxOccurs="unbounded" minOccurs="0"/>

</xs:sequence>

</xs:complexType>


-<xs:complexType name="RatingDimensionType">


-<xs:all>

<xs:element type="ExternalIdType" name="ExternalId"/>

<xs:element type="xs:int" name="RatingRange"/>

</xs:all>

<xs:attribute type="ExternalIdType" name="id" use="required"/>

<xs:attribute type="xs:boolean" name="selectedValueInDisplayEnabled" default="false"/>

</xs:complexType>


-<xs:complexType name="UpcsType">


-<xs:sequence>

<xs:element type="UpcType" name="UPC" maxOccurs="unbounded" minOccurs="1"/>

</xs:sequence>

</xs:complexType>


-<xs:simpleType name="EanType">


-<xs:restriction base="xs:string">

<xs:pattern value="[0-9]{8}"/>

<xs:pattern value="[0-9]{13}"/>

</xs:restriction>

</xs:simpleType>


-<xs:simpleType name="ExternalIdType">


-<xs:restriction base="xs:string">

<xs:pattern value="[^/]+"/>

</xs:restriction>

</xs:simpleType>


-<xs:simpleType name="IsbnType">


-<xs:restriction base="xs:string">

<xs:pattern value="[0-9]{8,12}[0-9X]"/>

</xs:restriction>

</xs:simpleType>


-<xs:simpleType name="LocaleType">


-<xs:restriction base="xs:string">

<xs:pattern value="[a-z]{2}(_[A-Z]{2}(_[0-9a-zA-Z_]+)?)?"/>

</xs:restriction>

</xs:simpleType>


-<xs:simpleType name="NonNegativeInt">


-<xs:restriction base="xs:int">

<xs:minInclusive value="0"/>

</xs:restriction>

</xs:simpleType>


-<xs:simpleType name="NonNegativeLong">


-<xs:restriction base="xs:long">

<xs:minInclusive value="0"/>

</xs:restriction>

</xs:simpleType>


-<xs:simpleType name="PositiveInt">


-<xs:restriction base="xs:int">

<xs:minInclusive value="1"/>

</xs:restriction>

</xs:simpleType>


-<xs:simpleType name="ProductUniversalIdentifierType">


-<xs:restriction base="xs:string">

<xs:pattern value="\S.*"/>

</xs:restriction>

</xs:simpleType>


-<xs:simpleType name="UpcType">


-<xs:restriction base="xs:string">

<xs:pattern value="[0-9]{6}"/>

<xs:pattern value="[0-9]{12}"/>

</xs:restriction>

</xs:simpleType>

<xs:element type="FeedType" name="Feed"/>

</xs:schema>
0
Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

 
LVL 62

Expert Comment

by:gheist
ID: 40507243
That minus there does not fit in XML
-<xs:all>
0
 

Author Comment

by:metalfubar
ID: 40507840
just that one?
0
 
LVL 62

Expert Comment

by:gheist
ID: 40507848
Like thousand of them?
0
 

Author Comment

by:metalfubar
ID: 40507914
ok, so remove all minus signs and rerun the validator?
0
 

Author Comment

by:metalfubar
ID: 40507947
that worked and I now validated successfully!  Now how can I figure out where my data lives how to recreate the pull? :)
0
 
LVL 62

Expert Comment

by:gheist
ID: 40507966
That was what I was asking. You need to fix the problem as early in those xml's life as possible.
xmllint is another validator.
0
 

Author Comment

by:metalfubar
ID: 40511125
So is there anything there to indicate where the XML data lives?
0
 
LVL 62

Expert Comment

by:gheist
ID: 40511128
I have no idea.
Where do you get the XMLs from?
Can you explicitly verify/fix/verify them before any damage is done?
0
 

Author Comment

by:metalfubar
ID: 40511161
no one at the company knows.  so theres no email type header to get additional server info?

once I can figure out where the data lives, then I"ll work with a verify issue.

the one posted verified from june.
0
 
LVL 62

Accepted Solution

by:
gheist earned 500 total points
ID: 40511203
The dash-unequal can be fixed quickly
To get rid of it permanently you need to fix that as close to source as you can get.
Notepad++ you know...
0
 

Author Closing Comment

by:metalfubar
ID: 40515026
many thx!!
0
 
LVL 62

Expert Comment

by:gheist
ID: 40515700
Now check again all "XML"s that fail validation, maybe some small fixup will untangle them too..
0
 

Author Comment

by:metalfubar
ID: 40516401
ok.  done and uploaded.  It ended up residing in an old SQL db.  cheers.
0

Featured Post

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Video on my site 4 68
JQuery serialize and unserialize 8 84
aws pricing 2 46
What are the best practices for updating dead links to valid ones? 6 38
In our personal lives, we have well-designed consumer apps to delight us and make even the most complex transactions simple. Many enterprise applications, however, are a bit behind the times. For an enterprise app to be successful in today's tech wo…
The article will include the best Data Recovery Tools along with their Features, Capabilities, and their Download Links. Hope you’ll enjoy it and will choose the one as required by you.
An overview on how to enroll an hourly employee into the employee database and how to give them access into the clock in terminal.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question