Cvs To XML using XSD
Hi folks,
I am not sure whether this thread has been answered, but I am looking for ways to create an XML object from a CSV input stream/file where the format may change in the future. I would like to use an XSD to do the mapping. Is it possible? If so what is required? If not possible, what is the next best thing.
Thanks in advance.
-r
XSLT is a thingie that transforms XML. It can transform XML into something that is not XML, but it cannot transform something that is not XML into anything.
The only XML-ish thing I've seen done with non-XML contents was described by Michael Kay in his XML book, published by Wrox. It is possible to read a well-formed (meaning that you have some prior knowledge of the format, and how it would look if it were only XML) file, and call a SAX ContentHandler as if you were a parser. You call the startDocument method, then you figure out what element comes next, and call the startElement, the characters, and endElement methods for that content. As far as the ContentHandler is concerned, it thinks it is getting good SAX content, and it is. The difference is that it is not coming from a SAX parser.
The example given in the referenced book is reading a GEDCOM file. That is a structured text version of genealogical data. It has records for families, marriages, children, etc. It is no at all an XML source.
I hope this helps.
Dave Patterson
Similar Messages
-
Hi All
please tell me how to validate xml using xsd
regardsTry using this link:
= http://www.google.nl/search?q=XML+validate+oracle for instance or
= use the search button on this forum and / or
= read the FAQ on this (XML DB FAQ
Thanks Eddie et all, for educating me via http://awads.net/wp/2006/11/14/barts-punishment-for-asking-dumb-questions (don't mind the URL , the info there is really useful)
The following link on this site is just brilliant: http://www.albinoblacksheep.com/flash/posting.php
Grz
Marco
Message was edited by:
mgralike -
I Have to generate XML file using XSD. I have the xsd available with me ,i have the values of elements also,now i need create a xml file using the XSD or DTD, with the values i got from the database.
Kindly help.Create an XML file from XSD file
-
Hi,
I know we can use XML as data server with DTD. Is it also possible to use XSD instead of DTD. If yes would the driver be same.
Thanks
Jasvinder SinghGot SAS error when used as "jdbc:snps:xml?f=C:\myxml.xml"
(Try to insert null into a non-nullable column: column: NAME table: STAGI_ELEMENT in statement [insert into STAGI_ELEMENT (ELEMENTORDER, ELEMENTPK, NAME, REF, SCHEMAFK, SEQUENCEFK) values (?, ?, ?, ?, ?, ?)]
all these table name and columns comes by itselt , non are reffereing to my data. thn i tried some jugglery in changing the XSD. then it worked , but when i reserved though model window it showed me as
SCHEMA Table
ELEMENT Table
SEQUENCE Table
COMPLEXTYPE Table
these are part of XSD elements definations.
what i understand that use f=xml file and d=dtd file name or d=xsd file name. -
Validate XML using XSD (XML Schema)
Hi experts.
Is there any way in ABAP to validate XML file against specified XSD file?
I found only possibility to validate against DTD, but no XSD. As far as I know this is only possible in Java, or is a part of XI. Is it doable without Java or XI (on NetWeaver 2004s)?
Help appreciated (and rewarded).
Regards, Frantisek.Hello
Perhaps you missed this link: [How to Perform XML Validations in SAP NetWeaver Process Integration 7.1|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d06dff94-9913-2b10-6f82-9717d9f83df1]
Regards
Uwe -
Query resultset to xml using java and XML schema
Hi,
I query data using JDBC and I want to store it to an XML file which has a well defined XML schema. I searched a lot in the forum but did not find an answer. Please guide me to create this program.
I have managed to use JDBC to get result set but I do not know how to export is to XML using XSD and Java.
Please help.
Regards,
RaviI have managed to use JDBC to get result set but I do
not know how to export is to XML using XSD and Java.Export using XSD? Schemas are for validation.
Iterate through the result set, and build up the XML stream by creating an entry for each row.
Another way to do it is to load the ResultSet into a Java object and serialize that to XML using something like XStream.
% -
Is there an easy way to get the xml schema/DTD for a custom entity, specifically an .XSD file for that entity (which will then be used to create a map to be able to transform the fields of the entity to a 3rd-party message format)?
So have a custom entity with lots and lots of fields. Each of the fields will map to a differently named field to match the schema of the 3rd party entity. A very common situation. Looking to use a tool like the Biztalk mapper or Altova's MapForce to generate
an .xslt file to transform the downloaded entity (service.Retrieve with all columns) to the new format. (Will implement a typical VETR pattern.)
Apparently with CRM 4 there was a call that provided this, but from 2011 has not been available. Working with a crm 2015 system.That will give a descriptor of the table and allow creation of an .XSD file, but it's really complex in terms of types, and the there's type conversion. It might be an easy way to get a schema, with the downside being it's hard to use that schema.
It seems easier to do a fetch of the record with all fields filled in using service.Retrieve, and then converting this to xml, using Microsoft's guidance leads to using https://msdn.microsoft.com/en-us/library/hh675409.aspx which will serialize the entity
into XML with all the fields converted to type string, and with complex fields likewise converted to strings with additional information about the type.
Using this it's possible using an number of tools to create an easier to use .XSD file.
However, it would seem most integrations of this type are using 3rd party CRM connectors. Perhaps this is why Microsoft hasn't provided anything direct (and took away what they did have in crm4.0 due to it generating a hard to use .XSD or due to letting
their partners continue income streams from selling connectors").
But without using 3rd party connectors, or following the still tedious method of generating .XSD (a useable .xsd), have not yet come up with an easy, automatic way to get an .XSD or to easily integrate with 3rd party message format. -
Validate XML against XSD using PLSQL
Hi,
We now need some kind of automated solution that will pick
up the XMLs from a specific location or table and validate them
against the XSD in only Oracle PLSQL.
The validation of the XML against the XSD should take place when the XML is parsed.
I want to know how first the XSD's are stored or registered in the Oracle XDB repository.
Please can anyone suggest me how this can be done with a simple example
with a sample XML and XSD?
Regards,
Marlon.Hi, I'm not an expert but I've been reading a lot and I found this and it works. I'll hope it is useful.(Oracle 10)
declare
-- Local variables here
res BOOLEAN;
tempXML XMLType;
xmlDoc XMLType;
xmlSchema XMLType;
schemaURL varchar2(256) := 'testcase.xsd';
schemaPath varchar2(256) := '/public/testcase.xsd';
begin
dbms_xmlSchema.deleteSchema(schemaURL,4);
-- Test statements here
xmlSchema := xmlType(
'<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="root" xdb:defaultTable="ROOT_TABLE">
<xs:complexType>
<xs:sequence>
<xs:element name="child1"/>
<xs:element name="child2"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
dbms_xmlschema.registerSchema(schemaURL,
xmlSchema , --xdbURIType(schemaPath).getClob(),
TRUE,TRUE,FALSE,TRUE
xmlDoc:=xmltype('<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="' || schemaURL || '"><child1>foo</child1><child2>bar</child2></root>');
dbms_output.put_line(xmlDoc.getStringVal());
xmlDoc.schemaValidate();
END; -
How to validate XML against XSD and parse/save in one step using SAXParser?
How to validate XML against XSD and parse/save in one step using SAXParser?
I currently have an XML file and XSD. The XML file specifies the location of the XSD. In Java code I create a SAXParser with parameters indicating that it needs to validate the XML. However, SAXParser.parse does not validate the XML, but it does call my handler functions which save the elements/attributes in memory as it is read. On the other hand, XMLReader.parse does validate the XML against the XSD, but does not save the document in memory.
My code can call XMLReader.parse to validate the XML followed by SAXParser.parse to save the XML document in memory. But this sound inefficient. Besides, while a valid document is being parsed by XMLReader, it can be changed to be invalid and saved, and XMLReader.parse would be looking at the original file and would think that the file is OK, and then SAXParser.parse would parse the document without errors.
<Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="book.xsd" name="MyBook">
<Chapter name="First Chapter"/>
<Chapter name="Second Chapter">
<Section number="1"/>
<Section number="2"/>
</Chapter>
</Book>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Book">
<xs:complexType>
<xs:sequence>
<xs:element name="Chapter" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="xnumber"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name"/>
</xs:complexType>
</xs:element>
</xs:schema>
public class SAXXMLParserTest
public static void main(String[] args)
try
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
SAXParser parser = factory.newSAXParser();
parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
"http://www.w3.org/2001/XMLSchema");
BookHandler handler = new BookHandler();
XMLReader reader = parser.getXMLReader();
reader.setErrorHandler(handler);
parser.parse("xmltest.dat", handler); // does not throw validation error
Book book = handler.getBook();
System.out.println(book);
reader.parse("xmltest.dat"); // throws validation error because of 'xnumber' in the XSD
public class Book extends Element
private String name;
private List<Chapter> chapters = new ArrayList<Chapter>();
public Book(String name)
this.name = name;
public void addChapter(Chapter chapter)
chapters.add(chapter);
public String toString()
StringBuilder builder = new StringBuilder();
builder.append("<Book name=\"").append(name).append("\">\n");
for (Chapter chapter: chapters)
builder.append(chapter.toString());
builder.append("</Book>\n");
return builder.toString();
public static class BookHandler extends DefaultHandler
private Stack<Element> root = null;
private Book book = null;
public void startDocument()
root = new Stack<Element>();
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
if (qName.equals("Book"))
String name = attributes.getValue("name");
root.push(new Book(name));
else if (qName.equals("Chapter"))
String name = attributes.getValue("name");
Chapter child = new Chapter(name);
((Book)root.peek()).addChapter(child);
root.push(child);
else if (qName.equals("Section"))
Integer number = Integer.parseInt(attributes.getValue("number"));
Section child = new Section(number);
((Chapter)root.peek()).addSection(child);
root.push(child);
public void endElement(String uri, String localName, String qName) throws SAXException
Element finished = root.pop();
if (root.size() == 0)
book = (Book) finished;
public Book getBook()
return book;
public void error(SAXParseException e)
System.out.println(e.getMessage());
public void fatalError(SAXParseException e)
error(e);
public void warning(SAXParseException e)
error(e);
public class Chapter extends Element
public static class Section extends Element
private Integer number;
public Section(Integer number)
this.number = number;
public String toString()
StringBuilder builder = new StringBuilder();
builder.append("<Section number=\"").append(number).append("\"/>\n");
return builder.toString();
private String name;
private List<Section> sections = null;
public Chapter(String name)
this.name = name;
public void addSection(Section section)
if (sections == null)
sections = new ArrayList<Section>();
sections.add(section);
public String toString()
StringBuilder builder = new StringBuilder();
builder.append("<Chapter name=\"").append(name).append("\">\n");
if (sections != null)
for (Section section: sections)
builder.append(section.toString());
builder.append("</Chapter>\n");
return builder.toString();
}Edited by: sn72 on Oct 28, 2008 1:16 PMHave you looked at the XML DB FAQ thread (second post) in this forum? It has some examples for validating XML against schemas.
-
Validation of xml agaist XSD in by using schemaValidate of oraxsd
Hi,
I am trying to validate an xml agaist xsd from pro*C wher i have oraxml and oraxsd libraries.
I have used a method of oraxsd and it gives error 14. pLesa let me know why i am getting this eror and how i can validate an xml by using thses functions..
int validateXSD()
xsdctx *ctx1;
xmlctx *ctx ;
uword ecode1 ;
xmlnode *root;
if(gold_debug)
printf("Validate XSD");
fflush(stdout);
root = getDocumentElement(ctx);
if(gold_debug)
printf("Validate XSD *****1 ");
fflush(stdout);
ctx1 = schemaInitialize(ctx, &ecode1);
if (ctx1==0 ) {
fprintf(stderr,"XSD initialisation failed\n");
return 1;
if(ecode1 = schemaValidate(ctx1, root, (oratext *)xsdfile)) {
if(gold_debug)
printf("Validation failed, error %u\n", ecode1);
fflush(stdout);
return 1;
}else{
if(gold_debug)
printf("*******************Scheam Validation Success*****************");
fflush(stdout);
schemaTerminate(ctx1);
return 0;
output is
Validate XSD *****1
Validation failed, error 14
Thanks,
NisaFor performance reasons the CLOB (hopefully XMLType based) is the wrong way to go. Have a look at XMLType Object Relational or Binary XML storage model.
1) The info needed can be found in the manual under "Schema evolution" and depending on your version you can use in-place or copy-evolve
2) "other way of validating" would be what / how ? Please elaborate.
3) Yep, you could. But doing it the XMLDB Oracle way would be more efficient, for example one parse only and then pinned in memory... Why would you simulate what Oracle already has optimized for you and ready to use...? -
HOW TO USE isSchemaValid() in oracle 9i to validate XML against XSD
Hi
I am trying to validate xml file against xsd in oracle 9i.The steps are as follows:
*1.Created directory for xml and xsd file location:*
CREATE or replace DIRECTORY XML_DATA AS 'D:\prod\sample xml and xsd;
*2.Register the schema*
DECLARE
bf5 BFILE;
BEGIN
-- Register the schema
dbms_lob.filecloseall;
bf5 := BFILENAME('XML_DATA','xml1.xsd');
DBMS_XMLSCHEMA.registerSchema('http://www.example.com/schemas/ipo.xsd',bf5,TRUE, TRUE, FALSE,TRUE,TRUE);
-- dbms_lob.fileclose(bf5);
END;
*3.creatibg table to store xml files*
CREATE TABLE po_tab2 (id NUMBER,xmlcol SYS.XMLType) ;
*4.Inserting xml file into the table and validating that file with xml schema*
declare
aa clob:=' ';
b varchar2(4000);
c xmltype;
begin
dbms_lob.filecloseall;
aa:= GETCLOBDOCUMENT('XML_DATA','example.XML','WE8MSWIN1252');
INSERT INTO po_tab2 (ID, XMLCOL)
VALUES
(104,sys.XMLType.createXML(aa));
commit;
--c:=sys.xmltype.createXml(aa);
c:=xmltype(aa);
b:=VerifyXML(c,'http://www.example.com/schemas/ipo.xsd');
dbms_output.put_line(b);
end;
_5.VerifyXML function is:_
create or replace
function VerifyXML( xml xmltype, xmlSchema varchar2 ) return varchar2 AUTHID DEFINER is
xmlURL varchar2(4000);
begin
select
s.qual_schema_url into xmlURL
from user_xml_schemas s
where s.schema_url = xmlSchema;
if xml.isSchemaValid(xmlURL,'ManageRolloutRegionNotification') =1 then
return( 'Valid. The supplied XML complies with XSD '||xmlURL );
else
-- return null;
return(sqlcode|| 'Failed. The supplied XML does not comply with XSD '||xmlURL );
end if;
exception when others then
return(sqlcode);
end;
_6.PROBLEM:_
the problem is the function is always returning 'Failed ' status even though I am giving the correct file.. Is there any method to find the reason for failure. These codes are working fine oracle 11g. currently i am working in 9i version 9.2.0.1.0. IOracle 9iR2 is not supported anymore.
Oracle 9.2.0.8 is in sustained support.
Oracle 9.2.0.1 is not supported at all.
Upgrade to 11gR2.
Sybrand Bakker
Senior Oracle DBA -
Getting error while converting xml to xsd
I am getting error"The table (citeinfo) cannot be the child table to itself in nested relations"
at "http://www.flame-ware.com/products/xml-2-xsd/Default.aspx", while converting
xml into xsd so i can register.
Wherever citeinfo is there it is giving error.
Please look at bold and suggest solution
thank you
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE metadata SYSTEM "http://www.fgdc.gov/metadata/fgdc-std-001-1998.dtd">
<metadata>
<idinfo>
<citation>
*<citeinfo>(1)*<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>One</sername>
<issue>One</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
<lworkcit>
*<citeinfo>(2)*<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>One</sername>
<issue>One</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
*</citeinfo>(2)*</lworkcit>
*</citeinfo>(1)*</citation>
<descript>
<abstract>Easement</abstract>
<purpose>E911 System</purpose>
<supplinf>None</supplinf>
</descript>
<timeperd>
<timeinfo>
<sngdate>
<caldate>20040512</caldate>
<time>09000000</time>
</sngdate>
</timeinfo>
<current>publication date</current>
</timeperd>
<status>
<progress>Complete</progress>
<update>As needed</update>
</status>
<spdom>
<bounding>
<westbc>
-122.339</westbc>
<eastbc>
-121.0716</eastbc>
<northbc>
37.4900</northbc>
<southbc>
36.9086</southbc>
</bounding>
</spdom>
<keywords>
<theme>
<themekt>Easement</themekt>
<themekey>Easement</themekey>
</theme>
<place>
<placekt>San Jose</placekt>
<placekey>San Jose</placekey>
</place>
<stratum>
<stratkt>None</stratkt>
<stratkey>None</stratkey>
</stratum>
<temporal>
<tempkt>None</tempkt>
<tempkey>None</tempkey>
</temporal>
</keywords>
<accconst>None</accconst>
<useconst>None</useconst>
<ptcontac>
<cntinfo>
<cntperp>
<cntper>Earl Harris</cntper>
<cntorg>City of San Jose</cntorg>
</cntperp>
<cntpos>Project Manager</cntpos>
<cntaddr>
<addrtype>Actual Address</addrtype>
<address>801 N 1 ST</address>
<city>San Jose</city>
<state>CA</state>
<postal>90000</postal>
<country>USA</country>
</cntaddr>
<cntvoice>408.277.5626</cntvoice>
<cnttdd>408.277.5626</cnttdd>
<cntfax>408.298.8382</cntfax>
<cntemail>[email protected]</cntemail>
<hours>9-5</hours>
<cntinst>None</cntinst>
</cntinfo>
</ptcontac>
<browse>
<browsen>None</browsen>
<browsed>None</browsed>
<browset>None</browset>
</browse>
<datacred>Unknown</datacred>
<secinfo>
<secsys>FGDC</secsys>
<secclass>Confidential</secclass>
<sechandl>Confidential Information</sechandl>
</secinfo>
<native>Microsoft Windows NT Version 4.0 (Build 1381) Service Pack 6; ESRI ArcCatalog 8.3.0.800</native>
<crossref>
*<citeinfo>(3)*<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>one</sername>
<issue>one</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
<lworkcit>
*<citeinfo>(*4)
<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>one</sername>
<issue>one</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
*</citeinfo>(*3)
</lworkcit>
*</citeinfo*>(4)
</crossref>
</idinfo>
<dataqual>
<attracc>
<attraccr>All the related attributes are populated 100%.</attraccr>
<qattracc>
<attraccv>100%</attraccv>
<attracce>All the related attributes are populated 100%.</attracce>
</qattracc>
</attracc>
<logic>100% adjusted,modified and captured easements.</logic>
<complete>100%</complete>
<posacc>
<horizpa>
<horizpar>Easement accuracy is 2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</horizpar>
<qhorizpa>
<horizpav>2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</horizpav>
<horizpae>Easement accuracy is 2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</horizpae>
</qhorizpa>
</horizpa>
<vertacc>
<vertaccr>Easement accuracy is 2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</vertaccr>
<qvertpa>
<vertaccv>2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</vertaccv>
<vertacce>Easement accuracy is 2 ft for 3" pixel Orthophoto, 5 ft for 9" pixel Orthophoto.</vertacce>
</qvertpa>
</vertacc>
</posacc>
<lineage>
<srcinfo>
<srccite>
<*citeinfo>(5)*<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>one</sername>
<issue>one</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
<lworkcit>
*</citeinfo>(5*)*<citeinfo>(6)*
<origin>MRF</origin>
<pubdate>20040512</pubdate>
<pubtime>09000000</pubtime>
<title>BAS_EASEMENT</title>
<edition>1</edition>
<geoform>vector digital data</geoform>
<serinfo>
<sername>one</sername>
<issue>one</issue>
</serinfo>
<pubinfo>
<pubplace>San Jose</pubplace>
<publish>CITY</publish>
</pubinfo>
<othercit>None</othercit>
<onlink>www.mrf.com</onlink>
*</citeinfo>(5)*
</lworkcit>
*</citeinfo>(6)*
</srccite>
<srcscale>24000</srcscale>
<typesrc>FTP</typesrc>
<srctime>
<timeinfo>
<sngdate>
<caldate>20040512</caldate>
<time>09000000</time>
</sngdate>
</timeinfo>
<srccurr>publication date</srccurr>
</srctime>
<srccitea>Unknown</srccitea>
<srccontr>MGE dgn contains easement data.</srccontr>
</srcinfo>
<procstep>
<procdesc>Easement data is reprojected from NAD27 to NAD83.
Further it is adjusted as per the spatial alignment shown in MGE input dgn.</procdesc>
<srcused>Easement</srcused>
<procdate>20040512</procdate>
<proctime>09000000</proctime>
<srcprod>BAS_EASEMENT</srcprod>
<proccont>
<cntinfo>
<cntperp>
<cntper>Mahesh P Choudhury</cntper>
<cntorg>Rolta International Inc.</cntorg>
</cntperp>
<cntpos>Project Manager</cntpos>
<cntaddr>
<addrtype>mailing address</addrtype>
<address>5865 North Point Parkway</address>
<city>Alpharetta</city>
<state>GA</state>
<postal>30022</postal>
<country>USA</country>
</cntaddr>
<cntvoice>678.942.5015</cntvoice>
<cnttdd>678.942.5015</cnttdd>
<cntfax>678.942.5001</cntfax>
<cntemail>[email protected]</cntemail>
<hours>8-5</hours>
<cntinst>None</cntinst>
</cntinfo>
</proccont>
</procstep>
</lineage>
<cloud>Unknown</cloud>
</dataqual>
<spdoinfo>
<indspref>unknown</indspref>
<direct>Vector</direct>
<ptvctinf>
<sdtsterm>
<sdtstype>String</sdtstype>
<ptvctcnt>2203</ptvctcnt>
</sdtsterm>
</ptvctinf>
</spdoinfo>
<spref>
<horizsys>
<geograph>
<latres>5.5</latres>
<longres>5.5</longres>
<geogunit>Decimal degrees</geogunit>
</geograph>
<geodetic>
<horizdn>North American Datum of 1983</horizdn>
<ellips>Geodetic Reference System 80</ellips>
<semiaxis>1</semiaxis>
<denflat>2</denflat>
</geodetic>
</horizsys>
<vertdef>
<altsys>
<altdatum>North American Vertical Datum of 1988</altdatum>
<altres>0.002</altres>
<altunits>sf</altunits>
<altenc>Attribute values</altenc>
</altsys>
<depthsys>
</depthsys>
</vertdef>
</spref>
<eainfo>
<detailed>
<enttyp>
<enttypl>
BAS_EASEMENT</enttypl>
<enttypd>Contains geometry and attributes for easement segments</enttypd>
<enttypds>Data Model Dictionary</enttypds>
</enttyp>
<attr>
<attrlabl>BAS_EASEMENT_ID</attrlabl>
<attrdef>Migrated from STREET table ID column. After all the existing IDs have been migrated, assign ID #70,001 onwards for the new easement (or what ever # is available sequentially using, street centerline #) ID's.</attrdef>
<attrdefs>ESRI</attrdefs>
<attrdomv>
<udom>Sequential unique whole numbers that are automatically generated.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>SURVEY_LENGTH</attrlabl>
<attrdef>Actual length of easement (international foot).This DOES take into account the State Plane Coordinate System.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Surveyed segment length</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>ROW_WIDTH</attrlabl>
<attrdef>Width of right-of-way (international feet)</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Right-of-way width</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Updated from ROW files</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>FROM_EASEMENT_ID</attrlabl>
<attrdef>Self-referential key to BAS_EASEMENT table, that contains locational information about the easement that the easement is digitized from. "FROM" is the starting point of digitization</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>IDs of an easement to which FROM side of this easement is connected.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>FROM_STREET_ID</attrlabl>
<attrdef>Foreign key to BAS_STREET_SEGMENT table, that contains locational information about street segment that the easement is digitized from. "FROM" is the starting point of digitization</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>IDs of an street segment to which FROM side of this easement is connected.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>TO_EASEMENT_ID</attrlabl>
<attrdef>Self-referential key to BAS_EASEMENT table, that contains locational information about the easement that the easement is digitized to. "TO" is the ending point of digitization.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>IDs of an easement to which TO side of this easement is closely located.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>TO_STREET_ID</attrlabl>
<attrdef>Foreign key to BAS_STREET_SEGMENT table, that contains locational information about street segment that the easement is digitized to. "TO" is the ending point of digitization.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>IDs of an street segment to which TO side of this easement is closely located.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>OTH_PROCESSING_STATUS_ID</attrlabl>
<attrdef>ID of the status/result of last run batch job.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Migrated from PLAN_1 in MGE tables and GIS_TRACKING.MDB Access Database</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>MUNICIPALITY_NAME</attrlabl>
<attrdef>Name of municipality in which the easement primarily resides.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<codesetd>
<codesetn>MUNICIPALITY_NAME_DOMAIN</codesetn>
<codesets>Data Model Dictionary</codesets>
</codesetd>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Updated using Municipal boundary source data.</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>RECORD_DRAWING_FLAG</attrlabl>
<attrdef>Engineering plan that has been accepted by the City of San Jose (Y or N).</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>USERNAME who last modified this record</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Updated using source data.</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>ACQUISITION_DATE</attrlabl>
<attrdef>Official date engineering plan accepted by the City of San Jose on this date</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Date/Time stamp of last record modification</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Updated using source data.</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>GEO_MOD_DATE</attrlabl>
<attrdef>Time stamp when GEOMETRY column was last modified.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Time stamp when GEOMETRY column was last modified.</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Data modified date.</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>GDO_GEOMETRY</attrlabl>
<attrdef>Contains spatial data with true arc geometry.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Oracle Spatial Geometry Data - True Arcs</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>MAN_OVERRIDE</attrlabl>
<attrdef>This flag is 'N' by default. If this flag is set to 'Y' no unattended batch process will touch it ever again.</attrdef>
<attrdefs>Data Model Dictionary</attrdefs>
<attrdomv>
<udom>Flag set for batch process</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>MESSAGE</attrlabl>
<attrdef>Message from automated batch process to operator; can be "OK", or error message, or "to be checked", etc.</attrdef>
<attrdefs>data model dictionary</attrdefs>
<attrdomv>
<udom>GDO_GEOMETRY.LEN</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>OTH_PLAN_CREATED</attrlabl>
<attrdef>PLAN_1 in STREET table should be migrated to BAS_EASEMENT table OTH_PLAN_ID_CREATED column. This value should also be entered into the OTH_PLAN table PLAN_NAME column if not present.</attrdef>
<attrdefs>Data Dictionary</attrdefs>
<attrdomv>
<codesetd>
<codesetn>OTH_PLAN_DOMAIN</codesetn>
<codesets>data model dictionary</codesets>
</codesetd>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>OTH_PLAN_MODIFIED</attrlabl>
<attrdef>PLAN_2 in STREET table should be migrated to BAS_EASEMENT table OTH_PLAN_ID_MODIFIED column. This value should also be entered into the OTH_PLAN table PLAN_NAME column if not present</attrdef>
<attrdefs>Data dictionary</attrdefs>
<attrdomv>
<codesetd>
<codesetn>OTH_PLAN_DOMAIN</codesetn>
<codesets>data model dictionary</codesets>
</codesetd>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>LINEAGE_ID</attrlabl>
<attrdef>Artificial Numeric Identifier; Assigned to any graphical object; Unique throughout the system. Shared among tables. This column would also be used by EDL Administrator for lineage.</attrdef>
<attrdefs>Data dictionary</attrdefs>
<attrdomv>
<udom>Artificial Numeric Identifier</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
<attr>
<attrlabl>GDO_GEOMETRY.LEN</attrlabl>
<attrdef>Created default</attrdef>
<attrdefs>Data model</attrdefs>
<attrdomv>
<udom>unknown</udom>
</attrdomv>
<begdatea>20040512</begdatea>
<enddatea>20040512</enddatea>
<attrvai>
<attrva>100</attrva>
<attrvae>Unknown</attrvae>
</attrvai>
<attrmfrq>As needed</attrmfrq>
</attr>
</detailed>
<overview>
<eaover>Populated using MRF Tools</eaover>
<eadetcit>Various sources</eadetcit>
</overview>
</eainfo>
<distinfo>
<distrib>
<cntinfo>
<cntperp>
<cntper>Earl Harris</cntper>
<cntorg>City of San Jose</cntorg>
</cntperp>
<cntpos>Project Manager</cntpos>
<cntaddr>
<addrtype>Actual Address</addrtype>
<address>801 N 1 ST</address>
<city>San Jose</city>
<state>CA</state>
<postal>90000</postal>
<country>USA</country>
</cntaddr>
<cntvoice>408.277.5626</cntvoice>
<cnttdd>408.277.5626</cnttdd>
<cntfax>408.298.8382</cntfax>
<cntemail>[email protected]</cntemail>
<hours>9-5</hours>
<cntinst>None</cntinst>
</cntinfo>
</distrib>
<resdesc>Unknown</resdesc>
<distliab>Unknown</distliab>
<stdorder>
<digform>
<digtinfo>
<formname>GM Pro Access</formname>
<formvern>5.1</formvern>
<formspec>GM Pro 5.1</formspec>
<formcont>Easement data</formcont>
<filedec>no compression applied</filedec>
<transize>60</transize>
</digtinfo>
<digtopt>
<onlinopt>
<computer>
<networka>
<networkr>FTP</networkr>
</networka>
</computer>
<accinstr>FTP</accinstr>
<oncomp>FTP server</oncomp>
</onlinopt>
<offoptn>
<offmedia>None</offmedia>
<reccap>
<recden>1</recden>
<recdenu>None</recdenu>
</reccap>
<recfmt>None</recfmt>
<compat>None</compat>
</offoptn>
</digtopt>
</digform>
<fees>Unknown</fees>
<ordering>Unknown</ordering>
<turnarnd>Unknown</turnarnd>
</stdorder>
<custom>Unknown</custom>
<techpreq>Unknown</techpreq>
<availabl>
<timeinfo>
<sngdate>
<caldate>20040512</caldate>
<time>09000000</time>
</sngdate>
</timeinfo>
</availabl>
</distinfo>
<metainfo>
<metd>20040512</metd>
<metrd>20040512</metrd>
<metfrd>20040519</metfrd>
<metc>
<cntinfo>
<cntperp>
<cntper>Mahesh P Choudhury</cntper>
<cntorg>Rolta International Inc</cntorg>
</cntperp>
<cntpos>Project Manager</cntpos>
<cntaddr>
<addrtype>mailing address</addrtype>
<address>5865 North Point Parkway</address>
<city>Alpharetta</city>
<state>GA</state>
<postal>30022</postal>
<country>USA</country>
</cntaddr>
<cntvoice>678.942.5015</cntvoice>
<cnttdd>678.942.5015</cnttdd>
<cntfax>678.942.5001</cntfax>
<cntemail>[email protected]</cntemail>
<hours>8-5</hours>
<cntinst>None</cntinst>
</cntinfo>
</metc>
<metstdn>FGDC Content Standards for Digital Geospatial Metadata</metstdn>
<metstdv>FGDC-STD-001-1998</metstdv>
<mettc>local time</mettc>
<metac>Unknown</metac>
<metuc>Unknown</metuc>
<metsi>
<metscs>Unknown</metscs>
<metsc>Confidential</metsc>
<metshd>Unknown</metshd>
</metsi>
<metextns>
<onlink>http://www.esri.com/metadata/esriprof80.html</onlink>
<metprof>ESRI Metadata Profile</metprof>
</metextns>
</metainfo>
</metadata>I am having error while registering as undefined element for citeinfo, timeinfo and cntinfo as shown below
Please could you help me solve.
thanks
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="citationType">
<xs:sequence>
*<xs:element ref="citeinfo"/>*
</xs:sequence>
</xs:complexType>
SQL> BEGIN
2 DBMS_XMLSCHEMA.registerSchema(
3 SCHEMAURL => 'fgdc-std-001-1998-sect011.xsd',
4 SCHEMADOC => bfilename('XMLDIR','fgdc-std-001-1998-sect011.xsd'),
5 CSID => nls_charset_id('UTF8'));
6 END;
7 /
BEGIN
ERROR at line 1:
ORA-31154: invalid XML document
ORA-19202: Error occurred in XML processing
LSX-00021: undefined element "citeinfo"
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 37
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 61
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 126
ORA-06512: at line 2
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="timeperdType">
<xs:sequence>
*<xs:element ref="timeinfo"/> *
<xs:element ref="current"/>
</xs:sequence>
</xs:complexType>
<xs:element name="current" type="currentType">
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="ptcontacType">
<xs:sequence>
*<xs:element ref="cntinfo"/> *
</xs:sequence>
</xs:complexType>
<xs:element name="browse" type="browseType">
<xs:annotation> -
XML and XSD file to an internal table
I had read a lot of thread but i don't understand how to deal with xml/xsd in R3.
I need someone that have a definite example for this escenary please.
With OPEN DATASET took from the server XML and XSD file, and put it in two internal tables type string.
What functions or method have to use, and how to use them, to charge the XML file in an internal table?
This is an example of XML and XDS:
XML
AND CONTINUE
Best Regards,I just tried to interpret your question, it was not obvious what you wanted.
I guess what you mean is that you have defined (statically) a deep structure, and you want to decode the XML into it. That is called a transformation (transaction STRANS, statement CALL TRANSFORMATION). You have the choice between 2 transformation languages: XSLT and ST. Of course, it depends what release you are running.
I advise you to play first with the ID transformation, to convert an ABAP deep structured data object into XML, so that you see what XML is generated, this one is called asXML. If you create your own transformation, when you call it, it will first convert automatically the data object to asXML, and the transformation has to do the rest of the job.
You can do the opposite, i.e. converting from XML to a data object, according to the same principle (intermediate asXML).
Well, there are lots of things to say, I recommend you to read articles and documentation on XSLT and ST (search on SDN).
About XSD, it won't help (and I did never see any possibility to use it) to decode the XML, as you must anyway define the target data object statically (and there's no tool to generate the ABAP code of the data object definition from the XSD).
Note that you may also use iXML libraries to parse the XML.
Please tell us more.
BR
Sandra -
In Reply to : How to validate org.jdom.Document object using xsd: dvohra09
Hi All
I am creating org.jdom.Document object using constructor Document() and adding children using setRootElement(), setChildren() and addContent() methods. The children are objects of org.jdom.Element. If i want to validate the org.jdom.Document using xsd what i have to do. Thanks in anticipation.I tried the below code and it is always giving the
Parsing fatal error : The markup in the document preceding the root element must be well-formed.
But it is possible to validate the same Document object as right document after writing it onto xml file using XMLOutputter and parsing it using DOMParser
Thanks in anticipation
org.jdom.Document document;
String documentString=document.toString();
StringReader stringReader=new
StringReader(documentString);
SAXBuilder saxBuilder =new
SAXBuilder("org.apache.xerces.parsers.SAXParser",true);
saxBuilder.setFeature("http://xml.org/sax/features/vali
ation", true);
saxBuilder.setFeature("http://apache.org/xml/features/v
lidation/schema", true);
saxBuilder.setFeature("http://apache.org/xml/features/v
lidation/schema-full-checking", true);
//Set a error handler with
setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
saxBuilder.build(stringReader); -
i've searched on how to parse xml against xsd,dtd,etc.. without the needs of internet connection..
but unfortunately, only the xsd file can be set locally and still there needs the internet connection for the other features, properties.
XML: GML file input from gui
XSD: input from gui
javax.xml
package demo;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.SAXException;
public class Sample1WithJavaxXML {
public static void main(String[] args) {
URL schemaFile = null;
try {
//schemaFile = new URL("http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd");
File file0 = new File("AppSchema-C01-v1_0.xsd");
schemaFile = new URL(file0.toURI().toString());
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
//Source xmlFile = new StreamSource(new File("web.xml"));
Source xmlFile = new StreamSource(new File("C01.xml"));
SchemaFactory schemaFactory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
//File file1 = new File("XMLSchema.dtd");
//SchemaFactory schemaFactory = SchemaFactory
//.newInstance("javax.xml.validation.SchemaFactory:XMLSchema.dtd");
Schema schema = null;
try {
schema = schemaFactory.newSchema(schemaFile);
} catch (SAXException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
Validator validator = schema.newValidator();
try {
validator.validate(xmlFile);
System.out.println(xmlFile.getSystemId() + " is valid");
} catch (SAXException e) {
System.out.println(xmlFile.getSystemId() + " is NOT valid");
System.out.println("Reason: " + e.getLocalizedMessage());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}Xerces
package demo;
import java.io.File;
import java.util.Date;
import org.apache.xerces.parsers.DOMParser;
public class SchemaTest {
private String xmlFile = "";
private String xsdFile = "";
public SchemaTest(String xmlFile, String xsdFile) {
this.xmlFile = xmlFile;
this.xsdFile = xsdFile;
public static void main (String args[]) {
File file0 = new File("AppSchema-C01-v1_0.xsd");
String xsd = file0.toURI().toString();
SchemaTest testXml = new SchemaTest("C01.xml",xsd);
testXml.process();
public void process() {
File docFile = new File(xmlFile);
DOMParser parser = new DOMParser();
try {
parser.setFeature("http://xml.org/sax/features/validation", true);
parser.setFeature("http://apache.org/xml/features/validation/schema", true);
parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",
xsdFile);
ErrorChecker errors = new ErrorChecker();
parser.setErrorHandler(errors);
System.out.println(new Date().toString() + " START");
parser.parse(docFile.toString());
} catch (Exception e) {
System.out.print("Problem parsing the file.");
System.out.println("Error: " + e);
System.out.println(new Date().toString() + " ERROR");
return;
System.out.println(new Date().toString() + " END");
}Thanks a lot Sir DrClap..
I tried to use and implement the org.w3c.dom.ls.LSResourceResolver Interface which is based on the SAX2 EntityResolver.
please give comments the way I implement it. Here's the code:
LSResourceResolver Implementation
import org.w3c.dom.ls.LSInput;
import org.w3c.dom.ls.LSResourceResolver;
import abc.xml.XsdConstant.Path.DTD;
import abc.xml.XsdConstant.Path.XSD;
public class LSResourceResolverImpl implements LSResourceResolver {
public LSResourceResolverImpl() {
* {@inheritDoc}
@Override
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
LSInput input = new LSInputImpl(publicId, systemId, baseURI);
if ("http://www.w3.org/2001/xml.xsd".equals(systemId)) {
input.setByteStream(classLoader.getResourceAsStream(XSD.XML));
} else if (XsdConstant.PUBLIC_ID_XMLSCHEMA.equals(publicId)) {
input.setByteStream(classLoader.getResourceAsStream(DTD.XML_SCHEMA));
} else if (XsdConstant.PUBLIC_ID_DATATYPES.equals(publicId)) {
input.setByteStream(classLoader.getResourceAsStream(DTD.DATATYPES));
return input;
}I also implement org.w3c.dom.ls.LSInput
import java.io.InputStream;
import java.io.Reader;
import org.w3c.dom.ls.LSInput;
public class LSInputImpl implements LSInput {
private String publicId;
private String systemId;
private String baseURI;
private InputStream byteStream;
private String stringData;
public LSInputImpl(String publicId, String systemId, String baseURI) {
super();
this.publicId = publicId;
this.systemId = systemId;
this.baseURI = baseURI;
//getters & setters
}Then, here's the usage/application:
I create XMLChecker class (SchemaFactory implementation is Xerces)
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.XMLConstants;
import javax.xml.stream.FactoryConfigurationError;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import abc.xml.XsdConstant.Path.XSD;
public class XMLChecker {
private ErrorMessage errorMessage = new ErrorMessage();
public boolean validate(String filePath){
final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
List<Source> schemas = new ArrayList<Source>();
schemas.add(new StreamSource(classLoader.getResourceAsStream(XSD.XML_SCHEMA)));
schemas.add(new StreamSource(classLoader.getResourceAsStream(XSD.XLINKS)));
schemas.add(new StreamSource(classLoader.getResourceAsStream("abc/xml/AppSchema.xsd")));
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFactory.setResourceResolver(new LSResourceResolverImpl());
try {
Schema schema = schemaFactory.newSchema(schemas.toArray(new Source[schemas.size()]));
Validator validator = schema.newValidator();
validator.setErrorHandler(new ErrorHandler() {
@Override
public void error(SAXParseException e) throws SAXException {
errorMessage.setErrorMessage(e.getMessage());
errorMessage.setLineNumber(e.getLineNumber());
errorMessage.setColumnNumber(e.getLineNumber());
throw e;
@Override
public void fatalError(SAXParseException e) throws SAXException {
errorMessage.setErrorMessage(e.getMessage());
errorMessage.setLineNumber(e.getLineNumber());
errorMessage.setColumnNumber(e.getLineNumber());
throw e;
@Override
public void warning(SAXParseException e) throws SAXException {
errorMessage.setErrorMessage(e.getMessage());
errorMessage.setLineNumber(e.getLineNumber());
errorMessage.setColumnNumber(e.getLineNumber());
throw e;
StreamSource source = new StreamSource(new File(filePath));
validator.validate(source);
} catch (SAXParseException e) {
return false;
} catch (SAXException e) {
errorMessage.setErrorMessage(e.getMessage());
return false;
} catch (FactoryConfigurationError e) {
errorMessage.setErrorMessage(e.getMessage());
return false;
} catch (IOException e) {
errorMessage.setErrorMessage(e.getMessage());
return false;
return true;
public ErrorMessage getErrorMessage() {
return errorMessage;
}Edited by: erossy on Aug 31, 2010 1:56 AM
Maybe you are looking for
-
Fluid grid layout css error - (adobe support sucks!)
We just bought upgrades for our entire department to dreamweaver cs6 about 2 weeks ago. Today for the first time I've been trying to make use of the new fluid grid layout system. I got some of the page put together and when I then tried to insert a
-
The Health app in iOS 8?
I have used this app with varying results since receiving my iPhone 6+. Hopefully, it is still in its infancy and will improve. One question, among many, here's how it measures and records "flight climbed". I am up and down stairs practically all d
-
AQ-Header parameters/ IP_MESSAGE_TYPE parameters
Hi I am using AQ for BPEL-B2B communication I know we have some parameters of AQ header and IP_MESSAGE-TYPE but I am not sure how to populate, from where I have to get the values for these parameters and which are mandatory AQ-HEADER ========== PRIOR
-
Upgraded and now have lost songs
I upgraded my intunes and now only the purchased songs show up. All the songs I imported from cds show as lost links and I cannot locate them. Any suggestions would be appreciated. Thanks
-
X-Fi Elite Pro Dissapears in Device Manager after Crash
Hi guys... I have a big problem wich is may already mentioned in this forum... Its kind of strange that the sound card is working really good but when my pc crashes and i have to restard the pc the xfi card is not deteced any more There is not even a