public abstract class SchemaFactory extends Object
Schemaãªããžã§ã¯ããäœæãããã¡ã¯ããªã§ãã APIæ€èšŒã®ãšã³ããªã»ãã€ã³ãã§ãã
SchemaFactoryã¯ã¹ããŒãã»ã³ã³ãã€ã©ã§ãã ã¹ããŒãã®å€éšè¡šçŸãèªã¿åããããããæ€èšŒã®ããã«æºåããŸãã
SchemaFactoryã¯ã©ã¹ã¯ã¹ã¬ããã«å¯ŸããŠå®å
šã§ã¯ãããŸããã ã€ãŸããã¢ããªã±ãŒã·ã§ã³åŽã§ãã©ã®ãããªå ŽåãSchemaFactoryãªããžã§ã¯ãã䜿çšããã¹ã¬ããã1ã€ã ãã§ããããã«ããå¿
èŠããããŸãã å®è£
ã§ã¯ãã¡ãœããã«synchronizedã®ããŒã¯ãä»ããŠãé害ã®ããã¯ã©ã€ã¢ã³ãããä¿è·ããããšããå§ãããŸãã
SchemaFactoryã¯åå
¥äžå¯èœã§ãã newSchemaã¡ãœããã®1ã€ãåŒã³åºãããŠãããšãã«ãã¢ããªã±ãŒã·ã§ã³ã¯ãåãã¹ã¬ããããã§ãã£ãŠããnewSchemaã¡ãœãããååž°çã«åŒã³åºãããšã¯ã§ããŸããã
ãã®ä»æ§ã¯åå空éURIã䜿çšããŠãã¹ããŒãèšèªãæå®ããŸãã æ¬¡ã®è¡šã«ããã®ä»æ§ã«ãã£ãŠå®çŸ©ãããå€ã瀺ããŸãã
仿§ã«æºæ ããããã«ãå®è£ ã§ãµããŒãããå¿ èŠãããã®ã¯W3C XML Schema 1.0ã®ã¿ã§ãã ãã ããããã«ç€ºãããã®ä»ã®ã¹ããŒãèšèªããµããŒãããå Žåã¯ããã®ä»æ§ã«èª¬æããé¢é£ã®åäœã«åŸãå¿ èŠããããŸãã
ããã«ç€ºããŠããªãã¹ããŒãèšèªã§ã¯ãç¬èªã®URIãå°å
¥ããŠããããã衚ãããšãæåŸ
ãããŸãã SchemaFactoryã¯ã©ã¹ã¯å®è¡æã«ãã»ãã®ã¹ããŒãèšèªã®ã»ãã®å®è£
ãèŠã€ããããšãã§ããŸãã
XML DTDã¯ãæ§æè§£æããã»ã¹ã«åŒ·ãçµã³ä»ããããŠãããæ§æè§£æããã»ã¹ã«å€§ããªåœ±é¿ãäžãããããDTDæ€èšŒãæ§æè§£æããç¬ç«ããããã»ã¹ãšããŠå®çŸ©ããããšã¯ã§ããŸããã ãã®ããããã®ä»æ§ã§ã¯ãXML DTDã®ã»ãã³ãã£ãã¯ã¹ãå®çŸ©ããŸããã ããã¯ãé©åãšæãããæ¹æ³ã§ã®å®è£ ãçŠæ¢ãããã®ã§ã¯ãããŸãããããã®ã€ã³ã¿ãã§ãŒã¹ã«å®è£ ãããDTDæ€èšŒããå¿ ãXML 1.0ã§å®çŸ©ãããXML DTDã»ãã³ãã£ãã¯ã¹ããåŒãé¢ãããã«ããŠãã ããã
| value | language |
|---|---|
XMLConstants.W3C_XML_SCHEMA_NS_URI ("http://www.w3.org/2001/XMLSchema") |
W3C XML Schema 1.0 |
XMLConstants.RELAXNG_NS_URI ("http://relaxng.org/ns/structure/1.0") |
RELAX NG 1.0 |
| 修食å | ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|---|
protected |
SchemaFactory() |
掟çã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã§ãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
abstract ErrorHandler |
getErrorHandler() |
ãã®
SchemaFactoryã«èšå®ãããŠããçŸåšã®ErrorHandlerãååŸããŸãã |
boolean |
getFeature(String name) |
æ©èœãã©ã°ã®å€ãæ€çŽ¢ããŸãã
|
Object |
getProperty(String name) |
ããããã£å€ãæ€çŽ¢ããŸãã
|
abstract LSResourceResolver |
getResourceResolver() |
ãã®
SchemaFactoryã«èšå®ãããŠããçŸåšã®LSResourceResolverãååŸããŸãã |
abstract boolean |
isSchemaLanguageSupported(String schemaLanguage) |
æå®ãããã¹ããŒãããã®
SchemaFactoryã«ãµããŒããããŠããããè¿ããŸãã |
static SchemaFactory |
newInstance(String schemaLanguage) |
æå®ãããã¹ããŒãèšèªããµããŒããã
SchemaFactoryã®å®è£
ãæ€çŽ¢ãããããè¿ããŸãã |
static SchemaFactory |
newInstance(String schemaLanguage, String factoryClassName, ClassLoader classLoader) |
ã¯ã©ã¹åãã
SchemaFactoryã®æ°ããã€ã³ã¹ã¿ã³ã¹ãååŸããŸãã |
abstract Schema |
newSchema() |
ç¹æ®ãª
Schemaãªããžã§ã¯ããäœæããŸãã |
Schema |
newSchema(File schema) |
æå®ããã
Fileãã¹ããŒããšããŠæ§æè§£æãããããSchemaãšããŠè¿ããŸãã |
Schema |
newSchema(Source schema) |
æå®ããããœãŒã¹ãã¹ããŒããšããŠæ§æè§£æãããããã¹ããŒããšããŠè¿ããŸãã
|
abstract Schema |
newSchema(Source[] schemas) |
æå®ããããœãŒã¹ãã¹ããŒããšããŠæ§æè§£æãããããã¹ããŒããšããŠè¿ããŸãã
|
Schema |
newSchema(URL schema) |
æå®ããã
URLãã¹ããŒããšããŠæ§æè§£æãããããSchemaãšããŠè¿ããŸãã |
abstract void |
setErrorHandler(ErrorHandler errorHandler) |
newSchemaã¡ãœããã®åŒåºãã§çºçãããšã©ãŒãåãåãããã«ErrorHandlerãèšå®ããŸãã |
void |
setFeature(String name, boolean value) |
ãã®
SchemaFactoryããã®ãã¡ã¯ããªã«ãã£ãŠäœæãããSchemaãããã«ãããã®Schemaã«ãã£ãŠäœæãããValidatorããã³ValidatorHandlerã®æ©èœãèšå®ããŸãã |
void |
setProperty(String name, Object object) |
ããããã£å€ãèšå®ããŸãã
|
abstract void |
setResourceResolver(LSResourceResolver resourceResolver) |
ã¹ããŒãã®æ§æè§£ææã«ãªãœãŒã¹è§£æ±ºãã«ã¹ã¿ãã€ãºããããã«
LSResourceResolverãèšå®ããŸãã |
protected SchemaFactory()
掟çã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã§ãã
ãã®ã³ã³ã¹ãã©ã¯ã¿ã¯äœãè¡ããŸããã
掟çã¯ã©ã¹ã§ã¯ãnull ErrorHandlerããã³null LSResourceResolverãæã€SchemaFactoryãªããžã§ã¯ããäœæããå¿
èŠããããŸãã
public static SchemaFactory newInstance(String schemaLanguage)
æå®ãããã¹ããŒãèšèªããµããŒãããSchemaFactoryã®å®è£
ãæ€çŽ¢ãããããè¿ããŸãã
æå®ãããã¹ããŒãèšèªã®SchemaFactoryãªããžã§ã¯ããæ€çŽ¢ããå Žåããã®ã¡ãœããã¯ãã¯ã©ã¹ã»ããŒããŒããã³ã³ããã¹ãã»ã¯ã©ã¹ã»ããŒããŒãåç
§ããæ¬¡ã®é çªã§ã次ã®å Žæã調ã¹ãŸãã
"javax.xml.validation.SchemaFactory:schemaLanguage"ãååšãã(schemaLanguageã¯ãã®ã¡ãœããã®ãã©ã¡ãŒã¿)å Žåããã®å€ã¯ã¯ã©ã¹åãšããŠèªã¿åãããŸãã ãã®ã¡ãœããã¯ãã¯ã©ã¹ã»ããŒããŒã䜿çšããŠãã®ã¯ã©ã¹ã®æ°ããã€ã³ã¹ã¿ã³ã¹ã®äœæã詊ã¿ãæåããå Žåã¯ãããè¿ããŸãã
$java.home/lib/jaxp.propertiesãèªã¿åãããäžèšã®ã·ã¹ãã ã»ããããã£ã§ããããŒã«é¢é£ä»ããããŠããå€ãæ€çŽ¢ãããŸãã å€ãååšããã°ãäžèšã®ããã«å€ãåŠçãããŸãã
ServiceLoaderã¯ã©ã¹ã§å®çŸ©ãããŠãããµãŒãã¹ã»ãããã€ãã®ããŒãæ©èœã䜿çšããŠãããã©ã«ãã®ããŒãã»ã¡ã«ããºã ã«ãã£ãŠãµãŒãã¹ã®å®è£
ã®ç¹å®ããã³ããŒãã詊ã¿ãããµãŒãã¹ã»ãããã€ãã®ããŒãæ©èœã¯ãçŸåšã®ã¹ã¬ããã®ã³ã³ããã¹ãã»ã¯ã©ã¹ã»ããŒããŒã䜿çšããŠãµãŒãã¹ã®ããŒãã詊ã¿ãã ã³ã³ããã¹ãã»ã¯ã©ã¹ã»ããŒããŒãnullã®å Žåãã·ã¹ãã ã»ã¯ã©ã¹ã»ããŒããŒã䜿çšãããŸãã isSchemaLanguageSupported(String schemaLanguage)ãå®è£
ããŠããå¿
èŠããããŸãã ServiceConfigurationErrorãçºçããå ŽåãSchemaFactoryConfigurationErrorãã¹ããŒãããŸãã
SchemaFactoryã¯ãå®è£
åºæã®æ¹æ³ã§é
眮ãããŸãã W3C XML Schemaçšã®ãã©ãããã©ãŒã ã®ããã©ã«ãSchemaFactoryãããå¿
èŠããããŸãã
ãã¹ãŠã倱æããå ŽåãIllegalArgumentExceptionãã¹ããŒãããŸãã
ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ãã³ã:
ããããã£ã»ãã¡ã€ã«ãã©ã®ããã«æ§æè§£æããããã«ã€ããŠã¯ãProperties.load(java.io.InputStream)ãåç
§ããŠãã ããã ç¹ã«ãã³ãã³ã:ãã¯ãããããã£ã»ãã¡ã€ã«å
ã§ãšã¹ã±ãŒããããå¿
èŠããããããã¹ããŒãèšèªURIãé©åã«ãšã¹ã±ãŒããããŠããããšã確èªããŠãã ããã ããšãã°ã
http\://www.w3.org/2001/XMLSchema=org.acme.foo.XSSchemaFactory
schemaLanguage - è¿ãããSchemaFactoryãçè§£ããã¹ããŒãèšèªãæå®ããã æå®ã§ããå€ã«ã€ããŠã¯äœ¿çšå¯èœãªã¹ããŒãèšèªã®ãªã¹ããåç
§ã SchemaFactoryã®æ°ããã€ã³ã¹ã¿ã³ã¹IllegalArgumentException - 䜿çšå¯èœãªã¹ããŒãèšèªã®å®è£
ããªãå ŽåãNullPointerException - schemaLanguageãã©ã¡ãŒã¿ãnullã§ããå ŽåãSchemaFactoryConfigurationError - æ§æãšã©ãŒãçºçããå ŽåãnewInstance(String schemaLanguage, String factoryClassName, ClassLoader classLoader)public static SchemaFactory newInstance(String schemaLanguage, String factoryClassName, ClassLoader classLoader)
ã¯ã©ã¹åããSchemaFactoryã®æ°ããã€ã³ã¹ã¿ã³ã¹ãååŸããŸãã æå®ããããã¡ã¯ããªã»ã¯ã©ã¹åãæå®ãããã¹ããŒãèšèªããµããŒãããå ŽåãSchemaFactoryãè¿ãããŸãã ãã®é¢æ°ã¯ãã¯ã©ã¹ã»ãã¹ã«è€æ°ã®ãããã€ããããå Žåã«äŸ¿å©ã§ãã ã©ã®ãããã€ããããŒããããããæå®ã§ãããããã¢ããªã±ãŒã·ã§ã³ãããã«å¶åŸ¡ã§ããŸãã
jaxp.debugã·ã¹ãã ã»ããããã£ãèšå®ãããšããã®ã¡ãœããã¯å®è¡äžã®åŠçãæ€çŽ¢ããŠããå Žæã«é¢ãã倧éã®ãããã°ã»ã¡ãã»ãŒãžãSystem.errã«åºåããŸãã
åé¡ãããå Žåãæ¬¡ã®ããã«ããŸãã
java -Djaxp.debug=1 YourProgram ....
schemaLanguage - è¿ãããSchemaFactoryãçè§£ããã¹ããŒãèšèªãæå®ããã æå®ã§ããå€ã«ã€ããŠã¯äœ¿çšå¯èœãªã¹ããŒãèšèªã®ãªã¹ããåç
§ã factoryClassName - javax.xml.validation.SchemaFactoryã®å®è£
ãæäŸããå®å
šæå®ã®ãã¡ã¯ããªã»ã¯ã©ã¹åãclassLoader - ãã¡ã¯ããªã»ã¯ã©ã¹ã®ããŒãã«äœ¿çšãããClassLoaderã nullã®å Žåã¯ãçŸåšã®Threadã®ã³ã³ããã¹ãclassLoaderãããã¡ã¯ããªã»ã¯ã©ã¹ã®ããŒãã«äœ¿çšãããŸãã SchemaFactoryã®æ°ããã€ã³ã¹ã¿ã³ã¹IllegalArgumentException - factoryClassNameãnullã®å ŽåããŸãã¯ããã¡ã¯ããªã»ã¯ã©ã¹ãããŒãããã³ã€ã³ã¹ã¿ã³ã¹åã§ããªãå ŽåããŸãã¯ããã¡ã¯ããªã»ã¯ã©ã¹ãschemLanguageãã©ã¡ãŒã¿ã§æå®ãããã¹ããŒãèšèªããµããŒãããªãå ŽåãNullPointerException - schemaLanguageãã©ã¡ãŒã¿ãnullã§ããå ŽåãnewInstance(String schemaLanguage)public abstract boolean isSchemaLanguageSupported(String schemaLanguage)
æå®ãããã¹ããŒãããã®SchemaFactoryã«ãµããŒããããŠããããè¿ããŸãã
schemaLanguage - è¿ãããSchemaFactoryãçè§£ããã¹ããŒãèšèªãæå®ãããschemaLanguageã¯æå¹ãªã¹ããŒãèšèªãæå®ããå¿
èŠããããSchemaFactoryãschemaLanguageããµããŒãããŠããå Žåã¯trueãããã§ãªãå Žåã¯falseãNullPointerException - schemaLanguageãnullã®å ŽåãIllegalArgumentException - schemaLanguage.length()== 0ãŸãã¯schemaLanguageãæå¹ãªã¹ããŒãèšèªãæå®ããªãå Žåãpublic boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
æ©èœåã¯å®å
šæå®URIã§ãã SchemaFactoryã¯æ©èœåãèªèã§ããŸãããäžæçã«ãã®å€ãè¿ãããšã¯ã§ããŸããã
ç¬èªã®URIã«åºã¥ããŠäœæãããååã䜿ã£ãŠãå®è£ è ãç¬èªã®æ©èœãäœæããããšãã§ããŸã(æšå¥š)ã
name - æ©èœåãnull以å€ã®å®å
šæå®URIã§è¡šããããSAXNotRecognizedException - æ©èœå€ãå²ãåœãŠãããªãããŸãã¯ååŸã§ããªãå ŽåãSAXNotSupportedException - SchemaFactoryãæ©èœåãèªèããã ãã§ãçŸæç¹ã§ã¯ãã®å€ã倿ã§ããªãå ŽåãNullPointerException - nameãnullã®å ŽåãsetFeature(String, boolean)public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException
ãã®SchemaFactoryããã®ãã¡ã¯ããªã«ãã£ãŠäœæãããSchemaãããã«ãããã®Schemaã«ãã£ãŠäœæãããValidatorããã³ValidatorHandlerã®æ©èœãèšå®ããŸãã
å®è£
æããã³éçºæã«ã¯ãnewSchema()ã«ãã£ãŠè¿ãããç¹å¥ãªSchemaãªããžã§ã¯ãã®åŠçæ¹æ³ã«ç¹ã«æ³šæããããã«ããŸãã ããšãã°ãå Žåã«ãã£ãŠã¯ãSchemaFactoryãšã¯ã©ã¹ããç°ãªãå®è£
ããã®ã¹ããŒããå®éã«ããŒããããšãã«ãSchemaFactoryã®æ©èœãèªåçã«ç¶æ¿ã§ããªãããšããããŸãã éçºæã«ã¯ãã»ãã¥ãªãã£åŠçãªã©ã®æ©èœãäž¡æ¹ã®å Žæã§æç€ºçã«èšå®ããããã«ããŠãã ããã
æ©èœåã¯å®å
šæå®URIã§ãã SchemaFactoryã¯æ©èœã®å€ã衚瀺ã§ããŸãããçŸåšã®å€ã倿Žããããšã¯ã§ããŸããã
å®è£
ã¯ãã¹ãŠãXMLConstants.FEATURE_SECURE_PROCESSINGæ©èœããµããŒãããŠããå¿
èŠããããŸãã ãã®æ©èœã«ã€ããŠã¯æ¬¡ã®ãšããã§ãã
true: å®è£
ã¯å®è£
éçã«æºæ ããXMLåŠçãå¶éããŸãã äŸã«ã¯ããšã³ãã£ãã£æ¡åŒµå¶éã倧容éã®ãªãœãŒã¹ãæ¶è²»ããXMLã¹ããŒããå«ãŸããŸãã ã»ãã¥ãªãã£äžã®çç±ããXMLåŠçãå¶éãããå Žåã¯ãç»é²æžã¿ã®ErrorHandler.fatalError(SAXParseException exception)ãžåŒåºããä»ããŠå ±åãããŸãã setErrorHandler(ErrorHandler errorHandler)ãåç
§ããŠãã ããã
false: å®è£
ã¯å®è£
éçã«é¢ä¿ãªããXML仿§ã«åŸã£ãŠXMLãåŠçããŸãã
name - æ©èœåãnull以å€ã®å®å
šæå®URIã§è¡šããããvalue - æ©èœã®èŠæ±ãããå€(trueãŸãã¯false)ãSAXNotRecognizedException - æ©èœå€ãå²ãåœãŠãããªãããŸãã¯ååŸã§ããªãå ŽåãSAXNotSupportedException - SchemaFactoryãæ©èœåãèªèããã ãã§ãèŠæ±ãããå€ãèšå®ã§ããªãå ŽåãNullPointerException - nameãnullã®å ŽåãgetFeature(String)public void setProperty(String name, Object object) throws SAXNotRecognizedException, SAXNotSupportedException
ããããã£åã¯å®å
šæå®URIã§ãã SchemaFactoryã¯ããããã£åãèªèã§ããŸãããçŸåšã®å€ã倿Žããããšã¯ã§ããŸããã
JAXP 1.5ãŸãã¯ãã以éãå®è£
ããå®è£
ã¯ãã¹ãŠãXMLConstants.ACCESS_EXTERNAL_DTDããã³XMLConstants.ACCESS_EXTERNAL_SCHEMAããããã£ããµããŒãããŠããå¿
èŠããããŸãã
ã¹ããŒãã»ãã¡ã€ã«å
ã®å€éšDTDãžã®ã¢ã¯ã»ã¹ããXMLConstants.ACCESS_EXTERNAL_DTDããããã£ã§æå®ããããããã³ã«ã«å¶éãããŸãã ãã®ããããã£ã®å¶éãåå ã§æ°ããã¹ããŒãã®äœæäžã«ã¢ã¯ã»ã¹ãæåŠãããå Žåã¯ãnewSchema(Source)ãnewSchema(File)ãnewSchema(URL)ããŸãã¯newSchema(Source[])ã¡ãœããã«ãã£ãŠSAXExceptionãã¹ããŒãããŸãã
xmlãœãŒã¹ã»ãã¡ã€ã«å
ã®å€éšDTDãžã®ã¢ã¯ã»ã¹ããXMLConstants.ACCESS_EXTERNAL_DTDããããã£ã§æå®ããããããã³ã«ã«å¶éãããŸãã ãã®ããããã£ã®å¶éãåå ã§æ€èšŒäžã«ã¢ã¯ã»ã¹ãæåŠãããå Žåã¯ãValidator.validate(Source)ãŸãã¯Validator.validate(Source, Result)ã¡ãœããã«ãã£ãŠSAXExceptionãã¹ããŒãããŸãã
schemaLocation屿§ã«ãã£ãŠèšå®ãããå€éšåç
§ãžã®ã¢ã¯ã»ã¹ããXMLConstants.ACCESS_EXTERNAL_SCHEMAããããã£ã§æå®ããããããã³ã«ã«å¶éãããŸãã ãã®ããããã£ã®å¶éãåå ã§æ€èšŒäžã«ã¢ã¯ã»ã¹ãæåŠãããå Žåã¯ãValidator.validate(Source)ãŸãã¯Validator.validate(Source, Result)ã¡ãœããã«ãã£ãŠSAXExceptionãã¹ããŒãããŸãã
Importããã³IncludeèŠçŽ ã«ãã£ãŠèšå®ãããå€éšåç
§ãžã®ã¢ã¯ã»ã¹ããXMLConstants.ACCESS_EXTERNAL_SCHEMAããããã£ã§æå®ããããããã³ã«ã«å¶éãããŸãã ãã®ããããã£ã®å¶éãåå ã§æ°ããã¹ããŒãã®äœæäžã«ã¢ã¯ã»ã¹ãæåŠãããå Žåã¯ãnewSchema(Source)ãnewSchema(File)ãnewSchema(URL)ããŸãã¯newSchema(Source[])ã¡ãœããã«ãã£ãŠSAXExceptionãã¹ããŒãããŸãã
name - ããããã£åãnull以å€ã®å®å
šæå®URIã§è¡šããããobject - èŠæ±ãããããããã£å€ãSAXNotRecognizedException - ããããã£å€ãå²ãåœãŠãããªãããŸãã¯ååŸã§ããªãå ŽåãSAXNotSupportedException - SchemaFactoryãããããã£åãèªèããã ãã§ãèŠæ±ãããå€ãèšå®ã§ããªãå ŽåãNullPointerException - nameãnullã®å Žåãpublic Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
ããããã£åã¯å®å
šæå®URIã§ãã SchemaFactoryã¯ããããã£åãèªèã§ããŸãããäžæçã«ãã®å€ãè¿ãããšã¯ã§ããŸããã
SchemaFactoryã¯ç¹å®ã®ããããã£åãèªèããå¿
èŠã¯ãããŸããã
ç¬èªã®URIã«åºã¥ããŠäœæãããååã䜿ã£ãŠãå®è£ è ãç¬èªã®ããããã£ãäœæããããšãã§ããŸã(æšå¥š)ã
name - ããããã£åãnull以å€ã®å®å
šæå®URIã§è¡šããããSAXNotRecognizedException - ããããã£å€ãå²ãåœãŠãããªãããŸãã¯ååŸã§ããªãå ŽåãSAXNotSupportedException - XMLReaderãããããã£åãèªèããã ãã§ãçŸæç¹ã§ã¯ãã®å€ã倿ã§ããªãå ŽåãNullPointerException - nameãnullã®å ŽåãsetProperty(String, Object)public abstract void setErrorHandler(ErrorHandler errorHandler)
newSchemaã¡ãœããã®åŒåºãã§çºçãããšã©ãŒãåãåãããã«ErrorHandlerãèšå®ããŸãã
ãšã©ãŒã»ãã³ãã©ã䜿çšããŠãã¹ããŒãæ§æè§£ææã®ãšã©ãŒåŠçãã«ã¹ã¿ãã€ãºã§ããŸãã ErrorHandlerãèšå®ãããšãã¹ããŒãã®è§£æã§çºèŠããããšã©ãŒã¯ãŸãErrorHandlerã«éãããŸãã
ãšã©ãŒã»ãã³ãã©ã¯ãã³ãã©ããSAXExceptionãã¹ããŒããŠãã¹ããŒãã®è§£æããã ã¡ã«äžæããããšãã§ããŸãã ãŸãã¯ããšã©ãŒãç»é¢ã«åºåããããErrorHandlerããæ£åžžã«æ»ã£ãŠåŠçãç¶è¡ããããããããšãã§ããŸãã
Throwable (ãŸãã¯ãã®æŽŸçã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹)ãErrorHandlerããã¹ããŒããããšãnewSchemaã¡ãœããã®åŒåºãå
ã«ã¯åãThrowableãªããžã§ã¯ããã¹ããŒãããŸãã
SchemaFactoryã¯ãæåã«ErrorHandlerãžå ±åããŠããã§ãªããšãSAXExceptionãã¹ããŒããããšãã§ããŸããã
ã¢ããªã±ãŒã·ã§ã³ã§ã¯Schemaã®æ§æè§£æäžã§ããã®ã¡ãœãããåŒã³åºãããšãã§ããŸãã
ErrorHandlerãnullã®å Žåãå®è£
ã¯æ¬¡ã®ErrorHandlerãèšå®ããããã®ããã«åäœããŸãã
class DraconianErrorHandler implementsErrorHandler{ public void fatalError(SAXParseExceptione ) throwsSAXException{ throw e; } public void error(SAXParseExceptione ) throwsSAXException{ throw e; } public void warning(SAXParseExceptione ) throwsSAXException{ // noop } }
æ°ããSchemaFactoryãªããžã§ã¯ããäœæããããšãæåã«ãã®ãã£ãŒã«ãã¯nullã«èšå®ãããŸãã ãã®ãã£ãŒã«ãã¯ããã®SchemaFactoryããäœæãããSchemaãValidatorããŸãã¯ValidatorHandlerã«ç¶æ¿ãããŸããã
errorHandler - èšå®ããæ°ãããšã©ãŒã»ãã³ãã©ã ãã®ãã©ã¡ãŒã¿ã¯nullãå¯ã public abstract ErrorHandler getErrorHandler()
SchemaFactoryã«èšå®ãããŠããçŸåšã®ErrorHandlerãååŸããŸããsetErrorHandler(ErrorHandler)ã¡ãœããã«ãã£ãŠæåŸã«èšå®ããããªããžã§ã¯ããè¿ãããŸãã¯ããã®SchemaFactoryãäœæãããŠããããã®ã¡ãœãããåŒã³åºãããŠããªãå Žåã¯nullãè¿ããsetErrorHandler(ErrorHandler)public abstract void setResourceResolver(LSResourceResolver resourceResolver)
LSResourceResolverãèšå®ããŸãã
SchemaFactoryã¯ãã¹ããŒãã®è§£æäžã«å€éšãªãœãŒã¹ã®å Žæã確èªããå¿
èŠããããšãã«LSResourceResolverã䜿çšããŸããããå€éšãªãœãŒã¹ã®æ€çŽ¢ããå³å¯ã«æ§æãããã®ã¯ã¹ããŒãèšèªã«ããç°ãªããŸãã ããšãã°ãW3C XML Schemaã§ã¯ã<include>ãŸãã¯<import>ããããã¡ã€ã«ãããã³ã¹ããŒãã»ãã¡ã€ã«ããåç
§ãããDTDãªã©ãå«ãŸããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§ã¯Schemaã®æ§æè§£æäžã§ããã®ã¡ãœãããåŒã³åºãããšãã§ããŸãã
LSResourceResolverãnullã®å Žåãå®è£
ã¯æ¬¡ã®LSResourceResolverãèšå®ããããã®ããã«åäœããŸãã
class DumbDOMResourceResolver implementsLSResourceResolver{ publicLSInputresolveResource( String publicId, String systemId, String baseURI) { return null; // always return null } }
LSResourceResolverãRuntimeException (ãŸãã¯ãã®æŽŸçã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹)ãã¹ããŒãããšãSchemaFactoryã¯æ§æè§£æãç°åžžçµäºããnewSchemaã¡ãœããã®åŒåºãå
ã¯åãRuntimeExceptionãåãåããŸãã
æ°ããSchemaFactoryãªããžã§ã¯ããäœæããããšãæåã«ãã®ãã£ãŒã«ãã¯nullã«èšå®ãããŸãã ãã®ãã£ãŒã«ãã¯ããã®SchemaFactoryããäœæãããSchemaãValidatorããŸãã¯ValidatorHandlerã«ç¶æ¿ãããŸããã
resourceResolver - èšå®ããæ°ãããªãœãŒã¹ã»ãªãŸã«ãã ãã®ãã©ã¡ãŒã¿ã¯nullãå¯ã public abstract LSResourceResolver getResourceResolver()
SchemaFactoryã«èšå®ãããŠããçŸåšã®LSResourceResolverãååŸããŸããsetResourceResolver(LSResourceResolver)ã¡ãœããã«ãã£ãŠæåŸã«èšå®ããããªããžã§ã¯ããè¿ãããŸãã¯ããã®SchemaFactoryãäœæãããŠããããã®ã¡ãœãããåŒã³åºãããŠããªãå Žåã¯nullãè¿ããsetErrorHandler(ErrorHandler)public Schema newSchema(Source schema) throws SAXException
æå®ããããœãŒã¹ãã¹ããŒããšããŠæ§æè§£æãããããã¹ããŒããšããŠè¿ããŸãã
ããã¯newSchema(Source[] schemas)ã®ç°¡æã¡ãœããã§ãã
schema - ã¹ããŒãã衚ããœãŒã¹ãschemaã®æ§æè§£æããã®æ°ããSchemaãSAXException - æ§æè§£ææã«SAXãšã©ãŒãçºçããå ŽåãNullPointerException - schemaãnullã§ããå Žåãpublic Schema newSchema(File schema) throws SAXException
æå®ãããFileãã¹ããŒããšããŠæ§æè§£æãããããSchemaãšããŠè¿ããŸãã
ããã¯newSchema(Source schema)ã®ç°¡æã¡ãœããã§ãã
schema - ã¹ããŒãã衚ããã¡ã€ã«ãschemaã®æ§æè§£æããã®æ°ããSchemaãSAXException - æ§æè§£ææã«SAXãšã©ãŒãçºçããå ŽåãNullPointerException - schemaãnullã§ããå Žåãpublic Schema newSchema(URL schema) throws SAXException
æå®ãããURLãã¹ããŒããšããŠæ§æè§£æãããããSchemaãšããŠè¿ããŸãã
ããã¯newSchema(Source schema)ã®ç°¡æã¡ãœããã§ãã
schema - ã¹ããŒãã衚ãURLãschemaã®æ§æè§£æããã®æ°ããSchemaãSAXException - æ§æè§£ææã«SAXãšã©ãŒãçºçããå ŽåãNullPointerException - schemaãnullã§ããå Žåãpublic abstract Schema newSchema(Source[] schemas) throws SAXException
åŒã³åºãããåŽã¯ãã¹ãŠã®Sourceãèªã¿åãããããã1ã€ã®ã¹ããŒãã«çµåããŸãã ãã®çµã¿åããã®æ£ç¢ºãªã»ãã³ãã£ãã¯ã¹ã¯ããã®SchemaFactoryãªããžã§ã¯ããäœæãããã¹ããŒãèšèªã«ãã£ãŠç°ãªããŸãã
ErrorHandlerãèšå®ãããŠããå ŽåãåŒã³åºãããåŽã¯ãœãŒã¹ã«èŠã€ãã£ããã¹ãŠã®ãšã©ãŒããã³ãã©ã«å ±åããŸãã ãã³ãã©ã¯äŸå€ãã¹ããŒãããšãã¹ããŒãã®ã³ã³ãã€ã«ãäžæããŸãããããŠåãäŸå€ããã®ã¡ãœããããã¹ããŒãããŸãã ãŸãããšã©ãŒããã³ãã©ã«å ±åãããåŸãåŒã³åºãããåŽã¯ãšã©ãŒãã¹ããŒããããšã«ãã£ãŠä»¥éã®åŠçãäžæã§ããŸãã ãšã©ãŒã»ãã³ãã©ãèšå®ãããŠããªãå Žåã¯ãåŒã³åºãããåŽããœãŒã¹ã«èŠã€ãã£ãæåã®ãšã©ãŒãã¹ããŒããŸãã
çµæãšããŠåŸãããã¹ããŒãã«ã¯ãæå®ããããœãŒã¹ããã®ã³ã³ããŒãã³ããå«ãŸããŸãã ããããã¹ãŠã®ãœãŒã¹ããschemaLocationãšåå空éã®é©åãªå€ã䜿çšããŠãç°ãªãtargetNamespaceãæã€åºæã®ã³ã³ããŒãã³ããæããªã1ã€ã®ã¹ããŒãã»ããã¥ã¡ã³ãã«ã€ã³ããŒãããå Žåã§ããã€ã³ããŒãèŠçŽ ããœãŒã¹ãšããŠåãé åºã«ãªã£ãŠããã°åãçµæãåŸãããŸãã XML Schemaå§åã®ã»ã¯ã·ã§ã³4.2.3ã«ãããã«é¢ããããã»ããµã®ãªãã·ã§ã³ãèšèŒãããŠããŸãã ããã»ããµã¯JAXPã¹ããŒãã»ãœãŒã¹ãšXMLã¹ããŒãã®ã€ã³ããŒããäžè²«ããŠæ±ãå¿ èŠããããŸãããJAXPæºæ ã®ããŒãµãŒéã®åäœã¯ç°ãªã£ãŠãããŸããŸãããç¹ã«ãschemaLocationã§æäŸãããæ å ±ã«ããããããããŒãµãŒã¯æå®ãããåå空éã®æåã®<import>以å€ããã¹ãŠç¡èŠã§ããŸãã
è§£æãããäžé£ã®ã¹ããŒãã«ãXML Schema仿§ã®ã»ã¯ã·ã§ã³5.1ã«ç€ºããããªãšã©ãŒãå«ãŸããå Žåããšã©ãŒãErrorHandlerã«å ±åããå¿
èŠããããŸãã
RELAX NGã®å Žåã§schemas.length!=1ã®ãšãããã®ã¡ãœããã¯UnsupportedOperationExceptionãã¹ããŒããå¿
èŠããããŸãã
schemas - è§£æãããå
¥åã SchemaFactoryã¯SAXSourceãStreamSourceãStAXSourceãããã³DOMSourceèªèããå¿
èŠãããã å
¥åã¹ããŒãã¯XMLããã¥ã¡ã³ããŸãã¯XMLèŠçŽ ã§ããããšãå¿
èŠã§nullã¯äžå¯ã äžäœäºææ§ã®ããã«ãããã¥ã¡ã³ããšèŠçŽ ä»¥å€ã®ãã¹ãŠãåãæž¡ããçµæã¯å®è£
ã«äŸåããŠããã å®è£
ã¯ãå
¥åãèªèãåŠçããããIllegalArgumentExceptionãã¹ããŒããå¿
èŠãããã Schemaãªããžã§ã¯ããè¿ãã ãšã©ãŒãå ±åãããå Žåãè¿ãããSchemaãªããžã§ã¯ããæå³ãæã€ããšã¯ä¿èšŒãããªãã SAXException - æå®ãããå
¥åã®åŠçæã«ãšã©ãŒãçºèŠãããå Žåã ErrorHandlerãèšå®ãããŠããå Žåããšã©ãŒã¯æåã«ãããã«å ±åãããã setErrorHandler(ErrorHandler)ãåç
§ããŠãã ããã NullPointerException - schemasãã©ã¡ãŒã¿èªäœãnullããé
åå
ã®é
ç®ãnullã§ããå ŽåãIllegalArgumentException - é
åå
ã®é
ç®ããã®ã¡ãœããã«ãã£ãŠèªèãããªãå ŽåãUnsupportedOperationException - ã¹ããŒãèšèªããã®åŠçããµããŒãããŠããªãå Žåãpublic abstract Schema newSchema() throws SAXException
Schemaãªããžã§ã¯ããäœæããŸãã
è¿ãããSchemaãªããžã§ã¯ãã®æ£ç¢ºãªã»ãã³ãã£ãã¯ã¹ã¯ããã®SchemaFactoryãäœæãããã¹ããŒãèšèªã«ãã£ãŠç°ãªããŸãã
ããã«ãå®è£ ã§ã¯å®è£ åºæã®ããããã£ãŸãã¯æ©èœã䜿çšããŠããã®ã¡ãœããã®ã»ãã³ãã£ãã¯ã¹ã倿Žã§ããŸãã
å®è£
æããã³éçºæã«ã¯ããã®ç¹æ®ãªSchemaã«ããSchemaFactoryã®æ©èœã»ããã®åŠçæ¹æ³ã«ç¹ã«æ³šæããããã«ããŸãã ããšãã°ãå Žåã«ãã£ãŠã¯ãSchemaFactoryãšã¯ã©ã¹ããç°ãªãå®è£
ããã®ã¹ããŒããå®éã«ããŒããããšãã«ãSchemaFactoryã®æ©èœãèªåçã«ç¶æ¿ã§ããªãããšããããŸãã éçºæã«ã¯ãã»ãã¥ãªãã£åŠçãªã©ã®æ©èœãäž¡æ¹ã®å Žæã§æç€ºçã«èšå®ããããã«ããŠãã ããã
XML Schemaã®å Žåããã®ã¡ãœããã¯ããã¥ã¡ã³ãã«æå®ãããå Žæã®ãã³ãã䜿çšããŠãæ€èšŒãå®è¡ããSchemaãªããžã§ã¯ããäœæããŸãã
è¿ãããSchemaãªããžã§ã¯ãã¯ãããã¥ã¡ã³ãã§ã¹ããŒãã®å Žæã®ãã³ãã®åãURLãåç
§ããŠããå Žåããããã¯åžžã«åãã¹ããŒãã»ããã¥ã¡ã³ãã«è§£æ±ºããããã®ãšã¿ãªããŸãã ãã®æ³å®ã«ãã£ãŠãå®è£
ã§ã¯ã¹ããŒãã»ããã¥ã¡ã³ãã®è§£æçµæãåå©çšã§ãããããåãã¹ããŒãã«å¯Ÿããè€æ°ã®æ€èšŒã®å®è¡ãéããªããŸãã
ã¹ããŒãã®å Žæã®ãã³ãã䜿çšããããšã§ããµãŒãã¹åŠšå®³æ»æãåãããããªãã®ã§æ³šæããŠãã ããã
RELAX NGã§ã¯ãã®åŠçããµããŒãããŠããŸããã
Schemaãªããžã§ã¯ããè¿ããUnsupportedOperationException - ãã®åŠçãåŒã³åºãããåŽã«ãã£ãŠãµããŒããããŠããªãå ŽåãSAXException - ãã®åŠçã¯ãµããŒããããŠããããäœããã®çç±ã«ãã倱æããå Žåã ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã