|
Yes, we use it as the offical schema format.
"If I won't be myself, who will?" Alfred Hitchcock
|
|
|
|
|
Is your schema exposed externally ? I'm just curious because XSD's seem quite complex, the XSD for our format would surely take at least a day to write and I'm not sure I see the benefits for our application.
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Cats, and most other animals apart from mad cows can write fully functional vb code. - Simon Walton - 6-Aug-2002
|
|
|
|
|
Christian Graus wrote:
Is your schema exposed externally ?
Not to be to evasive but I could answer this either way. For the matter of this discussion yes it is exposed. I.E. an authorized customer or supplier company can (when we open the server access) access the schemas to validate the data as well as us use it to validate what is submited to us.
Christian Graus wrote:
I'm just curious because XSD's seem quite complex, the XSD for our format would surely take at least a day to write and I'm not sure I see the benefits for our application.
Yes any schema will take some time. Especially since you seldom get it right the first time (i.e. do you really cover all of the options you are expecting to. However I think XSD's ar better than DTD's.
So the question is do you need a schema? I strongly recommend doing so if just for documenting your work. If this is all you need using one of the generation tools is good. I am using Authority from Tibco (formerly Extensibility). I think is you just get the schema tool it is only $100 US and is well worth the money. I have the TurboXML suite.
If all of your data transmitals are internal this is not as important as you can include testing to ensure compatiblity. But once you transmite or recieve data from other this is beyond your internal testing limits.
REF: http://www.tibco.com/solutions/products/extensibility/turbo_xml.jsp
I did not see authority listed by itself but you may want to check it out. The one big negative is it is java based so a little slow.
"If I won't be myself, who will?" Alfred Hitchcock
|
|
|
|
|
Michael A. Barnhart wrote:
However I think XSD's ar better than DTD's.
Yes, they appear to be. Internally, for documentation, we just create an empty XML document.
Michael A. Barnhart wrote:
I am using Authority from Tibco (formerly Extensibility).
How do these tools handle things like multiple nodes and minimum/maximum value/counts ? Do they take a number of documents to validate against ?
Michael A. Barnhart wrote:
If all of your data transmitals are internal this is not as important as you can include testing to ensure compatiblity. But once you transmite or recieve data from other this is beyond your internal testing limits.
Yes, that's basically what I thought. I'm asking from the perspective of writing a wrapper for XML in C#, and an editor for XML/XSL and XSD's, and I just wondered how useful they are in the 'real' world.
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Cats, and most other animals apart from mad cows can write fully functional vb code. - Simon Walton - 6-Aug-2002
|
|
|
|
|
Christian Graus wrote:
How do these tools handle things like multiple nodes and minimum/maximum value/counts ?
Very easy. You just edit the general properties (i.e. required, optional, repeatable and then switch to a source mode where you can edit the individual values for min and max occurance (default is unbounded for max and 0 for min if optional and repeatable are set.
Christian Graus wrote:
Do they take a number of documents to validate against ?
I am not sure I am understanding this question. This generates the schemas. It does not do the validation. The validating parser would do this step.
Christian Graus wrote:
I'm asking from the perspective of writing a wrapper for XML in C#, and an editor for XML/XSL and XSD's, and I just wondered how useful they are in the 'real' world.
Yes they are useful in the real world. This will grow in the next several years. Right now the user authorization and validation for things like Web Services needs to be handled. At that point the need for these tools will grow as these services grow to be more than just demos (or in closed access as mine are).
You have to ask your self how much is this going to cost vs buying what is available. For me the tools were to cheap to keep updating our work.
"If I won't be myself, who will?" Alfred Hitchcock
|
|
|
|
|
Michael A. Barnhart wrote:
I am not sure I am understanding this question.
What I meant was, if I accepted three XML documents, I could extrapolate from that how often a node must appear, and how often it may appear. It would provide the range needed to do that stuff automatically.
You've been most helpful - thanks.
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Cats, and most other animals apart from mad cows can write fully functional vb code. - Simon Walton - 6-Aug-2002
|
|
|
|
|
Christian Graus wrote:
It would provide the range needed to do that stuff automatically.
For this set of tools it would just give you (0 or 1) min and unbounded for the max if the data had multiple entries. It would not give you say 1 to 5 for the range. But that is a very easy edit to go change.
Good Luck, Mike
"If I won't be myself, who will?" Alfred Hitchcock
|
|
|
|
|
Christian Graus wrote:
I could extrapolate from that how often a node must appear, and how often it may appear. It would provide the range needed to do that stuff automatically.
XML Spy v4.4[^] can do this BTW.
|
|
|
|
|
Christian Graus wrote:
Yes, that's basically what I thought. I'm asking from the perspective of writing a wrapper for XML in C#, and an editor for XML/XSL and XSD's, and I just wondered how useful they are in the 'real' world.
Just to follow up on your question about use in the real world, I was working on a project recently that used web services to communicate with a database. The project had a thin oo wrapping around what I required of the xml, and this wrapping layer of classes required certain values from the xml it was given.
Rather than doing all the validation within the wrapping classes (and therefore making them more cumbersome), a schema (XSD) was created to validate the xml before it was passed to the wrapper. This way we got good feedback in the form of exceptions when the xml didn't conform to the requirements of the wrapping environment. Also, I did at one point have plans to automatically generate the wrapper classes from the schema itself, and so solve the maintainance time of keeping a schema up to date.
The other side issue that arose was that the schema ment that (as another poster has already noted) we had a common interface for parallel development - much like an Interface would do for a Class with pre and post conditions, we used the XSD for the XML.
Hope this helps
Ben
|
|
|
|
|
Use it extensively. It provides several purposes, the main being that one can validate their XML and the other being that if your project is related to transfer of data between departments or organizations then the XSD serves as fantastic documentation.
Also XML authoring tools like XML spy use the XSD to help you with your XML. It will provide you with options, choices, valid data etc.
|
|
|
|
|
Christian Graus wrote:
I'm spending a lot of time with XML nowadays and I'm interested to know if anyone actually uses XSD's in their work situation ?
If by XSD you mean the W3C XML Schema then yes. But admitedly at the moment we use both DTDs and XSDs. For the simpler projects DTDs are much easier and suffice, for the more complex projects then we go XSD.
One of the best benefits of XSD IMO is that it is an XML document itself, unlike a DTD. This proves very useful when doing dynamic processing of an XML schema. With a DTD you have to do some manual parsing which is a pain, but with an XSD you can use a normal XML parser to do the grunt work for you. I really hope the W3C convert all their schemas over to XSD soon so that I can actually make use of them properly
And of course with XSD you get proper types (e.g. string, number etc.) which is very important.
While they are more complex to create they are far more powerful and actually once you get into a lot more logical than DTDs. The usual XML well-formed rules apply and you can even validate an XSD against another to ensure the new XSD is valid.
As mentioned in the other post XML Spy 4.4 is quite handy with XSD documents.
|
|
|
|
|
|
I thought this would be simple. I have a dictionary of sorts; I want to display just the terms in the XML doc. Then when I click on the term I'd like to see it's definition. The problem is how to pass the var to the xslt. ...make sense?
|
|
|
|
|
You can accomplish this, if you're doing this through a browser, with a little bit of processing either in the browser or on the server. In either case, the processing you do is the same. The short story is that you use an XPath expression to extract the value of the node(s) you want to display. Here are the details:
I'm going to give you details from part of an example from my soon to be available book not for name recognition, but simply because it is a good example that demonstrates the technique.
Assume that you have a site that publishes book reviews - the details of each book (title, author, etc) along with book reviews reside an an XML file that has a relative simple structure. When users hit the site, they receive a page that lists all books and provides a link to the review. The page, in one part of the sample, actually not an HTML page but is an XML file that's transformed on the client using XSL (so the URL users see in the address bar ends in a file name having an XML extension). This, so far, is the first bit of processing you need to do - transform the XML document (in your case the document that contains information about the directory) into a presentable format.
The next bit of processing occurs when the user clicks on a record (or book review in this example) to get the details. I made this part of the process easier for myself back in the previous step: I generated links that provide the information I need in this step to extract the information the user wants. In the sample, I generate links that point to an HTML page along with some information on the querystring, to the link I generate looks something like this:
<a href="displayReview.htm?Book Title">Book Title</a>
So that when the user clicks the link, displayReview.htm can extract the review from the XML file. displayReview.htm contains a little bit of JavaScript that does the following:
- Extracts the text passed in on the querystring.
- Creates an instance of the XML DOM.
- Loads the book reviews document into the DOM.
- Creates another instance of the DOM.
- Loads an XSL file into the second DOM.
- Builds an XPath expression that includes the book's title.
- Uses the selectSingleNode method to execute the XPath query.
- Uses the transformNode method to transform the resulting node into some presentable format for the end user.
- Stuffs the result into the content of the HTML document.
It looks rather involved here, but it is straight-forward once you see it in action. My book actually implements the sample in two ways: XML, XSL and HTML with JavaScript (this implementaiton), and ASP where all the processing is done on the server and clients receive static HTML.
Good luck!
Erik Westermann
Author, Learn XML In A Weekend (Fall 2002)
|
|
|
|
|
I'm trying to build an XML file in Java to persist data for an application between sessions. I'd like to build a structure like this
<Files>
<Entry>somefile.txt</Entry>
<Entry>otherfile.txt</Entry>
</Files>
How can I do this? I've figured out how to generate it with attributes:
<Files>
<Entry entry=somefile.txt/>
<Entry entry=otherfile.txt/>
</Files>
But that's not the way I need to do it. Can anyone make a suggestion?
Thanks.
|
|
|
|
|
java.sun.com
try the boards there...
Ryan Baillargeon
Software Specialist
Fuel Cell Technologies Inc.
|
|
|
|
|
Hello guys,
I am designing an XML database and need some pointers.
The database i am designing will be used to store configuration information - it will be similar to the type of database that a firewall might have - different rules with different settings.
It will not be used on any special web application - it will be used as an internal configuration database for a local C++ application.
I wanted to know if:
1) There are any XML/XML schema authoring tools which will assist me in creating the database and its relationships.
2) There are any XML schemas that exist which are similar to the model I am looking for. I could use these for reference since i am pretty new to XML.
3) I need to know which is the best way to extract the XML from my XML file(or files). The database could potentially be quite large, and i do not want to load the whole thing in memory before using it. I also do not want to reparse the entire document each time i need to make a query on it. I have heard of XPATH, scripting, DOM and SAX. I might even use a combination of them. Does anyone know which might be the best suited? Also, has anyone ever heard of XML query language?
I have available quite a variaty of books (most from Wrox press). If anyone has good suggestions for more books I could buy, please let me know.
Thanks a lot for the help!
Jeremy.
Jeremy Pullicino
Professional C++ Developer
Done any hacking lately?
|
|
|
|
|
Jeremy Pullicino wrote:
Also, has anyone ever heard of XML query language?
This[^] might be of some help to you.
You can find a few references to XQuery implementations in this article[^].
HTH (to some extent)
Zdenek
"It's never too late to have a happy childhood." [Tom Robbins]
|
|
|
|
|
Don't about many Schema authoring tools. I use XML Spy for XML, XSD etc.
You may want to consider using XSLT for extracting data. If you design your code to apply an XSL to extract data from the XML then you have the flexibility of changing the XSL or creating additional XSLs for extracting different parts of the XML database wityhout having to change your code. Just an idea....
|
|
|
|
|
Thanks about the XML Spy tip, I will make sure to download a copy of it today.
I am worried about XSL for extracting data since performance is an issue for me (this database is read many times every second, from multiple threads, 24hrs a day).
I was thinking of dynamically creating a schema with the fields I will want, and then extracting the data into that schema - however, I am stil learning about XML, so this might be too advanced for me right now.
Thanks for the tips though
XML is truly great.
Jeremy Pullicino
Professional C++ Developer
Done any hacking lately?
|
|
|
|
|
The fastest way to extract data from an XML document is to use SAX (Simple API for XML)[^]. All major vendors provide an implemetaion, but it is not a standardized API (a standards body does not control the API) - it is a de fecto standard.
SAX uses a streaming model where the XML parser notifies your applicaiton whenever it reads a part of the document and provides the details to you in plain text. There's a good article, part of which describes the SAX programming model at the 'other' site[^].
SAX scales well, but if you're still concerned about performance then you can just read the XML directly usinng file I/O and parse it yourself - that's as efficient as it gets but is difficult to maintain.
Jeremy Pullicino wrote:
dynamically creating a schema with the fields I will want
No need to do this - see my other post about getting data from an XML document. That post uses the DOM, which may end up being too slow for your needs. Again, you can use SAX bu then extracting the relevant data is left an an excercise for you or you can od the do-it-yourself route and again have to deal with that issue but with the benefit of muh better performance.
Erik Westermann
Author, Learn XML In A Weekend (Fall 2002)
|
|
|
|
|
Jeremy Pullicino wrote:
I am designing an XML database and need some pointers.
Just quickly have a look at TeXtML[^] for an actual XML Database. Also they maky have whitepapers and links to resources on XML databases.
Jeremy Pullicino wrote:
Also, has anyone ever heard of XML query language?
Yes, read about it at W3C and Google has plenty of links. FYI XSL is used for transforming XML while XQuery is for querying. Though in reality they are very similar and people chop and change between them.
Paul WatsonBlueGrassGroup.com Cape Town, South Africa
|
|
|
|
|
Thanks for the tips especially the links.
The xml database looks good - their site gave me many tips on how XML could be used in databases.
Jeremuy.
Jeremy Pullicino
Professional C++ Developer
Done any hacking lately?
|
|
|
|
|
Paul Watson wrote:
Anybody have any clue as to how to pause an animation in SVG?
Figured it out eventually, call the following method in your SVG doc to pause document.rootElement.pauseAnimations(); and to unpause/resume document.rootElement.unpauseAnimations(); .
Bloody hell if I may say so. All the other leads I followed were complex masterpieces of JavaScript, and that works with just one line. Doh!
|
|
|
|
|
Is there any FREE XML editors like XMetaL 3.0??
XMetaL 3.0 is too expensive for me!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|