|
If you want to validate the document or an XML fragment, see the System.Xml.XmlValidatingReader . There are several articles in the .NET Framework SDK that outline how to validate a document, include this one: Validation against XML Schema (XSD) with the XmlValidatingReader[^].
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I don't know if this is the right place to ask but... here it goes:
Does anyone know some way to convert a XML document to a formatted Word document. I know I can use automation and some programming to do that, but I wonder if there is a better way to do that.
thanks in advance
Mauricio Ritter - Brazil
Sonorking now: 100.13560 MRitter
English is not my native language so, if you find any spelling erros in my posts, please let me know.
|
|
|
|
|
you could generate a RTF or HTML file and open it in word.
or you could generate a XML compatible format if using office 2003
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
select Data tag from this XML file
<Root>
<Table>
<Row>
<Data>Value 1</Data>
</Row>
<Row>
<Data>Value 2</Data>
</Row>
</Table>
<Table>
<Row />
<Row>
<Data>Value 3</Data>
</Row>
</Table>
</Root>
I use "//Data" but no node selected, anyone can help me ?
"Courage choose who will follow, Fate choose who will lead" - Lord Gunner, Septerra Core
"Press any key to continue, where's the ANY key ?" - Homer Simpsons
Drinking gives me amazing powers of insight. I can solve all the worlds problems when drunk, but can never remember the solutions in the morning. - Michael P Butler to Paul Watson on 12/08/03
|
|
|
|
|
Try "Root/Table/Row/Data" .
-Nick Parker
VB gets under people's skin because one can be ignorant of computer architecture and ASM and still
get a lot done. -Don Box
|
|
|
|
|
Is there any different if the root tag has namespace ?
My Root tag has namespace xmlns="urn:www-domain-com:app:type"
Thanks you
"Courage choose who will follow, Fate choose who will lead" - Lord Gunner, Septerra Core
"Press any key to continue, where's the ANY key ?" - Homer Simpsons
Drinking gives me amazing powers of insight. I can solve all the worlds problems when drunk, but can never remember the solutions in the morning. - Michael P Butler to Paul Watson on 12/08/03
|
|
|
|
|
Yes, there is a difference. In order to use XPath when namespaces are used, you must somehow register the namespace and some prefix with the XPath processor (the registration mechanism will depend on the processor used), then use the prefix in the XPath expression.
For example, if you register the prefix 'blah' as 'urn:www-domain-com:app:type', then you could use the XPath expression '//blah:Data' to pick out all the 'Data' nodes if your XML file uses 'urn:www-domain-com:app:type' as a default namespace. Note that the XPath processor will not use any namespace prefixes used in the XML file, which is why a default namespace declaration can be confusing with XPath...
Stuart Dootson
'Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p'
|
|
|
|
|
I don't know if this is the place to ask general questions about web services, but this forum seemed the most appropriate. I havn't had much experience with web technologies so what I hope for is a "push in the right direction"...
What I would like to do is expose a fairly complex framework as a set of webservices. The individual services may take a long time (up to an hour) to complete, so asyncronous calls will probably be used. The output of one service is often input to another, so I'd eventually like to use some kind of server process control. The server will be on a UNIX station and I'll probably implement it in Java.
I've looked at some different technologies this week, and this is what I've come up with:
- The transport will probably be SMTP. I've looked at protocols like BEEP and JMS, but it seems easier(?) to use ordinary mail.
- The service invocations will probably use SOAP generated by JAX-RPC (is there a standard SMTP binding for SOAP?). Possibly a special mail service (based on Apache James?) handles the requests and orchestrates them (handles the process control and invokes local or remote HTTP services).
- The responses will be sent as "notifications" over SMTP (something like a REQUEST<=>N*RESPONSE pattern)
- For process control the BPEL (Business Process Execution Language) seems promising. I've not read through the spec, though.
Did this make any sense? Are there better ways? Any comments, suggestions, experiences or links would really be appreciated at this stage so I don't lock myself in with a dead end technology...
Thanks
/moliate
The corners of my eyes catch hasty, bloodless motion -
a mouse?
Well, certainly a peripheral of some kind.
Neil Gaiman - Cold Colours
|
|
|
|
|
Hi,
I am working with a large set of documents written in XML. At the moment these documents are transformed into HTML by applying a simple XSLT to them with the xml-stylesheet tag. My XSL file is getting quite advanced now, and I would like to add some "go to location" functionality. So with html documentation you might just make a link which points at a page and within that a bookmark. eg:
file: Or i could do it with a with URL parameters :
file: But unfortunatly when I try and pass either bookmarks or parameters into my xml files, these extensions get eaten before the xsl ever gets to pick them up. So my xsl file starts off...
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:url="uri:airwebreathe.org">
<msxsl:script language="JScript" implements-prefix="url">
<![CDATA[
function findURL(nodelist) {
return nodelist.nextNode().url;
}
]]>
</msxsl:script>
<xsl:variable name="xmlpath" select="url:findURL(.)" />
... Unfortunatly when I try somthing like <xsl:value-of select="$xmlpath"> All that does is return the path of the xml file with the parameters or bookmarks stripped away. Is there a way around this problem? or is this a job for client side asp (if there is such a thing)? can anyone put me right?
*¨¨`)
¸¸.·´ ¸.·*¨¨`)
(¸¸.·* ¸ .·*
¸¸.·*
(¸¸.~~> Joel Holdsworth.
|
|
|
|
|
what do you mean by:
"But unfortunatly when I try and pass either bookmarks or parameters into my xml files, these extensions get eaten before the xsl ever gets to pick them up."
how are you performing the transformation ,do you have code?
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
I use a ISAXXMLReader to locate the line & column number of a IXMLDOMNode;
for that i use a ISAXLocator that is transmitted to the ContentHandler :
// create a reader & ContentHandler:
ISAXXMLReaderPtr pReader;
HRESULT hr = pReader.CreateInstance(__uuidof(SAXXMLReader40));
MyContentHandler *pMyContentHandler = new MyContentHandler();
hr = pReader->putContentHandler(pMc);
// create a ISAXLocator & put it to the ContentHandler :
ISAXLocatorPtr pLocator;
hr = pLocator.CreateInstance(__uuidof(ISAXLocator)); // -> hr = -2147221164
pMyContentHandler->putDocumentLocator(pLocator);
// pass a node to the parser :
_variant_t v;
v.vt = VT_DISPATCH;
v.pdispVal = pNode;
pNode->AddRef();
hr = pReader->parse(v);
The parser works (it directly goes to the specifed node),
but pLocator.CreateInstance fails (hr = -2147221164). What's wrong with it ?
JPG
|
|
|
|
|
In fact the code returned by pLocator.CreateInstance
is REGDB_E_CLASSNOTREG : the ISAXLocator is not registered.
Yet the ISAXXMLReader class is registered.
Indeed, looking in the registry, the uuid of ISAXXMLReader is found, but not
the uuid of ISAXLocator.
All these classes were normally installed with the MSXML 4.0 SP2 Parser and SDK
(msxml.msi) from Microsoft.
Does the ISAXLocator need a special trick to be registered ?
JPG
|
|
|
|
|
Hi all,
I have designed a file *.aspx contains a DBGrid control and a XML control. Both of them are server control.
I stored some data into XML tag and now want to show them on DBGrid. But DBGrid.DataSource property accept only DataSet, DataView, etc.
Please tell me how to translate data from XML into DBGrid.
Thank you
Trong Tuan
|
|
|
|
|
Does anyone have a need to transform DTD's (not schema) into C# classes and interfaces?
I had to work on a old (but important) set of DTD's recently and developed a pretty thorough program to handle this. If there is an interest, I will clean it up and get it out.
|
|
|
|
|
I am trying to use MSXML4 parser(DOM). I have successfully used Expat and I trying to figure out how to parse the following using DOM.
<Theme>
<Directory name="mcev1"/>
<Dimensions width="800" height="600"/>
<Background image="background.bmp"/>
<Overlay1 image="lay1.bmp" x="0" y="0"/>
<Overlay2 image="lay2.bmp" x="0" y="500"/>
<Unselectedborder A="255" R="0" G="0" B="0"/>
<Selectedborder A="255" R="255" G="255" B="0"/>
<UnselectedGradient A="128" R="255" G="255" B="255"/>
<SelectedGradient A="204" R="0" G="128" B="0"/>
<MainFont name="Arial" size="20" style="Bold" A="255" R="255" G="255" B="255"/>
</Theme>
As I am parsing I know when I have found the Theme node but then I am confused. Do I just loop thru the siblings or what. I can't seem to find an example that answers this question.
-Steve
|
|
|
|
|
if you are using DOM then you should be doing no parsing.
what information/process are you trying to do, do you have any code?
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
Philip,
From the examples in MSDN and Code project I have code that loads the XML file, code that walks thru all the nodes and code that can save the tree back to the file.
Since I am used to the Expat way of doing things maybe I am looking at this all wrong. But, if I am not doing any parsing how does the data get from the DOM tree into my data structures?
-Steve
|
|
|
|
|
I guess it might be your use of the word "parsing"
anyway the code could be written in a number of ways, here are a few examples:
XmlDocument doc = new XmlDocument();<br />
doc.load(filepath);<br />
<br />
XmlNode theme = doc.SelectSingleNode("/Theme");<br />
XmlNode directory = theme.SelectSingleNode("Directory");<br />
string dirname = directory.Attributes["name"].Value;<br />
string mainFontName = theme.SelectSingleNode("MainFont/@name").InnerText;<br />
<br />
foreach (XmlNode node in theme.ChildNodes)<br />
{<br />
string name = node.Name;<br />
string firstAttrValue = node.Attributes[0].Value;<br />
}
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
Philip,
Thanks, very helpful information. I do however, have a couple of questions about your comments.
First, what version of MSXML are you refering to? I am trying to use the latest and there seems to be several versions of every function.
Philip Fitzsimons wrote:
string mainFontName = theme.SelectSingleNode("MainFont/@name").InnerText;
I don't understand the following code. Specifically (.../@name" ) and .InnerText.
And finally,
Philip Fitzsimons wrote:
foreach (XmlNode node in theme.ChildNodes)
I have not been able to figure out this part either.
How do you loop until you have no more nodes in theme?
Thanks for your help. You have been very helpful.
-Steve
|
|
|
|
|
the @name is to access the attribute as opposed to an element caled name.
.ChildNodes gives back a collection of nodes that are children of theme.
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
This must be .net. The sdk I am looking at is not like the one you are mentioning. I guess I failed to mention that I am using MSXML4 in VC++6.
-Steve
|
|
|
|
|
|
After loading a xml file, I get a IXMLDOMNode from a Xpath with the method selectSingleNode.
How to get the corresponding file position in the XML file, and also its line number & character number ?
JPG
|
|
|
|
|
Hi everyone,
I have the following XML structure.
<ROOT>
<ELEMENT>
<Time>100</Time>
<MIN>500</MIN>
<MAX>500</MAX>
<RESULT>OK</RESULT>
<ERRORS>NO</ERRORS>
</ELEMENT>
<ELEMENT>
<Time>100</Time>
<RESULT>OK</RESULT>
<ERRORS>NO</ERRORS>
</ELEMENT>
Unfortunately, as you can see the guy who designed the XML did not make it consistent (all ELEMENT nodes do not have the same sub-nodes). However, I am only interested in the RESULT sub-node.
So, I use the XMLDataDocument class to step through the file.
My question is that when I step in the element node, how can I just take a look at the RESULT tag.
Thanks for any help you can give me.
Pankaj
Without struggle, there is no progress
|
|
|
|
|
I would edit your post and check 'Do not treat <'s as HTML tags'. Makes markup a little easier to read
Ryan
|
|
|
|