如何将complexType限制为XML Schema中的特定值?

我试图在XML Schema中限制某种形式的组合。

我有一个 complexType ,可以在其他几个 complexTypes 中重用。当 PartialType 包含在 FullTypeA 中时,我想指定 FieldA 必须是一个值,而当它包含在 FullTypeB中时, </代码>。


    
        
        
    


<!-- FieldA must be 1 for FullTypeA-->

    
        
        
    


<!-- FieldA must be 2 for FullTypeB-->

    
        
        
    

我应该如何构建我的XML模式以适应这种情况?

1
额外 编辑
意见: 1

1 答案

我认为Xsd并不真的允许这样做。

One possible way to achieve this would be using xs:restriction

<?xml version="1.0" encoding="UTF-8"?>

    
        
            
            
            
                
                
            
        
    

    
        
            
                
                    
                    
                    
                
            
        
    

    
        
            
                
                    
                    
                    
                
            
        
    


不利之处很明显:您必须在 PartialType 中声明所有元素。

An alternative would be to use xs:extension

<?xml version="1.0" encoding="UTF-8"?>

    
        
            
        
    

    
        
            
                
                    
                    
                    
                
            
        
    

    
        
            
                
                    
                    
                    
                
            
        
    


1
额外
谢谢,帮助我很多!
额外 作者 M. Dudley,