blob: f52cc18b61e7df133cd432f856e484df055f085d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.xml.core.tests.contentmodel;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
import org.eclipse.wst.xml.core.internal.contentmodel.ContentModelManager;
import org.eclipse.wst.xml.core.internal.contentmodel.internal.util.CMValidator;
import org.eclipse.wst.xml.core.internal.contentmodel.internal.util.CMValidator.ElementPathRecordingResult;
import org.eclipse.wst.xml.core.internal.contentmodel.internal.util.CMValidator.StringElementContentComparator;
public class CMValidatorTest
{
public static void main(String arg[])
{
if (arg.length > 1)
{
try
{
//CMDocumentFactoryRegistry.getInstance().registerCMDocumentBuilderWithClassName("org.eclipse.wst.xml.core.internal.contentmodel.mofimpl.CMDocumentBuilderImpl");
String grammarFileName = arg[0];
String elementName = arg[1];
CMDocument cmDocument = ContentModelManager.getInstance().createCMDocument(grammarFileName, null);
CMNamedNodeMap elementMap = cmDocument.getElements();
CMElementDeclaration element = (CMElementDeclaration)elementMap.getNamedItem(elementName);
if (element != null)
{ /*
println("found element [" + elementName + "] contentType = " + element.getContentType());
GraphNode graphNode = createGraph(element);
printGraph(graphNode);
*/
println("-------------- begin validate ---------------"); //$NON-NLS-1$
StringElementContentComparator comparator = new StringElementContentComparator();
CMValidator validator = new CMValidator();
ElementPathRecordingResult result = new ElementPathRecordingResult();
validator.getOriginArray(element, CMValidator.createStringList(arg, 2), comparator, result);
if (result.isValid)
{
CMNode[] nodeMapping = result.getOriginArray();
println("Validation Success!"); //$NON-NLS-1$
print(" "); //$NON-NLS-1$
for (int i = 0; i < nodeMapping.length; i++)
{
String name = nodeMapping[i] != null ? nodeMapping[i].getNodeName() : "null"; //$NON-NLS-1$
print("[" + name + "]"); //$NON-NLS-1$ //$NON-NLS-2$
}
println(""); //$NON-NLS-1$
}
else
{
println("Validation Failed! "); //$NON-NLS-1$
if (result.errorMessage != null)
{
println(" " + result.errorMessage); //$NON-NLS-1$
}
}
println("-------------- end validate ---------------"); //$NON-NLS-1$
}
else
{
println("element [" + elementName + "] can not be found"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
catch (Exception e)
{
println("CMValidator error"); //$NON-NLS-1$
e.printStackTrace();
}
}
else
{
println("2 args required... only " + arg.length + " provided"); //$NON-NLS-1$ //$NON-NLS-2$
println("usage java org.eclipse.wst.newxml.util.XMLUtil grammarFileName rootElementName pattern"); //$NON-NLS-1$
}
}
public static void print(String string)
{
}
public static void println(String string)
{
}
public static void printlnIndented(int indent, String string)
{
}
}