Solved

Trouble pulling xml files from database and validating

Posted on 2014-12-17
16
183 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Don't Cry: How Liquid Web is Ensuring Security

WannaCry is just the start. Read how Liquid Web is protecting itself and its customers against new threats.

 
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

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

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

Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
All of the resources available today make learning a new digital media easier than ever-- if you know where to begin. This is a clear, simple guide to a few of the basic digital art mediums and how to begin learning them on your own.
The viewer will learn how to successfully create a multiboot device using the SARDU utility on Windows 7. Start the SARDU utility: Change the image directory to wherever you store your ISOs, this will prevent you from having 2 copies of an ISO wit…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.

690 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