  | |  | Can´t acess child elements definition | Can´t acess child elements definition 2003-10-07 - By Rubens Del Monte
Hello,
I´m starting to develop an application with Xerces and I´m having some trouble acessing the validation information of child nodes.
My code is the following :
XMLParserConfiguration config = new StandardParserConfiguration();
// the pool is empty, but the schema is loaded when parsed, and the validation occurs
config.setProperty("http://apache.org/xml/properties/internal/grammar-pool", grammarPool);
DOMParser parser = new DOMParser(config);
parser.setFeature("http://xml.org/sax/features/validation",true);
parser.setFeature("http://apache.org/xml/features/validation/schema",true); parser.parse(filename); doc = parser.getDocument();
org.apache.xerces.impl.xs.psvi.XSModel model = grammarPool.toXSModel();
// the only element this brings is the root node XSNamedMap element = model.getComponents(XSConstants.ELEMENT_DECLARATION);
// I first tried this, but it only works with the root element, none of the others. They don´t have namespace too
XSElementDeclaration elem = ((XSModelImpl) model).getElementDeclaration("os",null);
.
If anyone can help me, please, I´ve been trying to do this but it´s taking too long
Thanks,
Rubens Del Monte
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas -microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head> <meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 9"> <meta name=Originator content="Microsoft Word 9"> <link rel=File-List href="cid:filelist.xml@(protected)"> <!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:DoNotRelyOnCSS/> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:DocumentKind>DocumentEmail</w:DocumentKind> <w:HyphenationZone>21</w:HyphenationZone> <w:EnvelopeVis/> </w:WordDocument> </xml><![endif]--> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} p.MsoAutoSig, li.MsoAutoSig, div.MsoAutoSig {margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} span.EstiloDeCorreioEletrnico15 {mso-style-type:personal-compose; mso-ansi-font-size:10.0pt; mso-ascii-font-family:Arial; mso-hansi-font-family:Arial; mso-bidi-font-family:Arial; color:black;} @(protected) Section1 {size:612.0pt 792.0pt; margin:70.85pt 3.0cm 70.85pt 3.0cm; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style> </head>
<body lang=PT-BR style='tab-interval:35.4pt'>
<div class=Section1>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt; font-family:Arial'>Hello, <o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt; font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span> </font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span>I´m starting to develop an application with Xerces and I´m having some trouble acessing the validation information of <span style="mso-spacerun: yes"> </span>child nodes.<o:p></o:p></span></font>< /span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'>My code is the following :<o :p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>…<o:p></o:p></span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>XMLParserConfiguration config = new StandardParserConfiguration();<o:p></o:p></span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>// the pool is empty, but the schema is loaded when parsed, and the validation occurs<o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span>config.setProperty("http://apache.org/xml/properties/internal /grammar-pool",grammarPool); <o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span>DOMParser parser = new DOMParser(config);<o:p></o:p></span></font></span ></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span>parser.setFeature("http://xml.org/sax/features/validation" ,true);<o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span>parser.setFeature("http://apache.org/xml/features/validation/schema ",true);<o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span>parser.parse(filename);<o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span>doc = parser.getDocument();<o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span> <o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style="mso-spacerun: yes"> </span>org.apache.xerces.impl.xs.psvi.XSModel model <span style="mso-spacerun: yes"> </span>= grammarPool.toXSModel();<o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><span style='mso-tab-count: 1'> </span>// the only element this brings is the root node<o:p></o:p></span></font></span>< /p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>XSNamedMap element = model.getComponents(XSConstants.ELEMENT_DECLARATION); <o:p></o:p></span></font> </span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>// I first tried this, but it only works with the root element, none of the others. They don´t have namespace too…<o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>XSElementDeclaration elem = ((XSModelImpl) model).getElementDeclaration("os",null);<o:p></o:p></span></font>< /span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>….<o:p></o:p></span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>If anyone can help me, please, I´ve been trying to do this but it´s taking too long…<o:p></o:p></span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>Thanks,<o:p></o:p></span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p>< /span></font></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial; mso-ansi-language:EN-US'>Rubens Del Monte<o:p></o:p></span></font></span></p>
<p class=MsoNormal><span class=EstiloDeCorreioEletrnico15><font size=2 color=black face=Arial><span lang=EN-US style='font-size:10.0pt;mso-bidi-font -size: 12.0pt;font-family:Arial;mso-ansi-language:EN-US'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></font></span></p>
</div>
</body>
</html>
|
|
 |